§ 4.6. Чужая форма: разбор полей и путей к данным

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

1. Таблица разбора

Выглядит она так, и заполняется по одной строке на элемент.

элементвидпуть к даннымчто это значит
Артикулполе вводаОбъект.Артикулданные записи, правятся
ИтогоВесполе надписиИтогоВесданные формы, считает код
Пояснениедекорация—текст, записанный в форме

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

2. Идти по структуре, а не по экрану

Соблазн разбирать по картинке велик, но структура надёжнее.

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

Экран пригодится потом — чтобы сверить прочитанное с тем, что достаётся пользователю. Но первым читают дерево: оно полное.

3. Три вопроса к каждому полю

Вопросы те же, что в прошлых параграфах, только теперь их задают подряд и быстро.

вопросгде ответ
что это за элементполе, таблица, кнопка, группа или декорация — видно в структуре; у поля вид уточняет свойство «Вид»
откуда берёт значениепуть к данным
что с ним может пользовательвидимость, доступность, только просмотр

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

4. Что считать находкой

Разбор нужен не ради таблицы: в ней ищут места, где форма говорит о замысле автора.

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

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

5. Что видно по путям в сумме

Когда пути выписаны, из них складывается портрет формы — ещё до того, как вы поняли её замысел.

пути с «Объект.»  → форма об одной записи
пути без него     → значение не из записи
путей нет вовсе   → форма не связана
                    с данными напрямую

Если почти все пути ведут в «Объект.», перед вами обычная карточка. Если половина путей — в реквизиты формы, значит, значение приходит не из записи; чаще всего его готовит код, но это стоит проверить. Если путей нет совсем, данные появятся от действий пользователя или из кода: так устроены помощники, диалоги и рабочие места — те самые формы, у которых в центре задача, а не предмет. Разговор о них — в главе об особых формах.

6. Четыре ловушки

Первая: читать экран вместо структуры. Скрытые элементы так и останутся незамеченными, а именно в них часто вся соль.

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

Третья: забыть про группы. Поле может быть видимым, а группа над ним — нет; на экране не будет ни того ни другого.

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

7. Разбор по шагам

Шесть шагов, которые складываются с разбором реквизитов из главы о данных.

  1. Откройте структуру элементов и выпишите все элементы сверху вниз, отмечая вид каждого.

  2. Для каждого поля запишите путь к данным; для элементов без пути поставьте прочерк.

  3. Отметьте элементы, у которых снята видимость или доступность, и группы, в которых они лежат.

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

  2. Объясните каждую строку одной фразой про работу пользователя.

  3. Откройте форму в Предприятии и сверьте: то ли вы прочитали.

Шестой шаг — не формальность. Прочитанное в редакторе и увиденное в Предприятии расходятся чаще, чем кажется, и каждое расхождение — это чья-то настройка, которую вы пропустили.

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

Чужую форму разбирают по структуре элементов, а не по экрану: структура полная, в ней видно и скрытое. На каждый элемент заводят строку таблицы и записывают три вещи — вид, путь к данным и то, что пользователь может с ним сделать; заголовок смотрят, когда подпись на экране расходится с именем реквизита. Находки ищут в готовой таблице: поле без пути, два поля с одним путём, поле с необычным видом, снятая видимость, а сравнением с реквизитами — значение, которому элемента не досталось. По путям в сумме виден портрет формы: сплошные «Объект.» — обычная карточка, много собственных реквизитов — значение приходит не из записи, путей нет вовсе — форма не связана с данными напрямую. И четыре ловушки: читать экран вместо структуры, принять декорацию за поле, забыть про группу над полем и счесть пустое поле сломанным.


Поля разобраны поодиночке, и каждое объяснено. Но экран — не список полей: они стоят рядами, собраны в рамки, разложены по страницам. Кто и где решает, как всё это размещается?

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

  1. Почему разбор начинают со структуры элементов, а не с экрана?
  2. Какие три вещи записывают про каждый элемент?
  3. Когда стоит посмотреть на заголовок элемента?
  4. Назовите три находки, ради которых составляют таблицу разбора.
  5. Как найти реквизит, которому не досталось элемента?
  6. Что можно сказать о форме, если почти все пути начинаются с «Объект.»?
  7. Назовите четыре ловушки разбора полей.

Упражнения

По образцу. Составьте таблицу разбора для формы элемента «Товаров» — той, что вы собирали сами. Ответы известны заранее, проверяется порядок.

Своё: объясните каждое поле. Возьмите форму, где есть поле-флажок и поле надписи, и объясните каждую строку одной фразой про работу пользователя.

Ловушка: «в форме нет поля склада». Коллега разбирает форму поступления по экрану и говорит, что склад в ней не выводится. Где он мог его не заметить?

Обратный ход. В таблице разбора у двух полей один и тот же путь, и у одного из них вид «поле надписи». Что задумал автор формы?

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

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