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

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

Есть несколько независимых друг от друга способов настройки отправки отчета / печатной формы по почте.

Признак use.Email.Reporting

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

Если параметр use.Email.Reporting = true, то в списке экземпляров отчета, на карточке экземпляра отчета и на вкладке с отчетом будут отображаться элементы управления для отправки отчета по почте.

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

Параметр possibleToSend

В скрипте шаблона отчета / печатной формы установите параметр possibleToSend = true. В этом случае на форме добавления будет отображаться флажок, включающий отправку нового экземпляра отчета / печатной формы по почте.

Copy
def getSettings() {
return [ 'possibleToSend' : true ]
}

Подробное описание скрипта приведено в разделе Скрипт шаблона отчета / печатной формы.

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

API-методы

Для генерации отчета / печатной формы и отправки его по почте необходимо либо настроить задачу планировщика типа "Скрипт", либо добавить действие по событию типа "Скрипт".

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

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

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

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

Copy
//ПАРАМЕТРЫ-----------------------------------------------------------
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" на почту.