При разработке конфигураций на базе Библиотеки стандартных подсистем (БСП) часто возникает ситуация, когда стандартные механизмы, такие как работа с присоединенными файлами, не требуются для конкретного объекта или должны быть заменены кастомным решением. В таких случаях перед разработчиком встает задача: как убрать лишнюю команду с панели навигации формы, чтобы не путать пользователя? Рассмотрим подробно несколько эффективных способов решения этой задачи, начиная от простых настроек в конфигураторе и заканчивая программным управлением через функциональные опции.
Начнем с самого простого и быстрого способа, который не требует написания программного кода — для этого подойдёт инструмент для настройки видимости форм без программирования. Каждая управляемая форма в 1С имеет свой собственный командный интерфейс. Даже если команда «Присоединенные файлы» является общей, ее отображение можно настроить локально для конкретной формы справочника или документа.
Разберем этот процесс по шагам:
Присоединенные файлы.Проанализируем ситуацию: этот метод идеален, если нам нужно скрыть ссылку только в одной конкретной форме, при этом в других формах того же справочника (например, в форме списка или другой форме элемента) она может остаться доступной. Однако помните, что пользователь при наличии определенных прав может вернуть эту кнопку через меню «Настройка панели навигации» в режиме «1С:Предприятие».
Если наша задача — полностью исключить возможность перехода к присоединенным файлам для определенного типа объекта во всей системе, нам следует поработать с составом общей команды. В БСП за вывод ссылки обычно отвечает общая команда ПрисоединенныеФайлы (или аналогичная в зависимости от версии).
Рассмотрим алгоритм действий:
ПрисоединенныеФайлы.Выясним причину, почему это работает: платформа 1С автоматически формирует панель навигации на основе типов, указанных в командах. Если ваш объект исключен из состава типов команды, ссылка на нее просто не будет сгенерирована для этого объекта. Это «чистый» способ, исключающий появление команды во всех формах объекта сразу.
Иногда требуется более гибкий подход: например, скрывать команду в зависимости от каких-то условий (настроек программы или прав пользователя) — есть расширение для настройки видимости элементов форм. В современных конфигурациях (особенно в УТ 11, ERP 2, КА 2) для этого активно используются параметрические функциональные опции.
Проанализируем пример реализации, если в вашей конфигурации предусмотрен справочник ПараметрыContextныхФункциональныхОпций. Разберем по шагам создание такого механизма:
ПараметрыКонтекстныхФункциональныхОпций добавим новый реквизит типа Булево, назовем его, например, ИспользоватьПрисоединенныеФайлы.ПрисоединенныеФайлы.ПриСозданииНаСервере пропишем код для управления этой опцией.Посмотрим на пример кода, который позволяет динамически управлять видимостью:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Определяем структуру параметров для настройки формы
ПараметрыНастройки = Новый Структура;
ПараметрыНастройки.Вставить("ИспользоватьПрисоединенныеФайлы", Ложь);
// Если используется БСП, вызываем стандартный механизм настройки
// В разных редакциях БСП имена модулей могут отличаться
// Например, для УТ это может быть:
// ОбщегоНазначенияУТ.НастроитьФормуПоПараметрам(ЭтаФорма, ПараметрыНастройки);
// Либо напрямую устанавливаем параметры функциональных опций для формы
УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыНастройки);
КонецПроцедуры
Важный нюанс: метод УстановитьПараметрыФункциональныхОпцийФормы доступен начиная с версии платформы 8.3.16. Он позволяет менять значения функциональных опций «на лету» для конкретного контекста формы, что делает интерфейс очень гибким.
Рассмотрим ситуацию с точки зрения безопасности — для этого подойдёт универсальный инструмент ограничения доступа к формам через роли. Если пользователю не нужно видеть файлы, возможно, у него просто не должно быть прав на работу с ними для этого справочника? Платформа 1С устроена так, что если у пользователя нет прав на Чтение объектов, на которые ссылается команда, то сама команда не будет отображена в интерфейсе.
Для реализации этого способа выполним следующие действия:
ИмяВашегоСправочникаПрисоединенныеФайлы).Этот метод является наиболее правильным с точки зрения архитектуры, если скрытие ссылки продиктовано требованиями безопасности, а не просто эстетическими предпочтениями интерфейса.
Если ваша конфигурация находится на поддержке и вы не хотите менять ее напрямую, все вышеописанные действия (кроме программного кода в модуле, который также можно вынести в расширение) можно сделать через механизм расширений.
Разберем, как это сделать:
Преимущество этого метода в том, что при обновлении основной конфигурации ваши настройки сохранятся, и вам не придется заново снимать галочки или править состав команд.
Выбор конкретного метода зависит от ваших целей:
Проанализировав все варианты, мы видим, что платформа 1С предоставляет богатый инструментарий для управления интерфейсом. Рекомендуется начинать с наиболее простых и «штатных» средств (настройка интерфейса или типов команд), переходя к программному коду только в случае необходимости сложной логики.