Имя: Пароль:
1C
1С v8
Не получается выбрать нужные данные запросом
,
0 Arch Dornan
 
21.07.18
12:16
Здравствуйте, сразу извиняюсь за плохой код.
Пытаюсь выбрать данные из справочника, чтобы в результат запроса попали те, которых нет в табличной части формы. Т.е. если в табличной части ПереченьУчастников есть Сотрудник1, то из справочника надо запросом достать всех, кроме него. В чём проблема: если в табличной части пусто, то запрос вообще ничего не выдаёт, только пустые строки. Пытался избавиться от пустых строк функцией ЕСТЬ NULL, но ничего не получилось.

&НаСервереБезКонтекста
Процедура ТестовыйЗапрос()
    ТЗ = Новый ТаблицаЗначений;
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    ФизическиеЛица.Ссылка,
    |    ФизическиеЛица.Город.Наименование,
    |    Договоры.Ответственный.Отдел.Наименование,
    |    Договоры.ПереченьУчастников.(
    |        Сотрудник.Наименование
    |    ),
    |    Договоры.Исполнители.(
    |        Сотрудник.Наименование
    |    ),
    |    Договоры.Ответственный.Наименование
    |ИЗ
    |    Справочник.Договоры КАК Договоры
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    |        ПО Договоры.Ответственный.Отдел.Наименование = ФизическиеЛица.Отдел.Наименование
    |ГДЕ
    |    ФизическиеЛица.Отдел.Наименование = Договоры.Ответственный.Отдел.Наименование
    |    И (ФизическиеЛица.Наименование <> Договоры.ПереченьУчастников.Сотрудник.Наименование
    |            ИЛИ Договоры.ПереченьУчастников.Сотрудник.Наименование ЕСТЬ NULL)
    |    И (ФизическиеЛица.Наименование <> Договоры.Исполнители.Сотрудник.Наименование
    |            ИЛИ Договоры.Исполнители.Сотрудник.Наименование ЕСТЬ NULL)
    |    И (ФизическиеЛица.Наименование <> Договоры.Ответственный.Наименование
    |            ИЛИ Договоры.Ответственный.Наименование ЕСТЬ NULL)"
    );
    
    ТЗ=Запрос.Выполнить().Выгрузить();
    ТЗ.ВыбратьСтроку();
КонецПроцедуры
1 Черный маклер
 
21.07.18
12:28
ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры.Исполнители КАК Исполнители
    ПО ...        
ГДЕ Договоры.Сотрудник ЕСТЬ NULL

ОБЪЕДИНИТЬ ВСЕ

ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры.ПереченьУчастников КАК ПереченьУчастников
    ПО ...        
ГДЕ ПереченьУчастников.Сотрудник ЕСТЬ NULL
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.