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

Системный администратор 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Переход с исторических конфигураций (например, 1С:УПП 1.3) на современную платформу 1С:ERP Управление предприятием часто вызывает вопросы у администраторов и разработчиков в части настройки прав доступа. Механизм ограничения доступа на уровне записей (RLS — Row-Level Security) в 1С:ERP претерпел значительные архитектурные изменения. Разберем подробно, как работает этот механизм, как настроить ограничения по подразделениям, почему «из коробки» нет ограничений по проектам и направлениям деятельности, и какими путями можно решить эти задачи.

1. Главная методологическая ошибка: Профили групп доступа против Групп доступа

Часто начинающие администраторы 1С:ERP совершают одну и ту же ошибку: они пытаются настроить конкретные виды и значения доступа внутри карточки Группы доступа, не обратив внимания на настройки Профиля группы доступа. Проанализируем, в чем разница и как правильно выстроить цепочку настроек.

В системе 1С:ERP разделение прав работает по трехзвенной схеме:

  1. Профиль групп доступа — это шаблон, определяющий, какие роли (разрешенные действия) доступны пользователю и по каким разрезам (видам доступа) в принципе можно ограничивать данные. Именно здесь на вкладке «Ограничения доступа» задается архитектура ограничений.
  2. Группа доступа — это конкретная реализация профиля, которая связывает его с конечными пользователями. В группе доступа указываются конкретные значения-исключения (например, конкретная организация или конкретное подразделение), к которым у пользователя будет доступ.
  3. Пользователи — конечные участники группы доступа, наследующие все ее правила.

Рассмотрим по шагам, как правильно запустить механизм RLS:

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

2. Разграничение прав доступа по Подразделениям: Практические нюансы

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

Проблема сквозных документов в зарплате и кадрах: Если вы используете встроенный в ERP блок управления персоналом (аналог ЗУП КОРП), ограничение по подразделениям может преподнести неприятный сюрприз. Например, если расчетчик начисляет зарплату документом, в табличную часть которого попадает хотя бы один сотрудник из подразделения, к которому у данного расчетчика нет доступа, система полностью скроет от него этот документ. Расчетчик просто не увидит документ в списке.

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

3. Производительный режим RLS в современных версиях ERP (2.4 и 2.5)

В старых версиях системы (включая ERP 2.1) включение RLS часто приводило к катастрофическому падению производительности, так как SQL-запросы «на лету» дополнялись сложными условиями фильтрации. Начиная с ERP 2.4 и в текущих релизах ERP 2.5 реализован совершенно иной подход — производительный (универсальный) режим работы RLS.

Выясним причину его эффективности и особенности администрирования:

4. Как решить проблему отсутствия RLS по Проектам?

В коробочной (стандартной) версии 1С:ERP 2.5 ограничение доступа на уровне записей по проектам по-прежнему отсутствует в типовом списке видов доступа. Если крупному предприятию жизненно важно разграничить видимость документов по проектам, существует три пути решения этой задачи.

Вариант А: Использование отраслевых решений

Если специфика вашей организации глубоко завязана на проектную деятельность, целесообразно рассмотреть переход на специализированную конфигурацию «1С:ERP+PM Управление проектной организацией». В ней подсистема ограничения прав по проектам добавлена непосредственно разработчиками на уровне ядра. Доступен справочник ограничений по проектам, который автоматически управляет видимостью документов на основе проектных ролей сотрудников.

Вариант Б: Использование сторонних финансовых модулей

При интеграции в ERP сторонних систем управления финансами (например, БИТ.ФИНАНС для ERP) вы получаете встроенный независимый механизм RLS. Он позволяет без программирования настраивать гибкое разграничение прав в разрезе Проектов, ЦФО и Статей оборотов через собственные регистры прав БИТ.ФИНАНС, работая параллельно со стандартным RLS от фирмы 1С.

Вариант В: Собственная программная доработка (в Конфигураторе)

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

  1. В режиме Конфигуратора создадим новое перечисление или добавим элемент в существующие метаданные видов доступа.
  2. Внесем метаданные проектов в определяемые типы, такие как ЗначениеДоступа, ВладелецЗначенийКлючейДоступа и другие сопутствующие типы БСП.
  3. Пропишем правила регистрации нового вида доступа в общем модуле УправлениеДоступомПереопределяемый. Нам понадобятся процедуры ПриЗаполненииВидовДоступа и ПриЗаполненииВидовОграничений. Примерный шаблон кода для регистрации выглядит следующим образом:

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт
    ВидДоступа = ВидыДоступа.Добавить();
    ВидДоступа.Имя = "Проекты";
    ВидДоступа.Представление = НСтр("ru = 'Проекты'");
    ВидДоступа.ТипЗначения = Тип("СправочникСсылка.Проекты");
КонецПроцедуры

После написания кода потребуется запустить обновление конфигурации и пересчитать ключи доступа с помощью стандартной обработки БСП ОбновлениеВспомогательныхДанных.

5. Разграничение доступа по Направлениям деятельности (НД)

Направление деятельности в 1С:ERP является ключевым сквозным аналитическим разрезом. Оно присутствует на планах счетов, в регистрах себестоимости, бюджетирования, в документах закупок и продаж. Тем не менее, типового ограничителя RLS по направлениям деятельности в ERP нет.

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

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

6. Полезный инструмент для администратора: Анализ прав доступа в ERP 2.5

В современных версиях ERP 2.5 администратору стало намного проще разбираться, почему пользователь не видит тот или иной документ. Для этого разработан мощный отчет Анализ прав доступа.

Если у сотрудника возникает проблема с видимостью объекта, выполним следующие действия:

  1. Откроем отчет «Анализ прав доступа» в разделе администрирования.
  2. Выберем интересующего пользователя и целевой объект метаданных (например, документ «Заказ клиента»).
  3. Установим флаг Подробные сведения о правах доступа.
  4. Проанализируем сформированную таблицу: отчет наглядно покажет всю цепочку — какие именно роли разрешают чтение, какие профили их содержат, и какой конкретно ключ RLS или группа доступа наложили вето на просмотр данной записи.
← На главную