В конфигурации 1С:Управление торговлей 11 часто возникает задача ограничить возможности сотрудника (например, продавца или менеджера по продажам) так, чтобы он мог выписывать документы только по своему складу. Однако для эффективной работы ему необходимо видеть актуальные остатки товаров по всей торговой сети или сети складов компании.
При попытке настроить такое ограничение стандартным механизмом RLS (Row-Level Security / Ограничение прав на уровне записей) через группы доступа пользователи сталкиваются с типичной проблемой: в ведомостях по остаткам вместо названий чужих складов отображается надпись <Объект не найден...>.
Разберем причину возникновения этой неполадки и рассмотрим эффективные варианты ее решения.
Проанализируем механику работы платформы 1С при включенном механизме RLS. Данная ошибка возникает из-за расхождения прав доступа между регистром накопления и справочником:
ТоварыНаСкладах (или отчетов на его основе).Склады, которые не входят в разрешенную группу доступа.<Объект не найден...>.Посмотрим на наиболее простое и эффективное решение, подтвержденное на практике. Для того чтобы продавец мог видеть наименования всех складов в отчете и при этом не имел возможности продавать товары с чужих складов, выполним следующие шаги:
ЧтениеСкладовБезRLS).Склады и регистра накопления ТоварыНаСкладах.В результате продавец сохранит ограничение на создание и изменение документов по чужим складам, но отчет «Ведомость по товарам на складах» начнет корректно отображать наименования всех складов и актуальные остатки.
Нюансы и особенности данного подхода:
Склады все склады начнут отображаться в выпадающих списках и формах выбора документов.Разберем альтернативный вариант, который позволяет не открывать видимость справочника Склады в интерфейсе базы. Для этого используется расширение конфигурации:
УстановитьПривилегированныйРежим(Истина);
УстановитьПривилегированныйРежим(Ложь).При таком подходе отчет формируется с полными правами и показывает наименования всех складов, а в документах и формах выбора пользователь по-прежнему будет видеть только свой разрешенный склад.
Рассмотрим еще один подход: не накладывать RLS на справочник Склады вообще, а ограничить пользователя непосредственно в формах документов.
Склады.ПередЗаписью или ОбработкаПроверкиЗаполнения проверяем соответствие склада текущему пользователю.Этот способ гарантирует корректное формирование любых отчетов и исключает возможность оформления продаж с чужих складов.
Если после настройки прав или профилей доступа отчеты продолжают работать с ошибками, проанализируем состояние кэша прав БСП. В конфигурации 1С:Управление торговлей 11 может потребоваться выполнить обновление параметров ограничения доступа с помощью служебного вызова:
УправлениеДоступомСлужебный.ОбновитьПараметрыОграниченияДоступа();
Это позволит платформе пересчитать права и применить новые роли без сбоев.