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