Имя: Пароль:
1C
1С v8
Передать в запрос строки дерева значений и поместить во временную таблицу
,
0 Kookish
 
02.08.13
14:15
Еще раз добрый день. Вопрос в теме.
Уровней вложенности нет, то есть Дерево.Строки содержит все, что есть.
Есть ли стандартный способ поместить строки в ВТ, или только перенести в ТЗ, а ее уже передать в запрос?
1 ДенисЧ
 
02.08.13
14:16
В тз переноси
2 Kookish
 
02.08.13
14:55
А как правильно перенести типы из дерева в таблицу? Ругается постоянно. И так и так пробую. Вот последний вариант:

...
ТЗ_Печать = Новый ТаблицаЗначений;
Для Каждого Колонка Из ТЗ_Выборка.Колонки Цикл
        
   Если Найти(ВРег(Колонка.ТипЗначения), "СТРОКА")> 0 Тогда
      Тип = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(Колонка.Ширина));
   Иначе
      Тип = Новый ОписаниеТипов(Колонка.ТипЗначения);
   КонецЕсли;
        
   ТЗ_Печать.Колонки.Добавить(Колонка.Имя, Новый ОписаниеТипов(Тип), Колонка.Заголовок, Колонка.Ширина);
КонецЦикла;

...

ТЗ_Выборка - исходное дерево значений.
3 Kookish
 
02.08.13
14:56
Там у каждой колонки оказывается два типа: нужный и Null. Может в этом дело?
4 wladimir90
 
02.08.13
14:57
А на что ругается то?
5 Kookish
 
02.08.13
15:00
"Тип не может быть выбран в запросе". Это ниже, когда пытаюсь полученную ТЗ передать в запрос.
6 Kookish
 
02.08.13
15:00
Т. е., для запроса таблица "Недостаточно типизованная" оказывается.
7 ДенисЧ
 
02.08.13
15:02
(3) да, из-за этого
8 Kookish
 
02.08.13
15:04
Если убрать явную ошибку в строке:

   ТЗ_Печать.Колонки.Добавить(Колонка.Имя, Тип, Колонка.Заголовок, Колонка.Ширина);

То же самое.

Тогда как выцепить только нужный тип, без Null?

Колонка.ТипЗначения.Типы()[0] не прокатывает.
9 Kookish
 
02.08.13
15:14
Поудалял тип Null из каждого массива типов, результат тот же.
10 wladimir90
 
02.08.13
15:18
(9) Может запросу не нравится строка неограниченной длины? Попробуй ограничить длину.
11 Kookish
 
02.08.13
15:31
Все, разобрался. Там в коллекцию строк дерева вручную добавляли колонки, и не типизировали. Сейчас придумаю как лучше сделать.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший