Имя: Пароль:
1C
 
вывести 2 таблицы значений в запрос
0 Vvvvv
 
10.02.15
22:09
Есть у меня 2 таблицы значений. Две колонки "Номер" и "Символ". Некоторые поля одинаковые, а некоторые нет.
Нужно объединить таблицы, хочу сделать в запросе. Сделал так. Неправильно то, что я использовал 2 временные таблицы.

ТЗ1 = новый ТаблицаЗначений;
    ТЗ1.Колонки.Добавить("Номер", новый ОписаниеТипов("Строка"), новый КвалификаторыСтроки(200));
    ТЗ1.Колонки.Добавить("Символ", новый ОписаниеТипов("Строка"), новый КвалификаторыСтроки(200));
    ТЗ2 = новый ТаблицаЗначений;
    ТЗ2.Колонки.Добавить("Номер", новый ОписаниеТипов("Строка"), новый КвалификаторыСтроки(200));
    ТЗ2.Колонки.Добавить("Символ", новый ОписаниеТипов("Строка"), новый КвалификаторыСтроки(200));
    

    
    Мен = новый МенеджерВременныхТаблиц;
    Запрос1 = новый Запрос;
    Запрос1.МенеджерВременныхТаблиц = Мен;
    Запрос1.УстановитьПараметр("ТЗ1", ТЗ1);
    Запрос1.Текст = "ВЫБРАТЬ
                    |*
                    |Поместить Таб1
                    |ИЗ &ТЗ1 Как ТЗ1";
    Выборка1 = Запрос1.Выполнить();
    
    Запрос2 = новый Запрос;
    Запрос2.МенеджерВременныхТаблиц = мен;
    Запрос2.УстановитьПараметр("ТЗ2", ТЗ2);
    Запрос2.Текст = "ВЫБРАТЬ
                    |*
                    |Поместить Таб1
                    |ИЗ &ТЗ2 Как ТЗ2";
    Выборка2 = Запрос2.Выполнить();

    
    Запрос = новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Мен;
    //Запрос1.УстановитьПараметр("ТЗ2", ТЗ2);
    Запрос.Текст = "ВЫБРАТЬ
                   |    Таб1.Номер,
                   |    Таб1.Символ,
                   |    Таб2.Номер КАК Номер1,
                   |    Таб2.Символ КАК Символ1
                   |ИЗ
                   |    Таб1 КАК Таб1
                   |        ПОЛНОЕ СОЕДИНЕНИЕ Таб2 КАК Таб2
                   |        ПО Таб1.Номер = Таб2.Номер";
    Выборка = запрос.Выполнить().Выбрать();
    пока Выборка.Следующий() цикл
        Сообщить(Выборка.Номер);
    КонецЦикла;
1 mikecool
 
10.02.15
22:10
мог бы и пакетный запрос написать
2 hhhh
 
10.02.15
22:11
МенеджерВременныхТаблиц выкинь. пользуйся пакетами запросов.
3 Vvvvv
 
10.02.15
22:17
А как использовать пакетные запросы. Можете показать.
4 Wern
 
10.02.15
22:20
Запрос1.Текст = "ВЫБРАТЬ
                    |*
                    |Поместить Таб1
                    |ИЗ &ТЗ1 Как ТЗ1;
                    |ВЫБРАТЬ
                    |*
                    |Поместить Таб1
                    |ИЗ &ТЗ2 Как ТЗ2;... дальше третий запрос
5 mikecool
 
10.02.15
22:20
выбрать
поместить _вт1
;
выбрать
поместить _вт2
;
выбрать из _вт1, _вт2
;
уничтожить _вт1
;
уничтожить _вт2
;
2 + 2 = 3.9999999999999999999999999999999...