Имя: Пароль:
1C
 
Передать таблицу значений в запрос
0 Dimarik_1
 
22.06.15
14:00
Не могу понять, почему не получается передать таблицу значений в запрос
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Проект");
    ТЗ.Колонки.Добавить("СтатьяБюджета");
    ТЗ.Колонки.Добавить("Сумма");
    Для Каждого Строка Из Тч Цикл
        НоваяСтрока = ТЗ.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
    КонецЦикла;
    
    
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТЗ.Проект,
    |    ТЗ.СтатьяБюджета,
    |    ТЗ.Сумма
    |ПОМЕСТИТЬ ВТ
    |ИЗ
    |    &ТЗ КАК ТЗ
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ.Проект,
    |    птСоответствиеСтатейБюджетаСтатьямЗатрат.СтатьяЗатрат КАК Статья,
    |    ВТ.Сумма
    |ИЗ
    |    ВТ КАК ВТ
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.птСоответствиеСтатейБюджетаСтатьямЗатрат КАК птСоответствиеСтатейБюджетаСтатьямЗатрат
    |        ПО ВТ.СтатьяБюджета = птСоответствиеСтатейБюджетаСтатьямЗатрат.СтатьяБюджета";
    
    Запрос.УстановитьПараметр("ТЗ", ТЗ);
    РезультатЗапроса = Запрос.Выполнить();


Ошибка

{Форма.Форма.Форма(442)}: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(2, 2)}: Тип не может быть выбран в запросе
<<?>>ТЗ.Проект,
1 DTXqueque
 
22.06.15
14:01
(0) ТЗ нужно типизировать. А вообще у ТЧ есть метод Выгрузить()
2 СвинТуз
 
22.06.15
14:01
Запрос.УстановитьПараметр("ТЗ", ТЗ.Выгрузить());
3 ДенисЧ
 
22.06.15
14:01
Колонки типизировать надо.
4 Господин ПЖ
 
22.06.15
14:01
тз типизирована должна быть
5 Ващета
 
22.06.15
14:02
Про типизированные колонки уже упоминали?
6 DTXqueque
 
22.06.15
14:03
7 Aceforg
 
22.06.15
14:03
ТЗ.Колонки.Добавить("Проект",Новый ОписаниеТипов("Справочник.Проекты"));

как то так
8 Dimarik_1
 
22.06.15
14:05
ТЗ.Колонки.Добавить("Проект",Новый ОписаниеТипов("СправочникСсылка.Проекты"));
Имелось в виду так?
9 D_E_S_131
 
22.06.15
14:20
(8) Да, и тоже самое для других колонок проделать. Если колонка простого типа, то в конфигурациях бывает есть функции типа ОбщегоНазначения.ПолучитьОписаниеТипаЧисла(15,2).
10 Smile 8D
 
22.06.15
14:28
(8) Для твоего случая уже 2 раза подсказали, что надо просто написать "Запрос.УстановитьПараметр("ТЗ", ТЧ.Выгрузить());".
Тогда не надо будет создавать лишнюю ТЗ и типизировать.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший