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