При доработке типовых конфигураций, таких как 1С:Управление нашей фирмой, часто возникает задача связать карточку контрагента с дополнительными сущностями: новыми справочниками, регистрами сведений или специализированными отчетами. В управляемом интерфейсе 1С область в верхней части формы (или на левой панели), содержащая переходы к связанным данным, называется панелью навигации управляемой формы.
Разберем детально, как устроена эта панель, какими способами можно добавить в нее собственный раздел и какие тонкости платформы 1С:Предприятие 8.3 необходимо учитывать при разработке.
Если требуется открывать произвольную форму списка, обработку или отчет с передачей контекста текущего контрагента, наиболее универсальным решением выступает создание общей команды. Проанализируем процесс ее настройки по шагам.
Общие → Команды.ОткрытьСвязанныеДанныеКонтрагента, а также укажем синоним, который будет отображаться в интерфейсе.СправочникСсылка.Контрагенты. Именно благодаря указанию этого типа платформа поймет, что команду следует встраивать в контекст форм данного справочника.Панель навигации формы.Обычное, Панель навигации формы.Важное или Панель навигации формы.См. также.Не изменяет, чтобы команда оставалась активной даже тогда, когда форма открыта только для просмотра.Посмотрим на пример кода в модуле команды, где мы получаем ссылку на текущего контрагента через параметр ПараметрКоманды и открываем форму списка связанного справочника или регистра:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Новый Структура("Контрагент", ПараметрКоманды));
ОткрытьФорму(
"РегистрСведений.ДополнительныеКонтактыКонтрагентов.ФормаСписка",
ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно,
ПараметрыВыполненияКоманды.НавигационнаяСсылка
);
КонецПроцедуры
Обратим внимание на параметры вызова ОткрытьФорму: передача ПараметрыВыполненияКоманды.Источник и ПараметрыВыполненияКоманды.Окно гарантирует корректное открытие формы в рабочей области программы без нарушения пользовательского интерфейса.
Платформа 1С умеет формировать команды панели навигации автоматически без написания программного кода, если между объектами установлена явная логическая связь. Рассмотрим, в каких случаях это происходит:
Владельцы указываем справочник Контрагенты, платформа автоматически добавит пункт перехода к подчиненным элементам в панель навигации родителя.СправочникСсылка.Контрагенты и для этого измерения установлен флаг Ведущее, ссылка на записи регистра автоматически появится в панели навигации формы контрагента.Чтобы скорректировать видимость или расположение таких команд, откроем форму элемента справочника Контрагенты, перейдем на вкладку Командный интерфейс и настроим флаги видимости для конкретных ролей в соответствующих подсистемах панели навигации.
В типовой конфигурации 1С:УНФ рекомендуется избегать снятия объектов с поддержки. Разберем, как аккуратно решить задачу с помощью механизма расширений:
Адаптация или Дополнение.Контрагенты (достаточно добавить только объект без включения всех его реквизитов и форм).СправочникСсылка.Контрагенты).При таком подходе типовая конфигурация остается на полной поддержке поставщика, а обновления базы данных происходят штатно.
Выясним причины, по которым добавленный пункт может не отображаться в интерфейсе пользователя:
СправочникСсылка.Контрагенты, не работают для нового объекта. До тех пор, пока элемент не записан и ссылка физически не создана в базе данных, команда будет скрыта или недоступна.Вид → Настройка панели навигации формы, платформа сохраняет его персональные настройки в системных таблицах. Новая команда в этом случае автоматически не отобразится. Для ее появления пользователю необходимо сбросить форму к исходному состоянию через команду Еще → Установить стандартные настройки.Элементы.Добавить() в процедуре ПриСозданииНаСервере. Состав панели навигации определяется исключительно на уровне метаданных и командного интерфейса формы.Таким образом, для создания нового раздела в карточке контрагента 1С:УНФ оптимально использовать общую команду с типом параметра СправочникСсылка.Контрагенты, размещенную в расширении конфигурации, либо настроить подчиненность метаданных через ведущие измерения регистров и свойства подчинения справочников.