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

1. TalaverVladimir 17.01.25 16:36 Сейчас в теме
Всех приветствую. Помогите разобраться в вопросе.
Имеется конфа 1С:Управление торговлей (11.5.15.40). В нее добавлен самописный документ "ЗаявкаНаСогласование". Требуется реализовать к нему ограничение прав доступа на уровне записей. В базе включен производительный режим RLS.
Требуется ограничить права по доступности значения реквизитов "ПредметСогласования"(тип ДокументСсылка.КоммерческоеПредложениеКлиенту) и "Подразделение"(тип СправочникСсылка.СтруктураПредприятия).
Согласно описанию добавляю новый документ во все необходимые объекты. В модуле менеджера документа в процедуре "ПриЗаполненииОграниченияДоступа" пишу следующий код:

Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Подразделение)
| И ЧтениеОбъектаРазрешено(ПредметСогласования)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ИСТИНА
|";

При этом в роли с правами на чтение документа пишу: «#ДляОбъекта("ПредметСогласования")»
В итоге ограничение отрабатывает только по "ЧтениеОбъектаРазрешено(ПредметСогласования)", а "ЗначениеРазрешено(Подразделение)" игнорируется.
Если в роли указать: «#ДляОбъекта("")», при открытии списка документов под пользователем с ограниченными правами возникает ошибка "Ошибка создания набора данных "НаборДанныхДинамическогоСписка"".
В обоих случаях обработка "Обновление доступа на уровне записей" выполняется для объекта корректно но записи в РС "Ключи доступа к объектам" не добавляются для моего документа, видимо используются ключи наследуемые из объектов реквизита "ПредметСогласования".
Тут уже поднималась подобная тема: https://forum.infostart.ru/forum29/topic303050/ . Видимо автор недосмотрел бага который возникает при таком ограничении, так как у меня подобная реализация.
Прикрепленные файлы:
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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