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

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

Как посмотреть перечисления в 1С

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

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

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

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

Что такое перечисление и где оно хранится

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

Каждое значение перечисления имеет имя (идентификатор, используемый в коде и запросах), синоним (то, что видит пользователь в интерфейсе) и комментарий. В базе данных значение хранится как ссылка — уникальный внутренний идентификатор, а не строка.

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

Просмотр перечислений в конфигураторе

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

Двойной щелчок по конкретному перечислению открывает окно редактирования объекта. Перейдите на закладку «Данные» — там отображается список значений с колонками «Имя», «Синоним» и «Комментарий». Это и есть полный перечень значений перечисления.

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и команду «Конфигурация — Открыть конфигурацию»
  2. 2
    Найдите в дереве ветку «Перечисления» и разверните её
  3. 3
    Дважды щёлкните по нужному перечислению
  4. 4
    Перейдите на закладку «Данные» и изучите список значений
  5. 5
    Сверьте колонки «Имя» (для кода) и «Синоним» (для интерфейса)

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

Как узнать, где используется перечисление

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

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

Для поиска упоминаний имени значения в коде модулей используйте глобальный поиск («Правка — Глобальный поиск» или Ctrl+Shift+F) по строке вида Перечисления.ИмяПеречисления.ИмяЗначения.

Просмотр значений запросом без конфигуратора

Если доступа к конфигуратору нет, но есть права на выполнение запросов (например, через консоль запросов в режиме «Предприятие»), значения перечисления можно выбрать из виртуальной таблицы. У каждого перечисления она называется Перечисление.ИмяПеречисления.

bsl
ВЫБРАТЬ
	Статусы.Ссылка КАК Ссылка,
	Статусы.Порядок КАК Порядок
ИЗ
	Перечисление.СтатусыЗаказов КАК Статусы
УПОРЯДОЧИТЬ ПО
	Порядок

Запрос вернёт все значения перечисления с их порядком следования. Поле «Ссылка» в представлении покажет синоним значения — то, что видит пользователь. Порядок полезен, когда логика программы завязана на последовательность значений (например, стадии обработки заказа).

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

Программный перебор перечислений и их значений

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

bsl
Для Каждого Переч Из Метаданные.Перечисления Цикл
	Сообщить(Переч.Имя);
	Для Каждого Значение Из Переч.ЗначенияПеречисления Цикл
		Сообщить("  " + Значение.Имя + " — " + Значение.Синоним);
	КонецЦикла;
КонецЦикла;

Этот код можно выполнить через обработку, внешнюю обработку или консоль кода. Коллекция Метаданные.Перечисления содержит все перечисления, а у каждого — коллекцию ЗначенияПеречисления с именами и синонимами.

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

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

Типичные ошибки
01
Искать значения перечисления в режиме «Предприятие» через списки — формы списка у перечислений нет, значения видны только в выпадающих списках реквизитов
02
Путать перечисление со справочником — в типовых конфигурациях похожие сущности могут быть реализованы справочниками, проверяйте тип реквизита в конфигураторе
03
Использовать имя значения вместо синонима в отборах отчётов — пользовательский интерфейс показывает синоним, а запросы и код работают с именем
04
Пытаться добавить значение перечисления через «Предприятие» — это возможно только изменением конфигурации в конфигураторе с последующим обновлением базы
05
Писать запрос к несуществующей виртуальной таблице — имя в запросе должно точно совпадать с именем перечисления в метаданных

Отдельная ловушка — сравнение значения перечисления со строкой в коде. Конструкция вида Если Статус = "Новый" Тогда не сработает: ссылку перечисления нужно сравнивать с Перечисления.Статусы.Новый. Строковое представление используется только для вывода пользователю.

Как проверить, что вы смотрите правильные данные

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

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

Имя перечисления в запросе
Норма

Совпадает с именем в дереве конфигурации, запрос выполняется без ошибок

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

Ошибка «Таблица не найдена» — имя указано неверно или это справочник

Количество значений
Норма

Совпадает со списком на закладке «Данные» в конфигураторе

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

Значений меньше — возможно, вы смотрите устаревшую копию конфигурации

Синонимы значений
Норма

Совпадают с тем, что видит пользователь в выпадающем списке реквизита

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

Синонимы отличаются — проверьте, не обновлялась ли конфигурация без обновления базы

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

Итог

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

Перечисления — это метаданные с фиксированным набором значений. Смотрите их в конфигураторе на закладке «Данные», значения без конфигуратора — запросом к Перечисление.ИмяПеречисления, а полный список всех перечислений — через Метаданные.Перечисления. Перед изменением состава значений всегда ищите ссылки на объект и работайте на копии базы.

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

Можно ли посмотреть перечисления в режиме «Предприятие» без конфигуратора?

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

Почему запрос к Перечисление.ИмяПеречисления выдаёт ошибку?

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

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

Откройте документ в режиме «Предприятие» — значение отображается синонимом. Программно получите значение реквизита: оно будет ссылкой на значение перечисления, а строковое представление покажет синоним. В запросе просто выберите реквизит — в результате отобразится представление значения.

Можно ли добавить своё значение в перечисление типовой конфигурации?

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

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

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

Как выгрузить список всех перечислений конфигурации в файл?

Выполните перебор коллекции Метаданные.Перечисления в коде и запишите имена, синонимы и значения в текстовый файл или табличный документ. Это удобно делать через внешнюю обработку на копии базы, чтобы не вмешиваться в рабочую среду.