§ 9.7. Чужая форма: полная карта

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

1. Что у нас уже есть

Пять разборов — пять готовых листов.

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

Каждый лист отвечал на свой вопрос и ни на чей больше. Карта — это те же листы, сложенные в один порядок, где каждый следующий опирается на предыдущий.

Пять разборов отвечали на пять вопросов. Карта отвечает на один: как эта форма устроена и зачем её открывают.

2. Шесть слоёв: пять рабочих и проверочный

Пять слоёв идут от предмета к действию, шестой проверяет остальные. А над картой стоит её шапка — задача формы, названная одной фразой.

слойчто выписываем
ролькакого вида форма и в какой строке объекта назначена
данныеосновной реквизит, реквизиты формы, откуда что берётся
показполя и прочие элементы: что показано, что скрыто
композициягруппы, страницы, панели — как это выглядит на экране
действиякоманды, их источники, куда уходит результат
следчто остаётся в базе после закрытия окна

Шестой слой стоит особняком: он не добавляет нового, а проверяет остальные. Если по карте не видно, что останется после закрытия, значит, какой-то слой прочитан не до конца.

3. Почему порядок именно такой

Каждый слой снимает вопросы следующего.

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

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

4. Карта формы подбора

Вот что лежит в этой форме — реквизиты, элементы и команды.

Реквизиты формы
├── Склад            СправочникСсылка.Склады
├── ПодобранныеТовары  ТаблицаЗначений
└── (основного нет)

Элементы
├── Шапка
│   └── Склад
├── Подобранные      таблица
│   ├── Товар, Количество
│   └── КоманднаяПанель
│       └── Добавить, Удалить
└── КоманднаяПанель формы
    ├── Подобрать по остаткам
    └── Перенести в документ

Команды формы
├── ПодобратьПоОстаткам
└── ПеренестиВДокумент

Теперь та же форма картой.

слойчто вышло
рольформа обработки, основная; предмета-записи нет
данныесклад — параметр, подобранные товары — таблица значений в форме
показполе склада, таблица с двумя колонками; остатков на экране нет
композицияпараметр сверху, таблица под ним, две панели
действиядве своих команды: наполнить таблицу и перенести в документ
следбез «Перенести в документ» не остаётся ничего

Карта сразу показывает и устройство, и замысел: человек выбирает склад, набирает товары и переносит их в документ. Всё, что в форме есть, служит этим трём шагам — и ничего лишнего в ней нет.

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

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

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

Любая из этих строк — повод не для вывода, а для вопроса. Половина объясняется замыслом, о котором знает автор или пользователь, и спросить дешевле, чем догадываться.

6. Чего карта не покажет

И чтобы не ждать от карты лишнего, зафиксируем её границы — знать их стоит так же твёрдо, как и сам разбор.

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

Три «нет» — не слабость карты, а её честная рамка. Она доводит читателя до границы, за которой начинается другой разговор: язык 1С, администрирование, люди.

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

Семь шагов, и все они уже знакомы по отдельности.

  1. Найдите форму в дереве объекта и посмотрите, в какой строке основных форм она стоит. Если ни в одной — запомните это.

  2. Выпишите реквизиты формы: основной и остальные, с типами. Отделите параметры от промежуточных данных.

  3. Пройдите структуру элементов и выпишите элементы с путями к данным. Сравните с реквизитами: чего на экране нет.

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

  2. Соберите каталог команд: источник, носитель, что известно о действии.

  3. Напишите шапку карты: одной фразой, какую задачу человек решает в этом окне.

  4. Ответьте на проверочный вопрос: что останется в базе, когда окно закроют.

Седьмой шаг — последняя проверка всего разбора. Форма, после которой не остаётся ничего и не может остаться, — либо отчёт, либо заготовка; и то и другое стоит знать до того, как на неё положились.

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

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


Книга почти пройдена: мы научились читать форму целиком, от реквизитов до команд. Осталось превратить это умение в привычку — короткий набор вопросов, который держат в голове, и несколько правил, которые пригодятся, когда форму придётся не читать, а собирать. С чего начинается чтение любой формы?

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

  1. Из каких слоёв состоит полная карта формы?
  2. Почему разбор начинают с роли формы, а не с кнопок?
  3. Зачем нужен проверочный слой и какой у него вопрос?
  4. Что даёт сравнение реквизитов формы с элементами?
  5. Назовите по одной частой находке для слоя данных и слоя действий.
  6. На какие вопросы карта не отвечает?
  7. Что можно сказать о форме, после которой в базе ничего не остаётся?

Упражнения

По образцу. Составьте карту формы поступления, которую вы собирали: все шесть слоёв, по одной строке на слой.

Своё: карта своей формы. Составьте карту карточки товара и честно отметьте, какие находки в ней есть.

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

Обратный ход. Дана карта: роль — форма обработки, данные — три параметра и таблица, действий — одна команда «Выполнить», след — записи в регистре. Нарисуйте правдоподобное дерево элементов такой формы.

На чтение. В карте чужой формы слой «след» пуст, а в слое «действия» три команды с непустыми процедурами. О чём это говорит и что вы проверите?

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