Программное добавление отбора в динамический список

1. okami 09.02.18 13:01 Сейчас в теме
Добрый день, форумчане!

Имеется почти типовая БП (доработки небольшие и не касаются основного функционала БП).

Возникла необходимость для бухгалтеров филиалов ограничивать просмотр журнала проводок только теми проводками, которые формируются документами, ответственный в которых и есть сам пользователь.

Ограничения, устанавливаемые в профиле пользователя, нужного эффекта не дают, и видны ВСЕ проводки, и документы так же можно открыть, хотя для установленных ролей есть ограничения вида https://yadi.sk/i/9V00jrc93SEbjm , исключений не назначено.

Было принято решение сделать отбор в коде.

Но при попытке установить отбор в коде

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


ругается на отсутствие поля "Ответственный", равно как и на "Регистратор.Ответственный".

Были попытки добавления в список данного поля (добавление в запрос нужного поля), но ни "Регистратор.Ответственный" не помогает.

При том, что в других формах списка устанавливаемый отбор в виде "Ссылка.Ответственный" отлично работает!

Что я делаю не так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DarkUser 09.02.18 13:07 Сейчас в теме
Скорее всего Ответственный не выведен на форму и список его не запрашивает при выводе. Установите у этого реквизита галочку ИспользоватьВсегда. Тогда и отбор получиться сделать. Только накладывайте его средствами БСП: ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка

Но вообще надо настраивать RLS, так как если пользователь откроет список этих документов из другой формы, где не настроен отбор, то он увидит всё что видеть не должен.
Так же надо помнить, что если у отбора не стоит признак доступности то пользователь может его снять вручную в настройке списка.
3. okami 09.02.18 13:21 Сейчас в теме
(2) на форму реквизит выведен (в конфигураторе), и "ИспользоватьВсегда" так же установлен.
НО! В на форме реквизит не отображается, и в списке доступных элементов так же не виден (в форме настройки списке). Куда смотреть-копать?
4. DarkUser 09.02.18 13:22 Сейчас в теме
(3) Посмотрите права доступа у это реквизита для необходимых ролей
5. okami 09.02.18 13:31 Сейчас в теме
(4)
(3) Посмотрите права доступа у это реквизита для необходимых ролей


Права есть. Регистратор - это же стандартный реквизит.


(2)
Но вообще надо настраивать RLS

Это по мне так мутная тема и темный лес... Сколько я сталкивался с ним, то толком и гибко не работает... Может за несколько лет не встретились работающие и правильные примеры...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот