1. Руководство по встроенному языку
0

Обработка ошибок на встроенном языке 1С 8.1, 8.2 и 8.3

В процессе работы с конфигурацией в режиме 1С:Предприятие 8 могут происходить различные ошибки и\или исключительные ситуации. В основном они обусловлены:

  • ошибками в данных
  • ошибками в коде конфигурации (алгоритмах обработки данных)
  • ошибками в окружении (сеть, ОС) или стороннем ПО (СУБД, драйверы, библиотеки)
  • ошибками в технологической платформе

Ошибка — это восстановимая ошибка пользовательского уровня. Такие ошибки всегда можно исправить и продолжить работу. Например, ошибка может возникать при проверке заполнения обязательных реквизитов в форме объекта, если один из них не заполнен. Такую ошибку можно устранить, просто указав значение в нужном поле ввода.

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

Основной алгоритм обработки ошибок, внедренный в технологическую платформу 1С:Предприятие еще с версии 8.1, можно представить в виде схемы:Алгоритм обработки ошибок в 1С:Предприятие 8.1, 8.2 и 8.3.16 и ниже

Он просуществовал до версии 8.3.16 включительно. Начиная с версии 1С:Предприятие 8.3.17 алгоритм обработки ошибок претерпел существенные изменения.

Можно увидеть, что основной точкой входа в обработку ошибок для разработчика является «попытка» — специальный оператор встроенного Попытка ... Исключение. Просто помещаете ваш плохой код в этот оператор, и он отлавливает для Вас ошибки, например, так:

Попытка
    ПроверяемыйПараметр = Неопределено;
    Если ПроверяемыйПараметр Тогда
        //код, который не будет выполнен
    КонецЕсли;
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

Однако, не следует каждую ветку кода включать в попытку «на всякий случай». Это снижает удобство чтения кода и увеличивает трудозатраты на его отладку.

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

ПроверяемыйПараметр = Неопределено;
Если ПроверяемыйПараметр = Истина Тогда
    //код, который не будет выполнен
КонецЕсли;

В случае, если 1С запущена в режиме отладки (например, клавишей F5 из конфигуратора), программа будет считать пользователя опытным и выдавать сообщения об ошибках с возможностью их расшифровки:Краткое представление ошибки в 1С:Предприятие 8

В остальных случаях пользователь увидит только краткую информацию об ошибке и вряд ли сможет внятно объяснить службе поддержки, что не работает и в каком контексте:Краткое представление ошибки на платформе 1С:Предприятие 8 для пользователя

Оновные функции для работы с ошибками:

Список распространенных ошибок 1С:Предприятие 8

Поделиться страницей в соц.сетях

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *