mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 17:20:22 +03:00
Auto-build: opencode (python) from 113dc9e
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Разметка: области координатами и колоночные раскладки
|
||||
|
||||
Читать, когда область не описывается диапазоном подряд идущих строк или когда части документа нужны разные ширины колонок.
|
||||
|
||||
## Именованные области координатами (`namedAreas[]`)
|
||||
|
||||
Для областей, которые диапазоном подряд идущих строк не описываются: полоса колонок, прямоугольник, ячейка, а также пересекающиеся с другими.
|
||||
|
||||
| Поле | Обяз. | Описание |
|
||||
|------|:-----:|----------|
|
||||
| `name` | да | Имя области |
|
||||
| `rows` | \* | Строки: число или диапазон `"N-M"`, 1-based |
|
||||
| `cols` | \* | Колонки: число или диапазон `"N-M"`, 1-based |
|
||||
| `columnSet` | нет | Колоночная раскладка области. Без ключа выводится из накрытых строк, `""` — привязки нет |
|
||||
|
||||
\* Обязательна хотя бы одна из осей.
|
||||
|
||||
**Тип области не указывается** — он следует из того, какие оси заданы, как в `ТабличныйДокумент.Область()`: только строки → полоса строк, только колонки → полоса колонок, обе оси → прямоугольник, одиночные значения по обеим осям → одна ячейка.
|
||||
|
||||
```json
|
||||
"namedAreas": [
|
||||
{ "name": "ОбластьПечатиПоВысоте", "rows": "1-48" },
|
||||
{ "name": "ОбластьПечатиПоШирине", "cols": "1-35" },
|
||||
{ "name": "HZY", "rows": 9, "cols": "16-17" }
|
||||
]
|
||||
```
|
||||
|
||||
Диапазон — та же грамматика, что у `columnWidths`, но **только** число или `"N-M"`: список через запятую запрещён, область непрерывна. Имя обязательно, и хотя бы одна ось должна быть задана; нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.
|
||||
|
||||
## Колоночные раскладки (`columnSets`)
|
||||
|
||||
Группа строк может иметь собственные ширины колонок — в 1С это «индивидуальная ширина колонок».
|
||||
Документные `columns` и `columnWidths` описывают раскладку по умолчанию; дополнительные
|
||||
объявляются в `columnSets`, а область ссылается на нужную ключом `columnSet` — так же, как
|
||||
ячейка ссылается на `styles` через `style`.
|
||||
|
||||
```json
|
||||
{
|
||||
"columns": 52,
|
||||
"columnWidths": { "1": 8 },
|
||||
"columnSets": {
|
||||
"таблица": { "columns": 52, "columnWidths": { "1": 7, "2-52": 24 } }
|
||||
},
|
||||
"areas": [
|
||||
{ "name": "Шапка", "rows": [["Отчёт о продажах"]] },
|
||||
{ "name": "ТабличнаяЧасть", "columnSet": "таблица",
|
||||
"rows": [["№", "Номенклатура"]] }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Раскладка описывается той же парой полей, что и документная: `columns` — количество колонок
|
||||
(у раскладок оно обычно разное), `columnWidths` — ширины. Ключ словаря — имя раскладки;
|
||||
в макетах, полученных декомпиляцией, это идентификатор из исходного файла, при описании
|
||||
с нуля — любая строка.
|
||||
|
||||
Все строки области получают раскладку области, поэтому одна область не может смешивать
|
||||
раскладки. Позиции колонок (`col`, `span`) проверяются по ширине раскладки СВОЕЙ области,
|
||||
а не документной.
|
||||
|
||||
Ссылка на необъявленную раскладку → ненулевой код выхода и сообщение в stderr.
|
||||
|
||||
## Стиль колонки (`columnStyles`)
|
||||
|
||||
Колонка несёт то же оформление, что ячейка и строка. Ключи — та же грамматика диапазонов,
|
||||
что у `columnWidths`; значение — имя стиля.
|
||||
|
||||
```json
|
||||
"columnWidths": { "1": 30, "2-3": 15 },
|
||||
"columnStyles": { "1": "по-центру", "4": "скрытая" }
|
||||
```
|
||||
|
||||
Внутри `columnSets` работает тот же ключ. Ширина и стиль независимы: колонка может иметь
|
||||
только ширину, только стиль или и то, и другое.
|
||||
Reference in New Issue
Block a user