Тормоза в динамическом списке, RLS, не пойму как применяется
Всем привет! думал что понимаю как работает RLS, но оказалось что это не так) Прошу подсказать
Имеем отраслевую конфиуграцию Два пользователя, Администратор, и Пользователь (ограниченный по RLS)
Форма списка реалзиций с произвольным простым запросом
Для администратора форма отрывается мгновенно, для Пользователя 2 минуты. При этом срабатывает RLS и пользователь видит только нужные реализации. Собствеенно вопрос, как именно и где применяется RLS если в запросе нет "РАЗРЕШЕННЫЕ"?
Задержка при этом возникает на "КонецПроцедуры" в ПриСозданииНаСервере
Т.е. в итоге, имеем, что каким то образом при выходе из ПриСозданииНаСервере отрабатыввается условия RLS, но при этом в основном запросе они не определены. Прошу пояснить в двух словах как это работает то.
Имеем отраслевую конфиуграцию Два пользователя, Администратор, и Пользователь (ограниченный по RLS)
Форма списка реалзиций с произвольным простым запросом
ВЫБРАТЬ
ДокументРеализацияТоваровУслуг.Ссылка,
ДокументРеализацияТоваровУслуг.ПометкаУдаления,
ДокументРеализацияТоваровУслуг.Номер,
ДокументРеализацияТоваровУслуг.Дата,
ДокументРеализацияТоваровУслуг.Проведен,
ДокументРеализацияТоваровУслуг.ТорговаяТочка,
ДокументРеализацияТоваровУслуг.Контрагент,
ДокументРеализацияТоваровУслуг.Валюта,
ДокументРеализацияТоваровУслуг.СуммаДокумента,
ДокументРеализацияТоваровУслуг.ДатаПлатежа,
ДокументРеализацияТоваровУслуг.Организация,
ДокументРеализацияТоваровУслуг.Договор,
ДокументРеализацияТоваровУслуг.ДокументОснование,
ДокументРеализацияТоваровУслуг.Комментарий,
ДокументРеализацияТоваровУслуг.Менеджер,
ДокументРеализацияТоваровУслуг.Подразделение,
ДокументРеализацияТоваровУслуг.ЦенаВключаетНДС,
ДокументРеализацияТоваровУслуг.Агент,
ДокументРеализацияТоваровУслуг.Скидка,
ДокументРеализацияТоваровУслуг.Склад,
ДокументРеализацияТоваровУслуг.ИспользоватьНДС,
ДокументРеализацияТоваровУслуг.ВремяДоставки,
ДокументРеализацияТоваровУслуг.МоментВремени,
ДокументРеализацияТоваровУслуг.Источник как Источник,
ЗНАЧЕНИЕ(Перечисление.СтатусыДокументов.ЗагруженИзМУ) КАК СтатусДокумента
ИЗ
Документ.РеализацияТоваровУслуг КАК ДокументРеализацияТоваровУслуг
ПоказатьДля администратора форма отрывается мгновенно, для Пользователя 2 минуты. При этом срабатывает RLS и пользователь видит только нужные реализации. Собствеенно вопрос, как именно и где применяется RLS если в запросе нет "РАЗРЕШЕННЫЕ"?
Задержка при этом возникает на "КонецПроцедуры" в ПриСозданииНаСервере
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
КонецПроцедуры
ПоказатьТ.е. в итоге, имеем, что каким то образом при выходе из ПриСозданииНаСервере отрабатыввается условия RLS, но при этом в основном запросе они не определены. Прошу пояснить в двух словах как это работает то.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) в чем собственно вопрос?
То что не определили обработчики, не означает, что их нет. Они выполняются в любом случае, но без вашего доп. кода.
Сам запрос выполняется не сразу после обработчика ПриСозданииНаСервере.
Затем выполняются обработчики ДС:
- ПередЗагрузкойПользовательскихНастроекНаСервере
- ПриЗагрузкеПользовательскихНастроекНаСервере
Только после этого выполняется запрос ДС.
И еще, отборы могут быть наложены в настройках списка.
То что не определили обработчики, не означает, что их нет. Они выполняются в любом случае, но без вашего доп. кода.
Сам запрос выполняется не сразу после обработчика ПриСозданииНаСервере.
Затем выполняются обработчики ДС:
- ПередЗагрузкойПользовательскихНастроекНаСервере
- ПриЗагрузкеПользовательскихНастроекНаСервере
Только после этого выполняется запрос ДС.
И еще, отборы могут быть наложены в настройках списка.
Создал новую форму списка, вообще без обработчиков. поведение тоже. под ограниченным пользователем форма открывается долго, и с отбором по разрешенным документам. Наличеи или отсутсвие РАЗРЕШЕННЫЕ никак не влияет. Вопрос в сабже можно перефразировать, каким в принципе образом применяются правила RLS в запросе динамического списка. тут дело не в тормозах, а вообще, в механике, как это работает
(12) Запрос динамического списка преобразуется в соответствии с RLS, например, соединяется с каким-нибудь регистром сведений, реализующим подсистему ограничения доступа, в запрос подставляются параметры из параметров сеанса.
Чтобы понять причину тормозов, нужно изучить результирующий запрос динамического списка на стороне СУБД. Это можно сделать через стандартную консоль запросов. Только пользователю с ограниченными правами нужно дать права на интерактивное открытие внешних обработок, чтобы под ним можно было запустить консоль через Файл - Открыть.
Чтобы понять причину тормозов, нужно изучить результирующий запрос динамического списка на стороне СУБД. Это можно сделать через стандартную консоль запросов. Только пользователю с ограниченными правами нужно дать права на интерактивное открытие внешних обработок, чтобы под ним можно было запустить консоль через Файл - Открыть.
(14)
п.1 проверю
п.2 конф на БСП, но достаточно дико написана, пока не лез в RLS, думаю там ничего хорошего) Интересует пока сама механика. Как платофрма применяет ограничение. Я ожидал, что компилируется запрос в окогнчательны, только по наличию РАЗРЕШЕННЫЕ, но получается чтто нет. для запроса в динамическим списке это не так, кажется)
RLS по каким полям? Может, там возникает неявное соединение, например?
п.1 проверю
п.2 конф на БСП, но достаточно дико написана, пока не лез в RLS, думаю там ничего хорошего) Интересует пока сама механика. Как платофрма применяет ограничение. Я ожидал, что компилируется запрос в окогнчательны, только по наличию РАЗРЕШЕННЫЕ, но получается чтто нет. для запроса в динамическим списке это не так, кажется)
(14)
такой запрос в консоли ожидаемо получаем ошибку "недостаточно прав"
а такой выполняется 2 минуты
такой запрос в консоли ожидаемо получаем ошибку "недостаточно прав"
ВЫБРАТЬ ПЕРВЫЕ 100
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
а такой выполняется 2 минуты
ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 100
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот