Есть запрос:

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

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

    УПОРЯДОЧИТЬ ПО
    ДатаНачалаСрочногоРезерва,
    ДатаКонцаСрочногоРезерва
```

Интересуют два поля. ПервоначальноеЗнач и ТекЗначение.

В итоге выводится ПервоначальноеЗнач всегда такое же какое и в документе. А ТекЗначение у какой то номенклатуры "null".

Как сделать так, чтобы если ТекЗначение = null, то не выводить в принципе все поля и номенклатуры у которой текущий остаток null.
Или я может неправильно запрос сделал? спасибо заранее.
---
Дописать во втором запросе условие:
"ГДЕ ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, ЛОЖЬ)"

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

решило мою проблему с пустым значение ТекЗначения.
---
можно
ЕстьNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0) КАК ТекЗначение

а затем условие ТекЗначение <> 0
---
То есть я правильно понимаю, что в принципе такое возможно что ТекЗначение в итоге может быть Null ?
---
У меня скд. Где условие прописать там возможно после ?
---
Дописать во втором запросе условие:
"ГДЕ ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, ЛОЖЬ)"

Хотя если это остаток, то логичнее проверять на равенство нулю.
"ГДЕ ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0"
---
Одно из двух то есть ?
---
"ГДЕ ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) > 0"
Лучше всего так написать, тогда точно не промахнешься с выборкой.
---
и правда. Это же азы. Понедельник день тяжёлый..

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