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