§ 5.2. Группы: рамка, внутри которой свой порядок
Каждое поле нашей карточки товара стоит под предыдущим — наименование, артикул, единица, — и это не привычка платформы, а правило: так их кладёт сама форма, по тому же правилу, что и вертикальная группа. Любую пару полей можно поставить рядом, собрав в свою группу. Группа решает сразу две вещи: что стоит вместе и как оно внутри выстраивается — столбиком или в строку. Первое — про смысл, второе — про экран, и оба решения записаны в одном элементе.
1. Группа — элемент без данных
Группа стоит в структуре наравне с полями, но данных у неё нет: показывать ей нечего, а потому и пути к данным не положено — об этом шла речь в разговоре об элементах. Её работа — держать в себе другие элементы. Слово «рамка» тут условное: рисовать рамку группа не обязана, и почему — разберём дальше.
Форма
├── Наименование ← поле
└── Учёт ← группа
├── Артикул ← поле
└── ЕдиницаИзмерения ← поле
Всё, что вложено в группу, платформа размещает внутри её места на экране. Всё, что не вложено, — снаружи, по правилам той группы, в которой лежит; для верхних элементов такой группой оказывается сама форма.
Группа не показывает значений — только рамку, заголовок, порядок. Она отвечает на вопрос, кто с кем стоит рядом.
2. Главное свойство: как выстраивать вложенное
У обычной группы и у страницы есть свойство «Группировка» — им и решается, лягут поля столбиком или встанут в строку.
| значение | что получится |
|---|---|
| вертикальная | элементы друг под другом |
| горизонтальная | элементы в строку |
| горизонтальная всегда | в строку, даже если тесно |
| горизонтальная, если возможно | в строку, пока хватает ширины |
Последнее значение — правило, которое само смотрит на ширину окна: на широком экране поля встанут рядом, на узком опустятся друг под друга, и делать для этого ничего не нужно. «Возможно» здесь считается по ширине, которая нужна вложенным элементам: если она не влезает, платформа переносит их вниз.
3. Группа в группе — так собирают строки
Одной группы редко хватает: чаще всего форма — это вертикальная стопка, в которой некоторые ряды разложены в строку. Бывает и иначе — наверху может стоять группа страниц, — но стопка встречается чаще прочего.
Форма ← вертикальная
├── Наименование
├── Учёт ← горизонтальная
│ ├── Артикул
│ └── ЕдиницаИзмерения
└── ПоказыватьПодробности
Читается такое дерево сверху вниз, с поправкой на направление каждой группы. По нему можно нарисовать экран, не открывая Предприятие, — этим мы займёмся отдельно, когда дойдём до скетча.
4. Рамка и заголовок — отдельные решения
Группа может выглядеть по-разному, вплоть до полной невидимости, и это настраивают двумя свойствами.
| что задают | варианты |
|---|---|
| отображение | без выделения, слабое, обычное, сильное |
| заголовок | показывать или нет |
Отсюда важное для чтения чужой формы: группа в дереве есть, а рамки на экране нет — и это не ошибка. Возможностей две: у группы отключено выделение — или у неё снято свойство «Объединённая». Про второе документация говорит прямо: тогда элементы такой группы располагаются в родительской, а из свойств самой группы действуют только цвет фона и группировка.
| что видно в дереве | что на экране |
|---|---|
| группа с сильным выделением | рамка с заголовком |
| группа без выделения | ничего, только порядок |
| группа без «Объединённой» | элементы живут в родительской |
Внешний вид группы на этом настроен. Остаётся вопрос важнее — ради чего вообще собирают элементы в группы.
5. Зачем собирать в группы
Поводов три, и все встречаются в живых формах.
| повод | пример |
|---|---|
| смысл | поля одного дела рядом: «Учёт», «Контакты» |
| размещение | поставить два поля в строку |
| поведение разом | спрятать группу — исчезнут все её элементы |
Третья строка — та самая, о которой шла речь в разговоре о свойствах: поле может быть видимым, а группа над ним — нет. Отсюда и правило разбора: проверяя видимость, смотрят не только на сам элемент, но и на все группы, в которые он вложен.
Видимость, доступность и «только просмотр» группы достаются всему, что внутри. Это удобно, когда помнишь, и загадочно, когда забыл.
6. Что группы говорят при чтении
Группы — самая говорящая часть композиции: по ним видно, как автор формы представлял себе работу пользователя.
| находка | о чём говорит |
|---|---|
| поля собраны в группу с заголовком | автор считает их одним делом |
| горизонтальная группа из двух полей | значения читают вместе |
| группа без выделения | сгруппировали ради размещения, не ради смысла |
| одинокий элемент в своей группе | остаток прежней раскладки — или способ управлять им отдельно |
Последняя строка читается двояко. Чаще это след: поля из группы вынесли, а саму группу забыли убрать. Но бывает и замысел — группу оставили, чтобы прятать одно поле вместе с её заголовком.
7. В Конфигураторе и в Предприятии
Соберём первую группу — она останется в форме и дальше.
-
Откройте форму элемента «Товаров» и добавьте в элементы группу. Назовите её «Учёт», заголовок задайте «Учёт».
-
Перетащите в неё поля «Артикул» и «ЕдиницаИзмерения». В структуре они должны оказаться вложенными.
-
Поставьте группировку «горизонтальная» и посмотрите на предпросмотр: поля встали в строку.
-
Обновите конфигурацию базы данных и откройте карточку товара. Сожмите окно: посмотрите, что стало со строкой.
-
Переключите группировку на «горизонтальная, если возможно» и повторите опыт с узким окном.
-
Оставьте группу на форме: дальше мы будем собирать композицию вокруг неё.
Пятый шаг стоит проделать внимательно. Разница между «горизонтальной» и «горизонтальной, если возможно» — это разница между правилом жёстким и правилом с оговоркой; на широком экране они выглядят одинаково.
Главное в одном абзаце
Группа — элемент, который ничего не показывает: данных у неё нет, а работа её в том, чтобы держать в себе другие элементы и задавать им свойством «Группировка» направление — вертикально или горизонтально, всегда или пока хватает ширины. Группы вкладывают друг в друга, и обычная форма оказывается вертикальной стопкой, в которой некоторые ряды разложены в строку. Рамка и заголовок — отдельные решения: выделение бывает слабым, обычным, сильным или никаким, поэтому группа в дереве может быть, а рамки на экране нет; то же самое даёт снятое свойство «Объединённая» — тогда элементы группы располагаются прямо в родительской, а из свойств самой группы действуют только цвет фона и группировка. Собирают в группы ради смысла, ради размещения и ради того, чтобы управлять всем сразу: свойства группы достаются всему, что внутри, — потому и видимость проверяют у всех групп, в которые элемент вложен. А при чтении чужой формы группы показывают, как автор представлял себе работу пользователя.
Рамка собрала поля в блок, блоки легли стопкой. Но в форме документа блоков столько, что в окно они не помещаются, и половина из них нужна не всегда. Куда девать остальное?
Контрольные вопросы
- Что такое группа и почему у неё нет пути к данным?
- Какое свойство группы решает, как выстроятся вложенные элементы, и какие у него значения?
- Чем «горизонтальная» отличается от «горизонтальной, если возможно»?
- Как из групп собирается обычная форма — опишите словами.
- Почему группа может быть в дереве, а рамки на экране нет?
- Что происходит со свойствами группы для вложенных элементов?
- О чём говорит одинокий элемент в собственной группе?
Упражнения
По образцу. Соберите в форме элемента «Контрагентов» группу «Контакты» и положите в неё телефон и контактное лицо.
Своё: разложите карточку. Нарисуйте на бумаге дерево групп для карточки контрагента: наименование, ИНН, телефон, контактное лицо. Объясните каждую группу одной фразой.
Ловушка: «рамка пропала». Разработчик собрал группу, задал ей заголовок, а на экране ни рамки, ни заголовка. Какие два объяснения возможны и где смотреть?
Обратный ход. На экране два поля стоят в строку. Что можно сказать о дереве элементов, не открывая его?
На чтение. В чужой форме группа «Дополнительно» содержит одно поле и имеет сильное выделение. Что, скорее всего, случилось с этой формой раньше?
Ответы — в конце части.