1С 8.3 Добавление контекста к сообщению об ошибке в ЖР - Программист 1С Минск. Автоматизация бизнеса.

Популярные страницы:
Перейти к контенту

1С 8.3 Добавление контекста к сообщению об ошибке в ЖР

Данные > Примеры кода 1С > 1С 8.3 Журнал регистрации
Шаблон можно временно вставлять в расширение (в режиме "вместо"), если отладка не доступна, а подробности падения узнать хочется.
Добавление контекста к сообщению об ошибке в журнал регистрации в 1С 8.3 (от пользователя Ndосhр):
&НаСервере
Процедура ДобавлениеКонтекстаКСообщениюОбОшибкевЖР(Выборка)

   Попытка
   Исключение
       КонтекстПоля = Новый Массив;
       // {+} Замена на свои поля
       КонтекстПоля.Добавить("Ссылка");
       КонтекстПоля.Добавить("Наименование");
      КонтекстПоля.Добавить("Код");
       // {-} Замена на свои поля

       ШаблонСтр = Новый Массив;
       Для Каждого Строка Из КонтекстПоля Цикл
           ШаблонСтр.Добавить(СтрШаблон("%1 = ", Строка));
       КонецЦикла;
       СтрокаШаблона = СтрСоединить(ШаблонСтр);

       ПараметрыСтр = Новый Структура;
       Для Каждого СтрКонт Из КонтекстПоля Цикл
           ПараметрыСтр.Вставить(СтрКонт);
       КонецЦикла;

       // Если у вас хитрее - заменить получение контекста на более сложное
       // Если стразу структура - можно не создавать, но если выборка, строка ТЗ и тд, то нужно
       // преобразовать в струкутуру, так как внутри будет перебор свойств циклом.
       ЗаполнитьЗначенияСвойств(ПараметрыСтр, Выборка);

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

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

Поиск кода
0
Комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 29.12.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому