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