Настройка отправки отчета (печатной формы) по почте

Описание настройки

В системе предоставляется возможность генерировать отчет (печатную форму) по определенному шаблону и отправлять его почтовым сообщением. Почтовое сообщение может содержать ссылку на карточку экземпляра отчета (печатной формы).

Условие настройки

В конфигурационном файле dbaccess.properties должен быть установлен признак включающий возможность отправки отчета на почту (use.Email.Reporting = true), в этом случае в списке экземпляров отчета, на карточке экземпляра отчета и на вкладке с отчетом будут отображаться элементы управления для отправки отчета по почте.

Выполнение настройки

Для генерации отчета (печатной формы) и отправки его по почте необходимо выполнить одну из настроек:

В скрипте указываются следующие параметры:

  • шаблон, по которому строится отчет (печатная форма);
  • формат прикрепляемого отчета (печатной формы), допустимые форматы pdf, xls, csv, zip архив, содержащий файлы отчета, рисунков и стилей;
  • параметры отчета;
  • параметры отправки письма.

В скрипте используются методы работы с отчетами (печатными формами) и почтой.

Пример. Скрипт для отправки сгенерированного отчета письмом:

//ПАРАМЕТРЫ-----------------------------------------------------------
def TEMPLATE_CODE = '1';// код шаблона отчета
def RECIPIENT = 'petrov@mail.ru'; // адрес получателя
def FORMAT='pdf';// код формата отчета, допустимые значения: 'pdf','xls','csv', 'htmlZip']
//ОСНОВНОЙ БЛОК-------------------------------------------------------
def date = utils.formatters.formatDate(new Date())
def TITLE = 'Ежедневный отчет за ' + date
def message = api.mail.sender.createMail(); //создание объекта почтового сообщения
message.addTo('Имя получателя №1', RECIPIENT); //добавление получателя (поле письма "Кому")
message.setSubject('Тема сообщения'); //установка темы сообщения
message.setText('Текст сообщения'); //установка текста сообщения
message.contentType = 'text/plain' //установка типа содержимого письма
// Создание файла из сгенерированного отчета и прикрепление его к письму.
def fileTitle = (FORMAT == 'htmlZip' ? TITLE +'.zip' : TITLE +'.'+FORMAT);
message.attachFile(api.reports.getReportDataSource(TEMPLATE_CODE, 'root$101', [:], FORMAT), fileTitle);
api.mail.sender.sendMail(message);//отправка письма

Результат работы скрипта: отправка файла отчета с именем "Ежедневный отчет за 07.02.2020.pdf" на почту.

Выполнение действия в интерфейсе оператора: Отправка нового экземпляра отчета (печатной формы) по почте