А я поизвращался малость и сделал такую хрень. Повторяю полный изврат, но меня вполне устраивает, на типовых работает.
1) Сделал регистр сведений "ДоступКОбъектам", с двумя измерениями
ОбъектМетаданных (тип Строка)
Пользователь (составной тип СправочникСсылка.ГруппыПользователей, СправочникСсылка.Пользователи)
и 4 ресурса булевского типа: Чтение, Добавление, Изменение, Удаление
2) Сделал 4 шаблона в основной роли (ДоступКОбъектам_Чтение, ДоступКОбъектам_Изменение и т.д.), которая есть у всех, вот текст одного, остальные по аналогии:
ДоступКОбъектам_Чтение:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ((НЕ &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ИЛИ 1 В
(ВЫБРАТЬ ПЕРВЫЕ 1
1
ИЗ
РегистрСведений.ДоступКОбъектам КАК ДоступКОбъектам
ГДЕ
(ДоступКОбъектам.Пользователь = &ТекущийПользователь ИЛИ ДоступКОбъектам.Пользователь В (&ГруппыТекущегоПользователя))
И ДоступКОбъектам.ОбъектМетаданных = #Параметр(1)
И ДоступКОбъектам.Чтение))
Показать
3) Потом ограничиваю у основной роли доступ к справочнику "СтатьиЗатрат" (это где RLS):
#ДоступКОбъектам_Чтение("""СтатьиЗатрат""")
4) Захожу в режиме предприятия, открываю регистр "ДоступКОбъектам" и в режиме реального времени и добавляю туда
ОбъектМетаданных = "СтатьиЗатрат" (строка пишется либо вручную, либо лучше сделать обработку по редактированию прав)
Пользователь = "Все пользователи" (выбираю предопределенную группу и разрешаю всем только читать)
потом кому-то можно писать, кому то удалять и т.д.
Ограничивать ко всем справочникам нету смысла, а для некоторых вполне не обломно прописать 1 раз ограничение РЛС в роли и потом рулить этим из режима предприятия. Вот как-то так.
P.S. Надо будет как-нибудь отдельно опубликовать все мысли :)