Применение «Привилегированного режима» в отчетах
Часто возникает потребность, когда необходимо получить в отчете данные, которые недоступны определенной группе пользователей при использовании механизма RLS (Record Level Security) ограничение прав на уровне записи в 1С.
Например, менеджеры по продажам одного подразделения не могут видеть информацию по резервам менеджеров другого подразделения. Но бывает, что пользователи просят сделать так, чтобы они могли смотреть какой менеджер и каким документом зарезервировал товар. В данном случае как раз и приходит на помощь процедура «УстановитьПривилегированныйРежим». Данный метод позволяет:
Привилегированный режим следует использовать:
- Выполнить операции с данными от лица пользователей, которым данные недоступны;
- Ускорить работу, так как в привилегированном режиме не накладываются ограничения на доступ к данным.
Есть доработанный, на основании типового отчета «Остатки и доступность товаров», отчет «Анализ доступности товаров по менеджерам» в демонстрационной базе 1С: Управление торговлей, редакция 11.1 (11.1.10.167), в котором дополнительно выводятся поля группировки Документ-основание и Менеджер:
- Когда требуется с логической точки зрения отключить проверку прав;
- Когда допустимо отключить проверку прав, чтобы ускорить работу и при этом работа с данными от лица пользователя логически не нарушает установленные для него права доступа.

В базе настроены группы доступа и установлено ограничение доступа на уровне записи. Если сформировать отчет под пользователем с «полными правами», то проблем не возникнет. Но если отчет будет формировать пользователь с ограниченными правами, то получится такая картина:
Соответственно, система не может обратиться к документам, на которые у пользователя с ограниченными правами нет доступа. В результате поля Документ-основание и Менеджер не заполняются.
Для того, чтобы пользователь с ограниченными правами мог увидеть эту информацию в пределах отчета необходимо воспользоваться привилегированным режимом.
В конфигураторе 1С в отчете необходимо прописать в начале процедуре модуля объекта (если в отчете нет формы) ПриКомпоновкеРезультата() или в модуле формы в процедуре «Сформировать» (если создана форма и отчет формируется из формы):
Если в модуле в остальных процедурах или функциях используется обращение к данным, на которые у пользователя нет данных, также необходимо прописать процедуру УстановитьПривилегированныйРежим(). Параметр Истина означает включение привилегированного режима, а Ложь отключение (например, после исполнения какой-либо процедуры или функции вам необходимо отключить привилегированный режим, в целях безопасности).