Как в 1С ЗУП 3.1 запретить кадровику доступ к зарплате, но сохранить возможность печати приказа о приеме без данных об окладе?

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

В работе с 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)".
  2. После формирования печатной формы, нажмите кнопку "Ещё" (обычно в правом верхнем углу окна печатной формы) и выберите пункт "Изменить макет". Это действие позволит нам сохранить типовой макет в файл или скопировать его для дальнейшей модификации.
  3. Многие печатные формы в 1С реализованы с использованием Схемы Компоновки Данных (СКД) и представлений. Это означает, что данные для макета готовятся не прямыми запросами, а через специально настроенные наборы данных СКД. Наша задача — скопировать этот механизм и адаптировать его.

Шаг 2: Модификация макета ВПФ

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

  1. Откройте скопированный макет в режиме редактирования (например, через Конфигуратор или через специальную обработку для редактирования ВПФ).
  2. Найдите в макете все области, ячейки или параметры, которые отвечают за вывод информации об окладе, ФОТ, тарифной ставке и других зарплатных данных. Типовой макет Т-1 обычно содержит такие поля.
  3. Аккуратно удалите эти элементы из макета. Например, если оклад выводится как параметр, просто удалите этот параметр из соответствующей ячейки макета. Это можно сделать достаточно быстро, используя функционал табличного документа. Обсуждение на форуме подтверждает, что это может быть выполнено буквально за "10 минут (ctrl + c, ctrl + v, убрать в макете параметр с ФОТ)".
  4. Цель модификации — чтобы поле, где ранее печатался ФОТ или оклад, оставалось бы незаполненным или содержало прочерк, но не вызывало ошибку из-за отсутствия данных.
  5. Сохраните измененный макет как часть новой внешней печатной формы.

Шаг 3: Разработка источников данных для ВПФ

Поскольку стандартная СКД отчета ПечатнаяФормаТ1 может быть недоступна для кадровиков из-за ограничений прав доступа к зарплатным данным, нам потребуется создать собственные источники данных для нашей ВПФ:

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

Шаг 4: Подключение ВПФ в 1С ЗУП 3.1

После создания и отладки ВПФ ее необходимо подключить к базе 1С:

  1. Запустите 1С ЗУП 3.1 в режиме "Предприятие".
  2. Перейдите в раздел "Администрирование".
  3. Найдите пункт "Печатные формы, отчеты и обработки".
  4. В открывшемся окне выберите "Дополнительные отчеты и обработки".
  5. Нажмите кнопку "Создать" и укажите файл вашей внешней печатной формы (с расширением .epf).
  6. После загрузки файла вам необходимо будет настроить параметры ВПФ:
    • Укажите объект, к которому относится данная печатная форма. В нашем случае это документ "Прием на работу".
    • Настройте "Быстрый доступ", чтобы форма отображалась в списке доступных печатных форм для документа "Прием на работу".
    • При необходимости, настройте "Размещение", чтобы указать, для каких ролей или групп пользователей будет доступна эта ВПФ.

Шаг 5: Назначение прав доступа к ВПФ

Одним из преимуществ ВПФ является возможность тонкой настройки прав доступа непосредственно к ней:

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

Актуализация ВПФ после обновлений

Возможность создания ВПФ иногда вызывает опасения относительно ее поддержки при обновлениях конфигурации. Однако, применительно к форме Т-1, эти опасения часто преувеличены:

Альтернативные подходы и почему они менее предпочтительны

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

Настройка типовых макетов печатных форм (для версии КОРП)

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

Ограничение доступа к полям отчета/формы через типовые настройки прав

В типовых настройках прав доступа в 1С ЗУП 3.1 существуют расширенные режимы, позволяющие управлять фильтрами, полями, сортировками и структурой отчетов. Теоретически можно попытаться скрыть поля с зарплатными данными через эти настройки. Однако, на практике полностью скрыть оклад в стандартной печатной форме "Приказ о приеме" для кадровика, используя только настройку прав, без доработки конфигурации или создания ВПФ, крайне сложно. Система предполагает, что данные о зарплате должны быть доступны для печати этого документа. Профиль "Кадровик без доступа к зарплате" как раз и ограничивает доступ к печати форм, содержащих эту информацию, что является его основной функцией, а не багом.

Копирование и изменение профилей групп доступа

Еще один подход мог бы заключаться в создании копии типового профиля "Кадровик (без доступа к зарплате)" или "Кадровик" и последующей ручной корректировке ролей, чтобы предоставить право печати формы Т-1, но без доступа к зарплатным данным. Этот метод выглядит привлекательно на первый взгляд, но имеет существенные недостатки:

  1. Разработчик 1С гарантирует корректную работу только стандартных профилей. Пользовательские сочетания ролей могут работать нестабильно, вызывать ошибки или открывать доступ к нежелательной информации в неочевидных местах. Их необходимо тщательно проверять после каждого обновления.
  2. Может возникнуть ситуация, когда для формирования приказа требуется доступ к другим документам, например, "Премия", который содержит суммы. Если кадровик формирует приказ, и ему дали доступ к такому документу, то он косвенно может увидеть зарплатные данные, что противоречит изначальному требованию.

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

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

← На главную