Имя: Пароль:
1C
 
RLS не хочет фильтровать контрагентов
0 vladwood
 
21.10.22
13:50
Уважаемые гуру, помогите найти причину почему настройка RLS не работает:
Конф-я БП3. Создаю новую роль где налагаю ограничение на Чтение справочника Контрагенты
Для фильтрации контрагентов есть РС:РегистрСведений.ОграниченияПоКонтрагентам  с правами для созданной роли
Контрагенты.Ссылка В (ВЫБРАТЬ ОграничениеПоКА.Контрагент ИЗ РегистрСведений.ОграниченияПоКонтрагентам КАК ОграничениеПоКА
    ГДЕ
        ОграничениеПоКА.Пользователь = &ТекущийПользователь
        И ОграничениеПоКА.Разрешено = ИСТИНА)
Добавляю эту роль к профилю Бухгалтер.
И все равно пользователь видит всех Контрагентов. Где ошибка??
1 Amra
 
21.10.22
13:54
Значит в профиле есть роль, которая дает доступ ко всему справочнику
2 vladwood
 
21.10.22
14:32
Да есть  и вероятно не одна. Но я же хочу просто ограничить (т.е. установить фильтр)
Получается если уже дан полный доступ другими ролями, то эти роли тоже нужно менять?!
3 Hawk_1c
 
21.10.22
14:52
Доступ по RLS работает как ИЛИ.
Если другая роль предоставляет этот доступ, будет доступно.
4 1Сергей
 
21.10.22
15:40
Разрешено всё, что не запрещено
5 vladwood
 
21.10.22
15:56
Нашел в Справочнике Контрагенты все роли, которые дают право Чтения. Во всех этих ролях установил Ограничения. Все равно пользователь видит всех Контрагентов
6 AlvlSpb
 
21.10.22
19:41
(0) А в регистре-то записи есть (из которого берешь ограничения)?
А глобально. Раз уж все-равно вмешиваешься в конфигурация, не проще ли сделать стандартное ограничение по Контрагенту как в типовой по Организации? и никаких доп регистров
7 Фрэнки
 
21.10.22
20:00
Если нужно увидеть всех по конкретному одному объекту метаданных, то обычно открываю в конфигурации на ПКМ Роли "все роли"
Там прокруткой слева ставим объект и вправо крутишь. Если справа увидишь, что нужных ролей в профилях пользователя нет, то он и не увидит ничего.
Ну там же видно с какими действующими шаблонами на ограничение доступа это работает.
8 ViSo76
 
22.10.22
17:56
(2) Да, там на чтение пишется ГДЕ ЛОЖЬ
Программист всегда исправляет последнюю ошибку.