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