В процессе эксплуатации конфигураций 1С, особенно в таких прикладных решениях как Общепит КОРП, часто возникает задача разграничения доступа к данным. Рассмотрим ситуацию, когда сотрудникам определенного подразделения (например, «Повар») необходимо видеть в базе данных только те документы, которые относятся к их участку работы, исключая возможность просмотра документов других подразделений (например, «Официант»).
Для решения поставленной задачи в платформе 1С:Предприятие 8 используется механизм RLS (Record Level Security — ограничение на уровне записей). В отличие от обычных прав доступа, которые позволяют запретить или разрешить открытие всего объекта (например, документа ПриходныйКассовыйОрдер целиком), RLS позволяет накладывать условия фильтрации на конкретные строки данных, содержащиеся в базе.
Разберем, как именно функционирует данный механизм:
RLS автоматически добавляет к этому запросу дополнительные условия ГДЕ, описанные в конфигураторе в шаблонах ограничений.Чтобы реализовать данную функциональность, нам потребуется выполнить следующие действия:
Шаг 1: Определение связи пользователя и подразделения.
Система должна «понимать», к какому подразделению относится текущий пользователь. Для этого чаще всего используются:
Настройки прав пользователей или Ответственные лица.Шаг 2: Настройка ролей в Конфигураторе.
Рассмотрим процесс настройки прав:
Роли.Документ.ПриходныйКассовыйОрдер) перейдите на вкладку Ограничение доступа к данным.Чтение укажите условие, используя параметры текущего сеанса.Пример логики ограничения может выглядеть следующим образом:
Подразделение = ПараметрыСеанса.ТекущееПодразделениеПользователя
При внедрении RLS крайне важно учитывать несколько технических аспектов, которые могут повлиять на стабильность работы вашей системы:
RLS увеличивает нагрузку на СУБД. Поскольку каждое действие пользователя сопровождается автоматическим дополнением запросов, списки документов могут загружаться медленнее. Это особенно ощутимо в файловых версиях базы данных при большом количестве документов.RLS должно учитывать эту структуру, чтобы пользователи имели доступ не только к документам своего подразделения, но и ко всем вложенным структурам при необходимости.Если внедрение полноценного механизма RLS кажется избыточным или требует слишком больших ресурсов, можно рассмотреть более простые способы структурирования работы:
В заключение отметим, что внедрение RLS — это серьезная доработка, требующая навыков конфигурирования. Мы настоятельно рекомендуем доверить настройку прав специалисту, так как ошибки в написании условий доступа могут привести к утечке данных или некорректному отображению документов для сотрудников.