В современных бизнес-процессах автоматизация играет ключевую роль. Регулярное получение аналитической информации — это залог своевременного принятия управленческих решений. В конфигурации «Управление торговлей 3» (и аналогичных решениях на базе БСП, таких как УТ 11, КА 2, ERP) предусмотрен мощный стандартный механизм, позволяющий настроить автоматическую отправку любых отчетов по электронной почте по заданному расписанию.
В этой статье мы подробно рассмотрим, как настроить этот функционал в пользовательском режиме, а также разберем, как разработчик может использовать программный интерфейс (API) этой подсистемы в своих собственных обработках и расширениях.
Для того чтобы настроить автоматическую отправку отчетов, не требуется вносить изменения в конфигурацию. Все действия выполняются в режиме «1С:Предприятие» благодаря встроенной подсистеме БСП «Рассылка отчетов».
Выясним, как пройти этот процесс по шагам:
Полезный лайфхак: Быстро создать рассылку можно прямо из формы любого открытого отчета. Для этого достаточно нажать на кнопку с изображением конверта на панели инструментов отчета. Система автоматически создаст новую рассылку и заполнит ее текущим отчетом с вашими персональными настройками.
Часто перед разработчиком встает задача интегрировать отправку отчетов в собственную логику системы: например, отправлять отчет клиенту сразу после проведения документа или вызывать рассылку по нажатию кнопки в специализированном рабочем столе (АРМ). Подсистема БСП предоставляет полноценный программный интерфейс для решения этих задач.
Вся основная логика и методы API сосредоточены в общих модулях РассылкаОтчетов, РассылкаОтчетовКлиент и РассылкаОтчетовВызовСервера.
Рассмотрим подробнее ключевые методы, которые вы можете использовать в своем коде:
Если в справочнике РассылкиОтчетов уже настроена рассылка, и вам нужно просто принудительно запустить ее выполнение в коде (например, в обработчике проведения документа), используйте следующий метод:
// Ссылка на элемент справочника "Рассылки отчетов"
СсылкаНаРассылку = Справочники.РассылкиОтчетов.НайтиПоНаименованию("Дневные продажи отдела");
Если ЗначениеЗаполнено(СсылкаНаРассылку) Тогда
// Запуск формирования и отправки рассылки на сервере
РассылкаОтчетов.ВыполнитьРассылкуОтчетов(СсылкаНаРассылку);
КонецЕсли;
Бывают ситуации, когда создавать элемент в справочнике нецелесообразно (например, если параметры отправки или список получателей каждый раз формируются динамически). В этом случае мы можем воспользоваться процедурой РассылкаОтчетов.ВыполнитьРассылку().
Посмотрим на пример подготовки параметров и запуска такой отправки:
// 1. Инициализируем структуры параметров с помощью стандартных конструкторов БСП
ПараметрыДоставки = РассылкаОтчетов.ПараметрыДоставки();
ОтчетыДляРассылки = РассылкаОтчетов.ОтчетыДляРассылки();
ПараметрыЖурнала = РассылкаОтчетов.ПараметрыЖурнала();
// 2. Заполняем настройки доставки писем
ПараметрыДоставки.УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗапись;
ПараметрыДоставки.ПолучателиЭлектроннойПочты = "client@example.com, director@example.com";
ПараметрыДоставки.ТемаПисьма = "Актуальные остатки товаров на складах на " + Формат(ТекущаяДата(), "ДЛФ=D");
ПараметрыДоставки.ТелоПисьма = "Добрый день! Во вложении вы найдете актуальные данные по остаткам.";
ПараметрыДоставки.ОтправлятьПисьмоЕслиОтчетыПустые = Ложь;
// 3. Указываем, какие форматы сохранения использовать (например, PDF и Excel)
ФорматыСохранения = Новый Массив;
ФорматыСохранения.Добавить(Перечисления.ФорматыСохраненияОтчетов.PDF);
ФорматыСохранения.Добавить(Перечисления.ФорматыСохраненияОтчетов.XLSX);
// 4. Добавляем отчет в коллекцию для отправки
// Примечание: В реальной задаче необходимо заполнить структуру отчета правильными параметрами СКД
НовыйОтчет = ОтчетыДляРассылки.Добавить();
НовыйОтчет.Отчет = Справочники.ВариантыОтчетов.НайтиПоНаименованию("Остатки и доступность товаров");
НовыйОтчет.ФорматыСохранения = ФорматыСохранения;
// 5. Запускаем формирование и отправку
РассылкаОтчетов.ВыполнитьРассылку(ПараметрыДоставки, ОтчетыДляРассылки, ПараметрыЖурнала);
Если вы разрабатываете свой собственный уникальный отчет и хотите предоставить пользователю возможность быстро создать из него рассылку, вы можете вызвать клиентский метод из модуля РассылкаОтчетовКлиент:
// Код вызывается в контексте формы вашего отчета
РассылкаОтчетовКлиент.СоздатьНовуюРассылкуИзОтчета(ЭтаФорма);
Используя подсистему рассылки БСП, вы автоматически получаете доступ к огромному числу сервисных возможностей, которые не придется программировать вручную:
[ИмяПолучателя] автоматически преобразуется в реальное имя клиента при генерации письма.Таким образом, использование встроенной подсистемы БСП «Рассылка отчетов» в УТ 3 позволяет как обычным пользователям, так и разработчикам гибко и быстро настраивать автоматические процессы доставки отчетов без написания лишнего «велосипедного» кода.