Как скрыть элементы панели навигации Основное и Файлы в управляемой форме 1С

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

При работе с типовыми конфигурациями, такими как 1С:Управление торговлей 11, ERP или Комплексная автоматизация, разработчики часто сталкиваются с задачей упрощения интерфейса для конечного пользователя. Одной из специфических проблем является скрытие элементов в верхней части формы, таких как Основное, Файлы, История изменений или ссылки на связанные регистры. Сложность заключается в том, что эти элементы отсутствуют в привычном дереве элементов формы в конфигураторе.

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

Понимание природы элементов панели навигации

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

Поскольку это не стандартные элементы управления, попытки найти их в списке элементов формы не увенчаются успехом. Рассмотрим по шагам, как получить к ним доступ.

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

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

Выполним следующие действия:

  1. Откроем нужную форму документа (например, Заказ клиента) в конфигураторе.
  2. В нижней части окна редактора формы найдем закладки. По умолчанию открыта закладка Элементы. Нам необходимо переключиться на закладку Командный интерфейс.
  3. В открывшемся окне мы увидим иерархический список команд. Нас интересует раздел Перейти. Именно здесь располагаются ссылки на присоединенные файлы, историю изменений и другие связанные данные.
  4. Найдем команду (например, Файлы) и снимем галочку в колонке Видимость.
  5. Если нужно скрыть команду только для определенных пользователей, можно воспользоваться колонкой Видимость по ролям, где детально настраиваются права доступа к отображению этого элемента.

Важное замечание по элементу «Основное»: Этот элемент появляется автоматически, когда в панели навигации есть хотя бы одна дополнительная команда. Если мы скроем все остальные команды (файлы, задачи, связанные документы), то платформа поймет, что переключаться не на что, и панель навигации вместе с кнопкой Основное исчезнет автоматически.

Способ 2. Использование расширений конфигурации

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

Проанализируем алгоритм работы через расширение:

  1. Добавим форму документа в расширение.
  2. Откроем форму в расширении и так же перейдем на закладку Командный интерфейс.
  3. Если платформа позволяет, внесем изменения в видимость команд. Эти настройки будут иметь приоритет над основной конфигурацией.

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

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

В типовых решениях 1С кнопка Файлы чаще всего жестко привязана к системной функциональной опции. Например, в УТ 11 это может быть опция ИспользоватьПрисоединенныеФайлы.

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


&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Пример отключения возможности работы с файлами для конкретной формы
    // Это может повлиять на видимость связанных команд
    МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Объект.Ссылка));
    // Логика управления функциональной опцией в контексте формы
КонецПроцедуры

Однако стоит помнить, что прямое программное отключение функциональной опции «на лету» для конкретной формы — задача нетривиальная, и чаще всего проще управлять видимостью через роли.

Способ 4. Ограничение прав доступа (Роли)

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

Разберем этот метод: Если нам нужно скрыть кнопку Файлы для определенных пользователей, мы можем создать в расширении роль, в которой будет стоять запрет на чтение справочника ЗаказКлиентаПрисоединенныеФайлы. Как только право на просмотр этого объекта пропадает, платформа автоматически удаляет соответствующую команду из панели навигации формы Заказ клиента.

Способ 5. Административная настройка (Изменить форму)

Иногда программная разработка избыточна. Рассмотрим метод интерактивной настройки, который можно растиражировать на всех пользователей:

  1. Зайдем в режим 1С:Предприятие под пользователем с полными правами.
  2. Откроем форму нужного документа.
  3. Нажмем Еще — Изменить форму....
  4. В дереве настроек найдем группу Командный интерфейс или разделы навигации.
  5. Снимем флажки с ненужных команд (Файлы, Перейти и т.д.).
  6. Сохраним настройки.
  7. Чтобы применить эти настройки для всех остальных сотрудников, перейдем в раздел Администрирование — Настройки пользователей и прав — Копирование настроек. Выберем нашего пользователя в качестве источника и укажем целевых пользователей или группы, которым нужно передать данную настройку формы.

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

Способ 6. Программное управление через коллекцию КомандныйИнтерфейс

В некоторых случаях нам требуется программная логика (например, скрывать кнопку Файлы только если документ проведен или в зависимости от значения какого-либо реквизита). Для этого в коде модуля формы можно обращаться к свойству КомандныйИнтерфейс.

Проанализируем пример кода:


&НаСервере
Процедура СкрытьЭлементыПанелиНавигации()
    // Обращаемся к командам панели навигации
    // Обратите внимание: обращение идет не через элементы формы, 
    // а через структуру командного интерфейса
    
    Для Каждого КомандаИзИнтерфейса Из ЭтаФорма.КомандныйИнтерфейс.Навигация.Свойства Цикл
        Если Найти(КомандаИзИнтерфейса.Имя, "ПрисоединенныеФайлы") > 0 Тогда
            КомандаИзИнтерфейса.Видимость = Ложь;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Важно: Прямой доступ к конкретной команде по имени в коллекции КомандныйИнтерфейс может варьироваться в зависимости от версии платформы. Рекомендуется использовать отладчик в процедуре ПриСозданииНаСервере, чтобы изучить состав коллекции ЭтаФорма.КомандныйИнтерфейс и найти точное программное имя нужной команды.

Подведение итогов

Мы рассмотрели различные подходы к решению задачи. Выбор метода зависит от ваших технических ограничений:

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

← На главную