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