Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как настроить RLS к табличной части

Как настроить RLS к табличной части
Я
   vde69
 
18.10.21 - 21:28
есть справочник А у него ТЧ с реквизитами ПВХ и ЗначениеПВХ

есть где-то регистр аналогичной структуры в котором у каждого пользователя проставлены разрешенные ему типы и значения ПВХ

необходимо состряпать запрос (для RLS, а там есть ограничения) который будет выдавать элементы А у которого все возможные виды ПВХ имеют хотя-бы по одному разрешенному значению, видов ПВХ ограниченое количество, по этому можно на каждый вид делать отдельный джойн.


хитрость в том, что
1. нельзя делать вложенный запрос с группировкой (справочник большой...)
2. нельзя использовать агрегатные функции в условиях ждойна (это ограничения RLS)
3. соединения выходят многое ко многим и не выходит собрать вместе даже пару разных типов

примерно это так
эл справочника А имеет ТЧ в которой есть такие записи
Размер-Средний
Размер-Маленький
Цвет-Зеленый
Цвет-Красный

регистр прав для пользователя содержит
Размер-Средний
Цвет-Синий
Цвет-Зеленый
Цвет-Красный

совпадают размер и цвет

Штатно задача вроде не решается, нужно придумать что-то хитрое,
   pechkin
 
1 - 18.10.21 - 21:47
Если есть 1 недоступный, то вся тч и с ней документ недоступен?
   H A D G E H O G s
 
2 - 18.10.21 - 22:09
ВЫБРАТЬ
    НоменклатураХарактеристики.Ссылка КАК Ссылка
ИЗ
    Справочник.Номенклатура.Характеристики КАК НоменклатураХарактеристики
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Фильтр КАК Фильтр
        ПО (Фильтр.Свойство = НоменклатураХарактеристики.Свойство)
            И (Фильтр.Значение = НоменклатураХарактеристики.Значение)

СГРУППИРОВАТЬ ПО
    НоменклатураХарактеристики.Ссылка

ИМЕЮЩИЕ
    СУММА(1) = &КоличествоХарактеристик

КоличествоХарактеристик вычислять в Модуле сеанса, хранить в параметрах сеанса
   RomanYS
 
3 - 18.10.21 - 22:09
Если количество свойств известно заранее

Справочник ГДЕ Справочник.Ссылка В
            (ВЫБРАТЬ
                ТЧ.Ссылка КАК Ссылка
            ИЗ
                Справочник.Справочник4.ТЧ КАК ТЧ
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСведений2 КАК Рег
                    ПО
                        ТЧ.А = Рег.А
                            И ТЧ.Б = Рег.Б
            СГРУППИРОВАТЬ ПО
                ТЧ.Ссылка
            ИМЕЮЩИЕ
                СУММА(1) = &КоличествоСвойств)
   H A D G E H O G s
 
4 - 18.10.21 - 22:09
Но план запроса надо смотреть
   pechkin
 
5 - 18.10.21 - 22:16
Может лучше вычислять доступные, как в "быстром" рлс?
   vde69
 
6 - 19.10.21 - 09:01
(1) да
(2) ИМЕЮЩИЕ - разве можно использовать в RLS?
   Ненавижу 1С
 
7 - 19.10.21 - 09:02
(6) это обычный оператор SQL, почему нет?
   vde69
 
8 - 19.10.21 - 09:04
пока рассматриваю такой вариант

делаем доп регистр,
измерение
1. ссылка
реквизиты
1. размер
2. цвет
3.
4. - другие виды

при записи жлемента справочника записывать все возможные комбинации в этот регистр
   vde69
 
9 - 19.10.21 - 09:18
(3) не пойдет, в примере (0) вернет 3 а не 2, то есть если доступ будет по нескольким полям одного типа то будет врать
   RomanYS
 
10 - 19.10.21 - 11:47
(9) ну значит Сумма(1) заменить на количество(различные ТЧ.Свойство)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.