Добрый день.
Столкнулся с такой проблемой.

Есть внешняя обработка с реквизитами Склад и Организация, а также табличная часть, где колонки "Организация", "Склад".

Необходимо открывать форму выбора справочника с установленным отбором.

Делаю так:

```1c
    &НаКлиенте
    Процедура СкладНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

    НовыйПараметр = Новый ПараметрВыбора("Отбор.Код", ЭлементСтроки.Склад.Код);
    НовыйМассив.Добавить(НовыйПараметр);

    КонецЦикла;

    НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
    Элементы.Склад.ПараметрыВыбора = НовыеПараметры;

    КонецПроцедуры
```

В результате открывается форма выбора с пустым полем, но если нажать на "Все действия" - Настройка списка". То там стоят ранее установленные отборы пользователя.

Вопрос. Как программно очистить пользовательские отборы?

Пробовал программно вызывать форму отбора, но возникает ошибка "Невозможно применить фиксированные настройки. Пересекаются элементы отбора."
---
SP2000, Вообще правильнее будет пожалуй так:

```1c
    &НаКлиенте
    Процедура СкладНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Ф = ПолучитьФорму("Справочник.Склады.ФормаВыбора");
    Список = Ф.Список;
    Список.Отбор.Элементы.Очистить();

    СписокОтбора = Новый СписокЗначений;
    СписокОтбора.Добавить(Объект.Магазин);
    СписокОтбора.Добавить(Объект.Магазин1);

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

    Объект.Склад = Ф.ОткрытьМодально();

    КонецПроцедуры
```
---
SP2000, Сдается мне что
```1c
    Элементы.Склад.ПараметрыВыбора = НовыеПараметры;
```
 должно быть так
```1c
    Элемент.ПараметрыВыбора = НовыеПараметры;
```
---
вознаграждение за ответ
---
SP2000, Смоделировал простой отбор,
вот код:

```1c
    &НаКлиенте
    Процедура СкладНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    МассивЗначенийОтбора = Новый Массив;

    НовыйПараметр = Новый ПараметрВыбора("Отбор.Магазин", Объект.Магазин);

    МассивЗначенийОтбора.Добавить(НовыйПараметр);

    ПараметрыВыбора = Новый ФиксированныйМассив(МассивЗначенийОтбора);

    Элемент.ПараметрыВыбора = ПараметрыВыбора;

    КонецПроцедуры
```

Вот результат:

И вопрос, почему отбор по коду Новый ПараметрВыбора("Отбор.Код", ЭлементСтроки.Склад.Код). а не по ссылке?
---
динамические списки настраиваются через свойство КомпоновщикНастроек.
У компоновщика есть
Настройки – настройки, созданные в режиме Конфигуратора;
ПользовательскиеНастройки – это настройки, которые изменяет пользователь в режиме «1С:Предприятие»; Сюда же соответственно попадают восстановленные при открытии формы пользовательские настройки.
ФиксированныеНастройки – эти настройки задаются программно, из прикладного языка.

Список.Отбор тоже самое, что Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор и в этот отбор попадают значения переданные через параметры формы.
как-то так.
---
R_G_B, При отладке, там везде пусто...

(5) Caspersky, Дело в том, что необходимо добавить несколько складов в отбор (т.е вид сравнения Всписке)

+ ко всему стоят ранее установленные отборы пользователя, которые он установил самостоятельно в режиме предприятия
---
SP2000, Ну так передайте вместо ссылки список
```1c
    СписокЗначенийОтбора.Добавить(Магазин1);
    СписокЗначенийОтбора.Добавить(Магазин2);
    НовыйПараметр = Новый ПараметрВыбора("Отбор.Магазин", СписокЗначенийОтбора);
```

Вот результат:
---
Caspersky, почти получается, но все перекрывает пользовательский отбор.
---
SP2000, Элементы отбора это коллекция, с помощью метода Очистить, что то вроде
```1c
    ФормаВыбора.Список.Отбор.Элементы.Очистить();
```
---
Caspersky,

А можно ли как то без получения формы выбора?
---
SP2000, Вообще правильнее будет пожалуй так:

```1c
    &НаКлиенте
    Процедура СкладНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Ф = ПолучитьФорму("Справочник.Склады.ФормаВыбора");
    Список = Ф.Список;
    Список.Отбор.Элементы.Очистить();

    СписокОтбора = Новый СписокЗначений;
    СписокОтбора.Добавить(Объект.Магазин);
    СписокОтбора.Добавить(Объект.Магазин1);

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

    Объект.Склад = Ф.ОткрытьМодально();

    КонецПроцедуры
```
---
Спасибо всем большое.! (12) Caspersky

От себя добавлю только вот

```1c
    ФормаВыбора = ПолучитьФорму("Справочник.Склады.ФормаВыбора",,Элемент);

    ФормаВыбора.Список.Отбор.Элементы.Очистить();

    Для Каждого СтрокаЭлемент из ФормаВыбора.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
    Если ТипЗнч(СтрокаЭлемент) = Тип("ОтборКомпоновкиДанных") Тогда
    Для Каждого ЭлементОтбора из СтрокаЭлемент.Элементы Цикл

    Если ЭлементОтбора.Использование Тогда
    ЭлементОтбора.Использование = Ложь;
    КонецЕсли;
    КонецЦикла;

    конеЦЕсли;
    КонецЦикла;

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