Как отправить ошибки из журнала регистрации на почту?


Процедуры отправки ошибок из журнала регистрации на почту. Журнал регистрации выгружается в файл Excel, далее прикрепляется к письму. Для отправки писем создано регламентное задание.

Для отправки писем необходимо добавить регламентное задание:

Далее необходимо настроить расписание регламентного задания (в моем случае задание выполняется раз в сутки, в 23.50).

Далее нужно указать для регламентного задания процедуру ОтправитьОшибкиИзЖурналаРегистрацииНаПочту(). Процедура должна находиться в общем модуле.

Процедура ОтправитьОшибкиИзЖурналаРегистрацииНаПочту() Экспорт

ФильтрЖурнала = Новый Структура;
ВнешниеДанные = Новый ТаблицаЗначений;
УровниРегистрацииОшибок = Новый Массив;
УровниРегистрацииОшибок.Добавить(УровеньЖурналаРегистрации.Ошибка);
ФильтрЖурнала.Вставить("Уровень",УровниРегистрацииОшибок);
ФильтрЖурнала.Вставить("ДатаНачала",НачалоДня(ТекущаяДата()));
ФильтрЖурнала.Вставить("ДатаОкончания",КонецДня(ТекущаяДата())) ;
УстановитьПривилегированныйРежим(Истина);
ВыгрузитьЖурналРегистрации(ВнешниеДанные,ФильтрЖурнала);
УстановитьПривилегированныйРежим(Ложь);
Если ВнешниеДанные.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ТабДок      = Новый ТабличныйДокумент;
Построитель = Новый ПостроительОтчета();

Построитель.ИсточникДанных          = Новый ОписаниеИсточникаДанных(ВнешниеДанные);
Построитель.ВыводитьЗаголовокОтчета = Ложь;
Построитель.Вывести(ТабДок );

ИмяФайла = ПолучитьИмяВременногоФайла("xls");

ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS97);

ОтправитьОповещениеОтветственномуЛицу("Ошибки во вложенном файле","Ошибки в журнале регистрации базы "+СтрокаСоединенияИнформационнойБазы(),"it@company.com", ИмяФайла);

КонецПроцедуры

Функция ОтправитьОповещениеОтветственномуЛицу(ТекстСообщения,ТемаПисьма,email,ПутьКФайлуВложения = "") экспорт

ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераIMAP = "mail.company.com";
ИПП.АдресСервераSMTP = "mail.company.com";
ИПП.ИспользоватьSSLIMAP =  Истина;
ИПП.ПарольIMAP         = "Пароль1";
ИПП.ПарольSMTP         = "Пароль1";
ИПП.ПользовательIMAP = "company1c";
ИПП.ПользовательSMTP = "company1c";
ИПП.ПортIMAP         = 999;
ИПП.ПортSMTP         = 24;
ИПП.Таймаут         = 70;

Попытка
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Получатели.Добавить(email);
Сообщение.Отправитель.Адрес = "1c@company.ru";
Сообщение.Тема = ТемаПисьма;
Сообщение.Тексты.Добавить(ТекстСообщения);

Если ЗначениеЗаполнено(ПутьКФайлуВложения) Тогда
Сообщение.Вложения.Добавить(ПутьКФайлуВложения);
КонецЕсли;

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

КонецФункции

Доработка проверялась на конфигурации "Управление производственным предприятием, редакция 1.3 (1.3.49.1)".

К статье приложены 2 обработки по работе с журналом регистрации:

Отчет по журналу регистрации (обычное приложение)

Отчет по журналу регистрации (управляемое приложение)

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *