![]() |
![]() |
![]() |
|
RLS Объект ГДЕ ЛОЖЬ и <объект не найден> в запросе | ☑ | ||
---|---|---|---|---|
0
МишельЛагранж
27.01.11
✎
13:57
|
Такая конструкция (<Прочие поля объекта> - Объект ГДЕ ЛОЖЬ), как я понял, используется только в RLS-запросе и только при назначении доступа на чтение.
Т.е. если на какой-то объект (документ) нет прав ни на что, а запрос в конфе просит данные, то по этому документу система контроля доступа прав 1С выдаст запросу <объект не найден> (т.к. никаких прав на документ не установлено, окромя далее рассматриваемого RLS-запроса), что и будет получено в ТЧ или списке. Тогда, чтобы обойти это, придумали в RLS эту конструкцию. Ставим её на закрытый документ на право "чтение", и теперь при запросе: система контроля прав 1С дает вместо ссылки - "не найдено" по этой записи -> получили, что Документ = Ложь (нет его, не существует для данного пользователя) -> а строки, где ссылка Ложь, RLS теперь разрешает на чтение -> выводится пустая запись вместо <объект не найден>. Ставим еще и РАЗРЕШЕННЫЕ в запрос - теперь все записи, для которых RLS дал ЛОЖЬ, будут отсеиваться, и выводиться только те, для которых RLS дал ИСТИНА. В принципе, для записей, которые ранее выводились как <объект не найден>, будучи реально существующими, но просто заблокированными правом недоступа, можно было и без этого прописать в основном запросе отсеивание. А вот если ограничение поставить на Поле/Поля (<Поле объекта> - Объект ГДЕ ЛОЖЬ) - то теперь в каких случаях получим остальные поля, с разрешенным доступом, а в каких - не получим ничего благодаря блокировке одного единственного поля? |
|||
1
МишельЛагранж
27.01.11
✎
14:52
|
Т.е. - ни добавить, ни убавить? ))
|
|||
2
МишельЛагранж
27.01.11
✎
19:22
|
апну, что ли ))
|
|||
3
1C-Nick
28.01.11
✎
10:40
|
Подозреваю что если в запросе РАЗРЕШЕННЫЕ будет запрещенное поле, то отсеет, а если не будет, то выведет все записи даже если у объекта есть поле, недоступное для данного пользователя
|
|||
4
МишельЛагранж
28.01.11
✎
12:11
|
Т.е. если в запросе РАЗРЕШЕННЫЕ явно будет указано "возьми поле 1", а оно - запрещено, то не выведет поле? Или все?
А если не будет - выведет все затребованные запросом поля? |
|||
5
1C-Nick
28.01.11
✎
18:45
|
если запрещено поле 1
то в запросе ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле1, Поле2 - должны скрыться те элементы, доступ к которым запрещен а в запросе ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле2 - отобразятся даже запрещенные по полю1 |
|||
6
МишельЛагранж
31.01.11
✎
09:28
|
(5) т.е. RLS не сработал во втором случае?
Кстати, а какая разница между конструкциями RLS: <Прочие поля> Заявка ГДЕ ЛОЖЬ и <Прочие поля> ГДЕ ЛОЖЬ ? |
|||
7
Axel2009
31.01.11
✎
09:40
|
(6) никакой. если нужно будет присоединение таблиц какихнить чтобы понять ложь не ложь, то без заявка не обойтись
|
|||
8
МишельЛагранж
31.01.11
✎
09:42
|
т.е. разная запись одного и того же?
только первая - нужна когда полный запрос с присоединением? |
|||
9
Axel2009
31.01.11
✎
09:45
|
(8) да, одно и тоже.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |