Почта прямо из базы 1С 8.3: учётная запись, SMTP, код на встроенном языке и рассылки
Содержание
Чтобы отправить письмо из 1С, настройте учётную запись электронной почты (Администрирование → Органайзер → Учетные записи электронной почты), а потом нажмите кнопку с конвертом в печатной форме или в форме документа. Программа сама приложит счёт или акт в PDF и отправит его через SMTP-сервер вашего почтового ящика.
Это способ для бухгалтера, он работает в БП 3.0, ЗУП 3.1, УТ 11 и других типовых конфигурациях. Программисту доступны ещё три пути: объекты платформы ИнтернетПочта (прямая отправка по SMTP), HTTP-API сервиса рассылок и отправка по событию или по расписанию. Как выбрать — в таблице ниже.
Способы отправки писем из 1С: какой когда выбрать
| Способ | Кому подходит | Что нужно | Ограничения |
|---|---|---|---|
| Учётная запись + кнопка «Отправить» | Бухгалтеру, менеджеру | Адрес, пароль приложения, параметры SMTP | Писем по одному, вручную |
Код с ИнтернетПочта | Программисту, обработке | Те же параметры SMTP | Лимиты почтового ящика |
| Exchange / Office 365 по SMTP | Компании с корпоративной почтой Microsoft | Включённая SMTP-аутентификация или relay | Зависит от политики администратора |
| HTTP-API сервиса рассылок | Тысячам писем клиентам | Ключ API, подтверждённый домен | Платно после бесплатного лимита |
| Почтовая программа компьютера | Разовым письмам | Outlook или Thunderbird на ПК | Не работает на сервере и в фоне |
💡 Если писем меньше пары десятков в день, хватит первого способа. Код и сервисы рассылок нужны, когда отправка становится частью процесса: счёт ушёл после проведения, отчёт — каждое утро.
Как отправить письмо из 1С через встроенную почту
Шаг 1. Создайте учётную запись
- Откройте
Администрирование → Органайзер. - Включите флажок использования почты, если он выключен.
- Перейдите по ссылке
Учетные записи электронной почтыи нажмитеСоздать. - Введите адрес ящика и пароль. Для популярных почтовых служб программа сама подставит сервер и порт.
- Отметьте, что запись используется для отправки писем.
- Нажмите
Проверить настройки. Программа отправит тестовое письмо и сообщит результат.
Если адрес на собственном домене компании, автоподбор может не сработать. Тогда откройте ручную настройку и введите сервер исходящей почты, порт и способ защиты соединения. Их даёт администратор почты или справка хостинга.
Яндекс, Mail.ru и Gmail не принимают обычный пароль от ящика для сторонних программ. Нужен отдельный «пароль приложения», который создаётся в настройках безопасности почтового аккаунта. Без него проверка закончится ошибкой аутентификации.
Шаг 2. Решите, кто пользуется записью
Учётную запись можно сделать общей или личной. Общая (например, buh@company.ru) доступна всем, кому её разрешили. Личная видна только владельцу, и письма уходят от его имени.
Для служебных уведомлений типовые конфигурации на базе БСП используют «системную» учётную запись. Её не стоит отдавать под ручную переписку: при смене пароля сломаются автоматические уведомления.
Шаг 3. Отправьте документ
- Откройте документ, например счёт покупателю.
- Нажмите
Печатьи выберите форму. - В окне печатной формы нажмите кнопку с конвертом (
Отправить). - Выберите формат вложения: PDF, Excel, Word. Для счетов почти всегда выбирают PDF.
- Программа откроет письмо. Адрес подставится из контактной информации контрагента, если он там заполнен.
- Поправьте тему и текст, нажмите
Отправить.
Из формы списка документов можно отправить сразу несколько выделенных счетов. Каждый уйдёт отдельным вложением или отдельным письмом, в зависимости от настроек окна отправки.
💡 Чтобы адрес подставлялся сам, заполните e-mail в карточке контрагента и в контактном лице. Это экономит больше времени, чем любые шаблоны.
Шаблоны писем
В конфигурациях, где включены шаблоны сообщений, тему и текст можно хранить заготовкой с параметрами: номер документа, сумма, имя контрагента. Шаблон выбирают в окне нового письма. Ищите настройку шаблонов в том же разделе Администрирование → Органайзер.
Отправка письма из 1С по SMTP: параметры и код
Параметры популярных почтовых служб
| Служба | Сервер SMTP | Порт | Защита | Пароль |
|---|---|---|---|---|
| Яндекс Почта / Яндекс 360 | smtp.yandex.ru | 465 | SSL/TLS | Пароль приложения |
| Mail.ru | smtp.mail.ru | 465 | SSL/TLS | Пароль для внешнего приложения |
| Gmail | smtp.gmail.com | 465 | SSL/TLS | Пароль приложения (при двухэтапной проверке) |
| Office 365 | smtp.office365.com | 587 | STARTTLS | Зависит от политики организации |
Логином почти везде служит полный адрес ящика. Адрес отправителя в письме должен совпадать с логином. Иначе сервер отклонит письмо.
Пример кода на встроенном языке
Код ниже отправляет письмо с вложением напрямую средствами платформы 8.3. Его можно вставить в обработку или общий модуль. Выполнять лучше на сервере.
&НаСервере
Процедура ОтправитьПисьмоНаСервере(Адресат, ПутьКФайлу)
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ПользовательSMTP = "buh@company.ru";
Профиль.ПарольSMTP = "пароль_приложения";
Профиль.Таймаут = 60;
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Отправитель = "buh@company.ru";
Письмо.ИмяОтправителя = "Бухгалтерия ООО Ромашка";
Письмо.Тема = "Счёт на оплату";
Письмо.Получатели.Добавить(Адресат);
Письмо.Тексты.Добавить("Добрый день! Счёт во вложении.",
ТипТекстаПочтовогоСообщения.ПростойТекст);
Письмо.Вложения.Добавить(ПутьКФайлу);
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль);
Почта.Послать(Письмо);
Почта.Отключиться();
Исключение
ЗаписьЖурналаРегистрации("Отправка почты",
УровеньЖурналаРегистрации.Ошибка, , ,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Путь к файлу — это путь на компьютере, где выполняется код. На сервере 1С это диск сервера, а не диск пользователя. Печатную форму удобно сохранить во временный файл через ПолучитьИмяВременногоФайла("pdf") и метод Записать табличного документа с типом ТипФайлаТабличногоДокумента.PDF.
Не храните пароль в тексте модуля. Любой, у кого есть доступ к конфигуратору или к выгрузке конфигурации, его прочитает. Держите параметры в учётной записи электронной почты или в защищённом хранилище данных.
Через библиотеку стандартных подсистем
В типовых конфигурациях правильнее использовать готовую учётную запись, а не собирать профиль вручную. Общий модуль РаботаСПочтовымиСообщениями берёт настройки из справочника учётных записей. В свежих версиях БСП письмо готовят функцией ПодготовитьПисьмо и отправляют ОтправитьПисьмо, а системную запись возвращает СистемнаяУчетнаяЗапись. Точный состав параметров смотрите в описании модуля вашей версии.
Плюс подхода: пароль меняется в одной карточке, а не во всех обработках.
Отправка почты из 1С через Microsoft Exchange
Платформа 1С не умеет работать с Exchange по его собственному протоколу EWS «из коробки». На практике используют три пути.
- SMTP с авторизацией. Exchange и Office 365 принимают письма по SMTP. Для Office 365 это
smtp.office365.com, порт 587. Администратор должен разрешить SMTP-аутентификацию для конкретного ящика: в новых организациях она часто выключена. - SMTP-relay без пароля. Администратор Exchange разрешает приём писем от IP-адреса сервера 1С. В учётной записи 1С тогда указывают внутренний адрес Exchange и порт 25, авторизацию отключают. Пароль нигде не хранится, а это плюс для безопасности.
- EWS или Microsoft Graph через HTTP. Подходит, когда SMTP запрещён политикой. Это уже разработка: запросы через
HTTPСоединение, получение токена OAuth, разбор ответа. Берите только если первые два пути закрыты.
Microsoft поэтапно сворачивает базовую аутентификацию в облачном Exchange. Если отправка через Office 365 работала годами и вдруг перестала, сначала спросите администратора, не отключили ли SMTP AUTH для ящика.
Отправка письма из 1С через HTTP-API сервиса
Обычные ящики Яндекса и Mail.ru отправляют письма только по SMTP. HTTP-API для отправки есть у сервисов транзакционных писем и рассылок: SendPulse, Unisender и других. Они берут на себя репутацию отправителя, отписки и статистику доставки.
Порядок работы одинаков у всех.
- Зарегистрируйтесь в сервисе и подтвердите свой домен (записи SPF и DKIM в DNS).
- Получите ключ API или пару «идентификатор + секрет».
- Из 1С отправьте POST-запрос с JSON: получатель, тема, текст, вложения в Base64.
- Проверьте код ответа. Код 200 значит «принято сервисом», а не «доставлено».
Каркас запроса на встроенном языке:
Соединение = Новый HTTPСоединение("api.example-service.com", 443, , , , 30,
Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/v1/send");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючAPI);
Запрос.УстановитьТелоИзСтроки(ТелоJSON, КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния <> 200 Тогда
ВызватьИсключение "Сервис вернул код " + Формат(Ответ.КодСостояния, "ЧГ=0")
+ ": " + Ответ.ПолучитьТелоКакСтроку();
КонецЕсли;
Адрес, путь и формат JSON возьмите из документации выбранного сервиса: у каждого они свои. Тело JSON удобно собирать через ЗаписьJSON и структуру, а не склеивать строкой.
Массовая рассылка писем из 1С
Рассылка отчётов по расписанию
В конфигурациях на БСП есть подсистема «Рассылки отчетов». Включается она в разделе Администрирование → Печатные формы, отчеты и обработки. Рассылка отправляет выбранные отчёты, например оборотно-сальдовую ведомость или продажи за неделю, списку получателей по расписанию.
Получателями могут быть пользователи или контрагенты. Отчёты уходят вложением в нужном формате или ссылкой.
Письма клиентам
В УТ 11, КА 2 и ERP есть свои инструменты рассылок и оповещений клиентам. В БП 3.0 их нет. Там массовые письма отправляют обработкой с кодом или через сервис рассылок.
Правила, без которых массовая отправка из своего ящика быстро ломается:
- 📉 Лимиты. Бесплатные ящики ограничивают число писем и получателей в сутки. Превышение блокирует отправку, иногда и сам ящик.
- ⏱️ Пауза. Между письмами ставьте задержку в несколько секунд, а не шлите сотни подряд.
- 👤 Один адресат в письме. Не ставьте всех получателей в поле «Кому»: адреса увидят друг друга, и это нарушение конфиденциальности.
- 🛡️ SPF и DKIM. Без этих записей домена письма чаще попадают в спам.
- 🧾 Журнал. Записывайте результат по каждому адресу, чтобы при сбое не отправить письмо одному клиенту дважды.
Больше нескольких сотен писем в день отправляйте через сервис рассылок, а не через рабочий ящик бухгалтерии. Если ящик заблокируют за спам, перестанут уходить и обычные счета.
Автоматическая отправка писем из 1С по событиям
Типовые задачи: отправить счёт после проведения, сообщить менеджеру о просроченной оплате, разослать остатки каждое утро.
Отправка после записи или проведения
Подписка на событие ПриЗаписи или ОбработкаПроведения — очевидное, но плохое место для отправки. SMTP-сервер может отвечать 20–30 секунд, и всё это время пользователь ждёт проведения. А при ошибке почты документ не проведётся.
Надёжная схема из двух частей:
- В событии документа только ставьте отметку «нужно отправить»: запись в регистр сведений или в очередь.
- Отдельное регламентное задание раз в несколько минут берёт очередь, отправляет письма и снимает отметки.
Если отправить нужно сразу, запустите фоновое задание через ФоновыеЗадания.Выполнить и передайте ему ссылку на документ. Пользователь не ждёт, ошибки пишутся в журнал регистрации.
Отправка по расписанию
Регламентное задание добавляют в конфигурацию или в расширение, расписание настраивают в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Дорабатывать типовую конфигурацию через расширение безопаснее: обновления её не затрут.
В клиент-серверном варианте задания выполняет сервер 1С. В файловом варианте регламентные задания запускаются только при открытом сеансе 1С или при публикации базы на веб-сервере. Если ночью базу никто не открывает, утренняя рассылка в файловой базе не уйдёт.
💡 Перед запуском на реальных клиентах подставьте в код свой адрес вместо адреса контрагента и прогоните задание на копии базы. Ошибка в выборке на рабочей базе означает письма не тем людям.
Ошибки при отправке почты из 1С и что с ними делать
Текст ошибки от сервера 1С обычно передаёт дословно. Первая цифра кода подсказывает, где искать: 5xx — сервер отказал окончательно, 4xx — временная проблема.
Проверка из 1С иногда проходит у бухгалтера, но падает в регламентном задании. Причина обычно в том, что задание работает на сервере 1С, а у сервера другой выход в интернет, прокси или брандмауэр. Диагностику порта делайте именно с сервера.
Частые вопросы об отправке писем из 1С
Можно ли отправить письмо из 1С через Outlook на компьютере?
ЗапуститьПриложение("mailto:адрес?subject=Тема"): откроется новое письмо в почтовой программе по умолчанию. Вложение так не прикрепить, и на сервере 1С этот способ не работает.Почему письма из 1С уходят, но не сохраняются в «Отправленных» ящика?
Работает ли отправка почты в веб-клиенте и в облаке 1С:Фреш?
Как отправить письмо с подписью и логотипом?
ТипТекстаПочтовогоСообщения.HTML, картинку вставляют вложением со ссылкой из HTML. В типовом окне письма подпись настраивается в параметрах учётной записи или пользователя.