Как в 1С настроить доступ пользователя только к регламентированным отчетам

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

В практике администрирования 1С часто возникает задача ограничить права сотрудника узким кругом задач. Типичный пример — специалист по охране труда или кадровик, которому необходимо заполнять только статистические формы (например, «Форма 7-травматизм»), не имея при этом доступа к финансовым результатам, оборотно-сальдовой ведомости или начислениям зарплаты. Рассмотрим подробнее, как реализовать такую задачу в «1С:Бухгалтерия» (БП) и «Зарплата и управление персоналом» (ЗУП).

Способ 1. Создание специализированной роли в конфигураторе

Это классический метод, который позволяет максимально точно ограничить права на уровне объектов метаданных. Разберем по шагам алгоритм создания такой роли, основываясь на опыте практической реализации.

  1. Подготовка базы: Прежде всего, проанализируем сравнение профилей групп доступа, чтобы понять, какие права являются избыточными. Чаще всего проще создать новую роль «с нуля» или путем копирования существующей минимальной роли, например, УдаленныйДоступТерминалСбораДанных или аналогичной, где минимум прав. Однако, если мы хотим сэкономить время, можно скопировать роль Бухгалтер, но тогда придется методично удалять лишнее.
  2. Настройка прав на конкретный отчет: В дереве конфигурации находим нужный нам отчет. Например, Отчет.РегламентированныйОтчетСтатистикаФорма7Травматизм. В свойствах нашей новой роли (назовем ее ДоступКСтатОтчетам) необходимо установить галочки на права Использование и Просмотр.
  3. Обеспечение работы интерфейса: Чтобы пользователь мог физически открыть форму отчета, ему нужны права на общие объекты подсистемы отчетности. Проанализируем ситуацию: отчеты не открываются сами по себе, они работают внутри единого журнала. Поэтому обязательно даем права на:
    • Общую форму РегламентированнаяОтчетность.
    • Справочник РегламентированныеОтчеты (чтение и просмотр).
    • Регистр сведений СохраненныеДанныеРегламентированныхОтчетов (все права для возможности сохранения).
  4. Создание интерфейсного пространства: Чтобы пользователь не путался в разделах, создадим отдельную подсистему (или используем существующую) и включим в нее только необходимые команды. В роли ДоступКСтатОтчетам даем право на Просмотр этой подсистемы.

Метод отладки через Журнал регистрации

После назначения роли пользователю, программа, скорее всего, выдаст ошибку при запуске или формировании отчета. Выясним причину с помощью стандартных инструментов:

Запускаем сеанс от имени ограниченного пользователя и пытаемся выполнить целевое действие. Как только возникнет ошибка «Нарушение прав доступа», переходим в сеанс администратора и открываем Журнал регистрации. Фильтруем события по этому пользователю и ищем записи с уровнем «Ошибка». В тексте ошибки будет четко указано, к какому объекту (справочнику, регистру или константе) не хватило прав. Постепенно добавляя права на чтение этих «технических» объектов, мы добьемся работоспособности отчета.

Способ 2. Реализация через расширение конфигурации

Если мы не хотим вносить изменения в основную конфигурацию, воспользуемся механизмом расширений. Это современный и безопасный подход.

В расширении мы можем не только создать роль, но и программно вмешаться в работу журнала регламентированных отчетов. Проанализируем пример кода, который можно разместить в модуле формы списка регламентированных отчетов для фильтрации видимости:


&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Проверяем, есть ли у пользователя роль ограничения
    Если РольДоступна("ДоступКСтатОтчетам") Тогда
        // Устанавливаем фильтр на список отчетов, чтобы скрыть лишнее
        ЭлементОтбора = СписокОтчетов.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИсточникОтчета");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение = "Статистика"; 
        ЭлементОтбора.Использование = Истина;
    КонецЕсли;
КонецПроцедуры

Такой подход позволяет оставить пользователю доступ к общей подсистеме, но визуально скрыть все отчеты, кроме разрешенных. Это гораздо «чище» с точки зрения интерфейса, чем просто блокировать открытие «чужих» отчетов ошибкой доступа.

Особенности настройки в 1С:ЗУП

В программе «Зарплата и управление персоналом» задача усложняется тем, что отчеты обычно заполняются автоматически по данным регистров расчета и накопления. Если отчет (например, по травматизму) требует данных о сотрудниках, пользователь должен обладать правами на чтение справочника ФизическиеЛица и соответствующих кадровых документов.

Важный нюанс: Чтобы пользователь не увидел лишнего (размеры окладов, премий), в ЗУП следует использовать механизм RLS (Record Level Security). Рассмотрим, как это работает:

Использование метода «Внешнего отчета»

Разберем еще один вариант, который упоминали эксперты. Если нам нужно дать доступ всего к одной форме, которую пользователь заполняет руками, мы можем выгрузить этот отчет из конфигуратора как файл .erf.

В этом случае алгоритм действий будет следующим:

  1. Выгружаем отчет из состава конфигурации.
  2. Добавляем его в справочник «Дополнительные отчеты и обработки».
  3. Даем пользователю типовую роль Использование дополнительных отчетов и обработок.
  4. В настройках самой обработки указываем, каким пользователям она доступна.

Преимущество этого метода: Пользователю вообще не нужно заходить в раздел «1С-Отчетность», он запускает нужную форму через отдельное меню, что полностью исключает риск просмотра конфиденциальной отчетности организации.

Технические требования для корректного открытия форм

Независимо от выбранного способа, помните, что современная подсистема регламентированной отчетности в 1С (БСП) требует наличия прав на следующие объекты, без которых форма просто не инициализируется:

Таким образом, настройка доступа «только к отчетам» — это не фантастика, а вполне решаемая задача, требующая аккуратной работы с ролями и внимательного анализа ошибок доступа через технологический журнал или журнал регистрации.

← На главную