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