| Временные таблицы в 8.1 - обязательная типизация полей таблиц значений-источниковКлючевые слова: таблица, ошибка, тип, запрос, менеджервременныхтаблиц, поместить
 
 
 Первая проблема при работе с временными таблицами у меня возникла, кодга попытался передать в качестве
 источника таблицу значений - получил не совсем понятную ошибку:
 "Ошибка при вызове метода контекста (Выполнить): Тип не может быть выбран в запросе".
 
 Оказалось все просто - все колнки таблицы значений должны быть типизированы.
 
 Примерно так:
 
 
 ТаблицаПодразделений = Новый ТаблицаЗначений;
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.ПодразделенияОрганизаций"));
ДопустимыеТипы = Новый ОписаниеТипов(МассивТипов);
ТаблицаПодразделений.Колонки.Добавить("Подразделение", ДопустимыеТипы);
МассивТипов.Очистить();
КЧ = Новый КвалификаторыЧисла();
МассивТипов.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(МассивТипов, , ,КЧ);
ТаблицаПодразделений.Колонки.Добавить("УровеньПодразделения", ОписаниеТиповЧ);
 
 При этом описания необходимости этого в книге 1С:Предприятие 8.1 Бета-версия "Конфигурирование и
 администрирование" я не нашёл. Подсказали на этом форуме.
 
 От гения 1С:
 Для написания запросов над временными таблицами 8.1 удобна методика: Книга знаний: v8: Конструирование сложных запросов для 1С
 
 От zag2art
 Если есть ТЗ, в каждой колонке которой значения всего одного типа, для типизации колонок, можно
 воспользоваться функцией:
 [1с]
 Процедура ТипизацияТЗ(ТЗ) Экспорт
 РезультатТЗ = новый ТаблицаЗначений;
 Для Каждого Колонка из ТЗ.Колонки Цикл
 Имя = Колонка.Имя;
 МассивТипов = новый Массив(1);
 МассивТипов[0] = ТипЗнч(ТЗ[0][Имя]);
 Описатель = новый ОписаниеТипов(МассивТипов);
 РезультатТЗ.Колонки.Добавить(Имя, Описатель);
 КонецЦикла;
 
 Для каждого Строка из ТЗ Цикл
 СтрокаРез = РезультатТЗ.Добавить();
 ЗаполнитьЗначенияСвойств(СтрокаРез, Строка);
 КонецЦикла;
 
 ТЗ = РезультатТЗ.Скопировать();
 КонецПроцедуры
 [/1с]
 
 От lxs
 Если мы говорим про выборку данных из какого-либо документа, то достаточно сделать так:
 
 
 
ТЗ = <СсылкаНаОбъект.ТабличнаяЧасть>.ВыгрузитьКолонки();
 
 Результатом будет таблица значений со структурой и типизацией полей табличной части.
 |