Имя: Пароль:
1C
1С v8
Как получить тип значения из реквизита типа метаданных?
0 valeriy vm
 
16.04.12
16:48
Процедура ОтборРеквизитовВыбЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)
   Элемент.ТипЗначения = Новый ОписаниеТипов(Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип);
КонецПроцедуры

Как установить типЗначения? известно имя реквизита и тип.
Что не выбирать тип значения в ручную в колонке.
1 _Demos_
 
16.04.12
16:51
Реквизит =  справочник.контры.пустаяссылка()
2 valeriy vm
 
16.04.12
16:54
нет. у реквизитов справочника может быть разные справочники или даже перечисления или число со строкой.
Я имею список реквизитов справочника, в зависимости от выбора реквизита надо проставить соответствующий типзначения
3 ptiz
 
16.04.12
16:57
Элемент.ТипЗначения = Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип;
4 valeriy vm
 
16.04.12
16:59
(3){Форма.Форма.Форма(35)}: Ошибка при установке значения атрибута контекста (ТипЗначения)
   Элемент.ТипЗначения = Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип;
по причине:
Нельзя изменять тип связанного с данными элемента управления
нет тоже
5 ptiz
 
16.04.12
17:25
Тебе же пишут по-русски: Нельзя изменять тип связанного с данными элемента управления
6 valeriy vm
 
16.04.12
18:42
(5)и где его отвязать? у этого элемента определенно составной тип данных и ВСЕ! какая еще связь?
7 ptiz
 
16.04.12
18:47
(6) Ты определись, что нужно. Ограничить тип данных при выборе пользователем? Тогда смотри ОграничениеТипа. Записать пустое значение нужного типа? Тогда просто присваивай это пустое значение.
8 valeriy vm
 
16.04.12
18:48
()+
9 valeriy vm
 
16.04.12
18:48
(7)+
10 valeriy vm
 
16.04.12
19:11
Элемент.ОграничениеТипа = Новый ОписаниеТипов(Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип)
попробую завтра так сделать, но смущает следующее: ни где не указывается что это справоникссылка или что-то другое?
вот эта строчка
Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип
передает только имя типа значения а сам тип нет, может я заблуждаюсь.
11 valeriy vm
 
17.04.12
08:23
Вот рабочая процедура получилась:
Процедура ОтборРеквизитовВыбЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)
   Элемент.ОграничениеТипа  = Новый ОписаниеТипов(Метаданные.Справочники.Номенклатура.Реквизиты.Найти(ЭлементыФормы.ОтборРеквизитов.ТекущаяСтрока.ВыбРеквизит).Тип);
   Значение                 = Элемент.Значение;
   Элемент.Значение         = Элемент.ОграничениеТипа.ПривестиЗначение(Значение);
   Элемент.ВыбратьТип         = ложь;
КонецПроцедуры
то что надо. что-то в хелп не посмотрел)