При разработке и кастомизации конфигураций на платформе 1С:Предприятие 8.3, в частности «1С:Управление торговлей 11», разработчики часто сталкиваются с жестким поведением командного интерфейса. Когда мы включаем в свою подсистему справочники, документы или регистры сведений, платформа автоматически размещает их в панели навигации раздела. Однако стандартные команды открытия отчетов непременно попадают в группу Панель действий.Отчеты, а обработки — в группу Панель действий.Сервис.
Разберем, почему платформа ведет себя именно так и как правильно переместить отчеты и обработки в общий список панели навигации к остальным объектам метаданных.
Платформа жестко связывает стандартные команды открытия объектов с их функциональным назначением:
Если мы откроем редактор Командный интерфейс подсистемы, то увидим, что стандартные команды нельзя просто перетащить мышью из панели действий в панель навигации (группы «Обычное», «Важное» или «См. также»). Платформа позволяет только включить или отключить их видимость в пределах предопределенной системной группы. Следовательно, стандартными командами решить задачу невозможно.
Чтобы обойти системное ограничение, необходимо добавить для каждого отчета или обработки собственную команду, группу которой разработчик может задать произвольно.
Разберем по шагам порядок действий:
Команды. Добавим новую команду (например, с именем ОткрытьОтчет или ОткрытьОбработку).Группа. По умолчанию там указано значение «Панель действий.Сервис» или «Панель действий.Отчеты». Изменим это свойство на требуемую группу панели навигации:Панель навигации.Обычное — команда встанет в общий перечень навигации рядом со справочниками и документами;Панель навигации.Важное — ссылка на объект будет закреплена вверху панели навигации и выделена полужирным шрифтом;Панель навигации.См. также — ссылка разместится в нижней служебной части панели навигации.Синоним, который будет отображаться пользователю в интерфейсе подсистемы.Посмотрим на пример кода для модуля команды отчета:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Отчет.ИмяВашегоОтчета.Форма");
КонецПроцедуры
Посмотрим на пример аналогичного кода для модуля команды обработки:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Обработка.ИмяВашейОбработки.Форма");
КонецПроцедуры
После создания собственных команд настроим командный интерфейс подсистемы:
Рассмотрим подробнее два важных момента, о которых часто забывают при добавлении пользовательских команд в типовых конфигурациях вроде «1С:Управление торговлей 11»:
Просмотр на саму команду, она не появится в панели навигации. Обязательно добавьте права на новую команду в соответствующие роли конфигурации или расширения.УправлениеОтчетамиПереопределяемый.НастроитьВариантыОтчетов. В таком сценарии отчет открывается из единой формы «Отчеты раздела». Однако если проектное требование состоит в том, чтобы отчет стоял именно в общем списке документов и справочников подсистемы, описанный вариант с созданием собственной команды в группе Панель навигации.Обычное является единственным технически верным решением.