§ 7.3. Кнопка: элемент, который предлагает команду

Выделите в структуре элементов карточки товара кнопку «Записать» и посмотрите на её свойства. У неё есть вид, заголовок, картинка, видимость — всё как у обычного элемента. И есть одно свойство, которого нет ни у поля, ни у группы: имя команды. Через него кнопка и получает смысл — сама по себе она ничего не умеет, она только предлагает команду.

1. Кнопка для команды — что поле для реквизита

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

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

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

Поле показывает реквизит, кнопка предлагает команду. Уберёте поле — реквизит останется; уберёте кнопку — команда останется.

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

2. Как кнопка появляется в форме

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

что перетащиличто появилось
реквизит в структуруполе, связанное с реквизитом
команду в структурукнопка, связанная с командой

Кнопку можно добавить и пустой, через добавление элемента, а команду выбрать потом в её свойствах. Но так или иначе у кнопки, которая что-то делает, свойство с именем команды заполнено.

3. Вид кнопки зависит от места

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

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

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

А ещё у кнопки есть свойство отображения — только текст, только картинка или то и другое. Это решение о показе, и на команду оно не влияет.

4. Что кнопка решает сама

Кнопка отвечает за то, как и где команда предложена. Всё, что относится к самому действию, — у команды.

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

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

положениегде кнопка
в командной панелина виду, в самой панели
в дополнительном подменютолько в меню «Ещё»
в панели и в подменюи там и там
авторешает платформа

Второе значение стоит запомнить: кнопка в меню «Ещё» есть — просто её не видно, пока меню не раскрыли.

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

5. Когда связь обрывается

Связь между кнопкой и командой держится на одном свойстве, и порваться она может с обеих сторон.

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

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

6. Что читать у кнопки в чужой форме

К каждой кнопке — четыре вопроса, и три из них решаются по её свойствам.

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

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

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

Добавим кнопку сами — и убедимся, что одна команда может иметь двух носителей.

  1. Откройте форму элемента «Товаров». Найдите в списке команд стандартную команду «Записать» и перетащите её в структуру — в группу «Учёт», после полей.
Здесь будет снимок экранаструктура элементов формы «Товаров» с новой кнопкой «Записать» в группе «Учёт»
  1. Посмотрите свойства новой кнопки: её вид и имя команды. Сравните с кнопкой «Записать» в командной панели.

  2. У кнопки «Записать» в командной панели поставьте положение — только в меню «Ещё».

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

  4. Верните артикул, удалите свою кнопку и верните кнопке в панели прежнее положение.

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

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


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

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

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

Упражнения

По образцу. Добавьте в форму поступления обычную кнопку для команды «Провести» рядом с полем «Склад». Проверьте в Предприятии и уберите.

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

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

Обратный ход. В форме две кнопки «Записать»: одна в панели, другая внизу формы. Сколько команд за ними и как это проверить?

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

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