Выпадающий список в 1С. Управляемое приложение

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

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

Таким образом, выпадающий список сочетает компактность и удобство, показывая содержимое лишь тогда, когда пользователю требуется сделать выбор.
И в данной статье мы рассмотрим основные особенности работы с динамическим списком в управляемом приложении 1С 8.3

Как сделать выпадающий список в 1С 8.3?

Практически любое поле ввода можно настроить для работы со списком выбора (выпадающим списком). Для этого в свойствах элемента управления нужно заполнить свойство “Список выбора”.

При этом возможно два варианта поведения – со включенным флажком  “Режим выбора из списка”, и с выключенным.
Рассмотрим оба варианта

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

Список выбора в 1С 8.3
выбор из выпадающего списка

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

Вариант второй – включаем флажок “Режим выбора из списка”. Теперь список будет ограничивать доступные нам значения, и при попытке указать что-то, чего в списке выбора нет, платформа нас об этом предупредит. Также обратите внимание, что теперь вместо самого значения, в поле будет отображаться представление, которое мы задавали в списке выбора.

режим выбора из списка
Выпадающий список в 1С

Работа с выпадающим списком при помощи языка 1С.

Для элемента управления с выпадающим списком можно переопределить стандартное поведение платформы. Можно программно наполнить список в зависимости от различных условий, назначить обработчик события “Обработка выбора”.
Важно! Обратите внимание, что в 8.3. событие НачалоВыбораИзСписка не вызывается.

Пример переопределения списка выбора для элемента при создании на сервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	НовыеЗначения = Новый Массив;
	НовыеЗначения.Добавить(12345);
	НовыеЗначения.Добавить("тест");
	НовыеЗначения.Добавить("проверка");
	Элементы.ТестСписокВыбора.СписокВыбора.ЗагрузитьЗначения(НовыеЗначения);
	Элементы.ТестСписокВыбора.СписокВыбора.Добавить(ТекущаяДата(),"Текущая дата");
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ТестСписокВыбораОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, СтандартнаяОбработка)
	Если ТипЗнч(ВыбранноеЗначение) = Тип("Число") Тогда
		ВыбранноеЗначение = Формат(ВыбранноеЗначение, "ЧФ=Ч");
	ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("Дата") Тогда
		ВыбранноеЗначение = Формат(ВыбранноеЗначение, "ДЛФ=DDT");
	КонецЕсли;
	Сообщить(ВыбранноеЗначение);
КонецПроцедуры

Но здесь снова есть нюанс! Если у нас установлен флажок “Режим выбора из списка”, то все равно будут проверяться исходные значения в списке, и если выбранное значение отсутствует в списке выбора, то реквизит останется пустым. А вот если флажок “Режим выбора из списка” выключить, то будет подставляться новое выбранное значение – то, которое мы переопределили в обработке выбора.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

два × 1 =

К НАЧАЛУ