Почему кадровик без доступа к зарплате видит ФОТ в ЗУП 3 и как это ограничить

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

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

Механизм «уязвимости»: как данные становятся видимыми

Рассмотрим ситуацию глазами пользователя. Даже если на форме штатного расписания поля с суммами скрыты программно, платформа 1С предоставляет мощный инструмент — «Изменить форму». Разберем по шагам, как кадровик получает доступ к запрещенным данным:

  1. Открывается список ШтатноеРасписание.
  2. Через меню «Еще» — «Изменить форму» пользователь находит поле Ссылка.
  3. Нажимает кнопку «Добавить поля» и в открывшемся списке реквизитов ссылки выбирает ФОТ, Оклад, Районный коэффициент и другие показатели.
  4. Эти поля появляются в динамическом списке, отображая реальные суммы из базы данных.

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

Анализ типовых ролей и профилей

Проанализируем состав профиля «Кадровик (без доступа к зарплате)». В него включена роль ЧтениеШтатногоРасписания. Разработчики типовой конфигурации могли ограничить доступ к реквизитам ФОТ в этой конкретной роли, но зачастую в профиль попадают вспомогательные роли (например, для работы с отчетами или общими справочниками), у которых стоит флаг «Устанавливать права для реквизитов и табличных частей по умолчанию».

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

Кроме того, данные о ФОТ в ЗУП 3 хранятся не только в справочнике ПозицииШтатногоРасписания, но и в независимых регистрах сведений, таких как ФОТНачисленийПозицийШтатногоРасписания. Если у кадровика есть права на чтение этих регистров (что бывает необходимо для корректного формирования кадровых приказов), система отобразит данные и в связанных списках.

Способ 1: Использование расширения для программного скрытия полей

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

Мы можем программно запретить пользователям без определенной роли (например, ПолныеПрава или ДоступКЗарплате) изменять форму в части конкретных полей. Проанализируем пример кода, который можно разместить в модуле формы списка штатного расписания в расширении:


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

Использование свойства ПользовательскаяВидимость в коде выше критически важно, так как оно перекрывает настройки, которые пользователь мог сделать ранее самостоятельно.

Способ 2: Ревизия прав в Конфигураторе

Если вы предпочитаете путь настройки прав, разберем по шагам, что нужно проверить в Конфигураторе:

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

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

Способ 3: Настройка параметров доступа в режиме «1С:Предприятие»

В последних релизах ЗУП 3 (начиная с 3.1.14+) разработчики добавили дополнительные настройки. Зайдем в раздел «Настройки» — «Настройки пользователей и прав». Здесь можно попробовать включить ограничение доступа на уровне записей (RLS), однако стоит учитывать следующее:

Резюме и рекомендации

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

1. Использовать расширение для скрытия колонок в списках. Это гарантирует, что даже при наличии прав на уровне метаданных, пользователь не увидит колонку визуально.

2. Тщательно проверить, не назначены ли кадровику лишние роли, например АудитСостоянияСистемы или роли для работы с универсальными отчетами, которые могут давать «невидимый» доступ к регистрам сведений с суммами.

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

← На главную