Не работает RLS в УТ 11.3 #802970


#0 by NortT
Добрый день. Не могу понять как работает RLS. Есть роль, например Менеджер, которая присваивается пользователю, ответственному за Подразделение. Создал параметр сеанса Подразделение.   Далее, есть документ РеализацияТоваровУслуг, у которого есть реквизит Склад, а у склада есть реквизит подразделение. Мне необходимо, чтобы менеджер видел только документы, принадлежащие своему подразделению. Написал такое ограничение для права Чтение у роли Менеджер для документа РеализацияТоваровУслуг: РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Склад.Подразделение = &Подразделение, но это не работает, записи в списке никак не ограничены. Почему это так?
#1 by sdf
есть же штатная роль ЧтениеРеализацийТоваровУслуг где уже и подразделение и склад можно задать. зачем городить огород?
#2 by Фрэнки
скорей всего, что на этот же объект установлена еще одна Роль, в которой ограничение не прописано и по этой еще одной роли Пользователь имеет доступ без ограничения
#3 by Фрэнки
и еще, если уж лепить свое казино с блэк-джеком и шлюхами, то надо бы завести в параметрах сеанса фиксированный массив и заполнять его всеми РазрешенныеСклады для нужных элементов из фиксированного массива РазрешенныеПодразделения.
#4 by NortT
Хорошо, тогда такой вопрос. Если у одной роли есть ограничения RLS, а у второй роли нет, и пользователю дать обе этих роли, то ограничение будет или нет?
#5 by Фрэнки
Отвечу риторическим вопросом на вопрос: Дай пользователю с Полными правами еще какую-то роль в нагрузку, как думаешь, будет введенное ограничение действовать на Полные права или нет?
#6 by NortT
Я про это и спрашиваю, имеет ли RLS приоритет перед правами роли или нет.
#7 by Фрэнки
ссылки не дам на ИТС или еще куда-то, но я читал и сам проверял, как оно работает. Получается на пальцах так: когда у Пользователя есть хотя бы две Роли, то более слабое ограничение ослабит более сильное, а если найдется роль без установленных ограничений на объект, то ограничения будут сняты совсем.
#8 by NortT
Спасибо, понятно. По поводу штатной роли, сейчас там вот так: #ПоЗначениям( "Документ.РеализацияТоваровУслуг","Чтение","", "Организации","Организация", "Склады","Склад", Как изменить так, чтобы отображались документы только с тем подразделением, что и у текущего пользователя? Что вообще означают слова "ПодразделениЯ" и "ПодразделениЕ"? ПодразделениЕ это я так понимаю реквизит документа? А что такое ПодразделениЯ? Массив подразделений? Если так, откуда он берется и как в него записать? Или это что-то другое?
#9 by Фрэнки
ПодразделениЯ - Это визуально Вид доступа на вкладке в форме для изменения Профиль групп доступа
#10 by Фрэнки
Организации Все разрешены, исключения назначаются в группах доступа Подразделения Все разрешены, исключения назначаются в группах доступа Склады Все разрешены, исключения назначаются в группах доступа Заходишь затем в Группу доступа, которая у тебя уже есть на вкладку с Ограничениями доступа и там останавливаешься на нужном тебе Подразделения, например - смотришь в нижнюю половинку формы и пробрасываешь туда именно те элементы из справочника "Структура предприятия", которые в данном случае НЕ нужны. Если созданная группа доступа с установленными ограничениями  только индивидуальная... ну значит так тому и быть - будет индивидуальная Группа доступа. з.ы. Текст написан максимально упрощенно, но это так получилось - тут нет умысла чем-то оскорбить.
#11 by AlvlSpb
Дополню . ПодразделениЯ - имя  (название) ограничения. ПодразделениЕ - имя поля (реквизита документа) на которое накладывается это ограничение. Открой в роли закладку Шаблоны ограничений, там в самом начале кода все подробно описано под ремарками //
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С