В работе с 1С Зарплата и Управление Персоналом (ЗУП) 3.1 часто возникает задача, когда необходимо разграничить доступ пользователей к конфиденциальной информации. Одной из таких типовых ситуаций является требование руководства ограничить кадровикам просмотр данных о фонде оплаты труда (ФОТ) сотрудников и их окладов, но при этом сохранить для них возможность печати базовых кадровых документов, таких как "Приказ о приеме на работу" (форма Т-1). Рассмотрим эту проблему подробнее и разберем эффективные пути ее решения.
Стандартный профиль доступа "Кадровик без доступа к зарплате" в ЗУП 3.1 специально разработан для подобных случаев. Он успешно скрывает плановые начисления сотрудников и блокирует редактирование приказа о приеме в части зарплатных данных. Однако, этот профиль по умолчанию также ограничивает возможность печати формы Т-1 и других кадровых документов, где фигурирует ФОТ, поскольку типовой приказ Т-1 включает информацию о заработной плате, которая считается обязательной. Наше руководство, как и многие другие, придерживается принципиальной позиции: кадровики не должны видеть суммы зарплат, даже если речь идет о печатной форме, которая будет передана сотруднику и подписана им.
Давайте выясним, почему стандартный механизм печати формы Т-1 блокируется для кадровиков с ограниченными правами. Проблема кроется в логике работы системы, которая связывает возможность печати отчета с наличием полных прав на просмотр всех данных, содержащихся в этом отчете. В частности, это касается зарплатных данных.
Рассмотрим фрагмент кода из модуля менеджера документа "Приказ о приеме на работу", который отвечает за добавление команд печати. Обратите внимание на условие, при котором команда печати "Приказ о приеме (Т-1)" становится доступной:
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
// Приказ о приеме
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ1) Тогда
КомандаПечати = КомандыПечати.Добавить;
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.МенеджерПечати = "Отчет.ПечатнаяФормаТ1";
КомандаПечати.Идентификатор = "ПФ_MXL_Т1";
КомандаПечати.Порядок = 10;
КомандаПечати.Представление = НСтр("ru = 'Приказ о приеме (Т-1)'");
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецЕсли;
КонецПроцедуры;
Ключевым моментом здесь является условие Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ1). Даже если пользователю предоставлена роль, которая включает право просмотра этого отчета (например, роль "ЧтениеЭЛН"), метод ПравоДоступа может вернуть "Ложь". Это происходит потому, что отчет ПечатнаяФормаТ1, как правило, использует данные из регистров, содержащих информацию о зарплате. А доступ к этим регистрам для профиля "Кадровик без доступа к зарплате" ограничен.
Более того, параметр КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина) дополнительно указывает системе, что для формирования данной печатной формы требуется чтение данных без каких-либо ограничений. Это означает, что даже если бы кадровику дали право на просмотр самого отчета, ограничение на просмотр зарплатных данных в подлежащих регистрах все равно блокировало бы формирование формы.
Таким образом, мы видим, что типовой механизм печати тесно связан с полнотой прав доступа к данным. Соответственно, мы не можем просто так воспользоваться результатом компоновки данных отчета ПечатнаяФормаТ1, поскольку прав на эти данные у кадровика не хватит. Придется вместо стандартной Схемы компоновки данных (СКД) типового отчета писать свой запрос, который будет извлекать только разрешенные данные.
Эта ситуация подтверждает необходимость искать альтернативные решения, которые позволят обойти эти типовые ограничения, сохраняя при этом целостность данных и политику конфиденциальности компании.
Наиболее эффективным, гибким и часто рекомендуемым способом решения данной проблемы является создание и подключение внешней печатной формы (ВПФ). ВПФ — это отдельный файл (обычно с расширением .epf), который содержит макет и логику формирования печатной формы. Его ключевое преимущество в том, что он может быть подключен к базе 1С без изменения типовой конфигурации, что значительно упрощает обновления и поддержку системы.
Суть решения заключается в следующем: мы берем за основу типовой макет "Приказа о приеме на работу" (Т-1), модифицируем его, удаляя все поля, связанные с фондом оплаты труда (ФОТ) и окладом, а затем подключаем эту измененную форму как внешнюю. Это позволяет кадровикам печатать приказ, который будет содержать всю необходимую кадровую информацию, но при этом поле ФОТ останется незаполненным, соблюдая политику конфиденциальности.
Давайте разберем по шагам, как создать и подключить такую внешнюю печатную форму в 1С ЗУП 3.1.
После того как у нас есть типовой макет, мы переходим к его модификации. Это один из самых важных шагов:
Поскольку стандартная СКД отчета ПечатнаяФормаТ1 может быть недоступна для кадровиков из-за ограничений прав доступа к зарплатным данным, нам потребуется создать собственные источники данных для нашей ВПФ:
НачисленияСотрудников, которая содержит оклад, мы можем просто не обращаться к ней, или же передавать пустые значения для зарплатных параметров, которые наша ВПФ затем игнорирует в макете.После создания и отладки ВПФ ее необходимо подключить к базе 1С:
Одним из преимуществ ВПФ является возможность тонкой настройки прав доступа непосредственно к ней:
Возможность создания ВПФ иногда вызывает опасения относительно ее поддержки при обновлениях конфигурации. Однако, применительно к форме Т-1, эти опасения часто преувеличены:
Помимо внешней печатной формы, существуют и другие теоретические подходы к решению подобной задачи, но они, как правило, либо менее эффективны, либо имеют существенные недостатки.
В версии 1С:ЗУП КОРП, начиная с определенных релизов (например, 3.1.8), существует механизм настраиваемых печатных форм. Он позволяет изменять макеты приказов непосредственно в пользовательском режиме без внесения изменений в конфигурацию. Этот инструмент удобен для небольших корректировок, таких как удаление даты ознакомления или замена сокращенных наименований на полные. Однако, он не предназначен для кардинального изменения логики вывода данных или полного сокрытия обязательной информации (например, оклада). Использовать его для решения нашей задачи будет затруднительно, так как он не позволит просто "удалить" информацию, которая считается обязательной системой.
В типовых настройках прав доступа в 1С ЗУП 3.1 существуют расширенные режимы, позволяющие управлять фильтрами, полями, сортировками и структурой отчетов. Теоретически можно попытаться скрыть поля с зарплатными данными через эти настройки. Однако, на практике полностью скрыть оклад в стандартной печатной форме "Приказ о приеме" для кадровика, используя только настройку прав, без доработки конфигурации или создания ВПФ, крайне сложно. Система предполагает, что данные о зарплате должны быть доступны для печати этого документа. Профиль "Кадровик без доступа к зарплате" как раз и ограничивает доступ к печати форм, содержащих эту информацию, что является его основной функцией, а не багом.
Еще один подход мог бы заключаться в создании копии типового профиля "Кадровик (без доступа к зарплате)" или "Кадровик" и последующей ручной корректировке ролей, чтобы предоставить право печати формы Т-1, но без доступа к зарплатным данным. Этот метод выглядит привлекательно на первый взгляд, но имеет существенные недостатки:
Таким образом, внешняя печатная форма остается наиболее надежным и рекомендуемым решением. Она обеспечивает полный контроль над содержанием печатной формы, позволяет избежать изменения типовой конфигурации и минимизирует риски, связанные с обновлениями или некорректной настройкой прав доступа.
В заключение, задача запрета кадровику доступа к зарплате при сохранении возможности печати приказа о приеме без данных об окладе в 1С ЗУП 3.1 успешно решается путем создания и подключения модифицированной внешней печатной формы (ВПФ). Этот подход позволяет гибко адаптировать функционал системы под специфические требования организации, соблюдая при этом политику конфиденциальности и минимизируя вмешательство в типовую конфигурацию программы.