Как настроить права для печати приказов Т-1 и Т-5 с окладами в ЗУП 3.1, если у кадровика нет доступа к зарплате?

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

В типовой конфигурации 1С:Зарплата и управление персоналом 3.1 часто возникает ситуация, когда пользователю с профилем «Кадровик (без доступа к зарплате)» необходимо распечатать «Приказ о приеме (Т-1)» или «Приказ о переводе (Т-5)». Однако при формировании печатной формы графы с тарифной ставкой, окладом и надбавками оказываются пустыми. Рассмотрим подробно, почему это происходит и какими способами можно решить данную задачу, сохранив при этом необходимый уровень конфиденциальности данных.

Анализ причины возникновения проблемы

Проанализируем техническую сторону вопроса. В программном коде ЗУП 3.1 за формирование описания начислений в печатных формах отвечает специализированная функция ОписанияСоставаНачисленийПоВременнойТаблице. Она собирает данные о плановых начислениях сотрудника для вывода в макет (в некоторых случаях могут потребоваться дополнительные реквизиты табличных частей для вывода специфических данных).

Разберем фрагмент кода, который осуществляет проверку прав доступа в этой функции:


Если Не Пользователи.РолиДоступны("ДобавлениеИзменениеДанныхДляНачисленияЗарплатыРасширенная, ЧтениеДанныхДляНачисленияЗарплатыРасширенная") Тогда 
    Возврат ОписанияНачисленийПоПериодам; 
КонецЕсли;

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

Способ 1. Использование стандартных ролей и профилей

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

Для того чтобы в формах Т-1 и Т-5 появились суммы, пользователю необходимо добавить следующие роли:

  1. Чтение данных для начисления зарплаты
  2. Чтение данных для начисления зарплаты расширенная

Важный нюанс: добавление этих ролей приведет к тому, что кадровик начнет видеть суммы окладов и надбавок не только в печатной форме, но и внутри самих документов (на вкладке «Оплата труда»). Если политика компании допускает знание кадровиком размеров окладов, то это решение является оптимальным. Если же оклады должны быть скрыты в интерфейсе программы, но видны в печатном приказе, перейдем к следующим вариантам.

Способ 2. Создание внешних печатных форм с привилегированным режимом

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

Посмотрим на алгоритм реализации:

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

Проанализируем риски этого метода. Многие методы печати в ЗУП 3.1 не являются экспортными. Это означает, что при обновлении программы логика формирования данных может измениться, а ваша внешняя форма останется со старым кодом. Это может привести к ошибкам или некорректному заполнению данных в будущем. Поэтому внешние формы требуют регулярной проверки при каждом обновлении релиза.

Способ 3. Использование расширения конфигурации (Рекомендуемый)

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

Рассмотрим шаги по реализации через расширение:

  1. Создаем новое расширение в базе данных.
  2. Находим общий модуль, отвечающий за формирование кадровых приказов (например, УправлениеПечатьюКадровыхОтчетов или аналогичные в зависимости от версии).
  3. Используем аннотацию &Вместо или &Вокруг для функции, собирающей данные о начислениях.
  4. Внутри функции-обертки включаем УстановитьПривилегированныйРежим(Истина) и вызываем основную логику получения данных.

Такой подход позволяет оставить стандартные права «Кадровик (без доступа к зарплате)» неизменными. В интерфейсе программы (в карточках сотрудников и документах) оклады по-прежнему будут скрыты, но при нажатии кнопки «Печать» система временно «повысит» права процесса для получения цифр и вывода их в макет.

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

Иногда достаточно точечной настройки в разделе «Администрирование» — «Настройки пользователей и прав», включая управление доступом к формам объектов. Попробуем создать кастомный профиль:

  1. Создайте копию профиля «Кадровик (без доступа к зарплате)».
  2. Найдите в списке ролей роль Просмотр начислений в кадровых документах (доступна в последних версиях ЗУП 3.1).
  3. Включите эту роль в профиль.

Данная роль является промежуточным вариантом: она позволяет видеть данные об оплате только в контексте кадровых приказов, но не дает доступа к расчетным листкам, ведомостям и документам начисления зарплаты.

Подведение итогов и рекомендации

Мы проанализировали ситуацию и выяснили, что поведение программы «пустые оклады в Т-1» — это не ошибка, а строгая реализация прав доступа. Для решения проблемы выберите один из путей в зависимости от ваших задач:

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

← На главную