RLS Объект ГДЕ ЛОЖЬ и <объект не найден> в запросе #529794


#0 by МишельЛагранж
Такая конструкция (<Прочие поля объекта> - Объект ГДЕ ЛОЖЬ), как я понял, используется только в RLS-запросе и только при назначении доступа на чтение. Т.е. если на какой-то объект (документ) нет прав ни на что, а запрос в конфе просит данные, то по этому документу система контроля доступа прав 1С выдаст запросу <объект не найден> (т.к. никаких прав на документ не установлено, окромя далее рассматриваемого RLS-запроса), что и будет получено в ТЧ или списке. Тогда, чтобы обойти это, придумали в RLS эту конструкцию. Ставим её на закрытый документ на право "чтение", и теперь при запросе: система контроля прав 1С дает вместо ссылки - "не найдено" по этой записи -> получили, что Документ = Ложь (нет его, не существует для данного пользователя) -> а строки, где ссылка Ложь, RLS теперь разрешает на чтение -> выводится пустая запись вместо <объект не найден>. Ставим еще и РАЗРЕШЕННЫЕ в запрос - теперь все записи, для которых RLS дал ЛОЖЬ, будут отсеиваться, и выводиться только те, для которых RLS дал ИСТИНА. В принципе, для записей, которые ранее выводились как <объект не найден>, будучи реально существующими, но просто заблокированными правом недоступа, можно было и без этого прописать в основном запросе отсеивание. А вот если ограничение поставить на Поле/Поля (<Поле объекта> - Объект ГДЕ ЛОЖЬ) - то теперь в каких случаях получим остальные поля, с разрешенным доступом, а в каких - не получим ничего благодаря блокировке одного единственного поля?
#1 by МишельЛагранж
Т.е. - ни добавить, ни убавить? ))
#2 by МишельЛагранж
апну, что ли ))
#3 by 1C-Nick
Подозреваю что если в запросе РАЗРЕШЕННЫЕ будет запрещенное поле, то отсеет, а если не будет, то выведет все записи даже если у объекта есть поле, недоступное для данного пользователя
#4 by МишельЛагранж
Т.е. если в запросе РАЗРЕШЕННЫЕ явно будет указано "возьми поле 1", а оно - запрещено, то не выведет поле? Или все? А если не будет - выведет все затребованные запросом поля?
#5 by 1C-Nick
если запрещено поле 1 то в запросе ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле1, Поле2 - должны скрыться те элементы, доступ к которым запрещен а в запросе ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле2 - отобразятся даже запрещенные по полю1
#6 by МишельЛагранж
т.е. RLS не сработал во втором случае? Кстати, а какая разница между конструкциями RLS: <Прочие поля> Заявка ГДЕ ЛОЖЬ и <Прочие поля> ГДЕ ЛОЖЬ ?
#7 by Axel2009
никакой. если нужно будет присоединение таблиц какихнить чтобы понять ложь не ложь, то без заявка не обойтись
#8 by МишельЛагранж
т.е. разная запись одного и того же? только первая - нужна когда полный запрос с присоединением?
#9 by Axel2009
да, одно и тоже.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С