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