К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как добавить команду в панель навигации в 1С

Практическая инструкция: как добавить команду в панель навигации формы в 1С 8.3 через конфигуратор, командный интерфейс и обработчики. Типичные ошибки и проверка результата.

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

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

Ниже разобраны все рабочие варианты с точными действиями, ограничениями и способами проверки результата. Материал рассчитан на управляемые формы (такси-интерфейс) типовых и самописных конфигураций на платформе 8.3.

Где находится панель навигации и что в неё попадает автоматически

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

Управляет составом панели настройка КомандныйИнтерфейс у объекта конфигурации. Для каждой автоматически формируемой команды там есть флаг видимости. Если команда не отображается, первым делом проверьте именно этот флаг — часто «добавление» команды сводится к включению уже существующей.

Способ 1: включить команду через командный интерфейс объекта

Это основной и самый безопасный способ, не требующий программирования. Подходит, когда нужная связь уже существует в метаданных: например, к документу «Реализация товаров и услуг» нужно добавить переход к связанному регистру или отчёту.

Порядок действий:

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

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

Способ 2: добавить переход через подчинённость и критерии отбора

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

Подчинённый справочник или документ по основанию

Чтобы в панели навигации справочника появился переход к подчинённому справочнику, у подчинённого объекта в свойстве «Владельцы» должен быть указан родительский справочник. Для документов связь задаётся через «Ввод на основании»: у целевого документа в свойстве «Вводится на основании» укажите исходный. После этого команда появится в командном интерфейсе, и её можно включить способом 1.

Критерий отбора

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

Способ 3: программное добавление команды в форму

Когда нужно открывать по команде произвольную форму, обработку или отчёт, которых нет в стандартных связях, команду добавляют программно в модуле формы. Это делается в обработчике ПриСозданииНаСервере.

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

// В обработчике ПриСозданииНаСервере

НоваяКоманда = Команды.Добавить("ОткрытьМойОтчет");

НоваяКоманда.Действие = "Подключаемый_ОткрытьМойОтчет";

НоваяКоманда.Заголовок = "Анализ по контрагенту";

НоваяКнопка = Элементы.Добавить("КнопкаОткрытьМойОтчет", Тип("КнопкаФормы"), Элементы.КоманднаяПанельНавигации);

НоваяКнопка.ИмяКоманды = "ОткрытьМойОтчет";

НоваяКнопка.Вид = ВидКнопкиФормы.Гиперссылка;

Обработчик команды объявляется в модуле формы как экспортная процедура Подключаемый_ОткрытьМойОтчет(Команда), внутри которой вызывается ОткрытьФорму() с нужными параметрами — например, с отбором по текущему объекту.

Способ 4: добавление команды через расширение конфигурации

Для типовых конфигураций на поддержке рекомендуемый путь — расширение. В расширении заимствуется нужная форма, и в её обработчике ПриСозданииНаСервере с аннотацией &После добавляется собственная команда тем же кодом, что описан выше.

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

Сравнение вариантов

Командный интерфейс объекта

Подходит, если связь уже есть в метаданных. Быстро, без кода, без рисков при обновлении.

Связи метаданных (владельцы, основание, критерии)

Подходит для постоянных связей между объектами. Требует изменения конфигурации и влияет на поддержку.

Программное добавление в форму

Максимальная гибкость: любая цель команды. Требует доработки формы, лучше через расширение.

Расширение конфигурации

Безопасно для типовых решений. Ограничено в изменении свойств метаданных.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Команда в панели навигации
Норма

Команда видна и активна у пользователя с полными правами

Тревожный признак

Команды нет — проверьте флаг видимости в командном интерфейсе и права

Отбор данных
Норма

Открываемый список/отчёт отфильтрован по текущему объекту

Тревожный признак

Открывается полный список без отбора — неверно задана связь или параметры

Права пользователя
Норма

У обычного пользователя команда видна и работает

Тревожный признак

У пользователя без полных прав команда скрыта — нет прав на целевой объект

Типичные ошибки
01
Включили команду, но не обновили конфигурацию БД — в режиме предприятия ничего не изменилось
02
Ищут команду в панели навигации, а включили её в панель действий (группа «Командная панель формы») — команды путают между группами
03
Забыли про права: команда есть у администратора, но скрыта у рядовых пользователей
04
Добавили кнопку не в ту родительскую группу формы — элемент попал в командную панель вместо панели навигации
05
Изменили типовую форму напрямую вместо расширения — доработка слетела при обновлении

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

Итог

Что важно запомнить

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

Частые вопросы

Почему команда есть в командном интерфейсе, но не видна в форме?

Чаще всего причина в правах: платформа автоматически скрывает команды, к целевым объектам которых у пользователя нет права просмотра. Проверьте роль пользователя и права на регистр, отчёт или справочник, к которому ведёт команда. Вторая причина — не обновлена конфигурация базы данных после изменения настроек.

Можно ли добавить команду в панель навигации без конфигуратора, в режиме предприятия?

Штатными средствами — нет: состав панели навигации определяется метаданными и модулем формы. В режиме предприятия пользователь может лишь настроить видимость уже существующих стандартных команд формы через меню «Ещё → Изменить форму», если разработчик оставил такую возможность.

Чем панель навигации отличается от панели действий?

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

Как добавить в панель навигации отчёт, который не связан с объектом стандартно?

Стандартная связь не нужна: создайте команду программно в обработчике ПриСозданииНаСервере формы, а в обработчике команды вызовите ОткрытьФорму с именем отчёта и передайте параметры отбора по текущему объекту. Для типовой конфигурации делайте это через расширение.

Пропадут ли мои команды в панели навигации после обновления типовой конфигурации?

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

Можно ли изменить порядок команд в панели навигации?

Да. В окне «Командный интерфейс» объекта команды внутри группы можно перемещать кнопками вверх/вниз — этот порядок сохранится в форме. Для программно добавленных кнопок порядок определяется последовательностью их создания и методом Переместить у элемента формы.