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

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

Как заполнить выпадающий список в 1С

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

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

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

Определите, какой тип данных стоит за полем ввода

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

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

Тип «Перечисление»Значения фиксированы в конфигурации

Меняются только в конфигураторе с обновлением базы

Тип «Справочник»Список из элементов базы

Добавляйте элементы в режиме предприятия

Тип «Строка»Список выбора задаётся вручную

Проверьте свойство «СписокВыбора» поля формы

Поле без выпадающего спискаКнопка выбора открывает форму

Проверьте свойство «КнопкаВыпадающегоСписка»

Заполнение списка через перечисление в конфигураторе

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

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

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

Заполнение списка значениями справочника

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

По умолчанию поле ввода для ссылочного типа работает в режиме выбора из формы списка, а выпадающий список показывает варианты при вводе по строке. Если нужен классический выпадающий список с ограниченным набором, настройте свойства поля формы: включите «КнопкаВыпадающегоСписка» и при необходимости установите «РежимВыбораИзСписка».

Для ограничения доступных значений используются параметры выбора и связи параметров выбора. Например, в документе «Реализация» поле «Договор» показывает только договоры выбранного контрагента — это реализовано через связь параметров выбора. Аналогичную настройку можно добавить в свойствах поля формы без программирования.

Ручной список выбора для строкового поля

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

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

Порядок настройки списка выбора строкового поля
  1. 1
    Откройте форму в конфигураторе и выделите поле ввода
  2. 2
    В палитре свойств найдите «СписокВыбора» и добавьте нужные значения
  3. 3
    Включите «КнопкаВыпадающегоСписка»
  4. 4
    При необходимости включите «РежимВыбораИзСписка», чтобы запретить произвольный ввод
  5. 5
    Обновите конфигурацию базы данных и проверьте список в режиме предприятия

Программное заполнение списка выбора

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

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

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| ВидыОпераций.Ссылка КАК Ссылка,

| ВидыОпераций.Наименование КАК Наименование

|ИЗ

| Справочник.ВидыОпераций КАК ВидыОпераций

|ГДЕ

| НЕ ВидыОпераций.ПометкаУдаления";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Элементы.ВидОперации.СписокВыбора.Добавить(

Выборка.Ссылка, Выборка.Наименование);

КонецЦикла;

КонецПроцедуры

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

Настройка выпадающего списка без конфигуратора

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

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

Сравнение способов заполнения списка

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

Подходит для коротких стабильных списков (статусы, виды операций). Меняется только разработчиком с обновлением базы

Справочник

Подходит для списков, которые пополняют пользователи. Требует настройки отборов при большом объёме

СписокВыбора в свойствах формы

Подходит для строковых полей с фиксированными вариантами. Значения не связаны с объектами базы

Дополнительное значение

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

Проверка результата и типичные ошибки

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

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

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

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

Отображение списка
Норма

Стрелка есть, список раскрывается со всеми значениями

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

Стрелки нет или список пуст

Сохранение значения
Норма

Выбранное значение остаётся после записи и переоткрытия

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

Значение очищается или не записывается

Права пользователя
Норма

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

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

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

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

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

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

Почему выпадающий список пустой, хотя значения в справочнике есть?

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

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

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

Чем перечисление отличается от справочника для выпадающего списка?

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

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

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

Изменение списка выбора затронет уже введённые документы?

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

Итог

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

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