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