mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-17 00:05:17 +03:00
112 lines
8.7 KiB
Markdown
112 lines
8.7 KiB
Markdown
# Продвинутая раскладка
|
|
|
|
Тонкая настройка размещения элемента внутри родителя сверх базовой геометрии (`width`/`height`/`horizontalStretch`/`verticalStretch`/`visible`/`enabled` и ориентации групп/страниц — они в основной инструкции). Все ключи ниже задаются прямо на элементе и **необязательны** — без них действует поведение платформы по умолчанию.
|
|
|
|
## Выравнивание внутри родителя
|
|
|
|
Различают **выравнивание самого элемента** в отведённой ему ячейке и **выравнивание содержимого** элемента.
|
|
|
|
| Ключ | Значения | Что выравнивает |
|
|
|------|----------|-----------------|
|
|
| `groupHorizontalAlign` | `Left` / `Center` / `Right` | Положение **элемента** по горизонтали в родительской группе (когда элемент у́же доступного места) |
|
|
| `groupVerticalAlign` | `Top` / `Center` / `Bottom` | Положение **элемента** по вертикали в родительской группе |
|
|
| `horizontalAlign` | `Left` / `Center` / `Right` | Выравнивание **содержимого** (текста/значения) внутри самого элемента |
|
|
| `verticalAlign` | `Top` / `Center` / `Bottom` | Выравнивание содержимого по вертикали внутри элемента |
|
|
|
|
`group*Align` отвечает на вопрос «куда сдвинуть нерастянутый элемент в его ячейке», `horizontalAlign`/`verticalAlign` — «как разместить текст внутри элемента». Это разные оси настройки, их часто комбинируют.
|
|
|
|
```json
|
|
{ "button": "ОК", "groupHorizontalAlign": "Right" }
|
|
{ "input": "Сумма", "path": "Объект.Сумма", "horizontalAlign": "Right" }
|
|
{ "label": "Итого", "groupHorizontalAlign": "Center", "horizontalAlign": "Center" }
|
|
```
|
|
|
|
## Ограничение максимального размера
|
|
|
|
По умолчанию растягивающийся элемент имеет авто-вычисляемый предел ширины/высоты. Чтобы задать жёсткий предел или вовсе снять авто-предел:
|
|
|
|
| Ключ | Значения | Назначение |
|
|
|------|----------|-----------|
|
|
| `maxWidth` | число | Жёсткий максимум ширины элемента |
|
|
| `maxHeight` | число | Жёсткий максимум высоты элемента |
|
|
| `autoMaxWidth` | `false` | Отключить авто-предел ширины (элемент тянется без ограничения сверху) |
|
|
| `autoMaxHeight` | `false` | Отключить авто-предел высоты |
|
|
|
|
`autoMaxWidth: false` нужен, например, для широкого многострочного поля или растянутого по всей форме поля ввода, чтобы платформа не «прижимала» его к авто-пределу. Указывают именно отклонение от дефолта; обычное значение `true` писать не нужно.
|
|
|
|
```json
|
|
{ "input": "Комментарий", "path": "Объект.Комментарий", "multiLine": true,
|
|
"horizontalStretch": true, "autoMaxWidth": false }
|
|
{ "input": "Поиск", "path": "СтрокаПоиска", "horizontalStretch": true, "maxWidth": 600 }
|
|
```
|
|
|
|
## Поведение при вводе и активации
|
|
|
|
| Ключ | Значения | Назначение |
|
|
|------|----------|-----------|
|
|
| `skipOnInput` | `true` / `false` | Пропускать элемент при обходе по Enter/Tab (фокус через него не проходит). Указывают явно, в т.ч. `false` чтобы вернуть в обход поле, которое платформа пропустила бы |
|
|
| `defaultItem` | `true` | Элемент получает фокус по умолчанию при открытии формы (поле/таблица для немедленного ввода) |
|
|
|
|
```json
|
|
{ "input": "Идентификатор", "path": "Объект.Идентификатор", "skipOnInput": true }
|
|
{ "input": "Штрихкод", "path": "Штрихкод", "defaultItem": true }
|
|
```
|
|
|
|
`skipOnInput: true` — для служебных/расчётных полей, которые видны, но не редактируются вводом с клавиатуры в общем потоке. `defaultItem: true` ставят на одном элементе формы — точке, с которой пользователь начнёт работу.
|
|
|
|
## Перетаскивание
|
|
|
|
| Ключ | Значения | Назначение |
|
|
|------|----------|-----------|
|
|
| `enableStartDrag` | `true` | Разрешить начинать перетаскивание из элемента (источник drag-n-drop) |
|
|
|
|
Для таблиц приём/перемещение строк управляется ключами таблицы (`enableDrag`, `changeRowOrder`) — см. основную инструкцию; `enableStartDrag` — общий низкоуровневый флаг «этот элемент может быть источником перетаскивания».
|
|
|
|
## Закрепление колонки в таблице (`fixingInTable`)
|
|
|
|
Свойство поля-колонки внутри таблицы: закрепить колонку у края, чтобы она не уходила при горизонтальной прокрутке.
|
|
|
|
| Значения |
|
|
|----------|
|
|
| `None` (по умолчанию — не закреплена) / `Left` / `Right` |
|
|
|
|
```json
|
|
{ "table": "Товары", "path": "Объект.Товары", "columns": [
|
|
{ "input": "Номенклатура", "path": "Объект.Товары.Номенклатура", "fixingInTable": "Left" },
|
|
{ "input": "Количество", "path": "Объект.Товары.Количество" },
|
|
{ "input": "Сумма", "path": "Объект.Товары.Сумма", "fixingInTable": "Right" } ] }
|
|
```
|
|
|
|
Закрепляют ключевые колонки (идентифицирующую слева, итоговую справа), чтобы они оставались видны при прокрутке широкой таблицы.
|
|
|
|
## Ячейки колонок: шапка и подвал
|
|
|
|
Для поля-колонки внутри таблицы (и `columnGroup`) — размещение в шапке/подвале и выравнивание текста ячеек. Применять только к элементам внутри `columns` таблицы.
|
|
|
|
| Ключ | Значения | Назначение |
|
|
|------|----------|-----------|
|
|
| `showInHeader` | `true` / `false` | Показывать колонку в шапке таблицы |
|
|
| `showInFooter` | `true` / `false` | Показывать колонку в подвале (нужно для итогов; подвал самой таблицы включается `footer: true`) |
|
|
| `headerHorizontalAlign` | `Left` / `Right` / `Center` / `Auto` | Выравнивание текста в шапке колонки |
|
|
| `footerHorizontalAlign` | `Left` / `Right` / `Center` | Выравнивание текста в подвале колонки |
|
|
| `autoCellHeight` | `true` / `false` | Авто-высота ячейки (перенос содержимого на несколько строк) |
|
|
|
|
```json
|
|
{ "table": "Товары", "path": "Объект.Товары", "footer": true, "columns": [
|
|
{ "input": "Номенклатура", "path": "Объект.Товары.Номенклатура", "autoCellHeight": true },
|
|
{ "input": "Сумма", "path": "Объект.Товары.Сумма",
|
|
"headerHorizontalAlign": "Right", "showInFooter": true, "footerHorizontalAlign": "Right" } ] }
|
|
```
|
|
|
|
## Адаптивная важность (`displayImportance`)
|
|
|
|
| Значения |
|
|
|----------|
|
|
| `VeryHigh` / `High` / `Usual` / `VeryLow` / `Low` |
|
|
|
|
Приоритет элемента при адаптивной перекомпоновке формы на узких/мобильных экранах: элементы с меньшей важностью сворачиваются/прячутся первыми. Применимо к любому элементу.
|
|
|
|
```json
|
|
{ "input": "Комментарий", "path": "Объект.Комментарий", "displayImportance": "Low" }
|
|
```
|