Классификация ошибок в 1С (и в любой другой системе) нужна для того, чтобы более эффективно и быстро находить и исправлять ошибки в программном коде, конфигурации или операциях, связанных с учетом и действиями пользователя, который ведется с помощью этой конфигурации.
Ошибки разработки — это проблемы, которые возникают в результате допущения ошибок в процессе разработки приложений на платформе 1С:Предприятие. Так как программный продукт 1С представляет собой связку: платформа 1С:Предприятие + конфигурация, это может быть ошибкой в коде как самой платформы 1С:Предприятие, так и конфигурации, работу которой эта платформа обеспечивает. В связи с этим ошибки разработки можно разделить на платформенные и ошибки разработки конфигурации.
Ошибки данных — это ошибки, связанные с некорректной обработкой, хранением или передачей данных в программных приложениях. Такие ошибки могут возникнуть, например, при неправильной обработке пользовательского ввода, при некорректной работе с базой данных или при неправильной передаче данных между различными компонентами программы.
Инфраструктурные ошибки — это ошибки, которые связаны с некорректной работой или конфигурацией инфраструктуры, на которой запускается программное приложение. Инфраструктура может включать в себя различные компоненты, такие как серверы, базы данных, сетевые устройства, хранилища данных и т.д. Инфраструктурные ошибки могут возникнуть, например, из-за недостаточной мощности серверов, неправильной настройки сетевых устройств, недостаточного объема хранилища данных и т.д.
Пользовательские ошибки — это проблемы, которые получают пользователи 1С при вводе данных без соблюдения методологии (инструкции), предлагаемой фирмой 1С при использовании конкретной конфигурации.
В конфигурации «Управление тендерным отделом 2.0» есть три контура фиксации ошибок:
- Все данные поисковых запросов справочника Поисковые фильтры в активные API записываются в регистр сведений
РегистрыСведений.УТО_ЖурналЗагрузкиДокументов
- Все исключительные события прочих запросов в API (не поисковые запросы) записываются в лог-файл, который хранится в
Константы.УТО_ПутьКФайлуЛогированияОшибок
- Ошибки, обрабатываемые платформой 1С, которые в том числе могут быть связаны и с загрузкой данных и общим поведением системы, записываются в
Обработки.ЖурналРегистрации
Обработчик исключений API находится в модуле ENTОбменДанными_API
&НаСервере Процедура ВыполнитьЗаписьСобытия(ТекстовоеПредставлениеСобытия, ОписаниеОшибки) Экспорт //Запишем в лог Попытка ФайлЛога = Константы.УТО_ПутьКФайлуЛогированияОшибок.Получить(); Если ФайлЛога <> "" Тогда Текст = Новый ЗаписьТекста(); Текст.Открыть(ФайлЛога,КодировкаТекста.UTF8,Символы.ПС,Истина); Текст.ЗаписатьСтроку("=====ОШИБКА=====",Символы.ПС); Текст.ЗаписатьСтроку("Время события: " + ТекущаяДата(),Символы.ПС); Текст.ЗаписатьСтроку("Категория ошибки: " + ?(ТекстовоеПредставлениеСобытия = "", "Описание ошибки отсутствует", ТекстовоеПредставлениеСобытия),Символы.ПС); Текст.ЗаписатьСтроку("Содержание ошибки:",Символы.ПС); Текст.ЗаписатьСтроку(ОписаниеОшибки,Символы.ПС); Текст.ЗаписатьСтроку("================",Символы.ПС); Текст.Закрыть(); КонецЕсли; Исключение ЗаписьЖурналаРегистрации(ТекстовоеПредставлениеСобытия, УровеньЖурналаРегистрации.Ошибка, Метаданные.Константы.УТО_ПутьКФайлуЛогированияОшибок, "==ОШИБКА==УТО==", ОписаниеОшибки); КонецПопытки; КонецПроцедуры
Для записи в журнал регистрации информации о возникшем исключении используется конструкция:
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
Пример регистрации дополнительных событий в функциональной подсистеме «УТО»:
Попытка ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка), УровеньЖурналаРегистрации.Информация, , , НСтр("ru = 'Начато действие'")); ДействиеСВозможнойОшибкой(ОбъектДействия); ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка), УровеньЖурналаРегистрации.Информация, , , НСтр("ru = 'Завершено действие'"); Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка), УровеньЖурналаРегистрации.Ошибка, , , НСтр("ru = '"Во время выполнения действия произошла неизвестная ошибка.'") + Символы.ПС + ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); КонецПопытки; КонецПроцедуры
При возникновении записи со статусом «Ошибка» или «ERROR» нужно обратиться в поддержку support@enter-it.ru или создать тикет в вашем личном кабинете https://tasks.enter-it.ru/ и заполнить обязательные поля:
- указать номер версии конфигурации или номер версии основной конфигурации и номер версии расширения,
- указать параметры сеанса пользователя (роль пользователя, режим клиентского приложения , группу доступа или профиль доступа) в котором возникла ошибка,
- скопировать содержимое строки с заголовком «описание» или «комментарий» с указанием кода ошибки и/или номера строки кода, где возникает ошибка.