Имя: Пароль:
1C
1С v8
Простенький RLS. Проблема
,
0 Nikoss
 
01.10.14
15:41
Пробую добавлять РЛС на чтение документа:

Заказ ГДЕ Заказ.Контрагент В
    (ВЫБРАТЬ
        Контрагенты.Ссылка
    ИЗ
        Справочник.Контрагенты КАК Контрагенты)

На справочник контрагентов так же наложено РЛС, где остаются только те контрагенты, с которыми может работать данный пользователь. Т.е. при выполнении запроса по контрагентам (или открытии формы списка справочника) лишние контрагенты не отображаются/читаются.

Проблема заключается в том что в подзапросе по контрагента РЛС, 1С все равно читает недоступные записи. В итоге в форму списка документа попадают все документы, в т.ч. <Объект не найден>.

Добавить слово РАЗРЕШЕННЫЕ в подзапрос в РЛС нельзя.
1 ObjectRelation Model
 
01.10.14
15:48
правила RLS не действуют на другие правила RLS, а потому твое условие тупо глупое
2 Зеленый пень
 
01.10.14
15:53
Было бы феерично, если бы в РЛС работало РАЗРЕШЕННЫЕ :)
3 Nikoss
 
01.10.14
15:54
(1), придется все же делать отдельную таблицу с настройками (в том числе контрагентов)? Думал обойтись без этого: т.е. если нет прав на чтение контрагента, то и читать документы нельзя.
4 Бледно Золотистый
 
01.10.14
15:55
(3) Используй шаблоны RLS
5 ObjectRelation Model
 
01.10.14
15:55
(3) используй то же условие, что и в контрагентах
чтобы код не дублировать 100 раз, используй шаблоны
6 PR
 
01.10.14
16:06
(0) Может внутреннее соединение с контрагентами?
7 Nikoss
 
02.10.14
07:18
(6), результат тот же
8 Nikoss
 
02.10.14
13:13
А как можно сделать такое условие:
Есть таблица прав с контрагентами, есть справочник контрагентов. Если в таблице прав нет записей - не делать ограничение, если есть - делать только по тем что есть?
Т.е. в зависимости от заполненности таблицы делать разные выборки/условия.
9 ObjectRelation Model
 
02.10.14
13:19
Справочник.Контрагенты
ГДЕ Ссылка В (Выбрать Контрагент ИЗ ТаблицаОграничений) ИЛИ
1 НЕ В (Выбрать ПЕРВЫЕ 1 1 ИЗ ТаблицаОграничений)
10 Nikoss
 
02.10.14
13:32
(9), спасибо, работает

но я так понимаю что даже если стоит ограничение на 2 контрагента, все равно будет происходить чтение всего справочника контрагентов? Просто у меня там под 5 тысяч записей, боюсь за производительность.
11 Nikoss
 
02.10.14
13:35
отбой (10), не верно подумал