Как бы нам упростить RLS?
Будем говорить только про RLS на чтение, чтобы убрать видимость части объектов.
Проблема в том, что если разрабатывать универсальный механизм, то нельзя предвидеть, какой отбор захотят пользователи.
Мы можем написать условие по контрагентам, организациям, складам, а потом окажется, что пользователю нужен отбор по договорам или ответственным, например.
1С попыталось сделать в БСП-типовых универсальный метод RLS, когда для каждого пользователя рассчитывается доступен ему объект или нет. Ну или в документообороте был расчет по группам объектов. Недостаток — длительный пересчет и большой объем регистра.
Я как-то пытался сделать гибкие универсальные права, но тоже споткнулся на этих ограничениях.
Я тогда подумал, что было бы неплохо генерировать права с помощью расширений, а расширения генерировать на летку, с нужным кодом. Но это не будет работать во Fresh, например. Да и реализация довольно сложная. Но был бы заказчик — сделал бы.
И вот недавно мне пришла в голову мысль, как это изящно обойти.
Создается ПВХ «Виды доступа» и регистр сведений для объектов, по которым нужно разграничение RLS с измерениями Объект, «Вид доступа» и реквизитом «Значение доступа».
При записи объекта этот регистр заполняется.
Также администратором заполняются правила вида доступа.
Рассмотрим пример. Всех пользователей делим на группы «Бухгалтер», «Менеджер», «Полный» в виде доступа «Вид пользователя». Для простоты реквизит будет иметь тип «Строка».
Тогда правила вида доступа будут:
Вид документа = Платежное поручение, Вид доступа = Менеджер, Доступ = нет
Вид документа = Платежное поручение, Вид доступа = Бухгалтер, Доступ = да
Вид документа = Платежное поручение, Вид доступа = Полный, Доступ = да
Если делать вид доступа по организации, то можно использовать вспомогательный вид доступа, который не записывается в регистр, а берется из реквизита документа:
Вид документа = *, Вид доступа = Организация, Доступ = если равно
В общем, суть идеи в том, чтобы сохранять ключевые для доступа параметры документа, а проверку делать универсально.




И как это поможет Васи смотреть заказы только по складу Север, с контрагентами, у которых менеджером указан сам Вася?
А на время отсутствия Пети надо Васи добавить прав смотреть склад Юг и аналогично клиентов по менеджеру Петя? При этом не давать смотреть Север+Петя, например?
Вы слишком углубились в детали, не проанализировав концепцию в целом. Классическое «за деревьями не вижу леса».
Потому что концепция не описана совсем.
Вот и опиши. Желательно с примером
Все, что я хочу описать, я описываю. Остальные пожелания — по моему официальному тарифу