Здравствуйте!

На форме документа "Счет" создал Динамический Список который должен отображать все документы типа "Расход" созданные на основании данного "Счета". В документе "Расход" есть реквизит типа ДокументСсылка.Счет, в который записывается "Счет" - основание. В модуле формы добавил:

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

Отбор работает, все ок. Но, если в режиме предприятия открыть настройки этого списка (Все действия - Настроить список) то там не установлен никакой отбор, хотя отбор существует и работает... Почему так?

Это:

```1c
    //ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
```

тоже не дает никакого результата...
---
Нашел!

```1c
    ПользовательскийОтбор = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Список.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);
    ПользовательскийОтбор.Элементы.Очистить();

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

Всем спасибо!
---
```1c
    РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный
```

Вот как раз по этому, поставте
```1c
    РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный
```

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

Или может я не смотрю туда где надо?? (Все действия - Настроить список...)
---
Замените

```1c
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокОсн");
```

иесли у вас конфигурация УТ то проще сделать через
```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(...параметры)
```
---
Может попробовать отбор добавить сюда:

```1c
    Список.КомпоновщикНастроек.Настройки.Отбор.Элементы
```
---
klinval, (5) bmk74, Не получается...

Пробовал вот так:

```1c
    ОтборДинамическогоСписка = Список.КомпоновщикНастроек.Настройки.Отбор;
    Элемент = ОтборДинамическогоСписка.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокОсн");

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

Результат тот же что и в (3)
---
Ну как вариант попробуйте еще заменить

```1c
    ОтборДинамическогоСписка = Список.КомпоновщикНастроек.Настройки.Отбор;
```

НА

```1c
    ОтборДинамическогоСписка = Список.Отбор;
```

там в зависимости от режима совместимости используется либо компановщик либо отбор
---
Нашел!

```1c
    ПользовательскийОтбор = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Список.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);
    ПользовательскийОтбор.Элементы.Очистить();

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

Всем спасибо!
---
wmonref1, Юзайте общие процедуры

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора()
```
---
dj_serega, Нет в моей конфигурации такой процедуры...
---
wmonref1, Конфа на БСП или самописка? Общий модуль такой есть?
---
dj_serega, Сделана на основании демо-конфигурации "Управляемое приложение". Нет такого модуля
---
wmonref1, А если по конфе найти УстановитьЭлементОтбора() ?
---
Есть один нюанс ... Когда создаю документ "Расход" в новом "Счете", после записи, проведения и закрытия "Расхода" его не видно в списке, пока не закрою и не открою "Счет" еще раз... В модуле формы "Счета" есть процедура:

```1c
    &НаКлиенте
    Процедура ДокНовРасх(Команда)
    Записать();
    ОткрытьФорму("Документ.Расход.ФормаОбъекта", Новый Структура("Основание", Объект.Ссылка));
    КонецПроцедуры
```

Т.е. я записываю сначала "Счет", а потом создаю на его основании "Расход", записываю и закрываю "Расход", но он не появляется в динамическом списке в открытом документе "Счет". Если закрыть "Счет" и открыть его заново - "Расход" уже появляется. Обновление динамического списка также ничего не дает... Подскажите, как исправить это?
---
wmonref1, (14) wmonref1,
Копай в сторону
Скрытый текстГлобальный контекст (Global context)
ОповеститьОбИзменении (NotifyChanged)
Вариант синтаксиса: Изменен один объект

Синтаксис:

ОповеститьОбИзменении(<Ссылка>)
Параметры:

<Ссылка> (обязательный)

Тип: СправочникСсылка.<Имя справочника>; ДокументСсылка.<Имя документа>; ПеречислениеСсылка.<Имя перечисления>; ПланСчетовСсылка.<Имя плана счетов>; ПланВидовРасчетаСсылка.<Имя плана видов расчета>; ПланВидовРасчетаСсылка.<Имя плана видов расчета>; БизнесПроцессСсылка.<Имя бизнес-процесса>; ЗадачаСсылка.<Имя задачи>; РегистрСведенийКлючЗаписи.<Имя регистра сведений>; РегистрНакопленияКлючЗаписи.<Имя регистра накопления>; РегистрБухгалтерииКлючЗаписи.<Имя регистра бухгалтерии>; РегистрРасчетаКлючЗаписи.<Имя регистра расчета>; ПланОбменаСсылка.<Имя плана обмена>.
Ссылка измененного объекта или ключ измененной записи регистра, об изменении которой(го) необходимо уведомить динамические списки, чтобы они обновились.
Поведение при очистке кэша (такое же, как при интерактивном изменении):
кэш представлений ссылок - очищаются записи, соответствующие измененной ссылке;
кэш данных через точку - удаляются те записи, которые имеют в пути ссылки того же типа, что и измененная;
кэш данных быстрого выбора - данные хранятся по типам, очищаются данные, которые относятся к типу измененной ссылки;
кэш ограничений по типу - данные хранятся по типам, очищаются данные, которые относятся к типу измененной ссылки.
Описание варианта метода:

Уведомляет динамические списки на клиенте об изменении одного объекта базы данных или одной записи регистра.
Вариант синтаксиса: Изменено много объектов

Синтаксис:

ОповеститьОбИзменении(<ИзмененныйТип>)
Параметры:

<ИзмененныйТип> (обязательный)

Тип: Тип.
Тип изменившихся объектов, например "ДокументСсылка.РасходнаяНакладная".
Поведение при очистке кэша - очищается вся информация, которая связана с измененным типом.
Описание варианта метода:

Уведомляет динамические списки на клиенте об изменении множества объектов или множества записей регистра.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

Уведомление не влияет на динамические списки, у которых не задана основная таблица.
Динамические списки в тонком и веб-клиенте не обновляются при изменении данных в базе данных автоматически. Обновление динамического списка происходит при явном вызове метода, а также при выполнении стандартных команд записи данных форм.
Также осуществляется очистка закэшированных данных на клиенте. В частности, очищается кэш представлений ссылок, кэш данных через точку, кэш данных быстрого выбора, кэш ограничений по типу, кэш форм выбора. Удаляется только та информация, которая стала недействительной.
---
Struwwelkopf, Что-то не получается...

В документе "Расход" написал

```1c
    &НаКлиенте
    Процедура ПриЗакрытии()
    ОповеститьОбИзменении(Объект.Ссылка);
    КонецПроцедуры
```

но ничего не происходит, т.е. созданый документ "Расход" не появляется в динамическом списке...
---
У вас в динамическом списке основная таблица задана?

Цитата из СП

---Примечание:

Уведомление не влияет на динамические списки, у которых не задана основная таблица---
---
Stackmann, Да, есть основная таблица!