Как вынести команду из меню «Еще» (Все действия) на командную панель в 1С?

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

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

Способ 1: Настройка свойств в конфигураторе (для актуальных версий платформы)

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

  1. Откроем нужную форму (справочника, документа или отчета) в конфигураторе.
  2. Перейдем на закладку «Элементы» и найдем командную панель или конкретную кнопку, которую нужно вынести, при необходимости добавив иконки и графические ресурсы.
  3. Если кнопка является частью стандартных команд (например, «Создать», «Провести», «Печать»), нам необходимо сначала найти эту команду в дереве «Команды» -> «Стандартные команды».
  4. В окне свойств найдем поле Положение в командной панели. Проанализируем доступные варианты:
    • Авто: Платформа сама определяет местоположение. Как правило, большинство стандартных команд при этом попадает в «Еще».
    • В командной панели: Кнопка принудительно выносится на видное место.
    • В меню «Еще»: Команда всегда будет скрыта в подменю.
    • В командной панели и меню «Еще»: Кнопка будет продублирована.
  5. Установим значение «В командной панели». Также для этих целей можно использовать редактор форм в режиме предприятия — поможет конструктор произвольных интерфейсов и рабочих столов 1С.

Способ 2: Работа со старыми версиями платформы

Если вы работаете в конфигурации на более ранних релизах 8.3 (до 8.3.10), интерфейс свойств будет отличаться. Вместо универсального положения вы увидите свойство Только во всех действиях. Чтобы вынести кнопку, для этого свойства необходимо установить значение «Нет». Рассмотрим ситуацию, когда команда не отображается в списке элементов формы: в этом случае ее нужно просто перетащить мышью из окна команд (раздел «Стандартные команды») в дерево элементов формы, непосредственно в нужную Командную панель, и уже затем править свойства.

Способ 3: Программное управление положением команд

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Выносим стандартную команду "Скопировать" на панель для администратора
    Если РольДоступна("ПолныеПрава") Тогда
        ЭлементКнопка = Элементы.ФормаСкопировать;
        ЭлементКнопка.ПоложениеВКоманднойПанели = ПоложениеКомандыВКоманднойПанели.ВКоманднойПанели;
    КонецЕсли;
    
КонецПроцедуры

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

Борьба с дублированием кнопок при автозаполнении

Проанализируем важный технический нюанс: свойство Автозаполнение командной панели. Если у командной панели включено автозаполнение, платформа автоматически подтягивает стандартные команды. Если мы вручную добавляем ту же самую команду в элементы формы и настраиваем ее видимость, может возникнуть эффект «двоения» кнопки. Чтобы этого избежать, используем один из двух подходов:

  1. Изменение существующих элементов: Не добавляйте новую кнопку, а найдите ту, что уже создана платформой в составе автозаполняемой панели, и измените её свойства.
  2. Отключение автозаполнения: Если вам нужен полный контроль над порядком и составом кнопок, снимите флаг Автозаполнение у командной панели. После этого вам придется вручную перетащить в панель все необходимые команды из списка стандартных. Это более трудоемкий, но самый надежный способ настройки интерфейса «под себя» — поможет конструктор персонализированных панелей быстрого доступа.

Использование расширений для сохранения поддержки

Если вы работаете с типовой конфигурацией (например, 1С:Бухгалтерия или 1С:ERP) и не хотите снимать ее с поддержки, для выноса кнопок следует использовать Расширения конфигурации. Рассмотрим алгоритм действий:

  1. Создадим новое расширение.
  2. Добавим в расширение форму нужного справочника или документа.
  3. В расширенной форме изменим свойство Положение в командной панели для нужных элементов.

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

Важность и приоритет отображения

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

Массовое изменение настроек для всех пользователей

Часто звучит вопрос: можно ли сделать это сразу для всех справочников? К сожалению, универсальной «галочки» в конфигурации не существует, так как состав команд индивидуален для каждого объекта. Однако для опытных разработчиков существует путь через выгрузку конфигурации в файлы XML. Проанализировав структуру файлов форм, можно с помощью текстовых редакторов выполнить массовую замену параметра CommandPanelLocation со значения Auto на InCommandPanel. После этого файлы загружаются обратно в конфигуратор. Этот метод требует осторожности и обязательного создания резервной копии базы данных.

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

← На главную