Как удалить или скрыть ссылки на подчиненные справочники и регистры в управляемой форме 1С?

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

При разработке управляемых форм в платформе «1С:Предприятие 8» разработчики часто сталкиваются с ситуацией, когда платформа автоматически добавляет в панель навигации формы ссылки типа «Перейти» на подчиненные справочники, регистры сведений или регистры накопления. Рассмотрим причины появления этих ссылок, разберем способы их отключения в конфигураторе и выясним, как реализовать динамическое управление их видимостью из кода.

Причина автоматического появления ссылок

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

Способ 1. Настройка командного интерфейса формы в конфигураторе

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

  1. Откроем нужную управляемую форму в редакторе конфигуратора.
  2. Перейдем на вкладку Командный интерфейс (находится в нижней панели редактора формы).
  3. В появившемся дереве найдем группу Перейти.
  4. Снимем флажки в колонке Видимость напротив ненужных команд или скроем всю группу целиком.
  5. При необходимости настроим видимость команд в разрезе ролей пользователей в колонках прав.

Способ 2. Отключение стандартных команд в метаданных

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

  1. Найдем подчиненный справочник или регистр в дереве метаданных конфигурации.
  2. Откроем палитру свойств выбранного объекта.
  3. Установим свойство Использовать стандартные команды в значение Ложь.

После сохранения изменений платформа перестанет автоматически генерировать стандартную команду перехода для этого объекта во всех формах.

Способ 3. Управление через функциональные опции

В типовых конфигурациях состав элементов панели навигации часто привязывают к функциональным опциям. Это позволяет управлять доступностью ссылок в зависимости от настроек системы:

  1. Включим подчиненный объект или команду в состав соответствующей ФункциональнойОпции.
  2. При снятии флага функциональной опции в настройках программы платформа автоматически скроет связанные ссылки из панели навигации форм.

Динамическое управление видимостью ссылок из кода

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

Важно учитывать ограничение платформы: команды из автоматической панели навигации формы (группа «Перейти») не входят в коллекцию ЭтаФорма.Элементы. Напрямую обратиться к ним через код вида Элементы.ИмяКоманды.Видимость = Ложь нельзя.

Для динамического управления применяют следующий проверенный алгоритм:

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

Рассмотрим пример кода в модуле управляемой формы:


&НаСервере
Процедура УправлениеВидимостьюНаСервере()
    
    // Управляем видимостью пользовательской гиперссылки в зависимости от реквизита
    Элементы.ГиперссылкаПодчиненные.Видимость = (Объект.ВидКонтрагента = Перечисления.ВидыКонтрагентов.Поставщик);
    
КонецПроцедуры

&НаКлиенте
Процедура ВидКонтрагентаПриИзменении(Элемент)
    УправлениеВидимостьюНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    УправлениеВидимостьюНаСервере();
КонецПроцедуры

В обработчике нажатия на гиперссылку прописываем открытие формы подчиненного объекта с установкой отбора по текущему элементу:


&НаКлиенте
Процедура КомандаОткрытьПодчиненныйСправочник(Команда)
    
    Отбор = Новый Структура("Владелец", Объект.Ссылка);
    ПараметрыФормы = Новый Структура("Отбор", Отбор);
    
    ОткрытьФорму("Справочник.ПодчиненныйСправочник.ФормаСписка", ПараметрыФормы);
    
КонецПроцедуры

Настройка панели навигации пользователем в режиме «1С:Предприятие»

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

  1. В правой верхней части формы нажимаем меню Еще.
  2. Выбираем пункт Изменить панель навигации.
  3. В открывшемся окне переносим ненужные ссылки из правого списка в левый и нажимаем ОК.
← На главную