Руководство администратора

  1. Главная
  2. Документы
  3. Руководство администратора
  4. Администрирование конфигурации
  5. Классификация ошибок 1С

Классификация ошибок 1С

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

 

Рисунок 1 – Общая классификация ошибок программного обеспечения по данным Wikipedia.
Рисунок 2 – Классификация ошибок программного обеспечения на платформе 1С.

Ошибки разработки — это проблемы, которые возникают в результате допущения ошибок в процессе разработки приложений на платформе 1С:Предприятие. Так как программный продукт 1С представляет собой связку: платформа 1С:Предприятие + конфигурация, это может быть ошибкой в коде как самой платформы 1С:Предприятие, так и конфигурации, работу которой эта платформа обеспечивает. В связи с этим ошибки разработки можно разделить на платформенные и ошибки разработки конфигурации.

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

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

Пользовательские ошибки — это проблемы, которые получают пользователи 1С при вводе данных без соблюдения методологии (инструкции), предлагаемой фирмой 1С  при использовании конкретной конфигурации.

 

В конфигурации «Управление тендерным отделом 2.0» есть три контура фиксации ошибок:

  1. Все данные поисковых запросов справочника Поисковые фильтры в активные API записываются в регистр сведений РегистрыСведений.УТО_ЖурналЗагрузкиДокументов
  2. Все исключительные события прочих запросов в API  (не поисковые запросы)   записываются в лог-файл, который хранится в Константы.УТО_ПутьКФайлуЛогированияОшибок
  3. Ошибки, обрабатываемые платформой 1С, которые в том числе могут быть связаны и с загрузкой данных и общим поведением системы, записываются в Обработки.ЖурналРегистрации

Обработчик исключений API находится в модуле ENTОбменДанными_API

&НаСервере
Процедура ВыполнитьЗаписьСобытия(ТекстовоеПредставлениеСобытия, ОписаниеОшибки) Экспорт
	//Запишем в лог
	Попытка
		ФайлЛога = Константы.УТО_ПутьКФайлуЛогированияОшибок.Получить();
		Если ФайлЛога <> "" Тогда
			Текст = Новый ЗаписьТекста();
			Текст.Открыть(ФайлЛога,КодировкаТекста.UTF8,Символы.ПС,Истина);		
			Текст.ЗаписатьСтроку("=====ОШИБКА=====",Символы.ПС);
			Текст.ЗаписатьСтроку("Время события: " + ТекущаяДата(),Символы.ПС);
			Текст.ЗаписатьСтроку("Категория ошибки: " + ?(ТекстовоеПредставлениеСобытия = "", "Описание ошибки отсутствует", ТекстовоеПредставлениеСобытия),Символы.ПС);
			Текст.ЗаписатьСтроку("Содержание ошибки:",Символы.ПС);
			Текст.ЗаписатьСтроку(ОписаниеОшибки,Символы.ПС);
			Текст.ЗаписатьСтроку("================",Символы.ПС);
			Текст.Закрыть();
		КонецЕсли;
	Исключение
		ЗаписьЖурналаРегистрации(ТекстовоеПредставлениеСобытия,
			УровеньЖурналаРегистрации.Ошибка,
			Метаданные.Константы.УТО_ПутьКФайлуЛогированияОшибок,
			"==ОШИБКА==УТО==",
			ОписаниеОшибки);
	КонецПопытки;
КонецПроцедуры

 

Для записи в журнал регистрации информации о возникшем исключении используется конструкция:

ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())

Пример регистрации дополнительных событий в функциональной подсистеме «УТО»:

Попытка 
 ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка),
  УровеньЖурналаРегистрации.Информация, , ,
  НСтр("ru = 'Начато действие'"));
 ДействиеСВозможнойОшибкой(ОбъектДействия);
 ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка),
  УровеньЖурналаРегистрации.Информация, , ,
  НСтр("ru = 'Завершено действие'");
Исключение
 ЗаписьЖурналаРегистрации(НСтр("ru = 'УТО.Действие с возможной ошибкой'", КодОсновногоЯзыка),
  УровеньЖурналаРегистрации.Ошибка, , ,
  НСтр("ru = '"Во время выполнения действия произошла неизвестная ошибка.'") + Символы.ПС +
  ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
 КонецПопытки;  
КонецПроцедуры

При возникновении записи со статусом «Ошибка» или «ERROR» нужно обратиться в поддержку support@enter-it.ru или создать тикет в вашем личном кабинете https://tasks.enter-it.ru/ и заполнить обязательные поля:

  1. указать номер версии конфигурации или номер версии основной конфигурации и номер версии расширения,
  2. указать параметры сеанса пользователя (роль пользователя, режим клиентского приложения , группу доступа или профиль доступа) в котором возникла ошибка,
  3. скопировать содержимое строки с заголовком «описание» или «комментарий» с указанием кода ошибки и/или  номера строки кода, где возникает ошибка.
Был ли данный материал полезен вам? Да Нет