Имя: Пароль:
1C
1С v8
RLS и табличная часть
,
0 Pr0gLamer
 
01.02.13
20:12
Добрый вечер!
есть RLS запрос.Замечательно работает,если в табличной части все реквизиты попадают под фильтр - документы не выводятся.Если же в табличной части есть хоть одна строка с разрешенным реквизитом - видим строки "объект не найден".Как обойти?

Т ИЗ Документ.ПриемНаРаботуВОрганизацию КАК Т ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
       ПО (ПраваДоступаПользователейКОбъектам.ОбъектДоступа = Т.РаботникиОрганизации.ПодразделениеОрганизации)
       И (ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияОрганизаций))
       И (ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя))
       И (ПраваДоступаПользователейКОбъектам.Чтение = ИСТИНА)
1 DrShad
 
01.02.13
20:16
никак
2 Pr0gLamer
 
01.02.13
20:19
всегда происходит Левое соединение с таблчной частью?
3 Ник второй
 
01.02.13
20:20
(1) Я умозаключительно не вижу ограничений
4 DrShad
 
01.02.13
20:21
(3) каких?
5 Maxus43
 
01.02.13
20:22
(4) умохаключительных
6 Ник второй
 
01.02.13
20:22
(5) +1
7 Ник второй
 
01.02.13
20:35
Проверил у меня работает.

Вот пример тестового запроса

ПриходнаяНакладная ГДЕ (НЕ ПриходнаяНакладная.Ссылка В
               (ВЫБРАТЬ
                   ПриходнаяНакладнаяСостав.Ссылка
               ИЗ
                   Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав
               ГДЕ
                   ПриходнаяНакладнаяСостав.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)))
8 DrShad
 
01.02.13
21:33
а что у тебя работает?
9 Ник второй
 
02.02.13
00:43
(8) Нет упоминания об "Объекте не найден".
10 sanja26
 
02.02.13
02:44
и че, в документе выводятся только разрешенные строки?
11 ice777
 
02.02.13
02:45
(0) ну и прекрасно.
12 Pr0gLamer
 
04.02.13
11:31
мне кажется тут нет решения моей проблемы
13 Pr0gLamer
 
04.02.13
11:42
В примере (7) как я понимаю ,если хотя бы один товар - не услуга,то документ отобразится
14 Pr0gLamer
 
04.02.13
12:04
Хелп,хелп((
15 НафНаф
 
04.02.13
12:06
убивал бы за такое

Т ИЗ Документ.ПриемНаРаботуВОрганизацию КАК Т ВНУТРЕННЕЕ СОЕДИНЕНИЕ
РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
       ПО (ПраваДоступаПользователейКОбъектам.ОбъектДоступа = Т.РаботникиОрганизации.ПодразделениеОрганизации) //конкретно за неявное условие к ТЧ
16 Pr0gLamer
 
04.02.13
12:21
расскажите как правильно,потом убейте
17 Pr0gLamer
 
04.02.13
15:18
Сам написал,хоть и через жо,зато работает.Может кому пригодится:

 ПриемНаРаботуВОрганизацию ИЗ  Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
   ПО (ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияОрганизаций))
       И (ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя))
       И (ПраваДоступаПользователейКОбъектам.Чтение = ИСТИНА)  И 1 НЕ В (ВЫБРАТЬ ПЕРВЫЕ 1 1    
ИЗ
   Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК
   ПриемНаРаботуВОрганизациюРаботникиОрганизации ГДЕ
   ПриемНаРаботуВОрганизациюРаботникиОрганизации.ПодразделениеОрганизации.Ссылка <> ПраваДоступаПользователейКОбъектам.ОбъектДоступа
   И ПриемНаРаботуВОрганизацию.Ссылка = ПриемНаРаботуВОрганизациюРаботникиОрганизации.Ссылка)
18 samozvanec
 
04.02.13
15:22
(17) И 1 НЕ В (ВЫБРАТЬ ПЕРВЫЕ 1 1    
ИЗ
   Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации

мощь...
19 samozvanec
 
04.02.13
15:23
+(18) точно работает?
20 samozvanec
 
04.02.13
15:31
+(18) действительно, работает...
(17) продолжай радовать нас новыми кусочками кода!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.