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

Если я правильно понял что требуется
---
Неверно вы поняли...
Нужны все а не только ненулевые остатки товара с их объемами продаж...
Ваш вариант не покажет товары по которым не было продаж....
---
"Все остатки я и читаю, как "все остатки". Так что, скорее "неправильно написали", а не "поняли". Небольшая разница есть. Попробуйте перечитать свой вопрос.
А если вам нужны и те, где не нуль или продажи, или остатки, для этого, теоретически, существует "Полное соединение". Которое настоятельно рекомендуется заменять на объединить+сгруппировать по соображениям оптимизации производительности, особенно для виртуальных таблиц. Выбираете нужные поля остатков, добавляете нули в поля для продаж. Добавляете объединение с запросом по продажам, в котором нули на месте полей остатков. Заворачиваете все это во вложенный запрос и делаете ему группировку по измерениям и сумму по числам.
   Соединение с номенклатурой покажет ВСЮ номенклатуру. Хотя, можно добавить условие ГДЕ не ноль либо то, либо это - тоже вариант. У любой задачи обычно несколько правильных решений.
   Вариант с объединением сильно быстрее отработает при малых оборотах / остатках. Вариант с соединением номенклатуры будет перебирать всю номенклатуру независимо от количества остатков и оборотов в вашем регистре, но хорош, например, для отображения в форме списка справочника номенклатуры.
---
спасибо вам, вы отлично объяснили, что даже я понять смог :)