Как настроить отправку писем по расписанию несколько раз в день в 1С?

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

Часто в бизнес-процессах возникает необходимость отправлять одно и то же электронное письмо несколько раз в день по заданному расписанию (например, в 08:00, 12:00 и 16:00). Стандартный механизм отложенной отправки в 1С позволяет задать время, но не имеет встроенного планировщика для цикличного дублирования одного письма. Разберем детально, как решить эту задачу в конфигурации 1С:Управление торговлей, используя как типовые средства, так и программные доработки.

Ограничения платформы и архитектуры БСП

Прежде чем приступать к настройке, проанализируем, почему нельзя просто «зациклить» одно стандартное письмо. Архитектура Библиотеки стандартных подсистем (БСП) устроена так, что механизм отложенной отправки базируется на документе ЭлектронноеПисьмоИсходящее. Данный документ не предназначен для цикличной рассылки.

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

  1. Система отправляет письмо.
  2. Документ меняет свой статус на «Отправлено».
  3. Письмо навсегда покидает регистр очереди писем.

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

Типовые варианты решения (без программирования)

Рассмотрим, как можно решить задачу, не прибегая к написанию кода. На форуме справедливо предложили самый простой ручной метод — «Создайте 3 письма». Если писем немного, этот способ имеет право на жизнь: вы просто создаете три документа ЭлектронноеПисьмоИсходящее и для каждого задаете свое время отложенной отправки.

Если же процесс нужно автоматизировать, разберем встроенные механизмы 1С:УТ:

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

Программное решение: регламентные задания и шаблоны

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

Хранить в регистре ссылку на само отправленное письмо — плохая практика, так как мы выяснили, что документ ЭлектронноеПисьмоИсходящее является одноразовым. Правильнее выстроить логику следующим образом:

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

Такой подход является самым надежным: он сохраняет корректную историю переписки в базе. В хронологии взаимодействий будет четко видно 3 отправленных письма (разные документы-транзакции), что полностью соответствует стандартам и не ломает типовые механизмы БСП.

← На главную