Разработка и Конфигурация · 10 мин
Где найти перечисления в 1С и как с ними работать
Где находятся перечисления в 1С: в дереве конфигурации, в режиме 1С:Предприятие и в модуле кода. Как посмотреть значения, добавить новые и избежать ошибок.
Перечисления в 1С — это объект метаданных, который хранит жёстко заданный список значений: видов операций, статусов, типов цен и подобных величин. В отличие от справочника, пользователь не может редактировать значения перечисления в режиме предприятия — список меняется только через конфигуратор. Поэтому вопрос «где найти перечисления» возникает в трёх разных ситуациях: при изучении структуры конфигурации, при работе в пользовательском режиме и при написании кода на встроенном языке.
Важно понимать принципиальную разницу: в конфигураторе вы видите само определение перечисления и его значения, в режиме предприятия — только выбор из этих значений в полях документов и справочников, а в коде — обращение через менеджер перечисления. Ниже разобраны все три сценария с конкретными шагами, а также типичные ошибки при изменении состава значений.
Где находятся перечисления в конфигураторе
Основное место — дерево конфигурации. Откройте конфигуратор, выполните команду «Конфигурация → Открыть конфигурацию» (или нажмите соответствующую кнопку на панели). В левой части появится дерево объектов метаданных. Ветка «Перечисления» расположена в общем списке, обычно после «Константы» и «Справочники» — точный порядок зависит от версии платформы, но ветка всегда называется одинаково.
Разверните ветку «Перечисления» — вы увидите список всех перечислений конфигурации. Двойной щелчок по конкретному перечислению открывает окно редактирования объекта, где на закладке «Данные» перечислены все его значения. Именно здесь можно посмотреть состав значений, их имена, синонимы (пользовательские представления) и комментарии.
Если конфигурация закрыта от изменений (типовая на поддержке), просмотр значений всё равно доступен — ограничение касается только редактирования. Для просмотра не требуются никакие дополнительные права, кроме возможности запустить конфигуратор.
- 1Запустите конфигуратор и откройте конфигурацию: меню «Конфигурация → Открыть конфигурацию».
- 2В дереве объектов найдите ветку «Перечисления» и разверните её.
- 3Дважды щёлкните по нужному перечислению, чтобы открыть окно редактирования.
- 4Перейдите на закладку «Данные» — там отображается список значений перечисления.
Как быстро найти нужное перечисление в большой конфигурации
В типовых конфигурациях перечислений могут быть сотни, и листать дерево вручную неудобно. Используйте поиск по метаданным: меню «Правка → Найти» или сочетание Ctrl+F при активном дереве конфигурации. Введите часть имени — платформа подсветит подходящие объекты.
Второй способ — глобальный поиск по конфигурации («Правка → Глобальный поиск», Ctrl+Shift+F). Он находит упоминания перечисления не только в метаданных, но и в модулях кода, что полезно, когда нужно понять, где конкретное значение используется в логике программы. Например, поиск по строке «ВидыОпераций» покажет все модули, где проверяется вид операции.
Третий вариант — обратный путь: если вы видите поле в документе и хотите узнать, какое перечисление за ним стоит, найдите этот документ в дереве, откройте его реквизиты и посмотрите тип данных нужного реквизита. Там будет указано «ПеречислениеСсылка.ИмяПеречисления».
Где видны перечисления в режиме 1С:Предприятие
В пользовательском режиме отдельного раздела «Перечисления» в меню нет — и это частая причина путаницы. Пользователь сталкивается со значениями перечисления только при заполнении полей: например, выбирает ставку НДС в документе или вид операции в журнале. Поле со ссылкой на перечисление выглядит как выпадающий список с фиксированным набором вариантов, без кнопки «Создать» и без возможности добавить своё значение.
Именно отсутствие кнопки добавления — надёжный признак того, что перед вами перечисление, а не справочник. Если пользователь просит «добавить новый вид в список», а список оказался перечислением, задача решается только доработкой конфигурации: новое значение добавляет разработчик в конфигураторе, после чего потребуется обновление базы.
Разработчик может посмотреть значения перечисления в режиме предприятия иначе — через консоль кода, обработку «Все функции» или универсальный подбор, но штатного пользовательского интерфейса для просмотра самого объекта метаданных в типовых конфигурациях обычно не предусмотрено.
Как обратиться к перечислению в коде
Во встроенном языке перечисления доступны через глобальный контекст «Перечисления». Обращение к значению строится по шаблону: Перечисления.ИмяПеречисления.ИмяЗначения. Например, сравнение реквизита документа со значением перечисления выглядит как обычная проверка равенства.
Если Документ.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
// действия для ставки 20%
КонецЕсли;
// Перебор всех значений перечисления:
Для Каждого Значение Из Перечисления.СтавкиНДС Цикл
Сообщить(Значение);
КонецЦикла;Чтобы получить представление (синоним) значения для вывода пользователю, используются методы метаданных: через Метаданные.Перечисления.ИмяПеречисления.ЗначенияПеречисления можно получить объект описания конкретного значения и его свойство «Синоним». Это нужно, когда требуется вывести понятное название, а не внутреннее имя.
Проверка на пустое значение делается через Перечисления.ИмяПеречисления.ПустаяСсылка() или функцию ЗначениеЗаполнено(). Не сравнивайте значение перечисления со строкой — такая проверка всегда вернёт «Ложь», потому что типы данных разные.
Как добавить или изменить значение перечисления
Добавление значения выполняется в конфигураторе: откройте перечисление, перейдите на закладку «Данные» и нажмите «Добавить». Задайте имя (латиница или кириллица без пробелов, начинается с буквы) и синоним — именно синоним увидит пользователь. После сохранения конфигурации выполните обновление конфигурации базы данных (F7), чтобы изменения вступили в силу.
Если конфигурация типовая и стоит на полной поддержке, изменение перечисления потребует снятия объекта с поддержки. Это усложнит будущие автоматические обновления: платформа при обновлении не сможет молча объединить изменённый объект. Взвесьте, действительно ли нужно новое значение перечисления, или задачу корректнее решить справочником либо дополнительным реквизитом.
Перечисление или справочник: как выбрать правильный объект
Выбор между перечислением и справочником определяется тем, кто управляет списком значений. Если список фиксирован логикой программы и меняется только разработчиком — подходит перечисление. Если пользователи должны добавлять, переименовывать и удалять элементы самостоятельно — нужен справочник.
Сравнение вариантов
Подходит для фиксированных списков, зашитых в логику: статусы, виды операций, ставки. Значения меняет только разработчик; на значения можно ссылаться в коде напрямую по имени.
Подходит для списков, которые ведут пользователи: контрагенты, номенклатура, статьи расходов. В коде нельзя обратиться к элементу по имени — только поиск по наименованию или коду.
Подходит, когда список значений должен расширяться без доработки конфигурации вообще — настраивается администратором в режиме предприятия.
Практический критерий прост: если в коде нужна конструкция вида «если вид равен такому-то, выполни особую логику» — это перечисление. Если значение участвует только как аналитика для группировки и отбора — скорее справочник.
Частые вопросы о перечислениях в 1С
Как проверить результат
Значение видно на закладке «Данные», конфигурация базы обновлена, в режиме предприятия значение доступно для выбора в поле
Значение есть в конфигураторе, но в предприятии не появляется — не выполнено обновление конфигурации базы данных (F7)
Модуль компилируется без ошибок, сравнение значений срабатывает
Ошибка «Переменная не определена» — опечатка в имени перечисления или значения
Поля показывают понятные названия значений
В полях видно «<Объект не найден>» — значение было удалено, требуется восстановление или замена ссылок
Почему в режиме 1С:Предприятие нет меню «Перечисления»?
Это особенность платформы: перечисления не являются прикладными данными, это часть конфигурации. Пользователь работает только со значениями перечислений внутри полей документов и справочников, а сам объект существует только в конфигураторе. Для редактируемых пользователем списков в 1С предназначены справочники.
Как узнать, какое перечисление стоит за полем в документе?
Откройте в конфигураторе нужный документ, найдите реквизит и посмотрите его тип — там будет указано «ПеречислениеСсылка.ИмяПеречисления». Второй способ — в режиме предприятия включить вывод технической информации или воспользоваться обработкой анализа данных, но путь через конфигуратор надёжнее и быстрее.
Можно ли добавить значение перечисления без конфигуратора?
Нет, штатно это невозможно: состав значений перечисления — часть метаданных. Если нужен список, который администратор расширяет без разработчика, используйте справочник или механизм дополнительных реквизитов и сведений, доступный в типовых конфигурациях в режиме предприятия.
Что будет, если переименовать значение перечисления?
Существующие ссылки в базе не сломаются — платформа хранит внутренний идентификатор, а не имя. Однако весь код, где значение упоминалось по старому имени, перестанет компилироваться. Перед переименованием выполните глобальный поиск по старому имени и исправьте все найденные места.
Чем перечисление отличается от предопределённого элемента справочника?
Предопределённый элемент справочника создаётся разработчиком, но живёт в данных и может участвовать в пользовательских списках. Перечисление существует только в метаданных. К предопределённому элементу в коде обращаются через менеджер справочника по имени, к значению перечисления — напрямую через «Перечисления.Имя.Значение».
Как вывести список всех значений перечисления пользователю?
В коде переберите коллекцию: «Для Каждого Значение Из Перечисления.ИмяПеречисления Цикл». Для получения пользовательского представления обратитесь к метаданным значения и его синониму. В интерфейсе все значения и так видны в выпадающем списке поля, у которого тип — это перечисление.
Что важно запомнить
Перечисления живут в конфигураторе, в ветке «Перечисления» дерева конфигурации; в режиме предприятия видны только их значения в полях объектов. В коде обращение идёт через Перечисления.Имя.Значение. Изменение состава значений — задача разработчика; перед удалением или переименованием проверьте использование глобальным поиском и сделайте резервную копию.