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