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