Добрый день коллеги!

Конфигурация УПП - актуальная. Вот таким образом Фильтруем программно данные в форме списка документа для менеджеров - чтобы они видели только свои склады:

```1c
    Процедура ПриОткрытии()
    ЗаполнитьСклады();
    УстановитьВидимость();
    КонецПроцедуры

    Процедура УстановитьВидимость()
    Если РольДоступна("ПолныеПрава") Тогда
    Возврат;
    КонецЕсли;

    Если РольДоступна("ТриЗ_МатОтчетыПЗ") Тогда
    ОтборСклад = Отбор.Найти("Склад");

    ОтборСклад.ВидСравнения = ВидСравнения.ВСписке;
    ОтборСклад.Значение = СписокСкладов;
    ОтборСклад.Использование = Истина;

    Элементыформы.ДокументСписок.НастройкаОтбора.Склад.Доступность = Ложь;

    КонецЕсли;

    Если РольДоступна("ТриЗ_СтМедСестра") Тогда
    ОтборСтатусДокумента = Отбор.Найти("СтатусДокумента");

    ОтборСтатусДокумента.ВидСравнения = ВидСравнения.Равно;
    ОтборСтатусДокумента.Значение = Перечисления.ТриЗ_СтатусыДокумента.НаУтвержденииСтМедСестры;
    ОтборСтатусДокумента.Использование = Истина;

    КонецЕсли;

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

    Процедура ЗаполнитьСклады()

    СписокСкладов = Новый СписокЗначений;
    нЗапрос = Новый Запрос;
    нЗапрос.Текст = "ВЫБРАТЬ
    | ТриЗ_ОтветственныеПоПЗ.Склад
    |ИЗ
    | РегистрСведений.ТриЗ_ОтветственныеПоПЗ КАК ТриЗ_ОтветственныеПоПЗ
    |ГДЕ
    | ТриЗ_ОтветственныеПоПЗ.Пользователь = &Ответственный
    |
    |СГРУППИРОВАТЬ ПО
    | ТриЗ_ОтветственныеПоПЗ.Склад";
    нЗапрос.УстановитьПараметр("Ответственный", ОбщегоНазначения.ТекущийПользователь());
    СписокСкладов.ЗагрузитьЗначения(нЗапрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Склад"));

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

Поведение формы недостаточное. Необходимо дать менеджерам возможность фильтрации в пределах назначенных им складов, но необходимое поле отбора становится неактивным для пользовательского использования. Какие есть варианты решить задачу?
---
В УПП есть работающий РЛС по складам. Зачем что-то свое выдумывать? Проблема в этом коде
Элементыформы.ДокументСписок.НастройкаОтбора.Склад.Доступность = Ложь;
---
RLS
---
если не хотите (не можете) включить РЛС то
вариант - на форме делаете список значений и заполняете его необходимым перечнем складов. включаете отображение пометки.
при открытии, устанавливаете отбор по всем складам из списка (или только по какому-то одному). вещаете событие на список Выбор. И в этом событии программно устанавливаете отбор по помеченным складам.

```1c
    Процедура СтатусыВыбор(Элемент, ЭлементСписка)
    ЭлементСписка.Пометка = НЕ ЭлементСписка.Пометка;
    УстановитьОтбор();
    КонецПроцедуры

    Процедура УстановитьОтбор()

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

    Элементыформы.ДокументСписок.НастройкаОтбора.Склад.Доступность = Ложь; // это уже из вашего кода добавлено
    КонецПроцедуры
```
---
В УПП есть работающий РЛС по складам. Зачем что-то свое выдумывать? Проблема в этом коде
Элементыформы.ДокументСписок.НастройкаОтбора.Склад.Доступность = Ложь;
---
Добрый день. Я правильно понимаю что несмотря на то что в УПП - встроенный РЛС по Подразделениям организации якобы присутствует - по факту он нерабочий? И так и сяк верчу - настроить в лоб работоспособность не могу, при этом по организации и складам работает идеально.
---
Работает. Вы точно по БУ/НУ хотите ограничить?
---
Вы точно по БУ/НУ хотите ограничить?
А здесь можно подробнее. Что значит по БУ/НУ? Задача стоит ограничить форму списка документа "ВводИндивидуальныхГрафиковРаботыОрганизации" только подразделением текущего пользователя. Создал тестового пользователя с двумя ролями - типовая - "Пользователь" и созданная под него атомарная роль "X" с правами только на просмотр данного документа и связанного с ним РС "СводныеИндивидуальныеГрафики". Пользователь включен только в отдельно созданную для него группу "Y" справочника "ГруппыПользователей" с ограничением на просмотр по его текущему подразделению. Результат отрицательный, в форме списка видны документы по всем подразделениям.
---
Я думал, вы про типовые ограничения спрашиваете. Как у вас сделано - не могу прокомментировать.
---
RLS
---
если не хотите (не можете) включить РЛС то
вариант - на форме делаете список значений и заполняете его необходимым перечнем складов. включаете отображение пометки.
при открытии, устанавливаете отбор по всем складам из списка (или только по какому-то одному). вещаете событие на список Выбор. И в этом событии программно устанавливаете отбор по помеченным складам.

```1c
    Процедура СтатусыВыбор(Элемент, ЭлементСписка)
    ЭлементСписка.Пометка = НЕ ЭлементСписка.Пометка;
    УстановитьОтбор();
    КонецПроцедуры

    Процедура УстановитьОтбор()

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

    Элементыформы.ДокументСписок.НастройкаОтбора.Склад.Доступность = Ложь; // это уже из вашего кода добавлено
    КонецПроцедуры
```
---
Всем спасибо. Ушел разбираться с RLS.