Открыть сервис

Перечисления 1С

Перечисление 1С — это объект встроенного метаданных платформы «1С:Предприятие», предназначенный для хранения и использования в алгоритмах и интерфейсах фиксированного набора значений, которые не изменяются в процессе работы информационной базы. Перечисления являются одним из фундаментальных средств типизации данных и служат альтернативой справочникам в случаях, когда список возможных вариантов строго определён на этапе разработки и не подлежит редактированию пользователем.

Назначение и область применения

Основная функция перечисления — задать конечный, заранее известный набор значений для реквизита объекта, переменной алгоритма или реквизита формы. В отличие от справочника, значения перечисления нельзя добавить, удалить или изменить в режиме «1С:Предприятие» (пользовательском режиме); все манипуляции с составом перечисления производятся только в режиме «Конфигуратор» (режиме разработки). Это обеспечивает жёсткую типизацию данных и исключает ошибки, связанные с некорректным вводом значений.

Типичные сценарии использования перечислений в конфигурациях на платформе 1С:

Структура и свойства

В конфигураторе перечисление описывается как объект метаданных, который может содержать одно или несколько значений. Каждое значение перечисления имеет следующие обязательные атрибуты:

Дополнительно для каждого значения можно задать Пометку удаления (в пользовательском режиме значения не удаляются, а помечаются на удаление, что не влияет на их использование в ссылочных данных, но скрывает из списков выбора по умолчанию).

Порядок следования значений

Значения перечисления упорядочены в том порядке, в котором они были добавлены в конфигураторе. Порядок можно изменить, перемещая строки в дереве метаданных. При обращении к значениям через встроенный язык используется порядковый номер (индекс), начиная с 0.

Создание и настройка

Чтобы создать перечисление в конфигурации, необходимо:

  1. В дереве метаданных конфигурации найти ветку «Перечисления».
  2. Добавить новый объект, задать его имя (например, СтатусыЗаказа) и синоним.
  3. В подчинённой ветке «Значения перечисления» добавить необходимые варианты, указав для каждого имя и синоним.
  4. При необходимости задать дополнительные свойства, такие как «Длина ссылки» (для оптимизации хранения) или «Состав» (для использования в подсистемах).

После создания перечисления его можно использовать в качестве типа реквизита объекта (документа, справочника, регистра) или переменной алгоритма.

Использование во встроенном языке

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

``1c Перечисления.СтатусыЗаказа.Принят ``

Примеры типовых операций

Присвоение значения реквизиту:

``1c ДокументОбъект.Статус = Перечисления.СтатусыЗаказа.Отгружен; ``

Проверка значения в условии:

``1c Если ДокументОбъект.Статус = Перечисления.СтатусыЗаказа.Принят Тогда // выполнить действие КонецЕсли; ``

Получение значения по индексу:

``1c ЗначениеПеречисления = Перечисления.СтатусыЗаказа[0]; // первое значение ``

Получение индекса значения:

``1c Индекс = Перечисления.СтатусыЗаказа.Принят.Индекс(); // вернёт порядковый номер ``

Использование в запросах:

В языке запросов 1С перечисления доступны через конструкцию ЗНАЧЕНИЕ(Перечисление.ИмяПеречисления.ИмяЗначения). Например:

``sql ВЫБРАТЬ Ссылка ИЗ Документ.ЗаказПокупателя ГДЕ Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказа.Принят) ``

Отличия от справочника

Несмотря на внешнее сходство, перечисления и справочники имеют принципиальные различия:

ХарактеристикаПеречислениеСправочник
Изменяемость в пользовательском режимеТолько в режиме конфигуратораМожно добавлять/редактировать/удалять записи
Количество значенийФиксировано, обычно невелико (до нескольких десятков)Может быть произвольным, вплоть до миллионов
УникальностьЗначения жёстко заданы, дублирование исключеноМожет быть настроена уникальность по коду или наименованию
ИерархияНе поддерживаетсяПоддерживается (группы и элементы)
ПодчинениеНе поддерживаетсяПоддерживается (подчинённые справочники)
РеквизитыОтсутствуют (только имя и синоним)Можно добавлять произвольные реквизиты
Табличные частиОтсутствуютПоддерживаются

Ограничения и особенности

Примеры в типовых конфигурациях

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →