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