Имя: Пароль:
1C
 
Как в элементе формы созданном программно задать свой список выбора?
,
0 vi0
 
02.02.15
18:42
Добрый день

Как в элементе формы созданном программно задать свой список выбора?
В коде приведенном ниже СписокВыбора в результате содержит все значения перечисления + мои добавленные.
В момент изменения мной СписокВыбора он пустой.
Создаю в ПриСозданииНаСервере.


ДобавляемыеРеквизиты = Новый Массив;
Реквизит = Новый РеквизитФормы("Статус", Новый ОписаниеТипов("ПеречислениеСсылка.Статусы"));
ДобавляемыеРеквизиты.Добавить(Реквизит);
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

Элемент = Элементы.Добавить("Статус", Тип("ПолеФормы"));
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = "Статус";
Элемент.СписокВыбора.Добавить(Перечисления.Статусы.Статус1, "А");
Элемент.СписокВыбора.Добавить(Перечисления.Статусы.Статус2, "Б");
1 vi0
 
03.02.15
10:00
подниму
2 Smallrat
 
03.02.15
10:08
создать элемент руками - убедится что так работает. в отладчике вывести его свойства, сохранить в таблицу, тоже самое с программным. сравнить две таблицы - посмотреть какие свойства отличаются.
3 Lys
 
03.02.15
10:10
Элемент.РежимВыбораИзСписка = Истина;
4 hhhh
 
03.02.15
10:18
(1) ну это, Элемент.СписокВыбора.Очистить();
5 Smallrat
 
03.02.15
10:48
(3) это необязательно. А еще эта галка приводит к интересным эффектам - например вам нужен список из элементов справочника, у которых проставлена Актуальность=Истина, так вот если взять объект, у которого в поле выбора выбран элемент с Актуальность=Ложь (какой-нить старый документ), то формирование списка выбора с галкой РежимВыбораИзСписка проставит проставит пустое значение в поле выбора.

Надо еще знать в каком режиме совместимости работает интерфейс - если режим отключен, там не работает выбор из списка как в 8.2, не срабатывает событие "НачалоВыбораИзСписка" - вышеприведённый пример как раз для отключенного режима.
6 vi0
 
03.02.15
11:11
(3) так получилось, тут я протупил - список задал, а флаг РежимВыбораИзСписка не установил
список при этом содержит только мои 2 элемента, а вывод что СписокВыбора содержит все значения перечисления + мои добавленные я сделал т.к. в результате в выпадающем списке платформа таки показывает все элементы перечисления + элементы списка выбора
спасибо
7 vi0
 
03.02.15
12:17
(5) а что ты имел ввиду под "это необязательно" ?
8 Smallrat
 
03.02.15
12:24
(7) ну вот так вот, например, тоже работает:
http://gyazo.com/62b4ae28f16ffb246b1923bea3a8eff2
чтобы лишних элементов не появлялось: выключен быстрый выбор и история выбора.
Но это все с отлюченным режимом совместимости - там со выборами из списка все переработали.
9 vi0
 
03.02.15
12:59
(8) а список выбора задан?
10 Smallrat
 
03.02.15
13:14
(9) естественно
Список = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Пакет");
Элементы.ПакетПерсональныхУслуг.СписокВыбора.ЗагрузитьЗначения(Список);
11 vi0
 
03.02.15
14:40
(10) понятно, ну вариант (3) у меня сейчас решил вопрос
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший