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