Как настроить и редактировать панель навигации в управляемой форме 1С

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

При разработке интерфейсов в системе 1С:Предприятие 8.3 начинающие разработчики часто путают различные элементы управления: командную панель формы, главное меню и панель навигации. Панель навигации — это та самая область (обычно в левой части или сверху формы), которая содержит гиперссылки для перехода к связанным данным: движениям документа по регистрам, подчиненным справочникам или связанным журналам. В этой статье мы подробно разберем, как управлять этим элементом, как он формируется платформой и как внести изменения в типовую конфигурацию, сохранив её на поддержке.

Что такое панель навигации и откуда она берется

Прежде всего, проанализируем ситуацию: почему в одних документах мы видим ссылки на регистры, а в других — нет? Панель навигации не является статичным меню, которое нужно рисовать вручную. Она формируется платформой динамически на основании метаданных. Если документ является регистратором для какого-то регистра сведений или накопления, платформа «понимает», что пользователю может понадобиться посмотреть движения этого документа, и предлагает соответствующую команду.

Рассмотрим подробнее три источника появления команд в этой панели:

  1. Связи по владельцу: Если у справочника «Договоры» владельцем указан справочник «Контрагенты», то в форме контрагента автоматически появится возможность добавить ссылку на список договоров.
  2. Регистрация в регистрах: Для документов это самый частый случай. Все регистры, по которым документ делает движения, могут быть отображены в панели.
  3. Ведущие измерения: В регистрах сведений и накопления существует свойство измерения Ведущее. Если оно установлено, то в форме объекта, тип которого указан в этом измерении, появится команда перехода к записям регистра.

Редактирование панели навигации в Конфигураторе

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

Откроем нужную форму в Конфигураторе. Обратим внимание на нижнюю часть окна редактора формы. Там расположены закладки: «Форма», «Модуль», «Элементы», «Командный интерфейс» и, интересующая нас, «Панель навигации».

Перейдя на закладку «Панель навигации», мы увидим окно, разделенное на две части:

Выясним, как управлять этими командами. Чтобы добавить элемент, просто перетащите его из левого окна в правое. Чтобы скрыть — удалите из правого окна (команда останется в доступных, но исчезнет из интерфейса пользователя).

Группировка команд: Важное, Перейти и См. также

Платформа 1С предлагает стандартную логику визуального разделения ссылок. Рассмотрим эти группы:

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

Проанализируем ситуацию, когда нужной команды нет в левом окне. Это происходит, если между объектами нет прямой связи в метаданных. В таком случае нам необходимо создать Параметризуемую команду в самом объекте (например, в документе) и прописать в ней логику открытия связанного списка с фильтром по текущему объекту. После создания такая команда появится в списке доступных в редакторе формы.

Работа с типовыми конфигурациями: использование Расширений

Часто возникает вопрос: нужно ли снимать конфигурацию с поддержки, чтобы изменить панель навигации? Ответ — нет. Современный стандарт разработки подразумевает использование механизма расширений.

Посмотрим на пример работы с расширением:

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

При этом основная конфигурация остается «на замке», что значительно упрощает процесс последующего обновления системы вендором.

Программное управление видимостью

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

Рассмотрим пример кода в модуле формы, где мы скрываем команду перехода к регистру, если документ еще не проведен:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Проверяем условие: если документ новый или не проведен
    Если Объект.Ссылка.Пустая() Или Не Объект.Проведен Тогда
        // Обращаемся к командному интерфейсу формы
        // Имя команды обычно совпадает с именем объекта метаданных
        ЭлементКоманды = КомандныйИнтерфейс.Найти("РегистрНакопления.Продажи");
        Если ЭлементКоманды <> Неопределено Тогда
            ЭлементКоманды.Видимость = Ложь;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Важно помнить, что программное управление осуществляется через коллекцию КомандныйИнтерфейс. Это позволяет делать интерфейс более «умным» и не перегружать пользователя лишними ссылками, когда они не актуальны.

Влияние прав доступа и функциональных опций

Бывают случаи, когда разработчик добавил команду в панель навигации, но пользователь её не видит. Разберем основные причины:

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

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

← На главную