К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как создать новое перечисление в 1С:Предприятие

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

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

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

Ниже разобран полный цикл работы: от открытия конфигуратора до проверки результата в пользовательском режиме, а также типичные ошибки и ограничения, о которых нужно знать до начала изменений.

Когда нужно перечисление, а когда справочник

Прежде чем создавать объект, определитесь с типом хранилища. Перечисление подходит, если набор значений известен заранее, редко меняется и не должен редактироваться пользователями. Значения перечисления можно использовать в коде напрямую через менеджер перечисления, что удобно для алгоритмов с жёсткой логикой ветвления.

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

Перечисление или справочник

Перечисление

Фиксированный набор значений, задаётся разработчиком, удобен для логики в коде. Не подходит, если пользователи должны добавлять варианты.

Справочник

Пользователь может добавлять и редактировать элементы, поддерживает иерархию и дополнительные реквизиты. Избыточен для жёстко фиксированных списков.

План видов характеристик

Подходит для расширяемых наборов параметров с типизированными значениями, но сложнее в настройке.

Подготовка: открытие конфигуратора и структуры конфигурации

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

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

Перед изменениями рекомендуется выгрузить базу в файл dt или сделать резервную копию средствами СУБД. Это особенно важно, если работа ведётся непосредственно в рабочей базе, а не в копии для разработки.

Создание нового перечисления

Щёлкните правой кнопкой мыши по ветке «Перечисления» и выберите «Добавить». Откроется палитра свойств нового объекта. Задайте «Имя» — идентификатор на встроенном языке без пробелов, например СтатусыЗаказа. Поле «Синоним» заполните понятным пользователю названием, например «Статусы заказа» — именно оно будет отображаться в интерфейсе.

На вкладке «Данные» палитры свойств находится список значений перечисления. Нажмите «Добавить» и создайте нужные значения, для каждого указав имя и синоним. Имена значений тоже являются идентификаторами: они используются в коде, поэтому давайте осмысленные имена вроде Черновик, Согласован, Отменен.

На вкладке «Представление» можно настроить длину представления, на вкладке «Формы» — при необходимости создать форму списка выбора, хотя для большинства сценариев достаточно автоматически генерируемых форм. На вкладке «Подсистемы» отметьте, к каким подсистемам относится объект, чтобы он корректно отображался в командном интерфейсе.

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

Настройка прав и ролей

Новый объект конфигурации не получает права автоматически во всех ролях. Откройте нужные роли в ветке «Общие» → «Роли» и установите права на чтение и просмотр перечисления для тех ролей, пользователи которых должны видеть его значения. Если перечисление используется только программно, достаточно минимальных прав.

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

Использование перечисления в реквизитах и коде

Чтобы связать перечисление с данными, добавьте реквизит нужного объекта (справочника, документа, регистра) и в свойстве «Тип» выберите «ПеречислениеСсылка.ИмяВашегоПеречисления». После обновления конфигурации базы данных пользователи смогут выбирать значение из выпадающего списка.

В коде значения перечисления доступны через менеджер: Перечисления.СтатусыЗаказа.Согласован. Типичные приёмы — сравнение реквизита со значением, заполнение по умолчанию и проверка на пустое значение через Перечисления.СтатусыЗаказа.ПустаяСсылка(). Пустое значение перечисления — это не NULL, а специальная пустая ссылка, что важно учитывать в условиях запросов.

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

bsl
Если Заказ.Статус = Перечисления.СтатусыЗаказа.Согласован Тогда
    // логика обработки согласованного заказа
КонецЕсли;

Обновление конфигурации базы данных и проверка результата

После сохранения конфигурации (Ctrl+S) нажмите F7 или выберите «Конфигурация» → «Обновить конфигурацию базы данных». Платформа покажет окно реструктуризации со списком изменений — убедитесь, что в нём только ожидаемые объекты, и подтвердите обновление.

Затем запустите режим предприятия (F5 или «Начать отладку») и проверьте результат: откройте объект с новым реквизитом, убедитесь, что список выбора содержит все значения, их синонимы отображаются корректно, а сохранение и проведение документа проходят без ошибок.

Контрольные точки

Как проверить результат

Список выбора в реквизите
Норма

Отображаются все значения с понятными синонимами

Тревожный признак

Список пуст или показывает имена вместо синонимов

Обновление базы данных
Норма

Реструктуризация завершилась без ошибок

Тревожный признак

Ошибки реструктуризации или конфликты изменений

Доступность для пользователей
Норма

Пользователь с нужной ролью видит и выбирает значения

Тревожный признак

Ошибка «Нарушение прав доступа» при открытии объекта

Типичные ошибки и ограничения

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

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

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

Типичные ошибки
01
Удаление значения, уже использованного в данных — ошибки реструктуризации и битые ссылки
02
Переименование значения без поиска обращений в коде — ошибки компиляции модулей
03
Создание перечисления вместо справочника для расширяемого списка — постоянные доработки конфигурации
04
Забытые права в ролях — пользователи не видят объект после обновления
05
Обновление рабочей базы без копии — риск потери данных при ошибке реструктуризации
Итог

Что важно запомнить

Перечисление создаётся в конфигураторе через ветку «Перечисления»: имя, синоним, значения на вкладке «Данные», права в ролях, затем обновление конфигурации базы данных. Набор значений фиксирован разработчиком; удалять использованные значения нельзя. Для расширяемых пользователем списков выбирайте справочник.

Частые вопросы

Можно ли добавить значение перечисления в режиме 1С:Предприятие?

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

Что будет, если удалить значение, которое указано в документах?

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

Как задать значение перечисления по умолчанию для реквизита?

В свойствах реквизита объекта заполните поле «Значение заполнения» нужным значением перечисления. Альтернатива — присвоение значения в обработчике «ПриСозданииНаСервере» формы или в «ОбработкаЗаполнения» модуля объекта.

Можно ли использовать перечисление в отчётах на СКД?

Да. В запросе набора данных значения указываются через ЗНАЧЕНИЕ(Перечисление.Имя.Значение), а отборы по реквизиту типа перечисления работают так же, как по ссылочным типам: пользователь выбирает значение из списка в настройках отчёта.

Чем перечисление отличается от предопределённых элементов справочника?

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

Нужно ли снимать конфигурацию с поддержки для добавления перечисления?

Если конфигурация типовая и стоит на полной поддержке, добавление собственного объекта потребует включения возможности изменений. Это допустимо, но усложнит автоматическое обновление на новые релизы — изменения придётся сопоставлять вручную при каждом обновлении.