В УТ11 в документе заказ товаров поставщику реализованы отборы.
Перетягиваю процедуры отбора на самописку под 8.2.

```1c
    &НаКлиенте
    Процедура ТипВызоваПриИзменении(Элемент)
    УстановитьЭлементОтбора(Список.Отбор, "ТипВызова", ТипВызова, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(ТипВызова));
    КонецПроцедуры
```

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

Как-то так
---
Смотри в УТ что такое Список.
---
Diose, что в УТ, что у меня - список это табличная часть формы списка
---
Можно попробовать установить отбор вручную вручную:

ОтборОбъект = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ОтборОбъект.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборОбъект.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект"); // Тут указываем имя поля для отбора
ОтборОбъект.ПравоеЗначение = Параметры.ВладелецФайла; // тут указываем ссылку для отбора
ОтборОбъект.Использование = Истина;
---
frolov.dns, сделал так:

```1c
    &НаКлиенте
    Процедура ТипВызоваПриИзменении(Элемент)

    ОтборОбъект = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборОбъект.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;

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

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

```1c
    &НаСервере
    Функция ПолучитьПеречисление()
    Если ЭтаФорма.ТипВызова = Перечисления.ТипыВызова.Входящий Тогда
    Фильтр = Справочники.ПоляDirEx.НайтиПоНаименованию("12");

    ИначеЕсли ЭтаФорма.ТипВызова = Перечисления.ТипыВызова.Исходящий тогда
    Фильтр = Справочники.ПоляDirEx.НайтиПоНаименованию("13");
    Иначе Фильтр = Неопределено;
    КонецЕсли;
    Возврат Фильтр
    КонецФункции // ПолучитьПеречисление()
```

В итоге когда октрывается форма списка на тонком клинете - если не менять значения типа вызова- отображается весь полный список. Если указываю входящий-12(или исходящий-13) - то фильтрует по типу, но если я после еще раз ставлю фильтр или просто очищаю его - ничего в списке не отображается.
Какой параметр дописать?
---
Смотри тут
http://help1c.com/faq/view/1245.html
---
СправочникСписок.Отбор.Сбросить();
---
Diose, сбросить()- такого метода нет. По ссылке - там описано как устанавливать первоначально этот отбор, а вот как ПЕРЕустанавливать - нет(.
(8) visard2, Если ТипЗнч(ЭтаФорма.ВладелецФормы) = Тип("ПолеФормы") а для чего это условие? в отладчике ТипЗнч(ЭтаФорма.ВладелецФормы) = неопределено. Темболее это все делается раз при открытии. А у меня цель - чтобы группировалось при выюоре на форме типа вызова.
Функция ПолучитьСписокДоступныхСостояний Вы используете эту функцию для множественных параметров?
---
&НаКлиенте
Процедура ПриОткрытии(Отказ)
 Если ТипЗнч(ЭтаФорма.ВладелецФормы) = Тип("ПолеФормы") Тогда
  СписокВыбора = ЭтаФорма.ВладелецФормы.СписокВыбора;

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

 КонецЕсли;
КонецПроцедуры

&НаСервере
Функция ИТ_ппПолучитьСписокДоступныхСостояний(ТекСостояние, ИспользоватьПравилаПерехода = Неопределено,ПоУмолчанию = Неопределено, ПроверятьРоли = Истина) Экспорт

 СписокДоступныхЗначений = Новый СписокЗначений;
//СписокДоступныхЗначений нужно заполнить тем, чем нужно!!!
КонецФункции;
---
ПолучитьСписокДоступныхСостоянийНаСервере вместо ПолучитьСписокДоступныхСостояний
---
В ПолучитьСписокДоступныхСостоянийНаСервере передается любое значение, которое нельзя получить на клиенте, полученное на сервере
ТипЗнч(ЭтаФорма.ВладелецФормы) = Тип("ПолеФормы") - это условие вам не нужно, у меня там проверка была. Я просто скопировал код, как у меня это реализовано.
---
Если ВидСравненияКомпоновкиДанных.ВСписке, то возвращать нужно спикок значений, ЕслиВидСравненияКомпоновкиДанных.Равно, то любое значение, по типу совпадающее с левым значением.
---
Попробуй
Список.Отбор.Элементы.Очистить()
---
Diose, да так очищает, но полностью от всего фильтра.
(12) visard2, в общем сделал так:

```1c
    Список.Отбор.Элементы.Очистить();
    ОтборОбъект = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборОбъект.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;

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

А как быть, если на пример на форме стоит более 3-х отборов? как тогда учитывать отбор по предыдущим? И соответственно очищать какой-то один отбор.
Поэтому я и взял сразу типовой мехенизм, но сразу загвоздка вышла с Список.Отбор.Элементы. Вероятно они как то программно ранее попадают в отбор, но откуда?
---
Отборы = Список.Отбор.Элементы;
Для Каждого Отбор Из Отборы Цикл
 Если Отбор.ЛевоеЗначение = "Какое то Значение" Тогда
   Отбор.Использование = Ложь;
 КонецЕсли;
КонецЦикла;

Как-то так
---
visard2, Впринцыпе да, подходит. Только придется условий много понаставить. В типовой как я понял - все элемгнато через массив реализовано. А как проверит, что наш отбор - это ГруппаЭлементовОтбораКомпоновкиДанных.
Проверяю так:

&НаКлиенте

```1c
    Процедура ПользовательОчистка(Элемент, СтандартнаяОбработка)
    Отборы = Список.Отбор.Элементы;
    Для Каждого Отбор Из Отборы Цикл
    //Если у нас Группа
    Если Отбор = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") тогда

    КонецЕсли;

    КонецЦикла;
    Список.Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    Элементы.Список.Обновить();
    КонецПроцедуры
```

Список.Отбор.Элементы[0]=Тип("ГруппаЭлементовОтбораКомпоновкиДанных") - так тоже не принимает - пишет ложь
так ругается на обращение. В отладчике есть такие поля для доступа: