К основному содержанию
A1sCode
Быстрый старт
Стандарты A1sCode · Наблюдаемое выполнение

Логирование и ошибки

Единые уровни, сообщения, валидация параметров и обработка исключений.

единый контракт2 примера кодаBSL / 1С

Уровни

Уровень Использование
Trace/Debug диагностика, ветвления, вход/выход
Info бизнес-события, старт/успех операции
Warn нештатно, но продолжили
Error исключение/невозможность продолжать

Шаблон функции

Шаблон функциинаведите на цветной токен, чтобы увидеть его рольSTANDARD
// <doc>
 //   <summary>Читает текстовый файл с кодировкой</summary>   ✦
 //   <param i="1" name="Path" type="String">Путь к файлу</param>   ➤
 //   <param i="2" name="Encoding" type="String" default="UTF-8">Кодировка</param>   ➤
 //   <returns>String — содержимое или Неопределено</returns>   ⬅
 // </doc>

Функция ReadText(Path, Encoding="UTF-8") Экспорт   //⚙
    ib = "Чтение текстового файла";   //✍

    Если НЕ ЗначениеЗаполнено(Path) Тогда   //⚡
        A1sLog.Warn(ib, "Не указан путь к файлу");   //▶️
        Возврат Неопределено;   //↩
    КонецЕсли;

    Попытка   //✱
        Если НЕ СуществуетФайл(Path) Тогда   //⚡
            A1sLog.Warn(ib, СтрШаблон("Файл отсутствует: %1", Path));   //▶️
            Возврат Неопределено;   //↩
        КонецЕсли;

        Чт = Новый ЧтениеТекста(Path, A1sFS.ToTextEncoding(Encoding));
        Текст = Чт.Прочитать();  Чт.Закрыть();   //✏
        A1sLog.Info(ib, СтрШаблон("OK: %1 (%2 симв.)", Path, СтрДлина(Текст)));   //▶️
        Возврат Текст;   //↩

    Исключение
        A1sLog.Error(ib, СтрШаблон("Ошибка: %1", ОписаниеОшибки()));   //▶️
        Возврат Неопределено;   //↩
    КонецПопытки;
КонецФункции
  • Любая ветка возврата — с логом (Info/Warn/Error).
  • Сообщение начинается с краткого статуса OK|WARN|ERR (по смыслу) — проще искать в логах.

Контракты и валидация

  • Проверка параметров в начале функции; при ошибке — Warn и возврат по контракту (часто Неопределено).
  • Не глотать исключения без логирования.
  • Запрещён «немой» Исключение ... КонецПопытки без записи в лог.

Мини-каркас для модулей

Мини-каркас для модулейнаведите на цветной токен, чтобы увидеть его рольSTANDARD
#Region A1s*_Log
Перем LogLevel; // Trace|Debug|Info|Warn|Error

Процедура SetLogLevel(NewLevel) Экспорт   //⚙
    LogLevel = NewLevel;   //✏
КонецПроцедуры

Функция GetLogLevel() Экспорт   //⚙
    Возврат LogLevel;   //↩
КонецФункции
#EndRegion