В процессе работы с конфигурацией в режиме 1С:Предприятие 8 могут происходить различные ошибки и\или исключительные ситуации. В основном они обусловлены:
- ошибками в данных
- ошибками в коде конфигурации (алгоритмах обработки данных)
- ошибками в окружении (сеть, ОС) или стороннем ПО (СУБД, драйверы, библиотеки)
- ошибками в технологической платформе
Ошибка — это восстановимая ошибка пользовательского уровня. Такие ошибки всегда можно исправить и продолжить работу. Например, ошибка может возникать при проверке заполнения обязательных реквизитов в форме объекта, если один из них не заполнен. Такую ошибку можно устранить, просто указав значение в нужном поле ввода.
Исключительная ситуация — это ошибка уровня конфигурации или платформы. Как правило, ошибка уровня конфигурации прерывает процесс работы с возможностью восстановления, а ошибки уровня платформы почти всегда приводят к принудительному завершению работы программы, т.е. они «лечатся» только перезапуском программы.
Основной алгоритм обработки ошибок, внедренный в технологическую платформу 1С:Предприятие еще с версии 8.1, можно представить в виде схемы:
Он просуществовал до версии 8.3.16 включительно. Начиная с версии 1С:Предприятие 8.3.17 алгоритм обработки ошибок претерпел существенные изменения.
Можно увидеть, что основной точкой входа в обработку ошибок для разработчика является «попытка» — специальный оператор встроенного Попытка ... Исключение
. Просто помещаете ваш плохой код в этот оператор, и он отлавливает для Вас ошибки, например, так:
Попытка ПроверяемыйПараметр = Неопределено; Если ПроверяемыйПараметр Тогда //код, который не будет выполнен КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;
Однако, не следует каждую ветку кода включать в попытку «на всякий случай». Это снижает удобство чтения кода и увеличивает трудозатраты на его отладку.
Немалую роль на количество ошибок оказывает качество написания кода. Например, в предыдущем примере вполне можно было бы обойтись без попытки, если явно указать сравниваемые значения:
ПроверяемыйПараметр = Неопределено; Если ПроверяемыйПараметр = Истина Тогда //код, который не будет выполнен КонецЕсли;
В случае, если 1С запущена в режиме отладки (например, клавишей F5 из конфигуратора), программа будет считать пользователя опытным и выдавать сообщения об ошибках с возможностью их расшифровки:
В остальных случаях пользователь увидит только краткую информацию об ошибке и вряд ли сможет внятно объяснить службе поддержки, что не работает и в каком контексте:
Оновные функции для работы с ошибками:
- Функция ОписаниеОшибки()
- Функция ИнформацияОбОшибке()
- Функция КраткоеПредставлениеОшибки() Устарела!!!
- Функция ПодробноеПредставлениеОшибки() Устарела!!!
- Процедура ПоказатьИнформациюОбОшибке() Устарела!!!
Список распространенных ошибок 1С:Предприятие 8