Почта прямо из базы 1С 8.3: учётная запись, SMTP, код на встроенном языке и рассылки

· 11 мин

Содержание

Чтобы отправить письмо из 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. Создайте учётную запись

  1. Откройте Администрирование → Органайзер.
  2. Включите флажок использования почты, если он выключен.
  3. Перейдите по ссылке Учетные записи электронной почты и нажмите Создать.
  4. Введите адрес ящика и пароль. Для популярных почтовых служб программа сама подставит сервер и порт.
  5. Отметьте, что запись используется для отправки писем.
  6. Нажмите Проверить настройки. Программа отправит тестовое письмо и сообщит результат.

Если адрес на собственном домене компании, автоподбор может не сработать. Тогда откройте ручную настройку и введите сервер исходящей почты, порт и способ защиты соединения. Их даёт администратор почты или справка хостинга.

Яндекс, Mail.ru и Gmail не принимают обычный пароль от ящика для сторонних программ. Нужен отдельный «пароль приложения», который создаётся в настройках безопасности почтового аккаунта. Без него проверка закончится ошибкой аутентификации.

Шаг 2. Решите, кто пользуется записью

Учётную запись можно сделать общей или личной. Общая (например, buh@company.ru) доступна всем, кому её разрешили. Личная видна только владельцу, и письма уходят от его имени.

Для служебных уведомлений типовые конфигурации на базе БСП используют «системную» учётную запись. Её не стоит отдавать под ручную переписку: при смене пароля сломаются автоматические уведомления.

Шаг 3. Отправьте документ

  1. Откройте документ, например счёт покупателю.
  2. Нажмите Печать и выберите форму.
  3. В окне печатной формы нажмите кнопку с конвертом (Отправить).
  4. Выберите формат вложения: PDF, Excel, Word. Для счетов почти всегда выбирают PDF.
  5. Программа откроет письмо. Адрес подставится из контактной информации контрагента, если он там заполнен.
  6. Поправьте тему и текст, нажмите Отправить.

Из формы списка документов можно отправить сразу несколько выделенных счетов. Каждый уйдёт отдельным вложением или отдельным письмом, в зависимости от настроек окна отправки.

💡 Чтобы адрес подставлялся сам, заполните e-mail в карточке контрагента и в контактном лице. Это экономит больше времени, чем любые шаблоны.

Шаблоны писем

В конфигурациях, где включены шаблоны сообщений, тему и текст можно хранить заготовкой с параметрами: номер документа, сумма, имя контрагента. Шаблон выбирают в окне нового письма. Ищите настройку шаблонов в том же разделе Администрирование → Органайзер.

Отправка письма из 1С по SMTP: параметры и код

Параметры популярных почтовых служб

СлужбаСервер SMTPПортЗащитаПароль
Яндекс Почта / Яндекс 360smtp.yandex.ru465SSL/TLSПароль приложения
Mail.rusmtp.mail.ru465SSL/TLSПароль для внешнего приложения
Gmailsmtp.gmail.com465SSL/TLSПароль приложения (при двухэтапной проверке)
Office 365smtp.office365.com587STARTTLSЗависит от политики организации

Логином почти везде служит полный адрес ящика. Адрес отправителя в письме должен совпадать с логином. Иначе сервер отклонит письмо.

Пример кода на встроенном языке

Код ниже отправляет письмо с вложением напрямую средствами платформы 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 «из коробки». На практике используют три пути.

  1. SMTP с авторизацией. Exchange и Office 365 принимают письма по SMTP. Для Office 365 это smtp.office365.com, порт 587. Администратор должен разрешить SMTP-аутентификацию для конкретного ящика: в новых организациях она часто выключена.
  2. SMTP-relay без пароля. Администратор Exchange разрешает приём писем от IP-адреса сервера 1С. В учётной записи 1С тогда указывают внутренний адрес Exchange и порт 25, авторизацию отключают. Пароль нигде не хранится, а это плюс для безопасности.
  3. EWS или Microsoft Graph через HTTP. Подходит, когда SMTP запрещён политикой. Это уже разработка: запросы через HTTPСоединение, получение токена OAuth, разбор ответа. Берите только если первые два пути закрыты.

Microsoft поэтапно сворачивает базовую аутентификацию в облачном Exchange. Если отправка через Office 365 работала годами и вдруг перестала, сначала спросите администратора, не отключили ли SMTP AUTH для ящика.

Отправка письма из 1С через HTTP-API сервиса

Обычные ящики Яндекса и Mail.ru отправляют письма только по SMTP. HTTP-API для отправки есть у сервисов транзакционных писем и рассылок: SendPulse, Unisender и других. Они берут на себя репутацию отправителя, отписки и статистику доставки.

Порядок работы одинаков у всех.

  1. Зарегистрируйтесь в сервисе и подтвердите свой домен (записи SPF и DKIM в DNS).
  2. Получите ключ API или пару «идентификатор + секрет».
  3. Из 1С отправьте POST-запрос с JSON: получатель, тема, текст, вложения в Base64.
  4. Проверьте код ответа. Код 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. В событии документа только ставьте отметку «нужно отправить»: запись в регистр сведений или в очередь.
  2. Отдельное регламентное задание раз в несколько минут берёт очередь, отправляет письма и снимает отметки.

Если отправить нужно сразу, запустите фоновое задание через ФоновыеЗадания.Выполнить и передайте ему ссылку на документ. Пользователь не ждёт, ошибки пишутся в журнал регистрации.

Отправка по расписанию

Регламентное задание добавляют в конфигурацию или в расширение, расписание настраивают в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Дорабатывать типовую конфигурацию через расширение безопаснее: обновления её не затрут.

В клиент-серверном варианте задания выполняет сервер 1С. В файловом варианте регламентные задания запускаются только при открытом сеансе 1С или при публикации базы на веб-сервере. Если ночью базу никто не открывает, утренняя рассылка в файловой базе не уйдёт.

💡 Перед запуском на реальных клиентах подставьте в код свой адрес вместо адреса контрагента и прогоните задание на копии базы. Ошибка в выборке на рабочей базе означает письма не тем людям.

Ошибки при отправке почты из 1С и что с ними делать

Текст ошибки от сервера 1С обычно передаёт дословно. Первая цифра кода подсказывает, где искать: 5xx — сервер отказал окончательно, 4xx — временная проблема.

Диагностика: выберите симптом

Проверка из 1С иногда проходит у бухгалтера, но падает в регламентном задании. Причина обычно в том, что задание работает на сервере 1С, а у сервера другой выход в интернет, прокси или брандмауэр. Диагностику порта делайте именно с сервера.

Частые вопросы об отправке писем из 1С

Можно ли отправить письмо из 1С через Outlook на компьютере?
Да, если код выполняется на клиенте под Windows. Самый простой вариант — ЗапуститьПриложение("mailto:адрес?subject=Тема"): откроется новое письмо в почтовой программе по умолчанию. Вложение так не прикрепить, и на сервере 1С этот способ не работает.
Почему письма из 1С уходят, но не сохраняются в «Отправленных» ящика?
SMTP только передаёт письмо, и многие почтовые службы не кладут его копию в «Отправленные». Копию сохраняет сама 1С в своих письмах, если в конфигурации включены взаимодействия. Либо добавьте свой адрес в скрытую копию.
Работает ли отправка почты в веб-клиенте и в облаке 1С:Фреш?
Да. Отправка идёт с сервера 1С, поэтому браузер пользователя роли не играет. Нужна только настроенная учётная запись.
Как отправить письмо с подписью и логотипом?
Используйте HTML-текст письма: в коде это тип ТипТекстаПочтовогоСообщения.HTML, картинку вставляют вложением со ссылкой из HTML. В типовом окне письма подпись настраивается в параметрах учётной записи или пользователя.
Сколько весит максимальное вложение?
Ограничение задаёт почтовый сервер, а не 1С. У популярных служб это порядка 25–30 МБ на письмо с учётом кодирования. Большие файлы лучше отправлять ссылкой.