При использовании внешних отчетов и обработок в типовых конфигурациях 1С часто возникает задача ограничить их видимость в интерфейсе или полностью запретить запуск для большинства пользователей, оставив доступ только определенным сотрудникам. Главное преимущество внешних отчетов заключается в том, что их подключение и настройка выполняются в режиме «1С:Предприятие» без снятия конфигурации с поддержки и без внесения изменений в режиме «Конфигуратор».
Рассмотрим по шагам все доступные способы настройки видимости и ограничения прав на внешние отчеты с помощью Библиотеки Стандартных Подсистем (БСП) и встроенных средств платформы 1С.
Если требуется ограничить отображение команды вызова отчета в разделах программы для рядовых пользователей, проанализируем возможности подсистемы Дополнительные отчеты и обработки в режиме «1С:Предприятие»:
Дополнительные отчеты и обработки (обычно находится в разделе Администрирование — Печатные формы, отчеты и обработки).Быстрый доступ.Важный момент: если поле Быстрый доступ заполнено конкретными пользователями, то отчет будет отображаться в командах командного интерфейса только у указанных лиц. Для остальных пользователей команда запуска отчета отображаться не будет.
В современных версиях БСП подсистема Управление доступом работает в связке со справочником дополнительных отчетов и обработок, что позволяет настроить полноценное ограничение прав на уровне записей (RLS):
Дополнительные отчеты и обработки.Благодаря этому механизму пользователи без соответствующих прав не только не увидят элемент в интерфейсе, но и не смогут получить к нему доступ на уровне запросов платформы.
Выясним, как ещё можно управлять доступностью внешнего отчета через реквизиты самой карточки отчета:
Публикация:
Используется — отчет доступен всем пользователям с соответствующими правами.Режим отладки — отчет становится видим и доступен исключительно пользователям с административными правами (с ролью Полные права). Это удобно при тестировании.Отключена — отчет скрыт для всех пользователей.Разберем ситуацию, когда необходимо дополнительно защитить отчет от несанкционированного запуска (например, если пользователь пытается открыть файл .erf напрямую через меню «Файл — Открыть»). Для этого добавим программную проверку доступности роли в модуль формы или модуль объекта отчета.
Рассмотрим пример кода при открытии формы отчета:
Процедура ПриОткрытии(Отказ)
// Проверяем наличие специальной роли у текущего пользователя
Если Не Пользователи.РольДоступна("ИмяРолиДоступаКОтчету") Тогда
ВызватьИсключение "У вас недостаточно прав для запуска данного отчета.";
КонецЕсли;
КонецПроцедуры
Также проверку можно выполнить в событии ПриКомпоновкеРезультата в модуле объекта отчета, чтобы предотвратить формирование отчета даже при вызове из внешних алгоритмов.
Проанализируем важные аспекты безопасности платформы 1С при работе с внешними отчетами:
Интерактивное открытие внешних отчетов и обработок, он сможет открыть файл отчета напрямую из файловой системы. Для обеспечения полной безопасности рекомендуется отключать это право у обычных пользователей.ПараметрыРегистрации.БезопасныйРежим = Истина). Это предотвращает выполнение небезопасного кода на сервере (доступ к файловой системе, выполнение внешних программ), повышая общий уровень защиты системы.