Имя: Пароль:
1C
1С v8
Получить запросом элементы справочника без родителя
,
0 prilforreal
 
04.10.18
16:14
Добрый день! Нужно запросом получить элементы справочника без родителей, но на выходе получаю пустую выборку.

ПС=Справочники.Контрагент.ПустаяСсылка();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагент.Ссылка КАК Дилер,
        |    Контрагент.ЭлПочта КАК ЭлПочта
        |ИЗ
        |    Справочник.Контрагент КАК Контрагент
        |ГДЕ
        |    НЕ Контрагент.ЭлПочта = """"
        |    И Контрагент.Родитель.Ссылка = &ПС
        |
        |УПОРЯДОЧИТЬ ПО
        |    Контрагент.Наименование";
    
    Запрос.УстановитьПараметр("ПС", ПС);
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
        ТЗ=ТЗдилеры.Добавить();
        ТЗ.Дилер = ВыборкаДетальныеЗаписи.Дилер;
        ТЗ.ЭлПочта = ВыборкаДетальныеЗаписи.ЭлПочта;
    КонецЦикла;
1 asady
 
04.10.18
16:16
ВЫБРАТЬ
        |    Контрагент.Ссылка КАК Дилер,
        |    Контрагент.ЭлПочта КАК ЭлПочта
        |ИЗ
        |    Справочник.Контрагент КАК Контрагент ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагент КАК КА_Родитель По Контрагент.Родитель = КА_Родитель.Ссылка
        |ГДЕ
        |    НЕ Контрагент.ЭлПочта = """"
        |    И КА_Родитель.Ссылка ЕСТЬ NULL
        |
        |УПОРЯДОЧИТЬ ПО
        |    Контрагент.Наименование";
2 xXeNoNx
 
04.10.18
16:17
(1) фи...
3 aleks_default
 
04.10.18
16:17
Справочник из одного контрагента? Оригинальненько...
4 Ненавижу 1С
 
гуру
04.10.18
16:21
"ВЫБРАТЬ
        |    Контрагент.Ссылка КАК Дилер,
        |    Контрагент.ЭлПочта КАК ЭлПочта
        |ИЗ
        |    Справочник.Контрагент КАК Контрагент
        |ГДЕ
        | Контрагент.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагент.ПустаяСсылка)
        |
        |УПОРЯДОЧИТЬ ПО
        |    Контрагент.Наименование";
5 lodger
 
04.10.18
16:25
(0) сократи условие:
        |ГДЕ
        |    Контрагент.ЭлПочта <> """"
        |    И Контрагент.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагент.ПустаяСсылка)
6 cons24
 
04.10.18
16:39
Проверять надо Не "Родитель.Ссылка", а "Родитель".
Иначе запрос получает Родитель=ПустаяСсылка, а у неё свойство Ссылка=NULL.
7 prilforreal
 
04.10.18
16:43
(4) (5) Спасибо большое, все заработало!) А почему не работало с моим условием?