Существует несколько способов выбора значения из программно сформированного списка значений. Такое обилие вариантов обусловлено различными требованиями к интерфейсу системы.
Давайте рассмотрим основные варианты. Предположим, что у нас есть список значений из которого пользователю нужно выбрать какое-то одно:
СписокВыбора = Новый СписокЗначений; СписокВыбора.Добавить("Самовывоз"); СписокВыбора.Добавить("Доставка курьером"); СписокВыбора.Добавить("Доставка транспортной компанией");
А. Выбор непосредственно из списка значений
Самый простой способ выбрать значение — инициировать его выбор через метод СписокЗначений.ВыбратьЭлемент():
СпособПоУмолчанию = СписокВыбора[0]; ВыбЭлемент = СписокВыбора.ВыбратьЭлемент("Укажите способ получения", СпособПоУмолчанию); Если НЕ ВыбЭлемент = Неопределено Тогда Сообщить("Вы выбрали: " + ВыбЭлемент.Значение); КонецЕсли;
Обратите внимание, что метод возвращает не само значение, а объект ЭлементСпискаЗначений
. К значению, хранящемуся в элементе, мы можем обратиться через одноименное свойство Значение
.
Выглядеть это будет так:
Б. Выбор из выпадающего списка
При использовании этого способа список выбора будет показан не в независимом окне, а с привязкой к элементу формы. Для реализации этого способа воспользуемся стандартным методом формы ВыбратьИзСписка():
СпособПоУмолчанию = 0; ВыбЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора, ЭлементФормы, СпособПоУмолчанию); Если НЕ ВыбЭлемент = Неопределено Тогда СпособПолучения = ВыбЭлемент.Значение; КонецЕсли;
Выглядеть это будет так:
В. Выбор из выпадающего меню
Этот способ похож на предыдущий, но список выбора будет показан в виде выпадающего подменю. Этот способ уместнее использовать с элементами формы типа Кнопка. Для реализации этого способа воспользуемся методом формы ВыбратьИзМеню():
ВыбЭлемент = ЭтаФорма.ВыбратьИзМеню(СписокВыбора, Элемент); Если НЕ ВыбЭлемент = Неопределено Тогда СпособПолучения = ВыбЭлемент.Значение; КонецЕсли;
Читайте также:
Поделиться страницей в соц.сетях
Спасибо! Есть ещё подбор с чекбоксами, аналогичный первому методу: СписокВыбора.ОтметитьЭлементы();
где СписокВыбора — реквизит обычной формы с типом СписокЗначений
Да, Олексий. Есть такой. Подробнее он описан на странице СписокЗначений.ОтметитьЗначения()