Имя: Пароль:
1C
1С v8
Динамическое изменение типа значения табличного поля
0 xaozai
 
17.01.14
18:02
Есть такое код:
ЭлементыФормы.ТПДляВсехСправочников.Данные = Неопределено;
ЭлементыФормы.ТПДляВсехСправочников.ТипЗначения = Новый ОписаниеТипов("СправочникСписок." + ЭлементыФормы.ИмяСправочникаДляСсылок.Значение);//Допустим, "СправочникСписок.Банки"
ЭлементыФормы.ТПДляВсехСправочников.Данные = "ТПДляВсехСправочников";
ЭлементыФормы.ТПДляВсехСправочников.СоздатьКолонки();

Он отрабатывает, колонки создаются, но элементы не выводятся.
Как сделать, чтобы выводились?
(ТПДляВсехСправочников - это табличное поле)
1 hhhh
 
17.01.14
18:10
а что должно выводиться? ВЫ добавили какие-то элементы?
2 xaozai
 
17.01.14
18:12
(1) В справочнике они есть.
3 xaozai
 
17.01.14
18:21
Вот так работает, только без картинок (группа/элемент) выводится:
ЭлементыФормы.ТПДляВсехСправочников.Данные = Неопределено;
ЭлементыФормы.ТПДляВсехСправочников.ТипЗначения = Новый ОписаниеТипов("СправочникСписок." + ЭлементыФормы.ИмяСправочникаДляСсылок.Значение);
ЭлементыФормы.ТПДляВсехСправочников.Данные = "ТПДляВсехСправочников";
Запрос = Новый Запрос("Выбрать * Из Справочник." + ЭлементыФормы.ИмяСправочникаДляСсылок.Значение);
ТПДляВсехСправочников = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТПДляВсехСправочников.СоздатьКолонки();
4 Asmody
 
17.01.14
18:22
реквизит ТПДляВсехСправочников какой тип имеет?
5 xaozai
 
17.01.14
18:34
(4) Кстати, таблица значений.
А как сделать, чтобы там данные справочника были?
6 hhhh
 
17.01.14
19:00
есть реквизит ТПДляВсехСправочников. ОН имеет какой-то тип

когда пишете

ЭлементыФормы.ТПДляВсехСправочников.Данные = "ТПДляВсехСправочников";

элементу формы присваивается этот же тип. Поэтому зачем выражение

ЭлементыФормы.ТПДляВсехСправочников.ТипЗначения =

оно следующей же строчкой перетирается.
у вас
7 xaozai
 
17.01.14
21:49
(6) Да, я понял... А как данные справочника туда прописать?
8 xaozai
 
20.01.14
14:08
То, что нужно получил тремя строчками:
ЭлементыФормы.ТПДляВсехСправочников.Данные = Неопределено;
ЭлементыФормы.ТПДляВсехСправочников.ТипЗначения = Новый ОписаниеТипов("СправочникСписок." + ЭлементыФормы.ИмяСправочникаДляСсылок.Значение);
ЭлементыФормы.ТПДляВсехСправочников.СоздатьКолонки();
Программист всегда исправляет последнюю ошибку.