Применение «Привилегированного режима» в отчетах.

Часто возникает потребность, когда; необходимо получить в отчете данные, которые недоступны определенной группе пользователей при использовании механизма RLS (Record Level Security) ограничение прав на уровне записи в 1С.

Например, менеджеры по продажам одного подразделения не могут видеть информацию по резервам менеджеров другого подразделения. Но бывает, что пользователи просят сделать так, чтобы они могли смотреть какой менеджер и каким документом зарезервировал товар. В данном случае как раз и приходит на помощь процедура «Установить Привилегированный Режим». Данный метод позволяет:

  • Выполнить операции с данными от лица пользователей, которым данные недоступны;
  • Ускорить работу, так как в привилегированном режиме не накладываются ограничения на доступ к данным.

Привилегированный режим следует использовать:

  • Когда требуется с логической точки зрения отключить проверку прав;
  • Когда допустимо отключить проверку прав, чтобы ускорить работу и при этом работа с данными от лица пользователя логически не нарушает установленные для него права доступа.

Есть доработанный, на основании типового отчета «Остатки и доступность товаров», отчет «Анализ доступности товаров по менеджерам» в демонстрационной базе 1С: Управление торговлей, редакция 11.1 (11.1.10.167), в котором дополнительно выводятся поля группировки Документ-основание и Менеджер:

Анализ доступности товаров по менеджерам

В базе настроены группы доступа и установлено ограничение доступа на уровне записи. Если сформировать отчет под пользователем с «полными правами», то проблем не возникнет. Но если отчет будет формировать пользователь с ограниченными правами, то получится такая картина:

Анализ доступности товаров по менеджерам с ограниченными правами

Соответственно, система не может обратиться к документам, на которые у пользователя с ограниченными правами нет доступа. В результате поля Документ-основание и Менеджер не заполняются.

Для того, чтобы пользователь с ограниченными правами мог увидеть эту информацию в пределах отчета необходимо воспользоваться привилегированным режимом.

В конфигураторе 1С в отчете необходимо прописать в начале процедуре модуля объекта (если в отчете нет формы) ПриКомпоновкеРезультата() или в модуле формы в процедуре «Сформировать» (если создана форма и отчет формируется из формы):

Процедура: ПриКомпоновкеРезультата(истина)

Если в модуле в остальных процедурах или функциях используется обращение к данным, на которые у пользователя нет данных, также необходимо прописать процедуру УстановитьПривилегированныйРежим(). Параметр Истина означает включение привилегированного режима, а Ложь отключение (например, после исполнения какой-либо процедуры или функции вам необходимо отключить привилегированный режим, в целях безопасности).

socials: