Обращение к несуществующему значению перечисления
В 1С:Предприятие обращение к несуществующему значению перечисления приводит к возникновению ошибки Поле объекта не обнаружено.
Причины возникновения ошибки могут быть различны:
- Опечатка в имени значения перечисления;
- Значение перечисления было удалено или переименовано;
Пример ошибки:
// Значения перечисления НеБелый не существует
ЗначениеПеречисления = WebЦвета.НеБелый;
Область действия проверки:
- Системные глобальные перечисления. В синтакс-помощнике это разделы
Системные наборы значенийиСистемные перечисления. - Перечисления из конфигурации (расширения конфигурации).
Составные перечисления (их значения состоят из системных и значений объектов конфигурации) временно исключены из анализа:
БиблиотекаКартинокШрифтыСтиляЦветаСтиляРамкиСтиля
Особенности:
- Параметр
Проверять существование по всех конфигурациях проекта (учитывать сводный контекст)включает проверку значений перечислений конфигурации по сводному контексту проекта. Если проект содержит несколько конфигураций и расширений, при значении параметраtrueимя значениея перечисления считается верным, если присутствует хотя бы в одной из конфигураций проекта (в любой). При значенииfalse(по умолчанию) объект метаданных должен обязательно присутствовать в той конфигурации, которой принадлежит вызывающий модуль. - Расчет сводного контекста отключается параметром
sonar.bsl.denyCumulativeContextComputation.
Экранирование кода
// sonar:EnumValueExist:off
// sonar:EnumValueExist:on