RLS в 1С

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

Комментариев нет:

Отправить комментарий