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

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

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

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

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

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

  • Статусы документов (например: «Принят», «Отгружен», «Проведён», «Отменён»).
  • Виды контрагентов (например: «Юридическое лицо», «Физическое лицо», «Индивидуальный предприниматель»).
  • Типы оплаты (например: «Наличная», «Безналичная», «Карта»).
  • Пол физического лица (например: «Мужской», «Женский»).
  • Единицы измерения времени (например: «Час», «День», «Месяц», «Год»).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Неизменяемость состава — после публикации конфигурации в продуктивной среде изменение состава перечисления (добавление, удаление, переименование значений) может привести к потере ссылочной целостности данных, если на удалённое значение ссылаются документы или записи регистров. Поэтому на практике перечисления редко изменяют после начала эксплуатации системы.
  • Производительность — хранение значений перечисления в базе данных оптимизировано: каждое значение хранится как целочисленный идентификатор (индекс), что ускоряет сравнение и поиск по сравнению с текстовыми строками.
  • Локализация — синонимы значений могут быть переведены на разные языки, что позволяет использовать перечисления в мультиязычных конфигурациях.
  • Использование в отборах — значения перечисления могут выступать в качестве отборов в динамических списках, отчётах и запросах, обеспечивая наглядность и однозначность фильтрации.

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

  • «Бухгалтерия предприятия» — перечисление ВидыДенежныхСредств (наличные, безналичные, электронные), СтавкиНДС (0%, 10%, 20%, без НДС).
  • «Управление торговлей» — перечисление СтатусыЗаказовПокупателей (к выполнению, выполняется, выполнен, закрыт), ТипыЦенНоменклатуры (закупочная, розничная, оптовая).
  • «Зарплата и управление персоналом» — перечисление ВидыЗанятости (основное место работы, внутреннее совместительство, внешнее совместительство), ПолФизическогоЛица.

Источники

  • Радченко М. Г., Хрусталёва Е. Ю. «1С:Предприятие 8.3. Практическое пособие разработчика». — 1С-Паблишинг, 2019.
  • Документация платформы «1С:Предприятие 8.3» — раздел «Перечисления» (встроенная справка конфигуратора).
  • Официальный сайт фирмы «1С» — методические материалы по разработке конфигураций.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru