Разработка и Конфигурация · 10 мин
Как добавить команду в панель навигации в 1С
Практическая инструкция: как добавить команду в панель навигации формы в 1С 8.3 через конфигуратор, командный интерфейс и обработчики. Типичные ошибки и проверка результата.
Панель навигации в 1С:Предприятии 8.3 — это вертикальный список команд в левой части формы списка или элемента, который позволяет быстро переходить к связанным данным: подчинённым регистрам, связанным документам, отчётам по объекту. Часто возникает задача добавить туда собственную команду — например, переход к пользовательскому отчёту или к связанному справочнику.
Добавить команду в панель навигации можно несколькими способами: через стандартные механизмы связей (критерии отбора, подчинённость регистров), через настройку командного интерфейса объекта в конфигураторе, а также программно — добавлением команды формы в обработчике ПриСозданииНаСервере. Выбор способа зависит от того, что именно должно открываться по команде и насколько глубоко вы готовы менять конфигурацию.
Ниже разобраны все рабочие варианты с точными действиями, ограничениями и способами проверки результата. Материал рассчитан на управляемые формы (такси-интерфейс) типовых и самописных конфигураций на платформе 8.3.
Где находится панель навигации и что в неё попадает автоматически
Панель навигации отображается в форме списка и форме элемента объекта. В неё платформа автоматически выводит команды перехода к данным, которые связаны с текущим объектом: регистрам сведений и накопления, где объект выступает измерением или регистратором, критериям отбора, подчинённым справочникам и документам, введённым на основании.
Управляет составом панели настройка КомандныйИнтерфейс у объекта конфигурации. Для каждой автоматически формируемой команды там есть флаг видимости. Если команда не отображается, первым делом проверьте именно этот флаг — часто «добавление» команды сводится к включению уже существующей.
Способ 1: включить команду через командный интерфейс объекта
Это основной и самый безопасный способ, не требующий программирования. Подходит, когда нужная связь уже существует в метаданных: например, к документу «Реализация товаров и услуг» нужно добавить переход к связанному регистру или отчёту.
Порядок действий:
- Откройте конфигуратор и найдите нужный объект (справочник, документ) в дереве конфигурации.
- Откройте палитру свойств объекта и перейдите по ссылке «Командный интерфейс».
- В открывшемся окне найдите группу «Панель навигации» — в ней перечислены все команды перехода, которые платформа может показать для этого объекта.
- Установите флажок видимости напротив нужной команды. При необходимости измените представление команды (колонка «Представление»).
- Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия.
- 1Откройте свойства объекта в конфигураторе
- 2Перейдите в «Командный интерфейс»
- 3Найдите группу «Панель навигации»
- 4Включите видимость нужной команды
- 5Обновите конфигурацию БД и проверьте в режиме предприятия
Если команда видна в настройке, но не появляется в форме — проверьте права пользователя на целевой объект. Платформа скрывает команды, к которым у пользователя нет права просмотра, и это нормальное поведение, а не ошибка настройки.
Способ 2: добавить переход через подчинённость и критерии отбора
Если нужной команды нет в списке командного интерфейса, значит, платформа не видит связи между объектами. Её нужно создать на уровне метаданных.
Подчинённый справочник или документ по основанию
Чтобы в панели навигации справочника появился переход к подчинённому справочнику, у подчинённого объекта в свойстве «Владельцы» должен быть указан родительский справочник. Для документов связь задаётся через «Ввод на основании»: у целевого документа в свойстве «Вводится на основании» укажите исходный. После этого команда появится в командном интерфейсе, и её можно включить способом 1.
Критерий отбора
Критерий отбора объединяет разнородные объекты по общему реквизиту — например, все документы по контрагенту. Создайте объект «Критерий отбора», укажите тип критерия и состав (объекты и реквизиты, по которым идёт отбор). В командном интерфейсе справочника «Контрагенты» появится соответствующая команда для панели навигации.
Способ 3: программное добавление команды в форму
Когда нужно открывать по команде произвольную форму, обработку или отчёт, которых нет в стандартных связях, команду добавляют программно в модуле формы. Это делается в обработчике ПриСозданииНаСервере.
Типовой приём состоит из трёх шагов: создать команду формы, создать кнопку и поместить её в группу панели навигации, назначить обработчик. Родительская группа панели навигации формы обычно доступна как Элементы.ГруппаПанельНавигации или через подчинённые элементы командной панели навигации — точное имя зависит от формы, его можно посмотреть в редакторе формы.
// В обработчике ПриСозданииНаСервере
НоваяКоманда = Команды.Добавить("ОткрытьМойОтчет");
НоваяКоманда.Действие = "Подключаемый_ОткрытьМойОтчет";
НоваяКоманда.Заголовок = "Анализ по контрагенту";
НоваяКнопка = Элементы.Добавить("КнопкаОткрытьМойОтчет", Тип("КнопкаФормы"), Элементы.КоманднаяПанельНавигации);
НоваяКнопка.ИмяКоманды = "ОткрытьМойОтчет";
НоваяКнопка.Вид = ВидКнопкиФормы.Гиперссылка;
Обработчик команды объявляется в модуле формы как экспортная процедура Подключаемый_ОткрытьМойОтчет(Команда), внутри которой вызывается ОткрытьФорму() с нужными параметрами — например, с отбором по текущему объекту.
Способ 4: добавление команды через расширение конфигурации
Для типовых конфигураций на поддержке рекомендуемый путь — расширение. В расширении заимствуется нужная форма, и в её обработчике ПриСозданииНаСервере с аннотацией &После добавляется собственная команда тем же кодом, что описан выше.
Плюсы подхода: основная конфигурация не меняется, обновления типового релиза проходят штатно, доработку легко отключить. Ограничение: расширения не позволяют менять некоторые свойства метаданных (например, состав владельцев справочника), поэтому связи через «Владельцы» и «Ввод на основании» в расширении настроить нельзя — там нужен либо программный вариант, либо изменение основной конфигурации.
Сравнение вариантов
Подходит, если связь уже есть в метаданных. Быстро, без кода, без рисков при обновлении.
Подходит для постоянных связей между объектами. Требует изменения конфигурации и влияет на поддержку.
Максимальная гибкость: любая цель команды. Требует доработки формы, лучше через расширение.
Безопасно для типовых решений. Ограничено в изменении свойств метаданных.
Проверка результата и типичные ошибки
После настройки откройте форму списка или элемента объекта в режиме предприятия и убедитесь, что команда появилась в панели навигации и открывает нужные данные с правильным отбором по текущему объекту.
Как проверить результат
Команда видна и активна у пользователя с полными правами
Команды нет — проверьте флаг видимости в командном интерфейсе и права
Открываемый список/отчёт отфильтрован по текущему объекту
Открывается полный список без отбора — неверно задана связь или параметры
У обычного пользователя команда видна и работает
У пользователя без полных прав команда скрыта — нет прав на целевой объект
Отдельная частая ситуация — команда открывает список без отбора. Причина почти всегда в том, что связь между объектами не задана корректно: реквизит отбора в критерии указан с ошибкой, или при программном открытии формы не передан параметр отбора. Проверяйте состав критерия отбора и передаваемые параметры формы.
Что важно запомнить
Сначала проверьте командный интерфейс объекта — большинство команд уже существуют, их нужно только включить. Для новых связей используйте владельцев, ввод на основании или критерии отбора. Произвольные команды добавляйте программно, а в типовых конфигурациях — через расширение, чтобы не потерять доработку при обновлении.
Частые вопросы
Почему команда есть в командном интерфейсе, но не видна в форме?
Чаще всего причина в правах: платформа автоматически скрывает команды, к целевым объектам которых у пользователя нет права просмотра. Проверьте роль пользователя и права на регистр, отчёт или справочник, к которому ведёт команда. Вторая причина — не обновлена конфигурация базы данных после изменения настроек.
Можно ли добавить команду в панель навигации без конфигуратора, в режиме предприятия?
Штатными средствами — нет: состав панели навигации определяется метаданными и модулем формы. В режиме предприятия пользователь может лишь настроить видимость уже существующих стандартных команд формы через меню «Ещё → Изменить форму», если разработчик оставил такую возможность.
Чем панель навигации отличается от панели действий?
Панель навигации содержит команды перехода к связанным данным (спискам, регистрам, отчётам по объекту). Панель действий содержит команды действий над объектом: создание, проведение, печать, заполнение. В командном интерфейсе объекта это разные группы, и команду легко по ошибке включить не в ту.
Как добавить в панель навигации отчёт, который не связан с объектом стандартно?
Стандартная связь не нужна: создайте команду программно в обработчике ПриСозданииНаСервере формы, а в обработчике команды вызовите ОткрытьФорму с именем отчёта и передайте параметры отбора по текущему объекту. Для типовой конфигурации делайте это через расширение.
Пропадут ли мои команды в панели навигации после обновления типовой конфигурации?
Если команды добавлены через командный интерфейс или изменение формы основной конфигурации — при обновлении настройки могут быть затёрты типовым релизом, и их придётся восстанавливать вручную при сопоставлении. Доработки, выполненные через расширение конфигурации, при обновлении сохраняются, но расширение стоит проверить на совместимость с новым релизом.
Можно ли изменить порядок команд в панели навигации?
Да. В окне «Командный интерфейс» объекта команды внутри группы можно перемещать кнопками вверх/вниз — этот порядок сохранится в форме. Для программно добавленных кнопок порядок определяется последовательностью их создания и методом Переместить у элемента формы.