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