Crmgo Blog

Automatyczne przechwytywanie błędów z dziennika rejestracji

Automatyczne przechwytywanie błędów z dziennika rejestracji

Automatyczne przechwytywanie błędów z dziennika rejestracji

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

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.

Kategorie: 1C