Разработка и Конфигурация · 10 мин
Как создать новое перечисление в 1С:Предприятие
Пошаговая инструкция по созданию перечисления в 1С:Предприятие через конфигуратор: добавление значений, настройка свойств, использование в коде и типичные ошибки.
Перечисление в 1С:Предприятие — это объект метаданных, который хранит фиксированный набор значений, заданный на этапе разработки конфигурации. В отличие от справочника, пользователь не может добавлять или изменять значения перечисления в режиме предприятия: список жёстко определён разработчиком. Типичные примеры — виды операций, статусы документов, варианты налогообложения, пол сотрудника.
Создание нового перечисления выполняется в конфигураторе и занимает несколько минут. Однако важно заранее продумать состав значений: удаление значения из перечисления после того, как оно использовано в данных, приведёт к ошибкам при обновлении конфигурации базы данных. Поэтому к задаче стоит подойти осмысленно, а не «на вырост» с лишними вариантами.
Ниже разобран полный цикл работы: от открытия конфигуратора до проверки результата в пользовательском режиме, а также типичные ошибки и ограничения, о которых нужно знать до начала изменений.
Когда нужно перечисление, а когда справочник
Прежде чем создавать объект, определитесь с типом хранилища. Перечисление подходит, если набор значений известен заранее, редко меняется и не должен редактироваться пользователями. Значения перечисления можно использовать в коде напрямую через менеджер перечисления, что удобно для алгоритмов с жёсткой логикой ветвления.
Справочник выбирают, когда список значений должен пополняться пользователем, когда у элементов нужны дополнительные реквизиты, иерархия или предопределённые элементы с настройками. Частая ошибка — создавать перечисление для списка, который бизнес-процесс будет расширять: каждое новое значение потребует доработки конфигурации и обновления базы.
Перечисление или справочник
Фиксированный набор значений, задаётся разработчиком, удобен для логики в коде. Не подходит, если пользователи должны добавлять варианты.
Пользователь может добавлять и редактировать элементы, поддерживает иерархию и дополнительные реквизиты. Избыточен для жёстко фиксированных списков.
Подходит для расширяемых наборов параметров с типизированными значениями, но сложнее в настройке.
Подготовка: открытие конфигуратора и структуры конфигурации
Запустите конфигуратор режима 1С:Предприятие, выбрав нужную информационную базу в стартовом окне и нажав «Конфигуратор». Для внесения изменений потребуются права администратора и монопольный доступ к базе при обновлении конфигурации базы данных — активные пользователи должны завершить сеансы.
Откройте структуру конфигурации через меню «Конфигурация» → «Открыть конфигурацию» (или сочетание клавиш, если конфигурация уже открыта). В дереве объектов найдите ветку «Перечисления» — она располагается в общем списке метаданных рядом со справочниками и документами.
Перед изменениями рекомендуется выгрузить базу в файл dt или сделать резервную копию средствами СУБД. Это особенно важно, если работа ведётся непосредственно в рабочей базе, а не в копии для разработки.
Создание нового перечисления
Щёлкните правой кнопкой мыши по ветке «Перечисления» и выберите «Добавить». Откроется палитра свойств нового объекта. Задайте «Имя» — идентификатор на встроенном языке без пробелов, например СтатусыЗаказа. Поле «Синоним» заполните понятным пользователю названием, например «Статусы заказа» — именно оно будет отображаться в интерфейсе.
На вкладке «Данные» палитры свойств находится список значений перечисления. Нажмите «Добавить» и создайте нужные значения, для каждого указав имя и синоним. Имена значений тоже являются идентификаторами: они используются в коде, поэтому давайте осмысленные имена вроде Черновик, Согласован, Отменен.
На вкладке «Представление» можно настроить длину представления, на вкладке «Формы» — при необходимости создать форму списка выбора, хотя для большинства сценариев достаточно автоматически генерируемых форм. На вкладке «Подсистемы» отметьте, к каким подсистемам относится объект, чтобы он корректно отображался в командном интерфейсе.
- 1Откройте конфигуратор и структуру конфигурации
- 2Щёлкните правой кнопкой по ветке «Перечисления» и выберите «Добавить»
- 3Задайте имя и синоним перечисления
- 4На вкладке «Данные» добавьте значения с именами и синонимами
- 5При необходимости отметьте подсистемы и права доступа
- 6Сохраните конфигурацию и обновите конфигурацию базы данных (F7)
- 7Проверьте объект в режиме предприятия
Настройка прав и ролей
Новый объект конфигурации не получает права автоматически во всех ролях. Откройте нужные роли в ветке «Общие» → «Роли» и установите права на чтение и просмотр перечисления для тех ролей, пользователи которых должны видеть его значения. Если перечисление используется только программно, достаточно минимальных прав.
Проверьте также, что перечисление включено в состав функциональных опций или подсистем, если в вашей конфигурации видимость объектов ими управляется. Иначе объект будет создан, но пользователь не увидит связанные с ним элементы интерфейса.
Использование перечисления в реквизитах и коде
Чтобы связать перечисление с данными, добавьте реквизит нужного объекта (справочника, документа, регистра) и в свойстве «Тип» выберите «ПеречислениеСсылка.ИмяВашегоПеречисления». После обновления конфигурации базы данных пользователи смогут выбирать значение из выпадающего списка.
В коде значения перечисления доступны через менеджер: Перечисления.СтатусыЗаказа.Согласован. Типичные приёмы — сравнение реквизита со значением, заполнение по умолчанию и проверка на пустое значение через Перечисления.СтатусыЗаказа.ПустаяСсылка(). Пустое значение перечисления — это не NULL, а специальная пустая ссылка, что важно учитывать в условиях запросов.
В запросах значения перечисления передаются через параметр или конструкцию ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказа.Согласован). Это удобно для отборов в отчётах и динамических списках.
Если Заказ.Статус = Перечисления.СтатусыЗаказа.Согласован Тогда
// логика обработки согласованного заказа
КонецЕсли;Обновление конфигурации базы данных и проверка результата
После сохранения конфигурации (Ctrl+S) нажмите F7 или выберите «Конфигурация» → «Обновить конфигурацию базы данных». Платформа покажет окно реструктуризации со списком изменений — убедитесь, что в нём только ожидаемые объекты, и подтвердите обновление.
Затем запустите режим предприятия (F5 или «Начать отладку») и проверьте результат: откройте объект с новым реквизитом, убедитесь, что список выбора содержит все значения, их синонимы отображаются корректно, а сохранение и проведение документа проходят без ошибок.
Как проверить результат
Отображаются все значения с понятными синонимами
Список пуст или показывает имена вместо синонимов
Реструктуризация завершилась без ошибок
Ошибки реструктуризации или конфликты изменений
Пользователь с нужной ролью видит и выбирает значения
Ошибка «Нарушение прав доступа» при открытии объекта
Типичные ошибки и ограничения
Самая опасная ошибка — удаление значения перечисления, которое уже используется в данных. При обновлении конфигурации базы данных платформа выдаст предупреждение или ошибку, а записи со ссылкой на удалённое значение станут неконсистентными. Если значение устарело, безопаснее оставить его и просто не использовать в новых документах.
Вторая частая проблема — переименование значений. Имя значения — часть метаданных, и его изменение при наличии кода, который обращается к этому значению, сломает модули при следующей компиляции. Перед переименованием выполните глобальный поиск по конфигурации.
Помните об ограничениях: значения перечисления нельзя создавать программно в режиме предприятия, у них нет дополнительных реквизитов, а порядок следования в списке определяется порядком в конфигураторе, а не сортировкой по алфавиту. Если нужен произвольный порядок для пользователя — сортируйте значения в конфигураторе вручную кнопками перемещения.
Что важно запомнить
Перечисление создаётся в конфигураторе через ветку «Перечисления»: имя, синоним, значения на вкладке «Данные», права в ролях, затем обновление конфигурации базы данных. Набор значений фиксирован разработчиком; удалять использованные значения нельзя. Для расширяемых пользователем списков выбирайте справочник.
Частые вопросы
Можно ли добавить значение перечисления в режиме 1С:Предприятие?
Нет. Значения перечисления — часть метаданных и изменяются только в конфигураторе с последующим обновлением конфигурации базы данных. Если пользователям нужно добавлять варианты самостоятельно, используйте справочник.
Что будет, если удалить значение, которое указано в документах?
При обновлении конфигурации базы данных платформа сообщит об ошибке или выполнит реструктуризацию с потерей связи: в записях останется ссылка на несуществующее значение. Безопасный путь — оставить значение в перечислении и исключить его из новых операций программно.
Как задать значение перечисления по умолчанию для реквизита?
В свойствах реквизита объекта заполните поле «Значение заполнения» нужным значением перечисления. Альтернатива — присвоение значения в обработчике «ПриСозданииНаСервере» формы или в «ОбработкаЗаполнения» модуля объекта.
Можно ли использовать перечисление в отчётах на СКД?
Да. В запросе набора данных значения указываются через ЗНАЧЕНИЕ(Перечисление.Имя.Значение), а отборы по реквизиту типа перечисления работают так же, как по ссылочным типам: пользователь выбирает значение из списка в настройках отчёта.
Чем перечисление отличается от предопределённых элементов справочника?
Предопределённые элементы создаются в конфигураторе, но живут внутри справочника: их можно дополнять обычными элементами в режиме предприятия. Перечисление полностью закрыто для пользователя, зато проще в использовании в коде и не требует таблицы в базе данных.
Нужно ли снимать конфигурацию с поддержки для добавления перечисления?
Если конфигурация типовая и стоит на полной поддержке, добавление собственного объекта потребует включения возможности изменений. Это допустимо, но усложнит автоматическое обновление на новые релизы — изменения придётся сопоставлять вручную при каждом обновлении.