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

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

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

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

Начнем с самого простого и быстрого способа, который не требует написания программного кода — для этого подойдёт инструмент для настройки видимости форм без программирования. Каждая управляемая форма в 1С имеет свой собственный командный интерфейс. Даже если команда «Присоединенные файлы» является общей, ее отображение можно настроить локально для конкретной формы справочника или документа.

Разберем этот процесс по шагам:

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

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

Способ 2. Изменение состава общей команды

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

Рассмотрим алгоритм действий:

  1. В дереве метаданных найдем раздел Общие -> Общие команды.
  2. Выберем команду ПрисоединенныеФайлы.
  3. В окне свойств найдем параметр Тип параметра команды.
  4. Нажмем на кнопку выбора (три точки) и в открывшемся списке типов найдем наш справочник.
  5. Снимем флажок напротив этого справочника.

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

Способ 3. Использование функциональных опций (программный метод)

Иногда требуется более гибкий подход: например, скрывать команду в зависимости от каких-то условий (настроек программы или прав пользователя) — есть расширение для настройки видимости элементов форм. В современных конфигурациях (особенно в УТ 11, ERP 2, КА 2) для этого активно используются параметрические функциональные опции.

Проанализируем пример реализации, если в вашей конфигурации предусмотрен справочник ПараметрыContextныхФункциональныхОпций. Разберем по шагам создание такого механизма:

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

Посмотрим на пример кода, который позволяет динамически управлять видимостью:


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

КонецПроцедуры

Важный нюанс: метод УстановитьПараметрыФункциональныхОпцийФормы доступен начиная с версии платформы 8.3.16. Он позволяет менять значения функциональных опций «на лету» для конкретного контекста формы, что делает интерфейс очень гибким.

Способ 4. Ограничение через права доступа

Рассмотрим ситуацию с точки зрения безопасности — для этого подойдёт универсальный инструмент ограничения доступа к формам через роли. Если пользователю не нужно видеть файлы, возможно, у него просто не должно быть прав на работу с ними для этого справочника? Платформа 1С устроена так, что если у пользователя нет прав на Чтение объектов, на которые ссылается команда, то сама команда не будет отображена в интерфейсе.

Для реализации этого способа выполним следующие действия:

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

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

Способ 5. Редактирование через расширение конфигурации

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

Разберем, как это сделать:

  1. Создадим новое расширение или откроем существующее.
  2. Добавим в расширение нужный справочник и его форму.
  3. В расширении для формы выполним настройку командного интерфейса (как в Способе 1).
  4. Либо добавим в расширение общую команду и изменим ее тип параметра (как в Способе 2).

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

Резюме и рекомендации

Выбор конкретного метода зависит от ваших целей:

Проанализировав все варианты, мы видим, что платформа 1С предоставляет богатый инструментарий для управления интерфейсом. Рекомендуется начинать с наиболее простых и «штатных» средств (настройка интерфейса или типов команд), переходя к программному коду только в случае необходимости сложной логики.

← На главную