Дорабатывая функционал конфигураций, особенно если над ним трудится команда разработчиков, часто могут встречаться ошибки даже после проведения тестирования. Вместо того, чтобы ждать звонков пользователей или руководства о появляющихся ошибка, разработчик может получать ежедневны отчет обо всех появляющихся ошибка и исправлять их в короткий срок.
Сегодня в статье рассмотрим реализацию подобного функционала в конфигурации "Управление производственным предприятием" редакции 1.3, который будет в автоматическом режиме ежедневно уведомлять разработчика обо всех появившихся ошибках.
Источником данных для отчета будет служить журнал регистрации, в котором находится вся нужная для нас информация о появившихся ошибках.
Поскольку журнал содержит информацию о большинстве ключевых действий пользователей, то нам необходимо установить отборы на получаемые данные. Кроме фильтра по периоды, установим отборы по событиям. Нам нужны следующие действия:
Реализацию функционала в режиме конфигуратора рассмотрим далее.
В структуру метаданных конфигурации добавим общий модуль "DEV_КонтрольКонфигурации", в котором будет определен обработчик регламентного задания "DEV_КонтрольКонфигурации".
Текст обработчика с подробными комментариями представлен на следующем листинге:
Процедура DEV_КонтрольКонфигурации() Экспорт ТекДата = ТекущаяДата(); // Дата формирования отчета // Получаем записи журнала регистрации о // зафиксированных ошибках за сутки ТабЖурнал = Новый ТаблицаЗначений; Фильтр = Новый Структура; Фильтр.Вставить("StartDate", НачалоДня(ТекДата)); Фильтр.Вставить("EndDate", КонецДня(ТекДата)); МассивСобытий = Новый Массив; // Виды ошибок: ошибка выполнения, ошибка фонового задания, // ошибка аутентификации и ошибка тестирования и исправления // информационной базы МассивСобытий.Добавить("_$Job$_.Fail"); МассивСобытий.Добавить("_$PerformError$_"); МассивСобытий.Добавить("_$Session$_.AuthenticationError"); МассивСобытий.Добавить("_$InfoBase$_.TARImportant"); Фильтр.Вставить("Event", МассивСобытий); ВыгрузитьЖурналРегистрации(ТабЖурнал, Фильтр); Если ТабЖурнал.Количество() > 0 Тогда // Формируем табличный документ со списокм ошибок ТабДокКонтрольКонфигурации = Новый ТабличныйДокумент; МакетКонтрольКонфигурации = ПолучитьОбщийМакет("DEV_КонтрольКонфигурации"); ОбластьЗаголовок = МакетКонтрольКонфигурации.ПолучитьОбласть("Заголовок"); ОбластьСтрока = МакетКонтрольКонфигурации.ПолучитьОбласть("Строка"); ТабДокКонтрольКонфигурации.Вывести(ОбластьЗаголовок); Для Каждого Стр Из ТабЖурнал Цикл ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, Стр); ТабДокКонтрольКонфигурации.Вывести(ОбластьСтрока); КонецЦикла; // Сохраняем таб. документ во временный файл в формате таблицы Excel ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xls"); ТабДокКонтрольКонфигурации.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS); // Отправляем таблицу Excel по электронной почте администратору // с помощью стандартного функционала для работы // с электронной почтой СисУчЗаписьПочты = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты; ПараметрыПисьма = Новый Структура; ПараметрыПисьма.Вставить("Кому", СисУчЗаписьПочты.АдресЭлектроннойПочты); ПараметрыПисьма.Вставить("Тема", "Ошибки за " + Формат(ТекДата, "ДЛФ=DD")); ПараметрыПисьма.Вставить("Тело", "Ошибки за " + Формат(ТекДата, "ДЛФ=DD")); СтруктураВложений = Новый Соответствие; СтруктураВложений.Вставить("ТаблицаОшибокКонфигурации.xls", Новый ДвоичныеДанные(ИмяВременногоФайла)); ПараметрыПисьма.Вставить("Вложения", СтруктураВложений); Попытка УдалитьФайлы(ИмяВременногоФайла); Исключение КонецПопытки; ЭлектроннаяПочта.ОтправитьСообщение(СисУчЗаписьПочты, ПараметрыПисьма); КонецЕсли; КонецПроцедуры
Отчет сохраняется в таблицу формата MS Excel и отправляется по электронной почте с помощь стандартного функционала конфигурации. Сохранения отчета в формат Excel выполняется из сформированного табличного документа. Для этого используется общий макет, добавленный в структуру метаданных конфигурации:
Макет содержит все возможные колонки, сохраняемые журналом регистрации.
Не забываем настроить расписание регламентного задания для регулярного получения отчета на электронную почту.
Ежедневные отчеты о возникающих ошибка в конфигурации позволит повысить стабильность работы программы и предотвращать внештатные ситуации.
Конечно, предложенные решение не является панацеей. Много зависит от инициаторов задач по доработке конфигураций, а также от самих разработчиков/программистов.