|
Простенький 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), не верно подумал
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший