Имя: Пароль:
1C
 
установка типа поля ввода
0 Bibr
 
02.04.15
16:34
подкиньте строчку плиз.

обработка для установки любой константы.
на форме выпадающий список - выбор константы и поле ввода значения.

конст - тип выбираемой константы
ЗначениеКонстанты - реквизит типа произвольный. и аналогичное поле ввода.


    ЗначениеКонстанты = Константы[конст].Получить();
    

    МассивТипов=Новый Массив();
    МассивТипов.Добавить(ТипЗнч(ЗначениеКонстанты));          
    ТипК = Новый ОписаниеТипов(МассивТипов);
    
    ЭлементыФормы.ЗначениеКонстанты.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
    ЭлементыФормы.ЗначениеКонстанты.ТипЗначения.ПривестиЗначение(Новый ОписаниеТипов(МассивТипов));
    ЭлементыФормы.ЗначениеКонстанты.Значение = ТипК.ПривестиЗначение(ЗначениеКонстанты);    
    

что-то и так и сяк кручу - не даёт полю ввода нужный тип - чтобы выбрать можно было.
Гуглёж не помог.
1 фобка
 
02.04.15
16:56
Просто ограничение типа ставишь и все
2 Bibr
 
02.04.15
17:09
(1)

пробовал.

значение новое выбрать нельзя.
т.е. из константы значение считывает, в поле записывает.
а вот изменить его в поле ввода потом нельзя. будь то строка, булево или справочник
3 Bibr
 
02.04.15
18:47
иииии?
4 Bibr
 
03.04.15
09:35
ап)
5 Ma3eIIa
 
03.04.15
09:46
Процедура ПриОткрытии()
    
    ЭлементыФормы.ПолеВыбора1.СписокВыбора.Очистить();
    
     Для каждого СтрКонстанты Из Метаданные.Константы Цикл
    
             ЭлементыФормы.ПолеВыбора1.СписокВыбора.Добавить(СтрКонстанты.Имя)
    
     КонецЦикла;
    
    
    
КонецПроцедуры

Процедура ПолеВыбора1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ЗначениеКонстанты = Константы[ВыбранноеЗначение].Получить();
    

    МассивТипов=Новый Массив();
    МассивТипов.Добавить(ТипЗнч(ЗначениеКонстанты));          
    ТипК = Новый ОписаниеТипов(МассивТипов);
    
    ЭлементыФормы.ПолеВвода1.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
    ЭлементыФормы.ПолеВвода1.ТипЗначения.ПривестиЗначение(Новый ОписаниеТипов(МассивТипов));
    ЭлементыФормы.ПолеВвода1.Значение = ТипК.ПривестиЗначение(ЗначениеКонстанты);  
КонецПроцедуры
6 patria0muerte
 
03.04.15
09:53
(0) Попробуй так:

ЭлементыФормы.ЗначениеКонстанты.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
ЭлементыФормы.ЗначениеКонстанты.Значение = ЭлементыФормы.ЗначениеКонстанты.ОграничениеТипа.ПривестиЗначение(ЗначениеКонстанты);

Вроде те же яйца, но может поможет...
7 Bibr
 
03.04.15
11:35
(5) у меня также точно буква в букву)
Смысл в том, что ЗначениеКонстанты получается, приводится, всё здорово. Но поле ввода не работает - нельзя выбрать значение.
Может с самим полем ввода и данными надо что-то сделать?
Сейчас у меня там в данных реквизит обработки, тип произвольный. Попробовал также реквизит формы и вообще без данных. Эффект один и тот же.

(6) неа, не помогло.
8 Ma3eIIa
 
03.04.15
22:36
(7) странно. и у меня произвольный. выбрал первую попавшую константу дает выбрать значение