Приветствую уважаемые. Помогите дописать запрос. Стоит задача добавить к результату запроса все номенклатуры из регистра накопления ТоварыНаСкладах, где остаток по Складу1 >= 0, а остаток по складу 2 <=0. Запутался в объединениях и соединениях
Сам запрос:

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Номенклатура,
    СУММА(ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
    И ТоварыНаСкладахОбороты.Регистратор.СкладПолучатель В (&ОтдСклады)
    ТОГДА ТоварыНаСкладахОбороты.КоличествоРасход
    ИНАЧЕ 0
    КОНЕЦ) КАК Перемещено
    ПОМЕСТИТЬ ВТ_ПеремещеноНаОтдСклады
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(
    &НачПериода,
    &КонПериода,
    Регистратор,
    Склад = &СкладПолучатель
    И Номенклатура.Ряд.ВидСклада = &РядВидСклада
    И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОбороты
    ГДЕ
    ТоварыНаСкладахОбороты.КоличествоРасход > 0

    СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОбороты.Номенклатура
    ;

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

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

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ.Номенклатура,
    ВТ.Код,
    ВТ.Продано,
    ВТ.ОстатокПолучатель,
    ВТ.Заказать,
    ВТ.Цена,
    ВТ.КоличествоОстаток,
    NULL КАК КоличествоОстаток1
    ИЗ
    ВТ КАК ВТ
    ГДЕ
    ВТ.Заказать > 0
```

Добавляю к запросу:

```1c
    ОБЪЕДИНИТЬ ВСЕ

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

    И ТоварыНаСкладахОстатки1.КоличествоОстаток <= 0

    ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток > 0
    И ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада
    И ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)
```

Но в результат ном-ра не добавляется. Уже и Полное соединение пробовал - добавляются лишние позиции.
---
```1c
    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код,
    .....
    ИЗ
    (
    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток1,
    0 КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладОтправитель
    И Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки

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

    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    0 КАК Остаток1,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладПолучатель
    И Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    )
    КАК ВложенныйЗапрос
    ГДЕ
    И ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура

    ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.Остаток1) >= 0
    И СУММА(ВложенныйЗапрос.Остаток2) <= 0
```
---
Спасибо, переделал немного для себя:

```1c
    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    (ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток1,
    0 КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладОтправитель
    И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада

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

    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладПолучатель
    И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада) КАК ВложенныйЗапрос

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код

    ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.Остаток1) > 0 И
    СУММА(ВложенныйЗапрос.Остаток2) <= 0

    УПОРЯДОЧИТЬ ПО
    Номенклатура
```
---
```1c
    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код,
    .....
    ИЗ
    (
    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток1,
    0 КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладОтправитель
    И Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки

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

    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    0 КАК Остаток1,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладПолучатель
    И Номенклатура В ИЕРАРХИИ(&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    )
    КАК ВложенныйЗапрос
    ГДЕ
    И ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура

    ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.Остаток1) >= 0
    И СУММА(ВложенныйЗапрос.Остаток2) <= 0
```
---
Спасибо, переделал немного для себя:

```1c
    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL
    ИЗ
    (ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток1,
    0 КАК Остаток2
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладОтправитель
    И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада

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

    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    0,
    ТоварыНаСкладахОстатки.КоличествоОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
    &КонПериода,
    Склад = &СкладПолучатель
    И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Номенклатура.Ряд.ВидСклада = &РядВидСклада) КАК ВложенныйЗапрос

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Номенклатура.Код

    ИМЕЮЩИЕ
    СУММА(ВложенныйЗапрос.Остаток1) > 0 И
    СУММА(ВложенныйЗапрос.Остаток2) <= 0

    УПОРЯДОЧИТЬ ПО
    Номенклатура
```
---
можно попробовать ограничивающее условие на вторую таблицу перенести на закладку связи и поставить связь таблиц по этому условию а вообще виртуальные таблицыРегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &СкладОтправитель) КАК ТоварыНаСкладахОстатки
        Левое СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &СкладПолучатель) КАК ТоварыНаСкладахОстатки1
        ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстатки1.Номенклатура
            И (ТоварыНаСкладахОстатки1.КоличествоОстаток <= 0)
---
По другому задачу можно описать так:
Есть временная таблица ВТ. В нее необходимо добавить номенклатуры без остатков в складе-получателе, но с положительным остатком в складе-отправителе.
---
У Вас проблема в том, что если остатка нет, то и запрос не покажет эту номенклатуру.
Поэтому тут решить можно двумя вариантами:
1) Сделать основную таблицу справочник номенклатуры и присоединять к ней
2) Сделать основную таблицу остатки склада1 и присоединить остатки склада2. Там где Null это ваше.
В обоих случаях получится такая таблица:
Номенклатура ОстатокСклада1 ОстатокСклада2
Товар1 15 0
Товар2 10 0