Имя: Пароль:
1C
 
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) да, одно и тоже.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн