Есть одна очень интересная проблемка в отборе динамического списка. Задача стоит сделать отборы в форме списка справочника "Номенклатура". Отбор идет по остаткам на складах. При использовании отборов динамического списка, при выборе "Остаток = 0" отбор позиций с нулевым значением не происходит, а вместо этого остаток по всем позициям зануляется. Такая же история с "Остаток не заполнено", все остальные виды сравнения работают исправно. Может кто-нибудь сталкивался с такой проблемой?
---
Все, проблему решил. Сам затупил, засунув регистры во вложенные запросы, чего делать не стоило, особенно в динамическом списке.
---
Что-то поле "Остаток" в запросе у тебя не нахожу. Непонятно по чему в итоге отбор делается
---
Отбор происходит по двум полям: ОстатокПоСкладу и ОбщийОстаток. Пользователь сам выбирает по какому из этих полей произвести отбор.
---
чтобы дать ответ не помешал бы текст запроса динамического списка.

но предположу, что пытаетесь получить данные по нулевым остаткам из регистра остатка. - это не удастся - в регистре хранятся только значения не равные нулю.

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

Ниже приложу текст запроса, может он окажется чем-то полезен.

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

    СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Валюта) КАК ЦеныИВалюта
    ПО СпрНоменклатура.Ссылка = ЦеныИВалюта.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ОстатокПоСкладу
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
    ГДЕ
    ТоварыНаСкладахОстатки.Склад = &Склад) КАК ТабОстатокПоВыбранномуСкладу
    ПО СпрНоменклатура.Ссылка = ТабОстатокПоВыбранномуСкладу.Номенклатура
    ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
    {ГДЕ
    (СпрНоменклатура.Ссылка В
    (ВЫБРАТЬ
    Сегменты.Номенклатура
    ИЗ
    РегистрСведений.НоменклатураСегмента КАК Сегменты
    ГДЕ
    Сегменты.Сегмент = &СегментНоменклатуры)) КАК Поле2}

    СГРУППИРОВАТЬ ПО
    СпрНоменклатура.Ссылка,
    СпрНоменклатура.Код,
    СпрНоменклатура.Наименование,
    СпрНоменклатура.Артикул,
    СпрНоменклатура.ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
    КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
    ТОГДА 4 + ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    ИНАЧЕ ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    КОНЕЦ,
    ЕСТЬNULL(ТабОстатокПоВыбранномуСкладу.ОстатокПоСкладу, 0),
    ЕСТЬNULL(ТабОбщийОстаток.ОбщийОстаток, 0),
    ЕСТЬNULL(ЦеныИВалюта.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка))
```
---
Все, проблему решил. Сам затупил, засунув регистры во вложенные запросы, чего делать не стоило, особенно в динамическом списке.
---
Возможно, отбор у тебя накладывается не на строки результирующей таблицы, а на таблицы, которые в левом соединении участвуют. В таком случае получается именно такой результат, таблицы для соединения пустые, а в верхней таблицы, благодаря ЕстьNULL, получаются нули.
Попробуй запрос упростить и поля переименовать,а то что-то слишком монструозное и нечитаемое получается
---
Как я уже писал выше, проблема уже решена. На всякий случай оставлю здесь исправленный текст запроса, чтобы в будущем не повторяли моих ошибок.

```1c
    ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
    КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
    ТОГДА 4 + ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    ИНАЧЕ ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ЕСТЬNULL(ТоварыНаВыбранномСкладе.ВНаличииОстаток, 0) КАК ОстатокПоВыбранномуСкладу,
    МАКСИМУМ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)) КАК Валюта,
    ЕСТЬNULL(ОбщиеОстатки.ВНаличииОстаток, 0) КАК ОбщийОстаток
    ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаВыбранномСкладе
    ПО (ТоварыНаВыбранномСкладе.Номенклатура = СпрНоменклатура.Ссылка)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ОбщиеОстатки
    ПО (ОбщиеОстатки.Номенклатура = СпрНоменклатура.Ссылка)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
    ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
    ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
    {ГДЕ
    (СпрНоменклатура.Ссылка В
    (ВЫБРАТЬ
    Сегменты.Номенклатура
    ИЗ
    РегистрСведений.НоменклатураСегмента КАК Сегменты
    ГДЕ
    Сегменты.Сегмент = &СегментНоменклатуры))}

    СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)),
    СпрНоменклатура.Ссылка,
    СпрНоменклатура.Код,
    СпрНоменклатура.Наименование,
    СпрНоменклатура.Артикул,
    СпрНоменклатура.ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
    КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
    ТОГДА 4 + ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    ИНАЧЕ ВЫБОР
    КОГДА СпрНоменклатура.ПометкаУдаления
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ + ВЫБОР
    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
    ТОГДА 0
    ИНАЧЕ 2
    КОНЕЦ
    КОНЕЦ,
    ЕСТЬNULL(ТоварыНаВыбранномСкладе.ВНаличииОстаток, 0),
    ЕСТЬNULL(ОбщиеОстатки.ВНаличииОстаток, 0)
```