Как настроить разделение прав доступа по организациям в 1С:Комплексная автоматизация 2

Системный администратор 1С v8.3 (Управляемые формы) Управленческий учет
← На главную

В крупных компаниях, ведущих учет нескольких юридических лиц в единой базе 1С:Комплексная автоматизация 2, часто возникает задача разграничения видимости данных. Основная цель — сделать так, чтобы сотрудники одной организации не видели документы, остатки и отчеты другой организации. Рассмотрим подробно, как реализовать этот механизм, используя штатные инструменты системы, и разберем нюансы настройки RLS (Row Level Security).

Понимание механизма ограничения доступа на уровне записей

Для начала выясним причину, по которой обычного указания подразделения в карточке пользователя недостаточно. Справочник Пользователи содержит поле «Подразделение», однако оно носит скорее информационный характер или используется для подстановки значений по умолчанию. Настоящее ограничение видимости данных в 1С реализуется через механизм RLS. Этот механизм модифицирует запросы к базе данных на уровне платформы, добавляя в них условия фильтрации. Если у пользователя нет прав на конкретную организацию, система просто «отфильтровывает» эти записи из выборки, и для пользователя они выглядят как несуществующие.

Шаг 1. Активация функциональной опции

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

  1. Перейдем в раздел НСИ и администрирование.
  2. Выберем пункт Настройка пользователей и прав.
  3. Найдем раздел «Группы доступа» и установим флаг Ограничивать доступ на уровне записей.

Важно понимать, что включение этой опции сразу активирует механизмы проверки прав, что может временно замедлить работу системы. Сразу после включения рекомендуется убедиться, что выбран Производительный режим работы (в современных версиях КА 2.4 и 2.5 он включен по умолчанию), так как он работает значительно эффективнее классического RLS.

Шаг 2. Настройка профилей и групп доступа

Разберем по шагам, как настроить права для конкретной группы пользователей. В 1С:КА 2 разделение прав строится на связке «Профиль — Группа доступа — Пользователь».

Профили групп доступа определяют, КАКИЕ действия может совершать пользователь (например, «Бухгалтер» может создавать документы, но не может менять настройки системы). А Группы доступа определяют, НАД КАКИМИ данными эти действия можно совершать (например, бухгалтер только по Организации «Альфа»).

Рассмотрим процесс создания группы доступа:

  1. Откроем справочник Группы доступа.
  2. Создадим новый элемент, например, «Бухгалтеры (Организация А)».
  3. На вкладке «Главное» выберем нужный профиль (например, типовой профиль «Бухгалтер»).
  4. Перейдем на вкладку Ограничения доступа. Именно здесь происходит магия разделения прав.
  5. В колонке «Вид доступа» выберем Организации.
  6. Установим значение доступа: Все запрещены, исключения назначаются в списке.
  7. В появившийся список добавим нашу организацию «Альфа».

После записи этой группы доступа все пользователи, включенные в неё, перестанут видеть документы любых других организаций, кроме «Альфы».

Шаг 3. Учет иерархии подразделений

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

В той же группе доступа на вкладке Ограничения доступа мы можем добавить вторую строку с видом доступа Подразделения. Логика работы будет следующей: система применит оба фильтра. Пользователь увидит только те документы, где одновременно совпадает и разрешенная организация, и разрешенное подразделение. Это позволяет настроить очень гибкую матрицу прав, когда сотрудники филиала А не видят документы филиала Б, даже если они работают в рамках одного юридического лица.

Шаг 4. Особенности производительного режима RLS

Посмотрим на техническую сторону вопроса. В современных версиях конфигураций на базе 1С:ERP и КА используется «Производительный RLS». Его отличие в том, что права не рассчитываются «на лету» при каждом открытии списка, а хранятся в специальных вспомогательных таблицах данных доступа.

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

Шаг 5. Работа отчетов и общих справочников

Важно учитывать, как RLS влияет на другие объекты системы. Разберем основные моменты:

  1. Отчеты: Все стандартные отчеты (Оборотно-сальдовая ведомость, Ведомость по товарам и т.д.) будут автоматически фильтроваться. Итоги в отчетах будут рассчитаны только по доступным пользователю записям.
  2. Справочники: По умолчанию RLS по организациям не скрывает элементы справочника Номенклатура или Контрагенты. Это сделано для того, чтобы база оставалась единым информационным пространством. Если вам нужно ограничить доступ и к контрагентам, для этого в профилях групп доступа предусмотрен отдельный вид доступа «Контрагенты».
  3. Полные права: Помните, что пользователи с ролью ПолныеПрава игнорируют любые настройки RLS. Если вы хотите проверить, как работают ограничения, делайте это под учетной записью обычного пользователя.

Рекомендации по оптимизации

Проанализируем влияние на производительность. Любой RLS — это дополнительная нагрузка на SQL-сервер. Чтобы минимизировать замедление работы, придерживайтесь следующих правил:

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

← На главную