Бывают в жизни моменты, когда, например, фоновое задание не отрабатывает. А ты думаешь, что всё должно работать, но что-то изменилось НЕ на твоей стороне, например к fpt доступ пропадает. Либо просто есть цель, узнать, какие ошибки при работе пользователей происходят. Для своего удобства создал маленькую внешнюю обработку, которая присылает на почту сообщение с ошибками из журнала регистрации. Настроил отправку 1 раз в час фоновым заданием. Решил поделиться этим и, возможно, начинающим разработчикам это будет полезно =)
Тестировалось на самописной конфигурации с библиотекой БСП 3.1.1.151.
Скриншоты мы можете увидеть в описании статьи.
ТаблицаЖурналаРегистрации = Новый ТаблицаЗначений;
ПериодВремени = 60*60; // Час
ОтборЖР = Новый Структура("ДатаНачала, ДатаОкончания, Уровень", ТекущаяДатаСеанса() - ПериодВремени, ТекущаяДатаСеанса(), УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации(ТаблицаЖурналаРегистрации, ОтборЖР, "Дата, ПредставлениеСобытия, Комментарий, ИмяПользователя, Компьютер, ИмяПриложения");
МассивСтрокТелаПисьма = Новый Массив;
СтрокаОшибки = "";
Для каждого СтрокаТЗ из ТаблицаЖурналаРегистрации Цикл
СтрокаОшибки = Строка(СтрокаТЗ.Дата);
СтрокаОшибки = СтрокаОшибки + " " + СтрокаТЗ.ПредставлениеСобытия;
СтрокаОшибки = СтрокаОшибки + " " + СтрокаТЗ.ИмяПользователя;
СтрокаОшибки = СтрокаОшибки + " " + СтрокаТЗ.ИмяПриложения;
СтрокаОшибки = СтрокаОшибки + " " + СтрокаТЗ.Компьютер;
СтрокаОшибки = СтрокаОшибки + Символы.ПС + СтрокаТЗ.Комментарий;
СтрокаОшибки = СтрокаОшибки + Символы.ПС + "---------------------";
МассивСтрокТелаПисьма.Добавить(СтрокаОшибки);
КонецЦикла;
ТелоСообщения = СтрСоединить(МассивСтрокТелаПисьма, Символы.ПС);
Если ПустаяСтрока(ТелоСообщения) Тогда
Возврат;
КонецЕсли;
СистемнаяУчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
СтруктураОтправки = Новый Структура;
СтруктураОтправки.Вставить("Кому", СистемнаяУчетнаяЗапись.АдресЭлектроннойПочты);
СтруктураОтправки.Вставить("Тема", "Отчет об ошибках");
СтруктураОтправки.Вставить("Тело", ТелоСообщения);
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(СистемнаяУчетнаяЗапись, СтруктураОтправки);