Почему отчеты не отображаются в интерфейсе подсистемы 1С и как это исправить

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Нередко при настройке прав доступа и создании новых ролей разработчики сталкиваются с ситуацией: пользователю назначены все необходимые права, нужная подсистема отображается в командном интерфейсе программы, но внутри раздела нет ни одного отчета. Разберем по шагам, почему возникает такая ситуация, как быстро локализовать причину и какими инструментами выполнять отладку ролей в среде 1С:Предприятие.

Проверка прав доступа и базовых настроек объектов

Когда объект метаданных не появляется на панели разделов или в панели действий, первым делом проанализируем настройки прав в конфигураторе:

  1. Наличие прав «Чтение» и «Просмотр». Для отображения отчета в интерфейсе недостаточно установить только право Чтение. Обязательно должно быть включено право Просмотр как для самого отчета, так и для подсистем, в которые он входит (включая всех родителей в иерархии подсистем).
  2. Свойство «Использовать стандартные команды». Проверим свойства самого отчета в дереве метаданных. Если у объекта снят флаг Использовать стандартные команды, платформа не сформирует стандартную команду для вызова отчета в интерфейсе.
  3. Наличие основной схемы компоновки или формы. Платформа 1С в управляемом интерфейсе не генерирует команду открытия отчета, если у него отсутствует основная форма и не задана основная схема компоновки данных (СКД).
  4. Влияние функциональных опций. Выясним, не привязан ли отчет или содержащая его подсистема к функциональной опции. Если опция выключена в режиме 1С:Предприятие, объект будет скрыт независимо от назначенных ролей.

Настройка командного интерфейса в режиме «1С:Предприятие»

Если права на объект и подсистемы выданы корректно, причина скрывается в пользовательских настройках интерфейса или командных панелей. Рассмотрим, как вернуть видимость команд:

  1. Перейдем в нужный раздел программы под проблемным пользователем.
  2. В правом верхнем углу рабочей области откроем меню «Настройка» (значок шестеренки) и выберем пункт «Настройка действий» (или «Настройка панели навигации»).
  3. В левом списке доступных команд найдем группу «Отчеты», выделим требуемый отчет и нажмем кнопку «Добавить >», чтобы переместить его в правую колонку отображаемых команд.
  4. Нажмем «ОК» для сохранения параметров интерфейса.

Если для пользователя ранее уже были сохранены индивидуальные настройки интерфейса, изменения состава подсистем в конфигураторе могут не отобразиться автоматически. В таком случае в окне настройки действий достаточно нажать кнопку «Установить стандартные настройки».

Программные способы отладки и проверки доступности ролей

Чтобы исключить ошибки в назначении ролей и быстро проверить права пользователя, применим программные методы платформы. Посмотрим на пример кода, позволяющий проверить доступность конкретного права:


Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ВаловаяПрибыль, ТекущийПользователь()) Тогда
    Сообщить("Право на просмотр отчета предоставлено.");
Иначе
    Сообщить("Право на просмотр отчета отсутствует!");
КонецЕсли;

Для проверки того, включена ли конкретная роль в текущем сеансе, используем функцию РольДоступна:


Если Не РольДоступна("ЧтениеОтчетовПоПродажам") Тогда
    ВызватьИсключение "У текущего пользователя не активна требуемая роль!";
КонецЕсли;

Также мы можем получить весь список назначенных пользователю ролей через объект информационной базы:


СписокРолей = ПользователиИнформационнойБазы.ТекущийПользователь().Роли;
Для Каждого Роль Из СписокРолей Цикл
    Сообщить("Назначена роль: " + Роль.Имя);
КонецЦикла;

Быстрый запуск сеанса для отладки прав

Для удобной отладки прав доступа без необходимости постоянного ввода логина и пароля в пользовательском режиме настроим параметры отладки в конфигураторе. Перейдем в меню «Сервис» → «Параметры» на вкладку «Запуск 1С:Предприятия». В поле «Имя» укажем имя тестируемого пользователя. Теперь при запуске отладки по клавише F5 платформа сразу запустит сеанс с правами и интерфейсом выбранного пользователя.

Если у пользователя активно право Режим "Все функции" (или Функции для технического специалиста), откроем этот список и найдем отчет напрямую. Если отчет доступен и формируется через стандартный список метаданных, значит все права выданы верно, а проблема заключается исключительно в отображении командного интерфейса подсистемы.

Особенности работы с отчетами в конфигурациях на БСП

В современных типовых конфигурациях отображение отчетов часто контролируется механизмом подсистемы Варианты отчетов библиотеки стандартных подсистем. Проанализируем важные нюансы:

  1. Отчеты выводятся не через стандартные команды подсистем, а через панель отчетов раздела.
  2. Новый отчет должен быть зарегистрирован в справочнике вариантов отчетов, а в его карточке должна быть отмечена видимость в соответствующем разделе.
  3. Если в информационной базе включен производительный режим RLS (ограничение прав на уровне записей), после назначения новых профилей может потребоваться запуск процедуры УправлениеДоступом.ОбновитьПраваДоступа() для пересчета прав и ключей доступа.
← На главную