Добрый день!

Подскажите пожалуйста как написать запрос, что-то голова отказывается соображать.

Есть РС СвязиДокументов, независимый, непериодический, имеет два измерения ОсновнойДокумент, и ПодчиненныйДокумент имеющий определяемый тип.
Есть ДокументОснова который является измерением ОсновнойДокумент.
Есть ДокументДочерний у которого есть реквизит Итоговый. Документ иногда бывает в измерении ПодчиненныйДокумент.

Прямой связи между документами нет.

В общем задача такова, нужно отобрать только такие Документ1, для которых в записях РС СвязиДокументов все связанные Документ2 имеют реквизит Итоговый = Истина, если среди связанных Документ2 есть имеющие Итоговый = Ложь, то такие Документ1 не допускать в выборку.

Пожалуйста укажите в какую сторону посмотреть, заранее благодарен ♥
---
Тут возможно ошибка?Нет, это один из базовых приёмов в sql - гуглите что-нибудь вроде "удалить из таблицы строки другой таблицы".Может наоборот связать записи регистра по условию неравенства?Технически, сработает, но будет очень медленно.Записей Null в РС не предполагаетсяЭто часть приема по исключению записей ВТ_Исключить из выборки по Регистру: условие в секции ГДЕ накладываются после связи таблиц, нам нужны только те записи из таблицы СвязиДокументов, для которых не найдены строки из таблицы ВТ_Исключить, т.е. ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL.для получения записей только по одному типуЕсли я правильно понял, надо так доработать запрос
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент
    ПОМЕСТИТЬ ВТ_Исключить
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ГДЕ
    ТИПЗНАЧЕНИЯ(СвязиДокументов.ПодчиненныйДокумент) = ТИП(Документ.Подчиненный)
    И НЕ ВЫРАЗИТЬ(СвязиДокументов.ПодчиненныйДокумент КАК Документ.Подчиненный).Итоговый

    ИНДЕКСИРОВАТЬ ПО
    ОсновнойДокумент
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент,
    СвязиДокументов.ПодчиненныйДокумент КАК ПодчиненныйДокумент
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Исключить КАК ВТ_Исключить
    ПО СвязиДокументов.ОсновнойДокумент = ВТ_Исключить.ОсновнойДокумент
    ГДЕ
    ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL
```
---
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент
    ПОМЕСТИТЬ ВТ_Исключить
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ГДЕ
    НЕ СвязиДокументов.ПодчиненныйДокумент.Итоговый
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент,
    СвязиДокументов.ПодчиненныйДокумент КАК ПодчиненныйДокумент
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Исключить КАК ВТ_Исключить
    ПО СвязиДокументов.ОсновнойДокумент = ВТ_Исключить.ОсновнойДокумент
    ГДЕ
    ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL
```
---
Большое спасибо за решение, только немного непонятна часть

```1c
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Исключить КАК ВТ_Исключить
    ПО СвязиДокументов.ОсновнойДокумент = ВТ_Исключить.ОсновнойДокумент
```

Тут возможно ошибка? Может наоборот связать записи регистра по условию неравенства? Вроде как...

```1c
    ПО СвязиДокументов.ОсновнойДокумент <> ВТ_Исключить.ОсновнойДокумент
```

И это условие. Не понимаю зачем оно? Записей Null в РС не предполагается... Или я неверно рассуждаю...

```1c
    ГДЕ
    ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL
```

И ещё подскажете пожалуйста, для получения записей только по одному типу подчиненных документов правильно ли будет в ВТ_Исключить добавить такое выражение

```1c
    ГДЕ
    НЕ (ВЫБОР
    КОГДА СвязиДокументов.ПодчиненныйДокумент ССЫЛКА Документ.Подчиненный
    ТОГДА ВЫРАЗИТЬ(СвязиДокументов.ПодчиненныйДокумент КАК Документ.Подчиненный).Итоговый
    КОНЕЦ)
```

Или приведение типа можно реализовать иначе и в другом месте запроса?
---
Тут возможно ошибка?Нет, это один из базовых приёмов в sql - гуглите что-нибудь вроде "удалить из таблицы строки другой таблицы".Может наоборот связать записи регистра по условию неравенства?Технически, сработает, но будет очень медленно.Записей Null в РС не предполагаетсяЭто часть приема по исключению записей ВТ_Исключить из выборки по Регистру: условие в секции ГДЕ накладываются после связи таблиц, нам нужны только те записи из таблицы СвязиДокументов, для которых не найдены строки из таблицы ВТ_Исключить, т.е. ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL.для получения записей только по одному типуЕсли я правильно понял, надо так доработать запрос
```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент
    ПОМЕСТИТЬ ВТ_Исключить
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ГДЕ
    ТИПЗНАЧЕНИЯ(СвязиДокументов.ПодчиненныйДокумент) = ТИП(Документ.Подчиненный)
    И НЕ ВЫРАЗИТЬ(СвязиДокументов.ПодчиненныйДокумент КАК Документ.Подчиненный).Итоговый

    ИНДЕКСИРОВАТЬ ПО
    ОсновнойДокумент
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СвязиДокументов.ОсновнойДокумент КАК ОсновнойДокумент,
    СвязиДокументов.ПодчиненныйДокумент КАК ПодчиненныйДокумент
    ИЗ
    РегистрСведений.СвязиДокументов КАК СвязиДокументов
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Исключить КАК ВТ_Исключить
    ПО СвязиДокументов.ОсновнойДокумент = ВТ_Исключить.ОсновнойДокумент
    ГДЕ
    ВТ_Исключить.ОсновнойДокумент ЕСТЬ NULL
```
---
Теперь стало понятно! Большое спасибо за помощь! ♥
---
Показывай, в какую уже посмотрел.
---
Ну вот же на картинке, ты уже всё сделал, соединил и сгруппировал документы, и применил условие.
Вот прямо так и делай в запросе.
---
по очередности не понимаю, ну и как в коде это будет выглядеть. С запросами мало совсем приходилось сталкиваться