База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как настроить ограничения RLS по организации в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 часов, 37 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
16 октября 2025 в 18:30 #33752
Odineski
УчастникДобрый день. Вопрос от коллег
» Подскажите, как настроить ограничения всех справочников и документов по организации? Я создал все нужные группы доступа, с ограничениями по организации(RLS), но всё равно в справочниках отражаются элементы связанные с другими организациями и при создании нового элемента какого-нибудь справочника отражаются подразделения или ещё какие объекты связанные с другими организациями (« -
16 октября 2025 в 18:30 #33753
Odin — Одинэсник
УчастникDimka, добрый день!
Для корректной настройки ограничений доступа по организациям (RLS) в 1С, чтобы пользователи видели только данные своей организации и не имели доступа к данным других организаций, необходимо выполнить следующие шаги:
—
### 1. Создание и настройка групп доступа с ограничением по организации
— В справочнике **Группы доступа** создайте группы с ограничением по организации.
— В ограничениях доступа укажите вид доступа, например,»Организация»
, и настройте отбор по реквизиту организации в документах и справочниках.—
### 2. Добавление вида доступа «Организация» в общий модуль
УправлениеДоступомПереопределяемый
В процедуре
ПриЗаполненииВидовДоступа
добавьте вид доступа для организации:1С (Код)123456781CПроцедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт// Добавляем вид доступа "Организация"ВидДоступа = ВидыДоступа.Добавить();ВидДоступа.Имя = "Организация";ВидДоступа.Представление = НСтр("ru='Организация'");ВидДоступа.ТипЗначений = Тип("СправочникСсылка.Организации");КонецПроцедурыПосле этого необходимо обновить информационную базу с параметром
/c ЗапуститьОбновлениеИнформационнойБазы
, чтобы изменения вступили в силу.—
### 3. Настройка ограничений доступа в ролях (RLS)
— В ролях, которые используются пользователями, добавьте ограничения доступа по организации.
— Используйте штатные шаблоны RLS, например,#ПоЗначениям
или#ПоЗначениямРасширенный
.Пример ограничения для документа:
1С (Код)1231C#ПоЗначениям("Документ.ЗаказПокупателя", "Чтение", "","Организация", "Организация", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")Для справочников аналогично:
1С (Код)1231C#ПоЗначениям("Справочник.ПодразделенияОрганизаций", "Чтение", "","Организация", "Организация", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")Если в справочнике нет прямого реквизита «Организация», используйте расширенный шаблон с внутренним соединением на объект, где есть организация.
—
### 4. Ограничение выбора связанных объектов при создании новых элементов
Чтобы при создании новых элементов справочников или документов в формах не отображались подразделения или другие объекты, относящиеся к другим организациям, необходимо:
— В формах выбора (например, в реквизитах типа «Подразделение») добавить фильтр по организации, который будет брать текущую организацию пользователя из параметров сеанса или из группы доступа.
— Для этого можно использовать параметр сеанса, например,ТекущаяОрганизация
, который устанавливается при входе пользователя.Пример кода инициализации параметра сеанса:
1С (Код)1234561CПроцедура ИнициализацияПараметровСеанса()// Получаем организацию пользователя из группы доступаТекущаяОрганизация = ... // логика получения организации из группы доступа или профиляПараметрыСеанса.Вставить("ТекущаяОрганизация", ТекущаяОрганизация);КонецПроцедурыВ формах выбора добавьте отбор по этому параметру:
1С (Код)121CОтбор.Организация.Значение = ПараметрыСеанса.ТекущаяОрганизация;—
### 5. Проверка и отладка
— Используйте отчет **Проверка внедрения БСП** (если используется БСП) для выявления ошибок в настройках RLS.
— Проверьте, что у пользователя нет нескольких ролей с конфликтующими правами (например, одна роль с ограничением, другая без).
— Убедитесь, что все объекты, которые должны быть ограничены, добавлены в процедурыПриЗаполненииСписковСОграничениемДоступа
иПриЗаполненииВидовОграниченийПравОбъектовМетаданных
общего модуляУправлениеДоступомПереопределяемый
.—
### Итог
— Добавьте вид доступа «Организация» в общий модуль.
— Настройте роли с ограничениями по организации через шаблоны RLS.
— В формах выбора добавьте фильтры по текущей организации.
— Обновите информационную базу.
— Проверьте отсутствие конфликтующих ролей.—
Если нужна помощь с конкретным кодом или настройкой — могу помочь написать пример.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/829474/
https://infostart.ru/1c/articles/380599/
https://infostart.ru/1c/articles/1908621/—
Если кратко — основная ошибка в том, что ограничение по организации настроено только на уровне ролей, но не реализован фильтр в формах выбора связанных объектов, поэтому и видны данные других организаций.
—
Готов помочь с конкретными примерами кода и настройками!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.