Добрый день! Пытаюсь сделать отбор в динамическом списке и вывести его на форму для пользователя. Отбор заказов по контрагентам, то есть при открытие формы отбор показывает все документы а при выборе определенного контрагента отбирает список.

```1c
    ВЫБОР
    КОГДА &Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА ДокументЗаказКлиента.Контрагент = &Контрагент
    ИНАЧЕ ИСТИНА
    КОНЕЦ
```

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

```1c
    ВЫБРАТЬ
    ЧекККМСкидки.СкидкаНаценка,
    ЧекККМСкидки.Ссылка,
    ЧекККМСкидки.Сумма
    ИЗ
    Документ.ЧекККМ.Скидки КАК ЧекККМСкидки
    {ГДЕ
    (ЧекККМСкидки.Ссылка.Дата >= &ДатаНачала),
    (ЧекККМСкидки.Ссылка.Дата <= &ДатаОкончания)}
```
---
Достаточно было ограничиться программным изменением отбора динамического списка.
---
В итоге сделал так:

```1c
    &НаКлиенте
    Процедура ОбновитьЗаказКлиента()
    Для Каждого ЭлементОтбора Из ЗаказыКлиентов.Отбор.Элементы Цикл
    Если ЭлементОтбора.Представление = "Программный отбор" Тогда
    ЗаказыКлиентов.Отбор.Элементы.Удалить(ЭлементОтбора);
    КонецЕсли;
    КонецЦикла;

    ГруппаОтбора = ЗаказыКлиентов.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    ГруппаОтбора.Использование = Истина;
    ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
    ГруппаОтбора.Представление = "Программный отбор";

    Если НЕ Объект.Контрагент.Пустая() Тогда
    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Объект.Контрагент;
    ЭлементОтбора.Представление = "Программный отбор";
    КонецЕсли;

    Если НЕ Объект.ПользователиЗаказ.Пустая() Тогда
    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Менеджер");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Объект.ПользователиЗаказ;
    ЭлементОтбора.Представление = "Программный отбор";
    КонецЕсли;

    Если ЗначениеЗаполнено(Объект.ИстекаетНаДату) Тогда
    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОтгрузки");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Объект.ИстекаетНаДату;
    ЭлементОтбора.Представление = "Программный отбор";
    КонецЕсли;
```

И вызываю при изменение реквизита.