Как в 1С:УПП скрыть паспортные данные сотрудников от пользователей без урезания нужного функционала?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

Архитектурное разделение данных в конфигурации

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

  1. Справочник «СотрудникиОрганизаций». Представляет собой рабочее место человека в конкретной организации (содержит табельный номер, должность, подразделение, график работы).
  2. Справочник «ФизическиеЛица». Хранит общие данные человека как личности (ФИО, дату рождения, ИНН, СНИЛС).
  3. Регистр сведений «ПаспортныеДанныеФизЛиц». Периодический регистр, в котором хранятся серия, номер паспорта, дата выдачи, кем выдан документ и код подразделения.

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

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

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

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

Почему программное скрытие полей на форме не решает задачу

Иногда разработчики пытаются решить задачу простым скрытием полей или закладок формы через программный код в событии ПриОткрытии:


// Небезопасный способ ограничения доступа!
Если Не РольДоступна("Кадровик") Тогда
    ЭлементыФормы.ПанельДанных.Страницы.Паспорт.Видимость = Ложь;
КонецЕсли;

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

Использование привилегированного режима для служебных операций

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


// В привилегированном общем модуле
Функция ПолучитьФИОСотрудникаДляПечати(СотрудникСсылка) Экспорт
    УстановитьПривилегированныйРежим(Истина);
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ФизЛицо.Наименование КАК ФИО
        |ИЗ
        |   Справочник.СотрудникиОрганизаций КАК Сотрудники
        |ГДЕ
        |   Сотрудники.Ссылка = &Сотрудник";
        
    Запрос.УстановитьПараметр("Сотрудник", СотрудникСсылка);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если Выборка.Следующий() Тогда
        Возврат Выборка.ФИО;
    КонецЕсли;
    
    Возврат "";
КонецФункции

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

Организационные меры и требования 152-ФЗ

Разберем правовой аспект взаимодействия с персональными данными:

  1. Трудовые отношения и обработка данных. Обработка персональных данных работника в рамках трудового договора допустима без отдельного согласия, но строго в тех пределах, которые требуются для выполнения обязанностей. Предоставление мастеру доступа к паспортным данным всех сотрудников предприятия является избыточным и признается контролирующими органами нарушением.
  2. Подписка о неразглашении (обязательство). Взятие с мастера обязательства о неразглашении конфиденциальной информации — необходимая юридическая мера, однако она дополняет технические средства защиты, а не заменяет их.
  3. Аудит доступа. В типовых решениях уровня УПП предусмотрен механизм регистрации событий доступа к персональным данным в Журнале регистрации. Включение этого механизма позволяет фиксировать, кто и когда просматривал или изменял персональные карточки сотрудников.

Таким образом, для надежного закрытия персональных данных необходимо исключить доступ к регистру ПаспортныеДанныеФизЛиц из базовых ролей, настроить работу мастера только через справочник СотрудникиОрганизаций и закрепить разграничение обязанностей локальными нормативными актами организации.

← На главную