Имя: Пароль:
1C
 
Проблема с обходом запроса
0 lanc2233
 
14.02.19
18:30
Не получается обойти запрос.
Убрал все лишнее и длинные наименования, чтобы легко читалось.
Есть Справочник1 и подчиненный ему Справочник2.
В справочнике 2 может не быть элементов. Нужно выбрать все элементы справочника 1, и в подчиненном ему цикле выбрать все элементы справочника 2.

ВЫБРАТЬ
    |    Справочник1.Ссылка КАК Значение1,
    |    Справочник2.Ссылка КАК Значение2
    |ИЗ
    |    Справочник.Справочник1.Ссылка  КАК Справочник1
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Справочник2 КАК Справочник2
    |        ПО Справочник1.Ссылка = Справочник2.Владелец
    |ГДЕ
    |    Справочник2.Владелец = &Параметр
    |ИТОГИ ПО
    |    Значение1


Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Параметр",Объект.Параметр);
Выборка1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка1.Следующий() Цикл
    Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.Прямой);
    Пока Выборка2.Следующий() Цикл
        А = Выборка2.Значение2;
    КонецЦикла;    
КонецЦикла;

Сейчас есть по одному значению в обеих справочниках.
А Выборка2.Значение2 = NULL

В консоли запроса выводит верно. Что делаю не так?
1 RomanYS
 
14.02.19
18:37
замени ГДЕ на И
2 azernot
 
14.02.19
18:39
|ГДЕ
    |    Справочник1.ССылка= &Параметр
3 lanc2233
 
14.02.19
18:41
Там на самом деле

|ГДЕ
    |    Справочник1.Владелец= &Параметр

Тоесть справочник 1 тоже подчиненный, и нам нужны элементы с определенным его владельцем.
Можно было убрать это условие
4 Ёпрст
 
гуру
14.02.19
18:59
(3) покажи реальный код тогда