Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Автоматическое отлавливание ошибок

  • Добавить свою публикацию
  • для этого требуется регистрация

Предисловие

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

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

Журнал регистрации 

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

Поскольку журнал содержит информацию о большинстве ключевых действий пользователей, то нам необходимо установить отборы на получаемые данные. Кроме фильтра по периоды, установим отборы по событиям. Нам нужны следующие действия:

  1. Ошибка выполнения.
  2. Ошибка фонового задания.
  3. Ошибка аутентификации.
  4. Ошибка тестирования и исправления информационной базы. 

Реализацию функционала в режиме конфигуратора рассмотрим далее.

Автоматизируем процесс

В структуру метаданных конфигурации добавим общий модуль "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 выполняется из сформированного табличного документа. Для этого используется общий макет, добавленный в структуру метаданных конфигурации:

Изображение

Макет содержит все возможные колонки, сохраняемые журналом регистрации.

Не забываем настроить расписание регламентного задания для регулярного получения отчета на электронную почту.

Делайте выводы

Ежедневные отчеты о возникающих ошибка в конфигурации позволит повысить стабильность работы программы и предотвращать внештатные ситуации.

Изображение

Конечно, предложенные решение не является панацеей. Много зависит от инициаторов задач по доработке конфигураций, а также от самих разработчиков/программистов.

 
0
Читайте также
Простейший способ очитить БД от мусора и исправить ошибки
Привести в порядок базу данных в Бухгалтерии (все проводки удвоены)
Ошибки 1с
Для выявления и исправления ошибки 1С нужно правильно определить ее природу, а для этого требуется анализ всей информации в комплексе.
Перенос документов из ТИС в Бух 7.7
Решение проблем, возникающих при переносе из ТИС в Бух7.7?
Разработки
Программа для фрилансеров
В программе много отчетов, которые позволяют отслеживать состояние текущих дел
Проверка и групповая корректировка адресов в ЗУП на соответствие КЛАДР
Проверка правильного заполнения адресов 1С ЗиУП 8
Еще от автора
≡ к списку статей