Как настроить порядок и отображение кнопок в автозаполняемой командной панели 1С 8.3

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

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

Настройка порядка команд через окно Командный интерфейс

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

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

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

  1. Перемещать команды: Используйте стрелки "Вверх" и "Вниз", чтобы изменить положение кнопки относительно других. Это напрямую влияет на то, в каком порядке они появятся в командной панели слева направо.
  2. Управлять видимостью: Снимая или устанавливая флажки в колонке "Видимость", мы можем скрывать ненужные общие команды, которые платформа добавила автоматически.

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

Вынос кнопок из меню Еще на основную панель

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

Выясним причину изменений: начиная с версии 8.3.15, свойство ТолькоВоВсехДействиях признано устаревшим. Вместо него внедрено более гибкое свойство Положение в командной панели (PositionInCommandBar). Оно может принимать три значения:

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

Решение проблемы исчезновения кнопок при сужении формы

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

Когда мы жестко задаем положение В командной панели, мы запрещаем платформе автоматически переносить кнопку в "дополнительные действия". Если места физически не хватает, платформа просто скрывает элемент. Чтобы управлять приоритетом скрытия, используем свойство Важность (Importance):

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

Если вы хотите, чтобы кнопка Изменить была всегда видна, установите ей Положение в командной панели = В командной панели и Важность = Высокая.

Замена текста на иконки (Отображение команд)

Посмотрим на пример команд Создать и Создать группу. По умолчанию они выводятся текстом, что занимает много места. Чтобы оставить только иконки, нам нужно изменить свойство Отображение (Representation).

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

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

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

Программное управление элементами (для справки)

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


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

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

Резюме

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

← На главную