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