Доброго времени суток!

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

Имеется следующий запрос, с помощью которого я пытаюсь их найти:

```1c
    ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура
    ПОМЕСТИТЬ ВТ_ВсяНоменклатура
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(ЕСТЬNULL(ОстаткиМатериаловОсновногоСкладаОстатки.КоличествоОстаток, 0)) КАК Остаток,
    ВТ_ВсяНоменклатура.Номенклатура,
    ОстаткиМатериаловОсновногоСкладаОстатки.Склад
    ПОМЕСТИТЬ ВТ_ОстаткиНаСкладе
    ИЗ
    ВТ_ВсяНоменклатура КАК ВТ_ВсяНоменклатура
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериаловОсновногоСклада.Остатки(&Период, Склад = &Склад) КАК ОстаткиМатериаловОсновногоСкладаОстатки
    ПО ВТ_ВсяНоменклатура.Номенклатура = ОстаткиМатериаловОсновногоСкладаОстатки.Материалы

    СГРУППИРОВАТЬ ПО
    ВТ_ВсяНоменклатура.Номенклатура,
    ОстаткиМатериаловОсновногоСкладаОстатки.Склад
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СУММА(ЕСТЬNULL(ВТ_ОстаткиНаСкладе.Остаток, 0) - ЕСТЬNULL(РезервированиеТовараТовары.Количество, 0)) КАК СвободныйОстаток,
    ВТ_ОстаткиНаСкладе.Номенклатура,
    ВТ_ОстаткиНаСкладе.Склад
    ПОМЕСТИТЬ ВТ_СвободныйОстаток
    ИЗ
    ВТ_ОстаткиНаСкладе КАК ВТ_ОстаткиНаСкладе
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РезервированиеТовара.Товары КАК РезервированиеТовараТовары
    ПО ВТ_ОстаткиНаСкладе.Номенклатура = РезервированиеТовараТовары.Номенклатура
    ГДЕ
    РезервированиеТовараТовары.Ссылка <> &Ссылка
    И РезервированиеТовараТовары.Ссылка.Проведен
    И РезервированиеТовараТовары.Ссылка.Дата < &Период

    СГРУППИРОВАТЬ ПО
    ВТ_ОстаткиНаСкладе.Номенклатура,
    ВТ_ОстаткиНаСкладе.Склад
    ;

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

Параметры:

```1c
    Запрос.УстановитьПараметр("Ссылка", Ссылка); //Ссылка на текущий документ Резервирование
    Запрос.УстановитьПараметр("Склад" , Склад);
    Запрос.УстановитьПараметр("Период", Дата);
```

Собственно, проверяю хватает ли мне для резервирования определенного товара:

```1c
    ПроверкаКоличества = Запрос.Выполнить().Выгрузить();

    Для Каждого Запись Из ПроверкаКоличества Цикл
    Если Запись.СвободныйОстаток < Запись.Количество Тогда
    Отказ = Истина;
    КонецЕсли;
    КонецЦикла;
```

В итоге, правильно отрабатывают только первые два пакета запроса. Третий пакет уже выдает пустую таблицу значений. Подскажите, пожалуйста, что делаю не так?
---
Не смотря на то, что в третьем запросе пакета Вы указали левое соединение, оно все равно неявно обращается во внутреннее по причине того, что в секции "ГДЕ" есть условия на поля подчиненной таблицы. Перенесите их в условия связи, либо подготовьте предварительно отдельную виртуальную таблицу, отфильтровав все нужные записи.
---
Не смотря на то, что в третьем запросе пакета Вы указали левое соединение, оно все равно неявно обращается во внутреннее по причине того, что в секции "ГДЕ" есть условия на поля подчиненной таблицы. Перенесите их в условия связи, либо подготовьте предварительно отдельную виртуальную таблицу, отфильтровав все нужные записи.
---
Вот это нужно перенести в связи?

```1c
    РезервированиеТовараТовары.Ссылка <> &Ссылка
    И РезервированиеТовараТовары.Ссылка.Проведен
    И РезервированиеТовараТовары.Ссылка.Дата < &Период
```

Как это возможно?
---
Ничего сложного, буквально переносите условия и готово. :)

```1c
    ...
    ИЗ
    ВТ_ОстаткиНаСкладе КАК ВТ_ОстаткиНаСкладе
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.РезервированиеТовара.Товары КАК РезервированиеТовараТовары
    ПО ВТ_ОстаткиНаСкладе.Номенклатура = РезервированиеТовараТовары.Номенклатура
    И РезервированиеТовараТовары.Ссылка <> &Ссылка
    И РезервированиеТовараТовары.Ссылка.Проведен
    И РезервированиеТовараТовары.Ссылка.Дата < &Период
```
Хотя запрос действительно после таких манипуляций становится "корявым". Но рабочим.
---
Дополнительная виртуальная таблица помогла, спасибо!