Имя: Пароль:
1C
1С v8
Не могу засунуть таблицу через МенеджерВременныхТаблиц
,
0 SeregaMW
 
25.10.11
09:41
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ1 ИЗ &ТЗ1 КАК ТЗ1";
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ2 ИЗ &ТЗ2 КАК ТЗ2";
Запрос.УстановитьПараметр("ТЗ1", Таблица1);
Запрос.УстановитьПараметр("ТЗ2", Таблица2);
Запрос.Выполнить();

пишет ошибку:
по причине:
{(1, 28)}: Тип не может быть выбран в запросе
ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ2 ИЗ <<?>>&ТЗ2 КАК ТЗ2

Платформа 8.2
1 ДенисЧ
 
25.10.11
09:42
таблицы значений типизированы?
2 Defender aka LINN
 
25.10.11
09:46
(1) Сам же видишь :)
3 ДенисЧ
 
25.10.11
09:47
(2) я типа намекаю :-)
4 aleks-id
 
25.10.11
09:47
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ1 ИЗ &ТЗ1 КАК ТЗ1";
Запрос.УстановитьПараметр("ТЗ1", Таблица1);
Запрос.Выполнить();
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ2 ИЗ &ТЗ2 КАК ТЗ2";
Запрос.УстановитьПараметр("ТЗ2", Таблица2);
Запрос.Выполнить();
5 aleks-id
 
25.10.11
09:48
+(4) ну и +(1)
6 Defender aka LINN
 
25.10.11
09:48
(4) Это, кончено, тоже, но уже во вторую очередь
7 SeregaMW
 
25.10.11
09:50
Колонки не были типизированы
После обхода
Процедура ТипизацияТЗ(ТЗ)
   РезультатТЗ = новый ТаблицаЗначений;
   Для Каждого Колонка из ТЗ.Колонки Цикл
       Имя = Колонка.Имя;
       МассивТипов = новый Массив(1);
       МассивТипов[0] = ТипЗнч(ТЗ[0][Имя]);
       Описатель = новый ОписаниеТипов(МассивТипов);
       РезультатТЗ.Колонки.Добавить(Имя, Описатель);
   КонецЦикла;
   
   Для каждого Строка из ТЗ Цикл
       СтрокаРез = РезультатТЗ.Добавить();
       ЗаполнитьЗначенияСвойств(СтрокаРез, Строка);
   КонецЦикла;
   
   ТЗ = РезультатТЗ.Скопировать();
КонецПроцедуры

Запрос таким образом работает добавляет 2 ТЗ

ТипизацияТЗ(Таблица1);    
ТипизацияТЗ(Таблица2);    
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ1 ИЗ &ТЗ1 КАК ТЗ1";
Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ2 ИЗ &ТЗ2 КАК ТЗ2";
Запрос.УстановитьПараметр("ТЗ1", Таблица1);
Запрос.УстановитьПараметр("ТЗ2", Таблица2);
Запрос.Выполнить();
8 Sammo
 
25.10.11
09:50
Забыли еще спросить - как получены таблицы и нельзя ли сделать запрос пакетником...
:)
9 aleks-id
 
25.10.11
09:52
(7) теперь см. (4)
10 SeregaMW
 
25.10.11
09:54
(9) В чем разница между (7) и (4)
11 aleks-id
 
25.10.11
09:55
(10) погляди в отладчике что у тебя будет в тексте запроса когда он будет выполняться...
12 Reset
 
25.10.11
09:58
(10) За такой вопрос сразу пожизненно из программирования гнать
13 SeregaMW
 
25.10.11
10:01
(11)(12) Принципиальной разницы нету. Что там Что там подгружаются ТЗ. ТЕкст тоже идентичный.? Разьясните?
14 Reset
 
25.10.11
10:04
(13) В первый класс, за буквари, и учить оператор присваивания и что происходит со значениями переменных в результате
15 SeregaMW
 
25.10.11
10:23
(14) Объясни вчем тут дело?
16 Reset
 
25.10.11
10:44
(15) Выполни код. Может наступит просветление. Объяснять такое... не могу

Запрос=Новый Запрос;
Запрос.Текст="Достижения (опыт): Не стреляйте в программистов, они пишут как умеют.   ";
Запрос.Текст="Я и диод";
Сообщить(Запрос.Текст);
17 SeregaMW
 
25.10.11
11:16
(16) Если не можешь и гавкать не надо!
Злобный троль ты, если бы я у тебя это спросил в реале то после такого ответа набил ебло!

А правельный ответ:
"Ты перезаписываешь текст запроса"
Хотя так запрос исполнятся корректно, хз. почему но это так!
18 НЕА123
 
25.10.11
11:27
(17)
потому что 86.