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

· 9 мин

Содержание

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

Частое заблуждение — считать перечисления разновидностью справочников и искать кнопку «Создать» в выпадающем списке «Вид операции» или «Юр./физ. лицо». Справочники пользователь пополняет сам, перечисления — нет.

Что такое перечисление в конфигурации 1С и чем оно отличается от справочника

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

  • 🔤 Имя — техническое, без пробелов (например, ФизическоеЛицо). Его видит код и правила обмена.
  • 🏷️ Синоним — то, что пользователь видит на экране («Физическое лицо»).
  • 🔢 Порядок — значения хранятся в том порядке, в котором их расставил разработчик. Сортировка по такому полю идёт именно в этом порядке, а не по алфавиту.

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

ПризнакПеречислениеСправочник
Кто добавляет значенияРазработчик, в КонфигуратореПользователь, в программе
Реквизиты у значенияНет, только имя и синонимЕсть: код, наименование, любые поля
Пометка удаленияНетЕсть
Можно ли загрузить из файлаНет, значения уже есть в конфигурацииДа
Как выглядит в формеВыпадающий список или переключательПоле выбора с кнопкой открытия списка
При обновлении конфигурацииСписок может изменитьсяДанные пользователя сохраняются

💡 Быстрый признак на экране: если рядом с полем есть кнопка открытия карточки выбранного значения и в списке выбора доступна команда создания — это справочник. Если выпадает короткий список без карточек — почти наверняка перечисление.

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

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

  • 📄 виды операций документов (от вида операции зависят проводки и заполнение формы);
  • 👤 юридическое или физическое лицо в карточке контрагента;
  • 🚦 статусы документов и заказов;
  • ⚙️ варианты настроек: способы расчёта, режимы, периодичность.

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

Как открыть список значений перечисления

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

  1. Откройте главное меню (кнопка с тремя полосками слева вверху) → Сервис → Параметры.
  2. Включите флажок «Отображать команду “Все функции”» и нажмите «Применить».
  3. В главном меню появится пункт Все функции. Раскройте ветку «Перечисления».
  4. Найдите нужное перечисление и откройте его двойным щелчком.

Откроется список значений только для чтения. Команды создания в нём нет — это нормальное поведение, а не ограничение прав.

Отбор и группировка по перечислению в отчётах

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

Нужного значения нет в списке: как добавить своё

Ситуация типичная: компании нужен свой статус заказа или ещё один вариант классификации, а в выпадающем списке его нет. Вариантов три, от простого к сложному.

Зачем вам новое значение?

Способ 1. Дополнительный реквизит со своими значениями

В конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) пользователь сам создаёт поле со своим списком:

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

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

Способ 2. Новое значение в самом перечислении

Это работа в Конфигураторе, и ей нужен специалист:

  1. Сделайте резервную копию: Администрирование → Выгрузить информационную базу в Конфигураторе.
  2. Если конфигурация на поддержке и не включена возможность изменения, включите её через Конфигурация → Поддержка → Настройка поддержки. После этого обновления будут ставиться через сравнение и объединение — это дороже в сопровождении.
  3. В ветке «Перечисления» откройте нужное перечисление, добавьте значение, задайте имя и синоним.
  4. Выполните Конфигурация → Обновить конфигурацию базы данных (F7). Для этого шага нужен монопольный доступ — пользователи должны выйти из базы.

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

А расширение конфигурации?

Расширения удобны тем, что не снимают типовую с поддержки. Но добавить значение в заимствованное типовое перечисление через расширение нельзя. В расширении можно создать собственное перечисление и использовать его в своих реквизитах. Если задача именно в том, чтобы расширить типовой список, остаются способы 1 или 2.

Загрузка из файла и массовое изменение: что работает с перечислениями

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

Загрузка справочника, где есть поле-перечисление

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

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

💡 Перед загрузкой скопируйте нужные значения прямо из выпадающего списка в программе и вставьте их в Excel через поиск и замену. Опечатки и лишние пробелы — главная причина пустых полей.

Массовое изменение значения у многих объектов

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

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

Перечисления при обмене и синхронизации между базами

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

Как это устроено

  • 🔄 Синхронизация через EnterpriseData (БП ↔ УТ, БП ↔ ЗУП и другие типовые пары). Значения перечислений переводятся в формат обмена по правилам, зашитым в конфигурацию. Если в одной базе есть значение, которого нет в формате или в другой базе, оно приходит пустым либо заменяется значением по умолчанию.
  • 🧩 Обмен по правилам «Конвертации данных». Для перечислений в правилах задаётся соответствие значений источника и приёмника. Если программист не прописал новое значение, оно потеряется при переносе.
  • 📦 Универсальный обмен в формате XML. Рассчитан на одинаковые конфигурации. Если в базе-приёмнике перечисление другое, значения не сопоставятся.

Что проверить после настройки синхронизации

  1. Создайте в базе-источнике тестовый документ с каждым редким значением перечисления (например, с нетиповым видом операции).
  2. Запустите синхронизацию и откройте документ в приёмнике.
  3. Убедитесь, что поле заполнено тем же значением, а не пустое.
  4. Если используете доработанное перечисление — скажите программисту, что правила обмена тоже нужно доработать. Иначе новое значение не уедет в другую базу.
Перед обновлением одной из синхронизируемых баз
Выполнено: 0 / 4

Перечисления в запросах и коде: короткая памятка

Эта часть пригодится тем, кто пишет отчёты в консоли запросов или небольшие обработки.

Обращение к значению в модуле и в тексте запроса:

// В модуле: значение перечисления по имени
Статус = Перечисления.СтатусыЗаявок.Новая;

// Пустое значение
Если Документ.Статус = Перечисления.СтатусыЗаявок.ПустаяСсылка() Тогда
	Сообщить("Статус не заполнен");
КонецЕсли;

// В запросе значение задают через ЗНАЧЕНИЕ()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|	Заявки.Ссылка
|ИЗ
|	Документ.Заявка КАК Заявки
|ГДЕ
|	Заявки.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаявок.Новая)";

СтатусыЗаявок и Новая здесь — условные имена для примера. Реальные имена берите в Конфигураторе или в синтакс-помощнике.

Ещё три приёма, которые часто нужны:

ЗадачаКак сделать
Получить значение по имени из строкиПеречисления.СтатусыЗаявок[ИмяЗначения]
Получить имя значения строкой (например, для выгрузки)XMLСтрока(Значение)
Узнать порядковый номер значенияПеречисления.СтатусыЗаявок.Индекс(Значение)

💡 В запросе используйте имя значения, а не синоним. Синоним — это текст для пользователя, его можно поменять в любом релизе без последствий для данных, а имя участвует в коде.

Частые проблемы с перечислениями и что с ними делать

Диагностика: выберите симптом

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

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

Можно ли переименовать значение перечисления, чтобы пользователи видели другой текст?
Да, но только в Конфигураторе: меняют синоним значения. Имя при этом лучше не трогать, на него ссылается код. Данные в базе не пострадают.
Почему порядок значений в списке не по алфавиту?
Перечисление хранит порядок, заданный разработчиком. И в форме, и при сортировке в отчётах значения идут именно так.
Пропадут ли документы, если удалить значение перечисления?
Документы останутся, но поле в них превратится в битую ссылку и будет показываться как «<Объект не найден>». Перед удалением значения программист должен перенести данные на другое значение.
Есть ли у перечисления права доступа на уровне отдельных значений?
Нет. Права настраиваются на объекты, которые используют перечисление. Ограничить выбор отдельных значений можно только доработкой формы.
Перечисление и предопределённые элементы справочника — одно и то же?
Нет. Предопределённый элемент — это обычный элемент справочника, к которому код обращается по имени. У него есть реквизиты, а рядом пользователь может создавать свои элементы. В перечислении своих значений не бывает.