Неверное использование метода "ЗаписьЖурналаРегистрации" (UsageWriteLogEvent)¶
| Тип | Поддерживаются языки  | 
Важность | Включена по умолчанию  | 
Время на исправление (мин)  | 
Теги | 
|---|---|---|---|---|---|
Дефект кода | 
BSLOS | 
Информационный | 
Да | 
1 | 
standardbadpractice | 
Описание диагностики¶
Важно правильно с определенной дотошностью указывать основные параметры при записи в Журнал регистрации.
Недопустимо прятать исключения.
При обработке исключений обязательно нужно выполнять запись в журнал регистрации с полным представлением ошибки.
Для этого нужно добавить в комментарий события результат ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
Нельзя пропускать 2й параметр Уровень журнала регистрации. Если его не указать, по умолчанию 1С применит уровень ошибки Информация, и данная запись может потеряться в потоке записей.
Нельзя пропускать и 5й параметр - комментарий к событию записи в журнал регистрации.
Примеры¶
Примеры неверного кода
    ЗаписьЖурналаРегистрации("Событие");// ошибка
    ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка);// ошибка
    ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , );// ошибка
    ЗаписьЖурналаРегистрации("Событие", , , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , , );// ошибка
    Попытка
      КодСервер();
    Исключение
      ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , ,
        ОписаниеОшибки()); // ошибка
      ЗаписьЖурналаРегистрации("Событие", УровеньЖурналаРегистрации.Ошибка, , ,
        "Комментарий 1"); // ошибка
    КонецПопытки;
Правильный код
    Попытка
      КодСервер();
    Исключение
      ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
      ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"), УровеньЖурналаРегистрации.Ошибка, , ,
         ТекстОшибки);
    КонецПопытки;
    Попытка
      КодСервер();
    Исключение
      ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
      ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"), УровеньЖурналаРегистрации.Ошибка, , ,
         ТекстОшибки);
      ВызватьИсключение;
    КонецПопытки;
Процедура ЗагрузитьДанные() Экспорт
    Попытка
        ВыполнитьЗаписьДанных();
    Исключение
        ЗаписьЖурналаРегистрации(); // <- исключение подавляется с записью в ЖР
    КонецПопытки;
КонецПроцедуры
Процедура ВыполнитьЗаписьДанных()
    НачатьТранзакцию();
    Попытка
        // ...
        ЗафиксироватьТранзакцию();
    Исключение
        ОтменитьТранзакцию();
        ВызватьИсключение; // <- вложенная попытка, запись в ЖР не требуется
    КонецПопытки;
КонецПроцедуры
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:UsageWriteLogEvent-off
// BSLLS:UsageWriteLogEvent-on
Параметр конфигурационного файла¶
"UsageWriteLogEvent": false