Как отправить электронное письмо из 1С:ERP программно без создания документов?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

При работе с типовыми конфигурациями на базе Библиотеки стандартных подсистем (БСП), такими как 1С:ERP Управление предприятием, часто возникает задача оперативной отправки уведомлений или «алертов» пользователям — для этого подойдёт автоматическая отправка почтовых уведомлений по расписанию. Если классический подход через создание документа ЭлектронноеПисьмоИсходящее кажется избыточным или требует обязательной работы регламентных заданий, существует более прямой и быстрый способ решения этой задачи.

Разбор архитектурного подхода

Перед тем как приступить к написанию кода, важно понимать разницу между двумя подходами к отправке почты в БСП:

  1. Объектный подход: Вы создаете справочник или документ в системе. Этот метод идеален для ведения переписки, истории и прикрепления файлов. Однако он зависит от регламентного задания ПолучениеИОтправкаЭлектронныхПисем, которое забирает данные из очереди.
  2. Процедурный подход: Вы используете методы общего модуля РаботаСПочтовымиСообщениями напрямую. Этот метод не создает лишних записей в базе данных и отправляет письмо «здесь и сейчас», что отлично подходит для системных уведомлений (есть готовый мониторинг критичных событий и алертинг ответственных лиц).

Реализация отправки через процедурный интерфейс

Рассмотрим пошагово, как реализовать отправку почты без лишних сущностей. Весь процесс опирается на возможности БСП. Основным модулем здесь выступает РаботаСПочтовымиСообщениями.

Шаг 1: Получение системной учетной записи. Для отправки писем от имени системы необходимо инициализировать учетную запись, которая уже настроена в РегистрСведений.УчетныеЗаписиЭлектроннойПочты.

Шаг 2: Подготовка параметров письма. Мы используем структуру, в которую передаем ключевые данные: адрес получателя, тему письма и непосредственно текст сообщения.

Шаг 3: Отправка сообщения. После подготовки структуры, система формирует почтовое сообщение и передает его на SMTP-сервер.

Давайте посмотрим на пример реализации:


// Получаем системную учетную запись для отправки
УчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();

// Формируем параметры сообщения
ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Кому", "user@example.com");
ПараметрыПисьма.Вставить("Тема", "Тестовое письмо из ERP");
ПараметрыПисьма.Вставить("Тело", "Это автоматическое уведомление, отправленное из обработки.");

// Подготавливаем письмо
Письмо = РаботаСПочтовымиСообщениями.ПодготовитьПисьмо(УчетнаяЗапись, ПараметрыПисьма);

// Выполняем отправку
Попытка
    РаботаСПочтовымиСообщениями.ОтправитьПисьмо(УчетнаяЗапись, Письмо);
Исключение
    ЗаписьЖурналаРегистрации("ОтправкаПочты", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
КонецПопытки;

Важные замечания по реализации

При использовании этого метода следует учитывать несколько критических аспектов, которые помогут избежать ошибок при эксплуатации системы:

Таким образом, использование метода РаботаСПочтовымиСообщениями.ОтправитьПисьмо позволяет достичь цели с минимальными затратами ресурсов, не засоряя базу данных объектами, история которых не требуется для бизнес-логики. Для этой задачи есть массовая рассылка печатных форм и файлов по Email и мессенджерам.

← На главную