Для элемента формы "всё просто" представление используется из СпискаВыбора элемента, если установлено свойство РежимВыбораИзСписка. Для элементов формы - полей ТаблицыФормы необходимо программно задать УсловноеОформление формы (не забываем, что для формы УсловноеОформление доступно только на сервере), иначе представление значений после выбора из списка будет "по-умолчанию". (проверено вплоть до 8.3.12.1616)
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьСписокВыбораВалют(Элементы.Валюта); УстановитьСписокВыбораВалют(Элементы.ТаблицаВалютВалюта); УстановитьУсловноеОформлениеДляСпискаВыбора(Элементы.ТаблицаВалютВалюта); КонецПроцедуры Процедура УстановитьСписокВыбораВалют(Элемент) Перем СписокВыборка; Запрос = Новый Запрос("ВЫБРАТЬ Валюты.Ссылка КАК Валюты ИЗ Справочник.Валюты КАК Валюты"); СписокВыбора = Элемент.СписокВыбора; СписокВыбора.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0)); Для НомерПозиции = 1 По СписокВыбора.Количество() Цикл ЭлементСпискаВыбора = СписокВыбора.Получить(НомерПозиции-1); ЭлементСпискаВыбора.Представление = СтрШаблон("Представление %1 (%2)", НомерПозиции, ЭлементСпискаВыбора.Значение); КонецЦикла; Элемент.РежимВыбораИзСписка = СписокВыбора.Количество(); КонецПроцедуры Процедура УстановитьУсловноеОформлениеДляСпискаВыбора(ЭлементФормы) СписокВыбора = ЭлементФормы.СписокВыбора; Для Каждого ЭлементСпискаВыбора Из СписокВыбора Цикл Элемент = УсловноеОформление.Элементы.Добавить(); ПолеЭлемента = Элемент.Поля.Элементы.Добавить(); ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(ЭлементФормы.Имя); ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ЭлементФормы.ПутьКДанным); ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ОтборЭлемента.ПравоеЗначение = ЭлементСпискаВыбора.Значение; Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ЭлементСпискаВыбора.Представление); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ВалютаПриИзменении(Элемент) ИскомоеПредставление = Элемент.ТекстРедактирования; Для Каждого ЭлементСпискаВыбора Из Элемент.СписокВыбора Цикл Если ЭлементСпискаВыбора.Представление = ИскомоеПредставление Тогда ПоследнееВыбранноеЗначение = ЭлементСпискаВыбора.Значение; Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры
Комментарии
Отправить комментарий