Как настроить отображение отчета из расширения в списке «Кадровые отчеты» в ЗУП 3.1

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

При разработке расширений для конфигурации 1С:Зарплата и управление персоналом 3.1 программисты часто сталкиваются с ситуацией, когда новый отчет, добавленный в расширение, не появляется в привычном месте — панели типовых отчетов (например, в разделе «Кадровые отчеты»). Даже если отчет включен в соответствующую подсистему в конфигураторе расширения, он может отображаться либо в отдельном подразделе, либо быть доступным только через меню «Все функции» (Функции для технического специалиста). Разберем по шагам, почему это происходит и как корректно интегрировать ваш отчет в типовой интерфейс.

Причина проблемы: Механизмы БСП

Современные конфигурации, построенные на базе Библиотеки стандартных подсистем (БСП), используют динамическое формирование панелей отчетов. Список, который мы видим в разделе «Кадровые отчеты», — это не просто перечень объектов метаданных, привязанных к подсистеме. Это результат работы справочника ВариантыОтчетов. Система собирает информацию обо всех доступных отчетах, сохраняет их настройки в этом справочнике и выводит в интерфейс на основании его данных. Если ваш отчет из расширения не «зарегистрирован» должным образом в механизмах БСП, он не попадет в общую форму ПанельОтчетовКадры.

Способ 1. Настройка в пользовательском режиме (без изменения кода)

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

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

Если же отчета в списке нет совсем, значит, система БСП еще не узнала о его существовании в составе расширения. В этом случае перейдем к программным методам.

Способ 2. Регистрация через модуль менеджера отчета

Для того чтобы отчет автоматически регистрировался в справочнике вариантов при обновлении информационной базы, необходимо использовать программный интерфейс БСП. Рассмотрим, как это реализовать в расширении.

В конфигураторе расширения откроем Модуль менеджера вашего отчета. Нам необходимо создать или переопределить процедуру НастроитьВариантыОтчета. Именно эта процедура вызывается системой для получения метаданных о вариантах отчета и местах их размещения.

Пример программного кода для добавления в модуль менеджера:


Процедура НастроитьВариантыОтчета(Настройки, ОтчетМетаданные) Экспорт
    // Определим описание основного варианта отчета
    НастройкиВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, ОтчетМетаданные, "Основной");
    
    // Укажем, в какой подсистеме должен отображаться отчет.
    // В ЗУП 3.1 для кадровых отчетов обычно используется подсистема "КадровыеОтчеты".
    ПодсистемаКадровыеОтчеты = Справочники.Подсистемы.НайтиПоНаименованию("КадровыеОтчеты", Истина);
    
    Если Не ПодсистемаКадровыеОтчеты.Пустая() Тогда
        // Добавляем отчет в найденную подсистему
        НастройкиВарианта.Размещение.Вставить(ПодсистемаКадровыеОтчеты);
    КонецЕсли;
    
    // Установим видимость по умолчанию для всех пользователей
    НастройкиВарианта.ВидимостьПоУмолчанию = Истина;
КонецПроцедуры

Важно помнить, что если вы используете расширение, убедитесь, что в свойствах объекта Отчет установлена галочка Использовать стандартные команды. Это позволит системе автоматически создать необходимые элементы управления в интерфейсе.

Способ 3. Работа с идентификаторами объектов и обновление данных

При добавлении новых объектов в расширение 1С автоматически создает записи в служебном справочнике ИдентификаторыОбъектовРасширений. Иногда связь между метаданными и интерфейсом нарушается из-за того, что вспомогательные данные БСП не были обновлены. Выясним, как принудительно запустить процесс обновления.

Проанализируем ситуацию: если отчет виден во «Все функции», но его нет в настройках панелей, попробуем запустить программу с параметром командной строки: /С ЗапуститьОбновлениеИнформационнойБазы. Этот параметр заставит БСП заново просканировать все метаданные, включая те, что находятся в расширениях, и обновить справочники вариантов отчетов и идентификаторов.

Способ 4. Роли и права доступа

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

  1. Создадим в расширении новую Роль (или добавим отчет в существующую роль расширения).
  2. Для объекта Отчет в этой роли установим права Использование и Просмотр.
  3. Если в системе используются профили групп доступа, необходимо убедиться, что пользователю назначен профиль, включающий эту роль расширения.

Внимание: Если отчет использует СКД (Схему компоновки данных), проверьте, есть ли у пользователя права на чтение всех объектов (справочников, документов, регистров), которые используются в запросах этого отчета. Если прав на данные нет, отчет может просто не отобразиться в списке из-за механизмов авто-фильтрации БСП.

Использование общей команды «ПанельОтчетовКадры»

Команда ПанельОтчетовКадры — это типовой механизм ЗУП 3.1, который открывает единую форму со списком всех кадровых отчетов. Чтобы ваш отчет попал именно туда, проанализируем настройки подсистем. В типовой конфигурации эта панель собирает отчеты, которые привязаны к подсистеме ЗарплатаКадрыБазовая -> Кадры -> КадровыеОтчеты. При добавлении отчета в расширение обязательно включите его в состав этой иерархии подсистем (достаточно добавить в расширение саму подсистему КадровыеОтчеты и отметить в ней ваш объект).

Резюме

Для успешного отображения отчета в списке «Кадровые отчеты» в ЗУП 3.1 выполним следующие действия: во-первых, убедимся, что отчет включен в типовую подсистему КадровыеОтчеты внутри расширения; во-вторых, пропишем процедуру регистрации в модуле менеджера отчета; в-третьих, проверим права доступа и, при необходимости, обновим информационную базу с параметром /С ЗапуститьОбновлениеИнформационнойБазы.

Используя эти методы, мы обеспечим бесшовную интеграцию кастомных отчетов в типовой интерфейс программы, делая работу пользователей удобной и привычной.

← На главную