Надо получить контрагентов, которые закреплены за менеджером (табличная часть МенеджерыПокупателя содержит менеджера). При этом, если не задано значение параметра, то надо получать всех менеджеров.
У меня почему-то всегда игнорируется условие. Код такой:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | КонтрагентыМенеджерыПокупателя.Ссылка,
    | КонтрагентыМенеджерыПокупателя.МенеджерПокупателя
    |ИЗ
    | Справочник.Контрагенты.МенеджерыПокупателя КАК КонтрагентыМенеджерыПокупателя
    |{ГДЕ
    | (КонтрагентыМенеджерыПокупателя.МенеджерПокупателя = &Менеджер) КАК Менджер}
    |
    |СГРУППИРОВАТЬ ПО
    | КонтрагентыМенеджерыПокупателя.Ссылка,
    | КонтрагентыМенеджерыПокупателя.МенеджерПокупателя";

    Запрос.УстановитьПараметр("Менеджер", Менеджер);

    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
```

Менеджер - реквизит формы (обычные формы). Если есть более изящный вариант запроса - предлагайте.
---
```1c
    .........
    Где выбор когда &Менеджер = Значение(Справочник.МенеджерыИлиКакойИспользуется.ПустаяСсылка)
    тогда Истина
    Иначе КонтрагентыМенеджерыПокупателя.МенеджерПокупателя = &Менеджер
    Конец
```
---
дык у вас условие от построителя запроса, а вы выполняете обычный запрос. Ясен пень всегда игнор, ибо в обычном запросе {} это просто комментарий.
---
Так. Как тогда это реализовать? Запросом получится?
---
```1c
    .........
    Где выбор когда &Менеджер = Значение(Справочник.МенеджерыИлиКакойИспользуется.ПустаяСсылка)
    тогда Истина
    Иначе КонтрагентыМенеджерыПокупателя.МенеджерПокупателя = &Менеджер
    Конец
```
---
Отличный вариант. Почему то забыл, что конструкцию ВЫБОР можно использовать не только в выбираемых полях, но и в условиях)
---
Ответ неполный.
Если передать параметром неопределено или пустую ссылку другого типа, то работать не будет.

Если тип реквизита "Менеджер" менеджер составной, то запросто получится.
---
Если передать параметром неопределено или пустую ссылку другого типа, то работать не будет.
Голова у программиста не только для того, чтобы в нее есть.
---
Голова у программиста не только для того, чтобы в нее есть.
Верно!) Вот, например, я стараюсь не только есть головой)) Иногда получается даже программировать))
---
Это я знаю, что неполный) Поэтому написал, что "Отличный" вариант, а не "превосходный" =)
---
Да. На закладке реквизиты у формы, создаешь реквизит ПостроительОтчета с типом ПостроительОтчета

На форму кидаешь табличное поле, Данные - ПостроительОтчета.Отбор, далее

```1c
    Процедура ПриОткрытии()
    ПостроительОтчета.Текст="ВЫБРАТЬ
    | 0 КАК Шняга
    |{ГДЕ
    // | 0 как Процент,
    | Выразить("" как Строка(100)) как Хрень,
    // | (ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка)).* КАК Номенклатура,
    // | (ЗНАЧЕНИЕ(ПланВидовХарактеристик.СвойстваОбъектов.ПустаяССылка)).* КАК Бренд,
    // | (ЗНАЧЕНИЕ(Справочник.Организации.ПустаяССылка)).* КАК Организация,
    | (ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяССылка)).* КАК Менджер //нужный тип сам подставишь
    // | (ЗНАЧЕНИЕ(Документ.реализацияТоваровУслуг.ПустаяССылка)).* КАК Регистратор
    | }";
    ДоступныеПоляОтбора = ПостроительОтчета.Отбор.ПолучитьДоступныеПоля();
    Для каждого Поле ИЗ ДоступныеПоляОтбора Цикл
    Поле.Отбор = Истина;
    КонецЦикла;
    ЭлементОтбора = Отбор.Найти("Хрень");
    Если ЭлементОтбора = Неопределено Тогда
    ЭлементОтбора = Отбор.Добавить("Хрень");
    КонецЕсли;
    ЭлементОтбора = Отбор.Найти("Менджер");
    Если ЭлементОтбора = Неопределено Тогда
    ЭлементОтбора = Отбор.Добавить("Менджер");
    КонецЕсли;

    ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
    КонецПроцедуры
```

Далее, там где твой запрос пишешь следующий код :

```1c
    ТекстЗапроса = "ВЫБРАТЬ
    | КонтрагентыМенеджерыПокупателя.Ссылка,
    | КонтрагентыМенеджерыПокупателя.МенеджерПокупателя
    |ИЗ
    | Справочник.Контрагенты.МенеджерыПокупателя КАК КонтрагентыМенеджерыПокупателя
    |{ГДЕ
    | (КонтрагентыМенеджерыПокупателя.МенеджерПокупателя.* КАК Менджер}
    |
    |СГРУППИРОВАТЬ ПО
    | КонтрагентыМенеджерыПокупателя.Ссылка,
    | КонтрагентыМенеджерыПокупателя.МенеджерПокупателя";

    Запрос = Новый Запрос;
    ПостроительОтчетаДляВыполнения= Новый ПостроительОтчета(ТекстЗапроса);
    ПостроительОтчетаДляВыполнения.УстановитьНастройки(ПостроительОтчета.ПолучитьНастройки());
    //Получаем запрос со всеми настройками из построителя
    ЗапросПостроителя = ПостроительОтчетаДляВыполнения.ПолучитьЗапрос();
    //Устанавливаем параметры из построителя в текст запроса
    Для каждого Парам Из ЗапросПостроителя.Параметры Цикл
    Запрос.УстановитьПараметр(Парам.Ключ,Парам.Значение);
    Конеццикла;
    ТекстЗапросаПостроителя = ЗапросПостроителя.Текст;
    Запрос.Текст = ТекстЗапросаПостроителя;

    Запрос.УстановитьПараметр("НачПериода",НачалоДня(НачПериода)); //обычные параметры, если есть не {}
```

Итого имеешь обычный запрос , который будет выполнятся с настройками из построителя запроса, который лежит на форме. Пример заполнения настроек в ПриОткрытии.. там можно и галки сразу поставить и т.д и т.п
По-уму, нужно еще сохранять/восстанавливать значения настроек.
Для построителя, хранить нужно выгруженные настройки построителя. Тогда при открытии формы - будут восстановлены все настройки.
Но, это в следующей серии.
---
Смысл здесь использовать построитель, если просто взависимости от заполнение &Менеджера менять условие запроса.
---
тут не построитель, а условия от него.
Это в разы проще и быстрее, чем описывать это кодом
---
В коде написать несколько строк и все, чем мудрит то что вы в 4 ответе описали). Сугубо мое мнение) По производительности пока речи не было и упор тут на нее еще ни кто не делал. Тем более это могут быть разовые выгрузки. Конкретики мы не знаем
---
А завтра добавят еще условие по организации, и еще.. и еще.. И все кодом ?
Отбор в построителе, как и в СКД весьма гибкая штука, и позволит сделать это гораздо проще, чем просто код с условиями или динамически созданный текст запроса.
---
Сейчас в точку сказали. Вот когда скажут отбор по организации и т.д. делать, тогда да можно об оптимизации подумать, но сейчас этого в условии нет)