1C управляемые формы, выбор из списка значений
1С удивительная платформа. Иногда спотыкаешься на ровном месте на пару часов и не знаешь ты дурак или нет.. Ну вот казалось бы простая вещь — сделать список выбора на управляемой форме (выбор из списка значений), а застрял из-за одного нюанса, из-за которого то что выбрал в списке не отображалось в поле выбора..
Теперь воспроизведу всё пошагово:
Создаем реквизит, например «Категория». ВАЖНО! — тип — произвольный:
У меня был длительный затык именно на этом месте.
Далее ставим галочку «Режим выбора из списка» и назначаем обработку начала выбора на клиенте
Ну и собственно заполнение списка:
1 2 3 4 5 6 7 |
&НаКлиенте Процедура КатегорияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Элементы.Категория.СписокВыбора.Очистить(); Элементы.Категория.СписокВыбора.Добавить(0,"1"); Элементы.Категория.СписокВыбора.Добавить(1,"2"); Элементы.Категория.СписокВыбора.Добавить(2,"Тест"); КонецПроцедуры |
В чём была моя ошибка? Тип реквизита выбирал текст. Ну да, только когда я добавлял в список выбора цифры в Элементы.Категория.СписокВыбора.Добавить(0,»1″), то 1С их преобразовывала с цифры..
Update: 02/04/2024:
Для того чтобы получить выбранное значение или индекс можно воспользоваться:
1 |
&НаКлиенте<br>Процедура ПостроитьОтчет(Команда)<br> сообщить(Элементы.Оповещенные.ВыделенныйТекст); // текст<br> сообщить(Оповещенные); //индекс<br>КонецПроцедуры |
На этом задача «выбор из списка значений» будем считать завершеной. Еще больше всяких шпаргалок по 1С, легко найдется здесь.
Спасибо, 3 часа сидел, не мог понять в чем проблема. Просто не выбирал программно из списка значений. Оказалось все из за того что в реквизитах я поставил список значений. Поменял на произвольный и все заработало.