Имя: Пароль:
1C
1С v8
помогите разобраться с запросом в RLS
,
0 kosmo
 
11.10.11
09:44
Стандартное ограничение доступа по чтению (в частности по справочнику Физические лица) имеет такой кусок запроса

(НЕ 1 В
  (ВЫБРАТЬ ПЕРВЫЕ 1
      1
   ИЗ
      РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                 
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
       ПО
                           НастройкиПравДоступаПользователей.ОбъектДоступа = ЕСТЬNULL(ТекущаяТаблица.ГруппаДоступаФизическогоЛица, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаФизическихЛиц.ПустаяСсылка))
            И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
            И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ФизическиеЛицаДанные)
            И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
         ГДЕ                
            НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
             И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ФизическиеЛица)
             И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))

не могу разобраться как оно работает. в частности почему отбрасываются не нужные элементы.
1 Axel2009
 
11.10.11
09:49
а где хоть один параметр?
2 5 Элемент
 
11.10.11
09:50
Смысл такой
Ищется хотя бы один объект доступа для которого не заданы права доступа.
3 kosmo
 
11.10.11
10:22
(2) насколько я понимаю строку

НастройкиПравДоступаПользователей.ОбъектДоступа = ЕСТЬNULL(ТекущаяТаблица.ГруппаДоступаФизическогоЛица, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаФизическихЛиц.ПустаяСсылка))

то если у элемента (физ лица) не заполнено значение, то никак не получится ничего выбрать.
4 5 Элемент
 
11.10.11
10:37
Не заполнена группа доступа у физ лица?
Получится, надо дать права к пустому значению.
5 kosmo
 
11.10.11
15:53
разобрался

в плане образования - в вышеописанном куске запроса что в первую очередь отрабатывается ПО или ГДЕ?
6 Кокос
 
11.10.11
15:55
А это стандартный РЛС? просто меня "(НЕ 1 В" смущает. "В" в РЛС не работает
7 kosmo
 
11.10.11
16:04
(6) это из стандартного УПП. Там эта конструкция повсеместно.
А "В" обращается к результатам подзапроса (насколько я понимаю).
8 5 Элемент
 
11.10.11
16:29
"В" работает, а вот "В ИЕРАРХИИ" не работает.
9 Кокос
 
11.10.11
16:31
(8) точно. звиняюсь тогда :)
10 kosmo
 
11.10.11
16:45
(9) то есть в RLS нельзя сделать выборку элементов подчиненных определенной группе?
11 Кокос
 
11.10.11
16:47
(10) приходится делать связки через родитель.родитель.родитель.... и т.д на столько уровней сколько нужно.
12 kosmo
 
11.10.11
16:57
(11) а если не известно сколько уровней? вставлять на всякий случай до предполагаемого максимального уровня?
13 Кокос
 
11.10.11
17:04
(12) угу. сколько уровней столько строк в условии. я както три поставил клиент звонил поменял на 6 больше не звонит.
14 kosmo
 
11.10.11
17:07
(13) спасибо. как раз хотел конструкцию через "В ИЕРАРХИИ" делать. хоть время не потеряю.
15 Кокос
 
11.10.11
17:21
(14) да тут тем полно про это. моя в том числе :)
2 + 2 = 3.9999999999999999999999999999999...