Производительный RLS, ЗначениеРазрешено + ЧтениеОбъектаРазрешено

1. PavleG29 06.09.23 16:19 Сейчас в теме
Коллеги, приветствую.

Есть самописный справочник. Нужно накрутить на него производительный RLS.

1. Ограничение по виду доступа "Пользователь", реквизит справочника "Ответственный". Пользователи видят только те элементы, где они указаны как "Ответственный".
ИЛИ
2. Ограничение по доступности другого сапописного документа, который указан в реквизите справочника "Документ". Пользователи видят элемент справочника, если у них есть права на этот документ (на эти документы тоже накручен сложный RLS).

В итоге создал 2 роли. Шаблоны:
1 роль. #ДляОбъекта("")
2 роль. #ДляОбъекта("Документ")

В модуле менеджера справочника "ПриЗаполненииОграниченияДоступа" такой код:
РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Ответственный)	                                                                
| ИЛИ ЧтениеОбъектаРазрешено(Документ)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЗначениеРазрешено(Ответственный)	
| ИЛИ ИзменениеОбъектаРазрешено(Документ)
Показать

Вспомогательные данные обновил, обновление доступа на уровне записей для своего справочника прогнал. Тестирую под пользователем с этими двумя ролями. При открытии формы списка справочника получаю ошибку:
Требуется актуализировать ограничение доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "".

Кто-нибудь из вас делал подобное, чтобы доступ был как по значению реквизита, так и по доступности другого связанного объекта. И как решали, что я сделал не так?
По теме из базы знаний
Найденные решения
5. PavleG29 08.09.23 13:48 Сейчас в теме
Получилось сделать, нужно было наоборот оставить роль с шаблоном #ДляОбъекта("Документ").
А роль с шаблоном #ДляОбъекта("") удалить.

Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".

Sashares, спасибо за наводку.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 06.09.23 16:59 Сейчас в теме
(1) Удалите "2 роль. #ДляОбъекта("Документ") ", оставьте только первую роль, с шаблоном #ДляОбъекта("") .
Обновите вспомогательные данные.
3. PavleG29 07.09.23 09:42 Сейчас в теме
(2) Ожидаемо не взлетело. Причем сохранилась предыдущая ошибка при открытии динамического списка:
Требуется актуализировать ограничение доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "".
4. Sashares 34 07.09.23 10:00 Сейчас в теме
(3)Запустите обработку проверку внедрения БСП, возможно будут какие-то сообщения о проблеме.
5. PavleG29 08.09.23 13:48 Сейчас в теме
Получилось сделать, нужно было наоборот оставить роль с шаблоном #ДляОбъекта("Документ").
А роль с шаблоном #ДляОбъекта("") удалить.

Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".

Sashares, спасибо за наводку.
Оставьте свое сообщение

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