Как добавить кнопку Еще в командную панель динамического списка и управлять стандартными командами

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

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

В этой статье мы подробно разберем, как правильно управлять составом команд, чтобы не нарушить функциональность интерфейса, и выясним, как вернуть кнопку Еще, если вы все же решили настраивать панель вручную.

Метод 1. Использование свойства Состав команд (Рекомендуемый)

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

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

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

Проанализируем результат: при таком подходе командная панель остается в режиме Автозаполнение, но ненужные кнопки исчезают. Кнопка Еще при этом остается на месте, так как системные команды (настройка, поиск) по-прежнему активны.

Метод 2. Свойство Изменять состав строк

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

Если установить ИзменятьСоставСтрок в значение Ложь, платформа автоматически скроет кнопки Создать, Скопировать и Удалить. Это удобно для списков, предназначенных только для просмотра или выбора, однако помните, что это также заблокирует возможность программного добавления строк пользователем через стандартные команды.

Метод 3. Возврат кнопки Еще при ручном заполнении панели

Если ситуация требует полного контроля и вы уже сняли флаг Автозаполнение у командной панели, кнопка Еще пропадет, если в панели нет команд, помеченных для отображения в дополнительном подменю. Давайте разберем, как её вернуть.

Использование свойства Отображение в командной панели

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

Метод 4. Настройка Источника команд

Частая ошибка при создании ручной командной панели — отсутствие связи с данными. Если вы создали группу типа Командная панель и наполнили её кнопками, кнопка Еще может не содержать привычных команд типа "Настроить список".

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

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

Метод 5. Программное управление видимостью

Иногда состав кнопок должен меняться в зависимости от прав пользователя или условий задачи. Рассмотрим пример кода, который можно разместить в процедуре ПриСозданииНаСервере, чтобы скрыть стандартные кнопки программно, не отключая автозаполнение всей панели.


// Пример управления видимостью стандартных команд
Элементы.СписокКоманднаяПанельСоздать.Видимость = Ложь;
Элементы.СписокКоманднаяПанельСкопировать.Видимость = Ложь;

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

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

Важные нюансы интерфейса Такси

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

Подведем итог:

  1. Лучший способ скрыть Создать — использовать Состав команд в свойствах таблицы.
  2. Для ручных панелей всегда указывайте Источник команд.
  3. Кнопка Еще появляется автоматически, если есть элементы с признаком В дополнительном подменю.

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

← На главную