RLS при использовании СКД (?) #747214


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

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