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

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

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

1. Метаданные: фундамент командного интерфейса

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

Рассмотрим по шагам настройки в конфигураторе:

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

2. Настройка командного интерфейса в форме

Даже если в метаданных все настроено верно, отображение может быть отключено на уровне конкретной формы. Разберем, как это проверить.

Откроем форму справочника в конфигураторе. В левом верхнем окне (дерево элементов и реквизитов) перейдем на закладку Командный интерфейс. Здесь мы увидим структуру панели навигации, разделенную на группы:

Найдем в этом списке наш регистр. Обратим внимание на колонку Видимость. Здесь можно управлять отображением команды для различных ролей. Если флаг видимости снят для всех или для конкретной роли, под которой работает пользователь, ссылка в интерфейсе не появится.

3. Влияние функциональных опций

Проанализируем ситуацию, характерную для современных конфигураций, таких как УТ 11, ERP или КА. Большинство механизмов в них (например, синхронизация данных) привязаны к функциональным опциям.

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

4. Права доступа и роли

Не забудем проверить права доступа. Для появления ссылки в панели навигации у пользователя должно быть право Просмотр (View) на сам объект (регистр) и на его стандартную команду. Если у пользователя есть право на чтение данных, но нет права на просмотр команды, ссылка в панели навигации отображаться не будет.

5. Пользовательские настройки интерфейса

Иногда причина кроется не в коде или метаданных, а в действиях самого пользователя. Платформа 1С позволяет настраивать панель навигации непосредственно в режиме «Предприятие».

Выполним следующие действия в пользовательском режиме:

  1. Откроем форму справочника Структура предприятия.
  2. Нажмем кнопку Вид — Настройка панели навигации формы.
  3. В открывшемся окне проверим, не находится ли нужная нам команда в левой части окна (среди доступных, но не выбранных команд). Если она там есть, ее нужно просто переместить в правую часть.

Если настройки сбились, полезно нажать кнопку Установить стандартные настройки. Это сбросит все пользовательские изменения и вернет панель к виду, задуманному разработчиком.

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

Хотя прямого доступа к коллекции элементов панели навигации через ЭтаФорма.Элементы нет, разработчики могут управлять видимостью команд программно. Для этого используется метод формы УстановитьПараметрыКомандногоИнтерфейса().

Рассмотрим пример кода, который может скрывать или показывать элементы интерфейса динамически:


// В процедуре ПриСозданииНаСервере или ПриЧтенииНаСервере
ПараметрыКоманды = Новый Структура;
ПараметрыКоманды.Вставить("Видимость", Ложь); // Или Истина, в зависимости от условий
ЭтаФорма.УстановитьПараметрыКомандногоИнтерфейса(ПараметрыКоманды);

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

Заключение

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

← На главную