В практике работы с конфигурацией Управление торговлей 11.3 часто возникает ситуация, когда два пользователя с похожими правами видят разную информацию в одних и тех же отчетах. Особенно остро это проявляется при использовании механизмов расшифровки (drill-down), когда один отчет вызывается из другого. Разберем ситуацию, когда в отчете «Поступление и отгрузка товаров» у одного пользователя отображается «Документ-основание», а у другого это поле остается пустым, хотя права на сами документы (например, Заказы клиентов) вроде бы предоставлены.
Проанализируем техническую сторону вопроса. В системе 1С:Предприятие 8 существует принципиальное различие между правом Чтение (Read) и правом Просмотр (View). Выясним, как это влияет на отчеты:
Если у Пользователя 1 настроено только Чтение без Просмотра на определенные типы документов, то в отчете, построенном на системе компоновки данных (СКД), поле с документом может оказаться пустым. Система просто не имеет права сформировать текстовое представление для этой ссылки, чтобы показать его в ячейке отчета.
Рассмотрим подробнее работу регистра накопления ТоварыКотгрузке, который является источником данных для отчета. Измерение ДокументОснование в этом регистре имеет составной тип данных. В него могут входить:
Когда включен механизм RLS (Row Level Security — ограничение прав на уровне записей), запрос отчета с конструкцией ВЫБРАТЬ РАЗРЕШЕННЫЕ начинает работать избирательно. Рассмотрим пример логики запроса:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТоварыКотгрузке.ДокументОснование КАК ДокументОснование,
ТоварыКотгрузке.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыКотгрузке.Остатки КАК ТоварыКотгрузке
Если у пользователя нет прав (даже на уровне чтения) хотя бы на один из типов документов, входящих в составное поле ДокументОснование, система при определенных настройках шаблонов RLS может скрывать данные. Однако чаще происходит следующее: если у пользователя есть право на «Заказ клиента», но нет права на «Заказ на перемещение», то строки с заказами клиентов он увидит, а строки, где основанием выступает перемещение — нет. Если же у пользователя есть право Чтение на все типы, но нет Просмотра, он увидит пустые строки или текст «Объект не найден».
В конфигурации УТ 11.3 отображение данных тесно связано с функциональными опциями. Проанализируем ситуацию: если в профиле групп доступа пользователя отключен раздел, например, «Сборка (разборка)», то связанные с этим разделом типы документов могут блокироваться на уровне интерфейса. Даже если программно право существует, функциональная опция может «вырезать» отображение этих типов в отчетах. Необходимо убедиться, что у Пользователя 1 в профиле включены все необходимые разделы учета, которые могут выступать источниками распоряжений для отгрузки.
Современные версии УТ используют механизм оптимизации прав доступа. Вместо того чтобы вычислять RLS «на лету» при каждом запросе (что сильно тормозит систему), 1С хранит рассчитанные права в специальных служебных таблицах — ключах доступа.
Иногда возникает технический сбой: права пользователю добавлены, но таблицы ключей не обновились. В этом случае данные в отчетах будут отсутствовать. Посмотрим, как это исправить:
Выясним еще одну важную деталь. Регистр ТоварыКотгрузке может хранить ссылку на ДокументОснование, но само движение (запись в регистр) делает другой документ — Регистратор (например, Реализация товаров и услуг).
Для корректного формирования отчета-расшифровки пользователю требуются права:
ПоступлениеИОтгрузкаТоваров (как объект метаданных).ДокументОснование.Вывод в отчеты и реестры (без этой роли в некоторых версиях платформы могут возникать проблемы с отображением детальных данных).Для исправления проблемы у Пользователя 1 выполним следующие шаги:
ЗаказКлиента, ЗаказНаПеремещение, ЗаказНаСборку и т.д.Отчет.ПоступлениеИОтгрузкаТоваров.Таким образом, корень проблемы чаще всего кроется в отсутствии права Просмотр на один из типов документов составного поля или в необходимости обновления кэша прав доступа (ключей доступа) после изменения состава ролей пользователя.