Как поместить отчеты и обработки в общий список подсистемы без пунктов «Отчеты» и «Сервис» в 1С:УТ 11?

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

При разработке и кастомизации конфигураций на платформе 1С:Предприятие 8.3, в частности «1С:Управление торговлей 11», разработчики часто сталкиваются с жестким поведением командного интерфейса. Когда мы включаем в свою подсистему справочники, документы или регистры сведений, платформа автоматически размещает их в панели навигации раздела. Однако стандартные команды открытия отчетов непременно попадают в группу Панель действий.Отчеты, а обработки — в группу Панель действий.Сервис.

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

Выясним причину стандартного поведения платформы

Платформа жестко связывает стандартные команды открытия объектов с их функциональным назначением:

  1. Для любого отчета системная команда открытия жестко привязана к группе Панель действий.Отчеты.
  2. Для любой обработки системная команда открытия привязана к группе Панель действий.Сервис.

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

Решение: создание и настройка собственных команд объекта

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

Разберем по шагам порядок действий:

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

Посмотрим на пример кода для модуля команды отчета:


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    ОткрытьФорму("Отчет.ИмяВашегоОтчета.Форма");
    
КонецПроцедуры

Посмотрим на пример аналогичного кода для модуля команды обработки:


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    ОткрытьФорму("Обработка.ИмяВашейОбработки.Форма");
    
КонецПроцедуры

Настройка видимости в командном интерфейсе подсистемы

После создания собственных команд настроим командный интерфейс подсистемы:

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

Важные нюансы: права доступа и архитектура БСП

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

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