Имя: Пароль:
1C
1С v8
RLS. Добавить условие: все родители доступны
0 bolobol
 
02.08.16
12:15
День добрый!

Есть шаблон RLS у справочника, права "им выдаваемые" необходимо расширить - добавить что все родители доступных элементов - тоже доступны. Как сие правильно сделать?

Шаблон RLS:

ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ (<запрос групп>) КАК ГруппыПользователей
    ПО (ИСТИНА)
ГДЕ (<запрос, цель которого: НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1), т.е. = Ссылка/Реквизит>)
                        И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL


Справочник, типа так выглядит:
Элемент1
Элемент2
-/Элемент2-1
-/Элемент2-2
-/-/Элемент2-2-1

В разрешениях установлен доступным Элемент2-2-1, в списке справочника, что в виде дерева - ничего не видно, т.к. родительские элементы в правах недоступны. Надо сделать так, чтобы "автоматом" становились доступными Элемент2, Элемент2-2 для разрешённого Элемент2-2-1
1 Лефмихалыч
 
02.08.16
12:26
упорешься ты это РЛСом разрешать, так что разреши чтение для всех родителей вообще.
2 bolobol
 
02.08.16
12:32
Можно и всех родителей, только как? Ну, В ИЕРАРХИИ (вместо =) не работает...
3 FIXXXL
 
02.08.16
12:33
(2) ЭтоГруппа
4 bolobol
 
02.08.16
12:40
Это не группа - иерархия элементов. Реквизит ЭтоГруппа отсутствует.
5 youalex
 
02.08.16
12:46
(4) левосоединяться с той же таблицей - по родителю, и условие - если ссылка is not null - тогда Истина
6 bolobol
 
02.08.16
12:51
(5) Тут и два родителя может быть и три...
7 bolobol
 
02.08.16
12:52
(5) А, в смысле, что это группа, а не элемент? Ясно. И куда такое присовокупить к RLS-у?
8 youalex
 
02.08.16
13:03
(7) да там же где и "ЛЕВОЕ СОЕДИНЕНИЕ (<запрос групп>) КАК ГруппыПользователей" - еще одно соединение
и условие - в ВЫБОР КОГДА завернуть. Т.е будет
ГДЕ ВЫБОР КОГДА ТабПодчиненных.Ссылка is not null Тогда Истина Иначе ... типовое условие
КОНЕЦ

Правда не факт, что это правильно будет с точки зрения логики приложения, все же это элементы, независимо от иерархии
9 bolobol
 
02.08.16
13:40
Понял. Спасибо. Буду эскрементировать в боевой базе.