Имя: Пароль:
1C
1С v8
Запрос к ТаблцамЗначений
,
0 Black Dragon
 
17.12.13
15:08
Дорого дня всем!

хотел обмануть судьбу, сделать запрос с объединением к 2 ТЗ и результ выгрузить в 3-ю!

Однако "Содержимое объекта данных может быть выбрано только во временную таблицу"

Как побороть?

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ТЗ1.Период,
    |    ТЗ1.Организация,
    |    ТЗ1.Регистратор,
    |    ТЗ1.Счет,
    |    ТЗ1.Субконто1,
    |    ТЗ1.Субконто2,
    |    ТЗ1.Субконто3,
    |    ТЗ1.КорСчет,
    |    ТЗ1.КорСубконто1,
    |    ТЗ1.КорСубконто2,
    |    ТЗ1.КорСубконто3,
    |    ТЗ1.КоличествоОборот КАК Количество1,
    |    ТЗ1.СуммаОборот КАК Сумма1,
    |    0 КАК Количество2,
    |    0 КАК Сумма2,
    |    ТЗ1.КоличествоОборот КАК КоличествоРазность,
    |    ТЗ1.СуммаОборот КАК СуммаРазность
    |ИЗ
    |    &ТЗ1 КАК ТЗ1
    |    
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ТЗ2.Период,
    |    ТЗ2.Организация,
    |    ТЗ2.Регистратор,
    |    ТЗ2.Счет,
    |    ТЗ2.Субконто1,
    |    ТЗ2.Субконто2,
    |    ТЗ2.Субконто3,
    |    ТЗ2.КорСчет,
    |    ТЗ2.КорСубконто1,
    |    ТЗ2.КорСубконто2,
    |    ТЗ2.КорСубконто3,
    |    0 КАК Количество1,
    |    0 КАК Сумма1,
    |    ТЗ2.КоличествоОборот КАК Количество2,
    |    ТЗ2.СуммаОборот КАК Сумма2,
    |    0 - ТЗ2.КоличествоОборот КАК КоличествоРазность,
    |    0 - ТЗ2.СуммаОборот КАК СуммаРазность
    |ИЗ
    |    &ТЗ2 КАК ТЗ2";
    
    Запрос.УстановитьПараметр("ТЗ1",ТабРезультатов);
    Запрос.УстановитьПараметр("ТЗ2",ТабРезультатов2);
    
    РезТабл = Запрос.Выполнить().Выгрузить();
1 GROOVY
 
17.12.13
15:09
Ну так чего тебе не понятного конфигуратор написал?

Выгружай обе ТЗ во временные таблицы, а уж потом над ними делай все что хочешь.
2 МихаилМ
 
17.12.13
15:10
ну будте настоящим программистом: напишите метод объединения
сами.

ну или скд Вам в помощь
3 Black Dragon
 
17.12.13
15:11
Дык хотел обойти этот момент!
4 Black Dragon
 
17.12.13
15:12
Может можно объединить в запросе 2 ВТ?
5 Ёпрст
 
17.12.13
15:13
(4) можно, см (1)
6 Black Dragon
 
17.12.13
15:16
Заманчиво!
7 Maxus43
 
17.12.13
15:17
|ИЗ
    |ПОМЕСТИТЬ ВТ_Общая
    |    &ТЗ2 КАК ТЗ2";
    |///////////////
    |Выбрать
    |*
    |ИЗ
    |ВТ_Общая КАК ВТ_Общая
8 Maxus43
 
17.12.13
15:18
точней Поместить с первым ИЗ.
Короче засунь этот запрос в ВТ, потом из неё выберешь во втором пакете запроса
9 Maxus43
 
17.12.13
15:19
"ВЫБРАТЬ
         |    Банки.Ссылка
         |ПОМЕСТИТЬ втОбщак
         |ИЗ
         |    Справочник.Банки КАК Банки
         |
         |ОБЪЕДИНИТЬ ВСЕ
         |
         |ВЫБРАТЬ
         |    Валюты.Ссылка
         |ИЗ
         |    Справочник.Валюты КАК Валюты
         |;
         |
         |////////////////////////////////////////////////////////////////////////////////
         |ВЫБРАТЬ
         |    втОбщак.Ссылка
         |ИЗ
         |    втОбщак КАК втОбщак"
10 Black Dragon
 
17.12.13
15:21
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ТЗ1.Период,
    |    ТЗ1.Организация,
    |    ТЗ1.Регистратор,
    |    ТЗ1.Счет,
    |    ТЗ1.Субконто1,
    |    ТЗ1.Субконто2,
    |    ТЗ1.Субконто3,
    |    ТЗ1.КорСчет,
    |    ТЗ1.КорСубконто1,
    |    ТЗ1.КорСубконто2,
    |    ТЗ1.КорСубконто3,
    |    ТЗ1.КоличествоОборот КАК Количество1,
    |    ТЗ1.СуммаОборот КАК Сумма1,
    |    0 КАК Количество2,
    |    0 КАК Сумма2,
    |    ТЗ1.КоличествоОборот КАК КоличествоРазность,
    |    ТЗ1.СуммаОборот КАК СуммаРазность
    |ПОМЕСТИТЬ В ВТ1
    |ИЗ
    |    &ТЗ1 КАК ТЗ1;
    |//===============================================
    |ВЫБРАТЬ
    |    ТЗ2.Период,
    |    ТЗ2.Организация,
    |    ТЗ2.Регистратор,
    |    ТЗ2.Счет,
    |    ТЗ2.Субконто1,
    |    ТЗ2.Субконто2,
    |    ТЗ2.Субконто3,
    |    ТЗ2.КорСчет,
    |    ТЗ2.КорСубконто1,
    |    ТЗ2.КорСубконто2,
    |    ТЗ2.КорСубконто3,
    |    0 КАК Количество1,
    |    0 КАК Сумма1,
    |    ТЗ2.КоличествоОборот КАК Количество2,
    |    ТЗ2.СуммаОборот КАК Сумма2,
    |    0 - ТЗ2.КоличествоОборот КАК КоличествоРазность,
    |    0 - ТЗ2.СуммаОборот КАК СуммаРазность
    |ПОМЕСТИТЬ В ВТ2
    |ИЗ
    |    &ТЗ2 КАК ТЗ2;
    |//================================================
    |ВЫБРАТЬ
    |    ВТ1.*
    |ИЗ
    |    ВТ1
    |    
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ВТ2.*
    |ИЗ
    |    ВТ2";
11 МихаилМ
 
17.12.13
15:32
(10)
неужели просто
написать

дополнить нужными колонками
далее тупо два цикла.

для ии = 1 по колвоСтрокТЗ2
текстр2 =

добстр1 = тз1.добавить;
для жи = 1 по колвополей  

добстр1[жи] =  текстр2[жи];
12 Black Dragon
 
17.12.13
15:34
(11) и для чего это? мне дельты нужны по одинаковым строкам! посмотри что я в запросе делаю!
13 МихаилМ
 
17.12.13
15:37
(12)

в (11)

еше свернуть
14 Black Dragon
 
17.12.13
15:42
(13) господин не любитель запросов? :))
15 Полотенчик
 
17.12.13
15:44
(14) зачем ради банальных расчетов за счет проца и оперативки гонять таблицы на сервер с СУБД, записывать их на жесткий диск, получать, делать такие же банальные расчеты и возвращать клиенту?
16 Black Dragon
 
17.12.13
15:48
(15)а зачем вы вообще 1С пользуетесь? ведите учет в тетрадке!
17 Black Dragon
 
17.12.13
15:49
во-первых это очень быстро работает! :)=)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс