Имя: Пароль:
1C
1С v8
Подскажите с RLS
0 john_ddd
 
07.07.15
17:28
ставлю запрос в роль на чтение в таблицу Курьеры.

Курьеры ИЗ РегистрСведений.ТерриторииПредставителей КАК ТерриторииПредставителей
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Учреждения КАК Учреждения
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Курьеры КАК Курьеры
        ПО Учреждения.Ссылка = Курьеры.Владелец
    ПО ТерриторииПредставителей.Территория = Учреждения.Территория
ГДЕ ТерриторииПредставителей.Представитель = &ТекущийПользователь
И НЕ Курьеры.Ссылка ЕСТЬ NULL

ошибку не выдает..выводит всех. Отбор не срабатывает.
А в консоле запросов отрабатывает запрос с отбором.
1 fisher
 
07.07.15
17:36
Есть роль с правами без RLS?
2 john_ddd
 
07.07.15
17:38
(1)нет. простенький запрос срабатывает

Курьеры ГДЕ Курьеры.Представитель = &ТекущийПользователь
3 fisher
 
07.07.15
17:42
Что-то у меня этот запрос размягчение мозга вызывает.
Курьеры - это что за таблица? Справочник?
4 fisher
 
07.07.15
17:43
На которую RLS применяется?
5 john_ddd
 
07.07.15
17:44
(3)(4)да
6 john_ddd
 
07.07.15
17:45
понял что не работает когда делаю через левое соединение с регистром сведений.
Так не работает:

Курьеры ИЗ РегистрСведений.ТерриторииПредставителей КАК ТерриторииПредставителей
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Курьеры КАК Курьеры
    ПО ТерриторииПредставителей.Представитель = Курьеры.Представитель
ГДЕ ТерриторииПредставителей.Представитель = &ТекущийПользователь

Так работает:
Курьеры ГДЕ Курьеры.Представитель = &ТекущийПользователь
7 john_ddd
 
07.07.15
17:46
почему может не работать когда соединение делаю?
8 Лефмихалыч
 
07.07.15
17:58
Если рос не срабатывает, значит либо кэш, либо изменения концы забыли применить к бд, либо у пользователя есть еще одна роль, в которой ни каких рлсов нет
9 Лефмихалыч
 
07.07.15
17:58
(7) потому, что соединение внутренним должно быть, чтобы оно что-то огранияивало
10 Лефмихалыч
 
07.07.15
17:59
Пишу с утюга, за отпечатки скорблю
11 john_ddd
 
07.07.15
18:01
(9)соединение ограничивает...
я же в консоле запросов проверяю запрос.
(8)других ролей нет
12 Лефмихалыч
 
07.07.15
18:03
(11) научи меня, ага
13 john_ddd
 
07.07.15
18:10
(12)
Курьеры ГДЕ Курьеры.Представитель = &ТекущийПользователь

подставляешь
Выбрать курьеры.ссылка
ГДЕ Курьеры.Представитель = &ТекущийПользователь
14 Лефмихалыч
 
07.07.15
18:12
(13) ты жалуешься или хвастаешься?
15 john_ddd
 
07.07.15
18:14
(14)ничего из этого.
нужно срочно разобраться почему рлс не срабатывате
16 Лефмихалыч
 
07.07.15
18:18
(15) я же уже сказал - соединение не ограничивает. Либо сделай его внутренним, либо замени условие на
Где курьеры.представитель = текущий пользователь
Что точно так же превратит соединение во внутреннее
17 john_ddd
 
07.07.15
18:22
(16)спасибо получилось.
не сразу понял насчет внутреннего.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший