|
Проблема при объединении двух временных таблиц | ☑ | ||
---|---|---|---|---|
0
Colci
17.05.12
✎
13:49
|
Здравствуйте. Нужно сделать запрос из двух временных таблиц. Пишу так:
Запрос=Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_1C ИЗ &ТЗ КАК Т1"); Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц; МВТ = Запрос.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТЗ",ТабОст1С); Запрос.Выполнить(); Запрос=Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_АВАРДА ИЗ &ТЗ КАК Т2"); Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТЗ",ТабОстАварда); Запрос.Выполнить(); ЗапросТМП=Новый Запрос("SELECT * FROM ВТ_1C КАК T1 FULL JOIN ВТ_АВАРДА КАК T2 ON N.ID_SYS = V.ID_SYS"); ЗапросТМП.МенеджерВременныхТаблиц = МВТ; //Копируем ссылку на временные таблицы мДанныеКонтрагентовАварда =ЗапросТМП.Выполнить().Выгрузить(); При выполнении пишет, что Ошибка при вызове метода контекста (Выполнить) мДанныеКонтрагентовАварда =ЗапросТМП.Выполнить().Выгрузить(); //Получаем временную таблицу в таблице значений по причине: {(1, 38)}: Таблица не найдена "ВТ_АВАРДА" SELECT * FROM ВТ_1C КАК T1 FULL JOIN <<?>>ВТ_АВАРДА КАК T2 ON N.ID_SYS = V.ID_SYS Что тут не так помогите. |
|||
1
Жан Пердежон
17.05.12
✎
13:50
|
(0) пишешь неправильно
|
|||
2
aleks-id
17.05.12
✎
13:51
|
если делаешь так как у тебя то просто меняй каждый раз текст запроса. иначе у тебя каждый раз новый объект создается а старый уничтожается.
|
|||
3
Рыцарь
17.05.12
✎
13:51
|
Запрос=Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_1C ИЗ &ТЗ КАК Т1");
Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц; МВТ = Запрос.МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТЗ",ТабОст1С); Запрос.Выполнить(); Запрос=Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_АВАРДА ИЗ &ТЗ КАК Т2"); Запрос.МенеджерВременныхТаблиц= МВТ; Запрос.УстановитьПараметр("ТЗ",ТабОстАварда); Запрос.Выполнить(); ЗапросТМП=Новый Запрос("SELECT * FROM ВТ_1C КАК T1 FULL JOIN ВТ_АВАРДА КАК T2 ON N.ID_SYS = V.ID_SYS"); ЗапросТМП.МенеджерВременныхТаблиц = МВТ; //Копируем ссылку на временные таблицы мДанныеКонтрагентовАварда =ЗапросТМП.Выполнить().Выгрузить(); |
|||
4
ИС-2
naïve
17.05.12
✎
13:51
|
я чтобы ошибок не было делаю через конструктор. Там будет проще сделать
|
|||
5
Ненавижу 1С
гуру
17.05.12
✎
13:53
|
(0) разные менеджеры временных таблиц
|
|||
6
Colci
17.05.12
✎
13:53
|
(2) конкретнее можно?
|
|||
7
aleks-id
17.05.12
✎
13:53
|
Запрос=Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_1C ИЗ &ТЗ1 КАК Т1");
Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("ТЗ1",ТабОст1С); Запрос.Выполнить(); Запрос.Текст="ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_АВАРДА ИЗ &ТЗ2 КАК Т2"; Запрос.УстановитьПараметр("ТЗ2",ТабОстАварда); Запрос.Выполнить(); Запрос.Текст="SELECT * FROM ВТ_1C КАК T1 FULL JOIN ВТ_АВАРДА КАК T2 ON N.ID_SYS = V.ID_SYS"; мДанныеКонтрагентовАварда =ЗапросТМП.Выполнить().Выгрузить(); |
|||
8
aleks-id
17.05.12
✎
13:53
|
но это через зад. лучше делать через пакет запросов.
|
|||
9
Жан Пердежон
17.05.12
✎
13:55
|
Запрос = Новый ("ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_1C ИЗ &ТЗ КАК Т1;
|ВЫБРАТЬ * ПОМЕСТИТЬ ВТ_АВАРДА ИЗ &ТЗ КАК Т2; |SELECT * FROM ВТ_1C КАК T1 FULL JOIN ВТ_АВАРДА КАК T2 ON N.ID_SYS = V.ID_SYS"); Запрос.УстановитьПараметр("ТЗ",ТабОстАварда); Запрос.УстановитьПараметр("ТЗ",ТабОстАварда); мДанныеКонтрагентовАварда =ЗапросТМП.Выполнить().Выгрузить(); только вместо * имена полей написать надо |
|||
10
aleks-id
17.05.12
✎
13:58
|
(9) облажался в во 2й и 5й строчке
одинаковые параметры устанавливаешь |
|||
11
Colci
17.05.12
✎
13:59
|
(7),(9) Спасибо за ответы я понял в чем ошибка, я перезатерал объект.
Спасибо за вариант пакетной обработки запросов не знал про него. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |