|
Передать таблицу значений в запрос |
☑ |
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 раза подсказали, что надо просто написать "Запрос.УстановитьПараметр("ТЗ", ТЧ.Выгрузить());".
Тогда не надо будет создавать лишнюю ТЗ и типизировать.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший