Настройка ограничения прав доступа на уровне записей (RLS) — одна из наиболее востребованных, но в то же время ответственных задач при внедрении 1С:Управление торговлей 11. Когда возникает необходимость ограничить видимость данных для отдельных филиалов или подразделений, важно следовать строгому алгоритму. Давайте разберем, как правильно реализовать этот функционал, используя стандартные механизмы Библиотеки стандартных подсистем (БСП).
Первым делом необходимо убедиться, что подсистема ограничения прав активирована в базе. Перейдите в настройки пользователей и прав. Включите использование Ограничение на уровне записей. Без этой глобальной настройки любые дальнейшие манипуляции с профилями не принесут результата.
Основная логика распределения прав строится на профилях. Мы не рекомендуем редактировать типовые роли напрямую, так как это усложнит обновление конфигурации. Действуйте следующим образом:
Профиль групп доступа, который будет описывать функционал менеджера филиала.Полными правами или административные профили, так как они автоматически снимают любые RLS-ограничения.После подготовки профиля перейдите к настройке Групп доступа. Именно здесь вы указываете конкретные значения подразделений, которые будут доступны пользователям:
Ограничения вы увидите список видов доступа (Подразделения, Склады, Организации).Частая проблема — RLS не работает для самодельных объектов или при использовании нетиповых ролей. Если вы создали свою роль, система 1С не знает, как ограничивать доступ к этому объекту. Вы должны:
RLS из типовых ролей, где ограничение по подразделению уже реализовано.Если после настройки вы все еще видите «лишние» данные, используйте отчет Права доступа. Он наглядно покажет, какая именно роль или группа доступа «разрешает» пользователю видеть документы других подразделений.
1. Доступ к справочникам. Помните, что механизм RLS в 1С чаще всего ограничивает документы. Справочники, такие как Договоры контрагентов или Партнеры, могут оставаться видимыми для всех пользователей, даже если документы по этим договорам скрыты. Если вам критично скрыть и их, придется дорабатывать форму выбора программно:
// Пример логики в процедуре обработки выбора:
Процедура ПриНачалеВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = ОткрытьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", Новый Структура("Отбор", ...));
КонецПроцедуры
2. Производительность. Помните, что каждое ограничение RLS — это дополнительное условие WHERE в SQL-запросе. При глубокой иерархии подразделений и большом количестве пользователей скорость работы системы может снизиться. Проводите тестирование на реальных объемах данных.
3. Кэширование прав. После внесения изменений в настройки прав обязательно попросите пользователя перезайти в систему или дождитесь завершения регламентного задания Обновление прав доступа. Параметры доступа кэшируются, и изменения могут вступить в силу не мгновенно.
Следуя этим шагам, вы сможете гибко настроить разграничение прав, сохранив при этом стабильность и производительность вашей информационной системы.