§ 5.4. Декорации: то, что в форме ради пользователя, а не ради данных

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

1. Два вида, и оба без данных

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

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

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

Декорация говорит с пользователем от имени автора формы, а не от имени записи: пути к данным у неё нет, и сказать что-то о записи ей нечем.

2. Надпись

Текст надписи записан в свойстве «Заголовок» самой декорации. Свойство называется так же, как подпись у поля, но работает иначе: у поля заголовок подписывает поле, а у надписи он и есть весь показываемый текст, ни к чему не привязанный. Меняется он только тогда, когда его поменяли в форме.

свойствочто задаёт
Заголовоксам текст
Рамкаобвести ли надпись
Гиперссылкапоказывать ли текст как ссылку

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

3. Картинка

Картинка-декорация показывает изображение, выбранное из картинок конфигурации: значок, логотип, пиктограмму предупреждения.

картинка-декорацияполе картинки
что этодекорацияполе с видом «поле картинки»
путь к даннымне бываетесть
откуда изображениезадано в формеприходит по пути

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

4. Разделителя нет — есть группа

Линии, отделяющей одно от другого, среди видов декорации нет. В управляемой форме разделяют не линией, а правилом — группой.

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

Это ещё одно проявление принципа, с которого начиналась глава: не рисуем, а задаём правило. Разделение — не картинка на экране, а смысловое решение «это одно дело, а это другое», и записано оно в структуре.

Увидели в чужой форме линию — ищите не декорацию, а группу.

5. Надпись-ссылка

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

что видночто записано в форме
подчёркнутый текст, как ссылкасвойство «Гиперссылка» у надписи
что-то открывается по нажатиюобработчик события нажатия — в модуле

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

6. Когда декорация к месту

Декорации легко добавлять, поэтому их легко и переборщить.

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

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

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

Добавим одно пояснение к группе «Учёт» — оно останется в форме.

  1. Откройте форму элемента «Товаров» и добавьте декорацию вида «надпись» внутрь группы «Учёт», после полей.

  2. Задайте ей заголовок «Артикул и единицу заполняет отдел закупок».

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

  2. Обновите конфигурацию базы данных и откройте карточку товара. Откройте другой товар: надпись та же — она про форму, а не про запись.

  3. Поставьте у группы «Учёт» сильное выделение и посмотрите, как появилась рамка. Верните выделение, как было.

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

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

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


Все детали композиции названы: группы, страницы, декорации. Но дерево элементов и экран до сих пор живут у нас порознь — в одном месте строки, в другом прямоугольники. Можно ли по одному сразу увидеть другое?

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

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

Упражнения

По образцу. Добавьте в форму элемента «Контрагентов» надпись «ИНН — 10 или 12 цифр» рядом с полем ИНН и проверьте в Предприятии.

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

Ловушка: «добавь линию между блоками». Заказчик просит «провести черту» между шапкой документа и его товарами. Разработчик ищет в палитре декорацию «разделитель» и не находит. Что вы ему подскажете?

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

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

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