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