|
Возможно ли в запрос передать ТаблицаЗначений? |
☑ |
0
oleg_prg
28.08.12
✎
12:09
|
Всем доброго дня, нужна консультация.
Возможно ли в запрос передать ТаблицаЗначений?
То что массив можно, я в курсе, а вот ТаблицуЗначений бы...
Спасибо!
|
|
1
mikecool
28.08.12
✎
12:10
|
можно, через временную таблицу
|
|
2
pumbaEO
28.08.12
✎
12:10
|
Да можно, изучай МенеджерВременныхТаблиц
|
|
3
mikecool
28.08.12
✎
12:11
|
(2) да и без него можно, если пакетом
|
|
4
oleg_prg
28.08.12
✎
12:11
|
Можно пример, ПОЖАЛУЙСТА!!!
|
|
5
chelentano
28.08.12
✎
12:12
|
(4) Запрос.УстановитьПараметр("ТЗ", ТЗ);
|
|
6
chelentano
28.08.12
✎
12:12
|
(4) Запрос.Текст = "ВЫБРАТЬ ТЗ.Поле1 ИЗ &ТЗ КАК ТЗ";
|
|
7
oleg_prg
28.08.12
✎
12:12
|
Вроде так и делал... Странно, наверно туплю, ща попробую еще раз
|
|
8
mikecool
28.08.12
✎
12:13
|
Запрос.УстановитьПараметр("ТаблицаЗначений", ТаблицаЗначений);
Запрос.Текст = "
Выбрать поля Поместить _ВТ_ Из & ТаблицаЗначений;
....
"
учти - поля ТЗ должны быть типизированы
|
|
9
mehfk
28.08.12
✎
12:13
|
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст="
|ВЫБРАТЬ
| Табл.Сумма КАК Сумма
|ПОМЕСТИТЬ ТаблицаДляЗагрузки
|ИЗ
| &ТаблТ КАК Табл
|";
Запрос.УстановитьПараметр("ТаблТ",ТаблицаДляЗагрузки);
Запрос.Выполнить();
|
|
10
Reset
28.08.12
✎
12:13
|
(0) букву Я нажми, там дофига примеров
|
|
11
Wobland
28.08.12
✎
12:13
|
(6) не взлетит же. из &ТЗ надо в таблицу выбирать, а уже потом...
|
|
12
chelentano
28.08.12
✎
12:14
|
(11) ну да, ну да :) наспех писал, в заблуждение ввёл, приношу извинения перед ТС
|
|
13
mikecool
28.08.12
✎
12:15
|
(9) ну вот нафига менеджер? его передавать другому запросу разве надо будет?
|
|
14
oleg_prg
28.08.12
✎
12:27
|
Всем спасибо огромное, все получилось.
Вот накидал рабочий код
ТЗ = новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Поле1",Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("Поле2",Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Поле3",Новый ОписаниеТипов("Строка"));
Для А = 1 По 5 Цикл
НС = ТЗ.Добавить();
НС.Поле1 = А;
НС.Поле2 = СокрЛП(А)+"Поле2";
НС.Поле3 = СокрЛП(А)+"Поле3";
КонецЦикла;
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ *
|ПОМЕСТИТЬ ТаблицаДляЗагрузки
|ИЗ
| &ТЗ КАК Табл
|;
|
|ВЫБРАТЬ * ИЗ ТаблицаДляЗагрузки";
Запрос.УстановитьПараметр("ТЗ",ТЗ);
ТТ = Запрос.Выполнить().Выгрузить();
|
|
15
Buster007
28.08.12
✎
12:28
|
(13) потому что увидел он код где используется менеджер и тупо по памяти пишет не вникая...
|
|
16
Reset
28.08.12
✎
12:30
|
(14) СокрЛП( заменить на Строка( для ясности, а так нормально
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший