§ 7.4. Командная панель: где собираются кнопки

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

1. Панель — это группа

Командная панель — не новый вид элемента, а группа, только другого вида, чем «Учёт» или страницы. Среди видов групп документация называет четыре, созданные для кнопок, — им и соответствуют места на экране.

вид группычто эточто может содержать
командная панельряд кнопоккнопки, подменю, группы кнопок
подменювыпадающий список кнопоккнопки, подменю, группы кнопок
группа кнопокнесколько кнопок рядомкнопки, подменю, группы кнопок
контекстное менюменю по правой кнопкекнопки, подменю, группы кнопок

Кнопку может держать и обычная группа — так мы и ставили «Записать» в «Учёт». Но четыре вида из таблицы кнопочные: ничего, кроме кнопок и таких же групп, в них не кладут.

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

Командная панель — полка для кнопок с выдвижным ящиком «Ещё». Строго — группа формы вида «командная панель».

2. Панель формы: автоматическая

Главная панель формы — та, что сверху. Документация называет её автоматической командной панелью формы: платформа сама кладёт в неё кнопки стандартных команд, и мы видели это в каждой автоформе.

что заданочто получилось
ничегопанель со стандартными кнопками наверху
положение панели — внизута же панель под формой
положение панели — нетпанели нет вовсе

Не спутайте два похожих свойства: у кнопки — «положение в командной панели» (в панели, в «Ещё», там и там или авто), у формы — «положение командной панели», и оно о самой панели.

Положений у панели формы четыре: авто, верх, низ и «нет». Задаются они в свойстве самой формы — положении командной панели, — а не у панели: панель автоматическая, её заводит форма, форма и решает, где ей стоять.

3. Панель таблицы: у каждой своя

Каждая таблица на форме получает свою автоматическую панель — с теми кнопками, что мы видели над товарами: добавить, удалить, передвинуть. Положений у неё те же четыре, только считаются они относительно таблицы.

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

У таблицы есть и второе место для кнопок — контекстное меню. Это тоже группа, и предлагает она действия со строкой. Совпадает ли её состав с панелью, зависит от формы — их стоит сравнить глазами. Панель видна, если её не выключили, меню — по правой кнопке.

4. Меню «Ещё» и порядок внутри панели

У командной панели есть меню «Ещё» — дополнительное подменю. Туда попадают кнопки, которым так задано положение, а при положении «авто» — те, что платформа сочтёт нужным убрать с виду. Значения положения мы разбирали в прошлом разговоре: только в панели, только в «Ещё», там и там или авто.

Внутри панели разработчик наводит порядок теми же группами:

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

Для чтения это значит одно: кнопку, которую не видно на панели, ищут в трёх местах — в меню «Ещё», в подменю этой панели и в контекстном меню.

5. Своя панель в любом месте формы

Автоматические панели есть у формы и у каждой таблицы. Но панель можно поставить и самому: документация разрешает обычной группе содержать группу вида «командная панель». Значит, ряд кнопок может стоять везде, куда можно поставить обычную группу, — например, под полями, рядом с итогом. Положения «авто, верх, низ, нет» у такой панели нет: она стоит там, где её поставили в структуре.

Форма
├── КоманднаяПанель   ← автоматическая
├── Шапка
├── Товары            ← таблица,
│                        своя панель
└── Итоги             ← обычная группа
    ├── СуммаДокумента
    └── ПанельИтогов  ← своя панель
        └── кнопка

В чужой форме такая панель — знак, что автор хотел держать действие рядом с данными, к которым оно относится. Кнопка «Пересчитать» у итога понятнее, чем та же кнопка наверху среди «Записать» и «Провести».

6. Почему одна кнопка бывает в разных местах

Теперь ответ складывается из двух уже известных правил.

что видимкак это устроено
одно действие наверху и над таблицейодна команда, две кнопки в разных панелях
кнопка и на панели, и в «Ещё»одна кнопка с положением «там и там»
действие на панели и в контекстном менюодна команда, кнопки в разных группах

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

7. В Конфигураторе и в Предприятии

Проверим это на форме: передвинем панель таблицы и посмотрим, как меняется экран.

  1. Откройте форму поступления и найдите в структуре элементов обе автоматические панели: формы и таблицы товаров.
Здесь будет снимок экранаструктура элементов формы поступления с раскрытой командной панелью формы и панелью таблицы товаров
  1. У таблицы товаров поставьте положение командной панели — внизу.

  2. Обновите конфигурацию и откройте поступление № 12: кнопки добавления и удаления строк теперь под таблицей.

  3. Щёлкните по строке правой кнопкой и сравните контекстное меню с кнопками панели.

  4. Верните положение панели таблицы как было.

Главное в одном абзаце

Командная панель — не новый элемент, а группа вида «командная панель», и всё известное о группах работает и здесь. Кнопки живут в четырёх видах групп: командной панели, подменю, группе кнопок и контекстном меню. Автоматические панели бывают двух родов: панель формы, которую платформа наполняет стандартными командами, и своя панель у каждой таблицы, чьи кнопки действуют на её строки; положение у обеих — авто, верх, низ или «нет», и задаётся оно в свойствах формы или таблицы. Кнопки, которым нет места на виду, уходят в меню «Ещё»; порядок внутри панели наводят подменю и группами кнопок. Свою панель можно поставить в любую обычную группу — рядом с данными, к которым относится действие. Одна команда встречается в разных местах потому, что кнопок на неё может быть сколько угодно, а панелей несколько; в чужой форме их проходят разом.


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

Контрольные вопросы

  1. Почему командная панель — это группа, а не отдельный вид элемента?
  2. Какие четыре вида групп содержат кнопки?
  3. Чем панель формы отличается от панели таблицы?
  4. Какие положения бывают у автоматической панели и где их задают?
  5. Где искать кнопку, которой не видно на панели?
  6. Зачем ставить свою командную панель в обычную группу?
  7. Почему одно действие может встретиться в форме в трёх местах?

Упражнения

По образцу. Поставьте командной панели формы поступления положение — внизу. Посмотрите в Предприятии и верните.

Своё: соберите редкое. В панели карточки товара восемь кнопок, из них три нужны раз в месяц. Как собрать их в одно место, не убирая с панели совсем?

Ловушка: «над таблицей пусто — строки не добавить». У таблицы в чужой форме нет панели сверху, и коллега решает, что строки добавлять нельзя. Что стоит проверить?

Обратный ход. В форме кнопка «Пересчитать» стоит под таблицей, рядом с полем итога, а в командной панели формы её нет. Как это, скорее всего, устроено в структуре?

На чтение. В чужой форме у таблицы положение командной панели — «нет», а кнопки добавления строк всё равно есть: прямо над таблицей в обычной группе стоит своя командная панель. Что сделал автор и зачем?

Ответы — в конце части.