Ограничение доступа по организациям является одной из ключевых задач при внедрении и эксплуатации систем класса ERP. Это необходимо для обеспечения конфиденциальности данных, разграничения полномочий сотрудников и правильного ведения учета. Рассмотрим различные подходы к решению этой задачи в 1С ERP, анализируя их преимущества, недостатки и сценарии применения.
Механизм RLS является типовым инструментом платформы 1С:Предприятие, предназначенным для разграничения доступа к данным на уровне отдельных записей или полей. Он позволяет гибко настраивать, какие данные доступны конкретному пользователю или группе доступа.
Производительность RLS: Часто высказывается мнение о замедлении работы системы при использовании RLS. Однако, современные версии платформы 1С (начиная с 8.3.10 и далее) и Библиотеки стандартных подсистем (БСП) включают значительные оптимизации этого механизма. Разработчики заявляют о существенном ускорении, вплоть до 100 раз в отдельных случаях, что делает RLS вполне пригодным для использования. В некоторых сценариях, RLS может даже улучшать производительность за счет уменьшения объема выбираемых данных, так как запросы формируются с учетом прав пользователя, выбирая только разрешенные записи.
Оптимизация RLS для минимизации влияния на производительность:
RLS. Чем проще условие, тем быстрее оно будет выполняться.RLS. Отсутствие индексов приводит к полному сканированию таблиц, что критически замедляет работу.RLS, упрощая администрирование и снижая вероятность ошибок.RLS и исправления ошибок.При правильной настройке и оптимизации, RLS является мощным и безопасным инструментом для ограничения доступа по организациям, позволяющим эффективно управлять данными в единой базе.
Механизм разделения данных по областям или организациям – это еще одна встроенная функциональность платформы 1С:Предприятие. Он позволяет хранить данные нескольких логически разделенных областей или организаций в одной физической базе данных, обеспечивая при этом полную изоляцию данных каждой области.
Принцип работы: При включении разделения данных в таблицах, которые должны быть разделены, платформа добавляет скрытое поле-разделитель (например, РазделительДанных или ОбластьДанных). Далее платформа автоматически добавляет условия по этому полю во все запросы, тем самым гарантируя, что пользователи видят только данные своей области.
Сценарии использования: Этот механизм идеально подходит для облачных сервисов (SaaS), где множество клиентов работают в одной базе, но их данные должны быть полностью изолированы друг от друга, как будто они работают в разных базах.
Преимущества: Главное преимущество – высокая производительность. Условия разделения данных встраиваются платформой на низком уровне, что часто происходит гораздо эффективнее, чем при использовании RLS.
Ограничения и нюансы:
РИБ – это механизм обмена данными между несколькими информационными базами. Каждая база в структуре РИБ является полноценной и может работать автономно.
Принцип работы: Обычно создается центральная база (ЦБ) и одна или несколько периферийных баз (ПБ). Обмен данными происходит по определенным правилам, настроенным в конфигурации, что позволяет синхронизировать только необходимые изменения. Например, филиал видит только свои документы и справочники, но при этом данные из филиала отправляются в ЦБ для консолидации.
Сценарии использования: РИБ хорошо подходит, когда филиалы или обособленные подразделения компании работают независимо друг от друга, возможно, в разных географических точках или с ограниченным доступом к центральному серверу. Центральный офис при этом собирает и анализирует консолидированные данные со всех периферийных баз. РИБ также может быть вариантом, когда требуется максимальная изоляция данных по организациям на уровне физической базы данных.
Преимущества:
Недостатки:
Создание собственного механизма ограничения доступа – это путь, требующий значительных ресурсов и глубокого понимания платформы, а также бизнес-логики.
Принцип работы: Разработчик самостоятельно реализует проверки прав доступа в коде модулей, перед открытием форм, выполнением запросов, записью объектов и т.д. Например, мы можем вставлять условия в запросы или проверять доступность данных при открытии форм. Этот подход напоминает то, как в 7.7 делали или как можно сделать разграничение по складам без RLS, выполняя проверки на сервере.
Сценарии использования: Такой подход может быть оправдан в очень специфических случаях, когда типовые механизмы абсолютно не подходят или когда ограничения доступа крайне просты и не требуют высокой гибкости и масштабируемости. Например, для очень простых, единичных проверок, не затрагивающих большую часть системы.
Преимущества:
Недостатки:
RLS. Каждая проверка в коде требует ресурсов.Этот подход не является прямым механизмом ограничения доступа для оперативной работы, а скорее решением для предоставления общего или агрегированного доступа к данным, в основном, для руководства или аналитиков, не затрагивая при этом оперативные ограничения.
Принцип работы: В этом случае основная база данных может иметь строгие ограничения доступа для большинства пользователей (например, через RLS или другие методы), но для руководителей или для целей аналитики данные собираются в отдельную базу или в специализированные хранилища. Мы можем создать специальные самописные данные, куда в плоском виде записываются агрегированные или преобразованные данные для отчетов. Это может быть реализовано через выгрузки из центральной базы в отдельные периферийные базы, предназначенные исключительно для аналитики, или в специальные регистры сведений внутри той же базы.
Сценарии использования: Идеально подходит, когда оперативные пользователи должны видеть только данные своих организаций, но руководителям нужен полный доступ ко всем агрегированным данным компании без каких-либо ограничений и задержек для построения аналитических отчетов.
Преимущества:
Недостатки:
Таким образом, выбор метода ограничения доступа по организациям в 1С ERP зависит от конкретных требований к безопасности, производительности, сложности структуры компании и потребностей в отчетности. Мы рекомендуем в первую очередь рассмотреть RLS, активно используя современные методы его оптимизации и актуальные версии платформы. Если требуется полная изоляция данных для каждой организации и нет сложной общей НСИ, то механизм разделения данных является мощным и производительным решением. РИБ подходит для распределенных структур с автономными филиалами, а самописные решения и консолидация для отчетов — для более специфических случаев.