mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-17 16:50:30 +03:00
docs(mxl): свести спецификацию DSL в один файл
Оформление и полный перечень свойств стиля жили отдельными файлами, хотя описывают тот же DSL. Теперь docs/mxl-dsl-spec.md — единственная полная документация формата, как у остальных семейств навыков: структура, оформление, колоночные раскладки, перечень свойств. Ссылки в README и указателе спецификаций сведены к одной строке.
This commit is contained in:
@@ -160,8 +160,7 @@ python scripts/switch.py --runtime powershell # вернуть на PowerShell
|
||||
- [Встроенная справка](docs/1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме
|
||||
- [Пакетный режим конфигуратора 1С](docs/build-spec.md) — команды `1cv8.exe`, DESIGNER, ENTERPRISE, CREATEINFOBASE
|
||||
- [Табличный документ (MXL)](docs/1c-spreadsheet-spec.md) — XML-формат SpreadsheetDocument, совместимость версий
|
||||
- [MXL DSL](docs/mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile`
|
||||
- [MXL DSL: оформление](docs/mxl-dsl-styles.md) — шрифты, стили, цвета, рамки, колоночные раскладки
|
||||
- [MXL DSL](docs/mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile`: структура, оформление, полный перечень свойств стиля
|
||||
- [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile`
|
||||
- [Роли (Rights.xml)](docs/1c-role-spec.md) — XML-формат прав роли, типы объектов, RLS
|
||||
- [Role DSL](docs/role-dsl-spec.md) — JSON-формат описания ролей для `/role-compile`
|
||||
@@ -269,8 +268,6 @@ docs/
|
||||
├── build-spec.md # Пакетный режим конфигуратора 1С
|
||||
├── 1c-spreadsheet-spec.md # Спецификация табличного документа
|
||||
├── mxl-dsl-spec.md # Спецификация MXL DSL
|
||||
├── mxl-dsl-styles.md # MXL DSL: оформление
|
||||
├── mxl-dsl-format-properties.md # MXL DSL: полный перечень свойств стиля
|
||||
├── form-dsl-spec.md # Спецификация Form DSL
|
||||
├── meta-dsl-spec.md # Спецификация Meta DSL
|
||||
├── 1c-role-spec.md # Спецификация ролей (Rights.xml)
|
||||
|
||||
@@ -169,7 +169,5 @@
|
||||
| Meta DSL | JSON-формат для создания/редактирования объектов | [meta-dsl-spec.md](meta-dsl-spec.md) |
|
||||
| Form DSL | JSON-формат для компиляции форм | [form-dsl-spec.md](form-dsl-spec.md) |
|
||||
| SKD DSL | JSON-формат для компиляции СКД | [skd-dsl-spec.md](skd-dsl-spec.md) |
|
||||
| MXL DSL | JSON-формат для компиляции табличных документов | [mxl-dsl-spec.md](mxl-dsl-spec.md) |
|
||||
| MXL DSL: оформление | Шрифты, стили, цвета, рамки, колонки | [mxl-dsl-styles.md](mxl-dsl-styles.md) |
|
||||
| MXL DSL: свойства стиля | Полный перечень свойств формата | [mxl-dsl-format-properties.md](mxl-dsl-format-properties.md) |
|
||||
| MXL DSL | JSON-формат для компиляции табличных документов, включая оформление и полный перечень свойств стиля | [mxl-dsl-spec.md](mxl-dsl-spec.md) |
|
||||
| Role DSL | JSON-формат для компиляции ролей | [role-dsl-spec.md](role-dsl-spec.md) |
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
# Полный список свойств стиля
|
||||
|
||||
Имя ключа совпадает с именем свойства в выгрузке — исключений нет. Частые свойства
|
||||
с примерами — в `mxl-dsl-styles.md`, здесь полный перечень.
|
||||
|
||||
Тип значения:
|
||||
|
||||
- **число** — целое;
|
||||
- **да/нет** — `true` / `false`;
|
||||
- **перечисление** — одно из указанных, регистр не важен;
|
||||
- **цвет** — `#RRGGBB`, `style:Имя`, `web:Имя`, `win:Имя`;
|
||||
- **линия** — `"Solid"` либо `{ style, width }`;
|
||||
- **текст** — строка (разворачивается на языки макета).
|
||||
|
||||
## Текст и выравнивание
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `font` | имя | Ссылка на имя из `fonts` |
|
||||
| `horizontalAlignment` | перечисление | `Left`, `Center`, `Right`, `Justify`, `Auto` |
|
||||
| `verticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
|
||||
| `textPlacement` | перечисление | `Wrap`, `Cut`, `Block`, `Auto` |
|
||||
| `textOrientation` | число | Поворот в десятых долях градуса: `900` = 90° |
|
||||
| `textColor` | цвет | Цвет текста |
|
||||
| `indent` | число | Отступ текста |
|
||||
| `autoIndent` | число | Автоматический отступ |
|
||||
| `format` | текст | Формат данных: `"ЧЦ=15; ЧДЦ=2"` |
|
||||
| `editFormat` | текст | Формат редактирования |
|
||||
| `mask` | текст | Маска ввода |
|
||||
| `markNegatives` | да/нет | Выделять отрицательные |
|
||||
|
||||
## Фон и рамка
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `backColor` | цвет | Цвет фона |
|
||||
| `pattern` | перечисление | `WithoutPattern`, `Solid`, `Pattern1`…`Pattern17` (в Конфигураторе «Узор 1» … «Узор 17») |
|
||||
| `patternColor` | цвет | Цвет узора |
|
||||
| `border` | линия | Все четыре стороны |
|
||||
| `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | линия | Отдельная сторона |
|
||||
| `borderColor` | цвет | Цвет рамки |
|
||||
|
||||
## Поведение
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `hidden` | да/нет | Скрыть |
|
||||
| `protection` | да/нет | Защита от редактирования |
|
||||
| `print` | да/нет | Выводить на печать |
|
||||
| `hyperLink` | да/нет | Гиперссылка |
|
||||
| `detailsUse` | перечисление | Использование расшифровки: `Cell`, `Row`, `WithoutProcessing` |
|
||||
| `autoMarkIncomplete` | да/нет | Автоотметка незаполненного |
|
||||
| `bySelectedColumns` | да/нет | По выделенным колонкам |
|
||||
| `columnSizeChange` | перечисление | `Normal`, `QuickChange` |
|
||||
| `autoWidthCalculation` | да/нет | Автоматический расчёт ширины |
|
||||
| `widthWeightFactor` | число | Весовой коэффициент ширины |
|
||||
|
||||
## Картинка в ячейке
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `picIndex` | число | Номер картинки |
|
||||
| `pictureSizeMode` | перечисление | `AutoSize`, `Proportionally`, `RealSize` |
|
||||
| `picHorizontalAlignment` | перечисление | `Auto`, `Center`, `Left`, `Right` |
|
||||
| `picVerticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
|
||||
| `textPosition` | перечисление | Положение текста относительно картинки: `Auto`, `Top`, `Right`, `Bottom` |
|
||||
|
||||
## Чего в стиле нет
|
||||
|
||||
- `width` — свойство колонки, задаётся через `columnWidths`;
|
||||
- `height` — свойство строки, задаётся ключом `height` у строки;
|
||||
- `fillType` — выводится из того, каким ключом задано содержимое ячейки
|
||||
(`text` / `param` / `template`);
|
||||
- `containsValue`, `valueType`, `controlType` — свойства конкретной ячейки, а не общего
|
||||
оформления: задаются ключами ячейки `valueType` и `controlType`;
|
||||
- линия рисунка и её стороны — свойства рисунка: задаются его ключами `line` и `sides`
|
||||
(у ячейки такого свойства нет вовсе).
|
||||
+229
-6
@@ -2,9 +2,6 @@
|
||||
|
||||
Компактный JSON-формат для описания макетов табличных документов 1С (SpreadsheetDocument). Используется навыками `/mxl-compile` (JSON → XML) и `/mxl-decompile` (XML → JSON).
|
||||
|
||||
Оформление — шрифты, стили, цвета, рамки, колоночные раскладки — в `mxl-dsl-styles.md`;
|
||||
полный перечень свойств стиля — в `mxl-dsl-format-properties.md`.
|
||||
|
||||
## Пример
|
||||
|
||||
```json
|
||||
@@ -80,13 +77,13 @@
|
||||
| `page` | нет | — | Формат страницы: `"A4-landscape"` (780), `"A4-portrait"` (540) или число. Автоматически вычисляет `defaultWidth` из суммы пропорций `"Nx"` |
|
||||
| `defaultWidth` | нет | 10 | Ширина колонок по умолчанию. Игнорируется если задан `page` и все колонки используют `"Nx"` |
|
||||
| `columnWidths` | нет | `{}` | Ширины колонок. Ключи 1-based: `"1"`, `"3-14"`, `"5,7,9"`. Значения: число (абсолют) или `"Nx"` (множитель от defaultWidth, напр. `"2x"`, `"0.5x"`) |
|
||||
| `columnStyles` | нет | — | Оформление колонок: те же ключи, значение — имя стиля (см. `mxl-dsl-styles.md`) |
|
||||
| `columnStyles` | нет | — | Оформление колонок: те же ключи, значение — имя стиля (см. «Оформление») |
|
||||
| `textLanguages` | нет | `["ru"]` | Языки, на которых пишется текст, заданный строкой (см. ниже) |
|
||||
| `fonts` | нет | — | Именованные шрифты (если не задано, создаётся Arial 10) |
|
||||
| `styles` | нет | `{}` | Именованные стили (см. `mxl-dsl-styles.md`) |
|
||||
| `styles` | нет | `{}` | Именованные стили (см. «Оформление») |
|
||||
| `areas` | да | — | Массив областей — диапазонов подряд идущих строк (порядок = порядок в документе); имя необязательно |
|
||||
| `namedAreas` | нет | — | Именованные области, заданные координатами (см. ниже) |
|
||||
| `columnSets` | нет | — | Дополнительные колоночные раскладки (см. `mxl-dsl-styles.md`) |
|
||||
| `columnSets` | нет | — | Дополнительные колоночные раскладки (см. «Колоночные раскладки») |
|
||||
| `rowGroups` | нет | — | Группы строк (см. ниже) |
|
||||
| `columnGroups` | нет | — | Группы колонок (см. ниже) |
|
||||
| `header` / `footer` | нет | — | Верхний и нижний колонтитулы (см. ниже) |
|
||||
@@ -444,6 +441,232 @@
|
||||
|
||||
Если в предыдущих строках той же области есть ячейки с `rowspan`, их колонки при автозаполнении пропускаются.
|
||||
|
||||
## Оформление: шрифты, стили, цвета, рамки
|
||||
|
||||
Оформление в табличном документе — одна сущность на всех: ячейка, строка и колонка ссылаются
|
||||
на один и тот же именованный стиль. Ячейка — ключом `style`, строка — `rowStyle`, колонка —
|
||||
через `columnStyles`.
|
||||
|
||||
### Шрифты (`fonts.<name>`)
|
||||
|
||||
| Поле | По умолч. | Описание |
|
||||
|------|-----------|----------|
|
||||
| `face` | `"Arial"` | Имя шрифта |
|
||||
| `size` | `10` | Размер (бывает дробным: `8.3`) |
|
||||
| `bold` | `false` | Жирный |
|
||||
| `italic` | `false` | Курсив |
|
||||
| `underline` | `false` | Подчёркнутый |
|
||||
| `strikeout` | `false` | Зачёркнутый |
|
||||
|
||||
Шрифт `"default"` используется, когда стиль не указывает шрифт явно. Если не определён,
|
||||
создаётся автоматически (Arial 10).
|
||||
|
||||
Вместо собственного описания шрифт может быть **ссылкой** — на элемент стиля конфигурации
|
||||
или на системный шрифт. Тогда у него единственное поле:
|
||||
|
||||
```json
|
||||
"fonts": {
|
||||
"основной": { "ref": "style:TextFont" },
|
||||
"системный": { "ref": "sys:DefaultGUIFont" }
|
||||
}
|
||||
```
|
||||
|
||||
Это та же запись, что у шрифта в описании формы.
|
||||
|
||||
### Стили (`styles.<name>`)
|
||||
|
||||
Ключ стиля — имя свойства так, как оно называется в выгрузке. Ниже частые; полный
|
||||
перечень — в разделе «Полный список свойств стиля».
|
||||
|
||||
| Поле | Описание |
|
||||
|------|----------|
|
||||
| `font` | Ссылка на имя из `fonts` |
|
||||
| `horizontalAlignment` | `Left`, `Center`, `Right`, `Justify`, `Auto` |
|
||||
| `verticalAlignment` | `Top`, `Center`, `Bottom` |
|
||||
| `textPlacement` | Что делать с длинным текстом: `Wrap` (перенос), `Cut` (обрезать), `Block`, `Auto` |
|
||||
| `backColor` | Цвет фона (см. «Цвет») |
|
||||
| `textColor` | Цвет текста |
|
||||
| `border`, `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | Рамка (см. «Рамка») |
|
||||
| `borderColor` | Цвет рамки |
|
||||
| `format` | Формат данных 1С: `"ЧЦ=15; ЧДЦ=2"`, `"ДФ=dd.MM.yyyy"` |
|
||||
| `hidden` | Скрыть |
|
||||
| `protection` | Защита от редактирования |
|
||||
| `indent` | Отступ |
|
||||
| `textOrientation` | Поворот текста, в десятых долях градуса (`900` = 90°) |
|
||||
|
||||
Значения перечислений регистр не различают: `"center"` и `"Center"` равнозначны.
|
||||
|
||||
```json
|
||||
"styles": {
|
||||
"шапка": {
|
||||
"font": "жирный",
|
||||
"horizontalAlignment": "Center",
|
||||
"verticalAlignment": "Center",
|
||||
"textPlacement": "Wrap",
|
||||
"backColor": "#EBEBEB"
|
||||
},
|
||||
"итог": { "font": "жирный", "topBorder": "Solid", "horizontalAlignment": "Right" }
|
||||
}
|
||||
```
|
||||
|
||||
### Цвет
|
||||
|
||||
Строка в одной из четырёх форм — это нотация самой платформы:
|
||||
|
||||
| Форма | Значение |
|
||||
|-------|----------|
|
||||
| `#RRGGBB` | RGB-hex, напр. `#FFFFC0` |
|
||||
| `style:ИмяСтиля` | Элемент стиля конфигурации или платформы, напр. `style:FormBackColor` |
|
||||
| `web:Имя` | Цвет из web-палитры, напр. `web:Gainsboro`, `web:FireBrick` |
|
||||
| `win:Имя` | Системный цвет Windows, напр. `win:ButtonText` |
|
||||
|
||||
Имя должно существовать в своей палитре — несуществующее платформа отвергнет при загрузке.
|
||||
|
||||
### Рамка
|
||||
|
||||
Пять ключей: `border` — все четыре стороны сразу, `leftBorder` / `topBorder` / `rightBorder` /
|
||||
`bottomBorder` — по отдельности. Значение одинаковое у всех:
|
||||
|
||||
| Запись | Значение |
|
||||
|--------|----------|
|
||||
| `"Solid"` | Стиль линии, ширина 1 |
|
||||
| `{ "style": "Solid", "width": 2 }` | Стиль и ширина |
|
||||
|
||||
Стили линии: `None`, `Solid`, `Dotted`, `Dashed`, `DashDotted`, `DashDottedDotted`,
|
||||
`ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`. Конфигуратор предлагает разные наборы
|
||||
в разных местах — у рамки ячейки одни, у линии рисунка другие, — но палитра одна на документ.
|
||||
|
||||
Задавать стороны по отдельности можно всегда: если все четыре совпали, компилятор сам свернёт
|
||||
их в один `border` — так это хранит платформа.
|
||||
|
||||
```json
|
||||
"рамка-снизу": { "bottomBorder": "Dotted" },
|
||||
"рамка-вокруг": { "border": { "style": "Solid", "width": 2 } }
|
||||
```
|
||||
|
||||
### Стиль колонки (`columnStyles`)
|
||||
|
||||
Колонка несёт то же оформление, что ячейка и строка. Ключи — та же грамматика диапазонов,
|
||||
что у `columnWidths`; значение — имя стиля.
|
||||
|
||||
```json
|
||||
"columnWidths": { "1": 30, "2-3": 15 },
|
||||
"columnStyles": { "1": "по-центру", "4": "скрытая" }
|
||||
```
|
||||
|
||||
Внутри `columnSets` работает тот же ключ. Ширина и стиль независимы: колонка может иметь
|
||||
только ширину, только стиль или и то, и другое.
|
||||
|
||||
## Колоночные раскладки (`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.
|
||||
|
||||
## Полный список свойств стиля
|
||||
|
||||
Имя ключа совпадает с именем свойства в выгрузке — исключений нет. Частые свойства
|
||||
с примерами — в разделе «Оформление», здесь полный перечень.
|
||||
|
||||
Тип значения:
|
||||
|
||||
- **число** — целое;
|
||||
- **да/нет** — `true` / `false`;
|
||||
- **перечисление** — одно из указанных, регистр не важен;
|
||||
- **цвет** — `#RRGGBB`, `style:Имя`, `web:Имя`, `win:Имя`;
|
||||
- **линия** — `"Solid"` либо `{ style, width }`;
|
||||
- **текст** — строка (разворачивается на языки макета).
|
||||
|
||||
### Текст и выравнивание
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `font` | имя | Ссылка на имя из `fonts` |
|
||||
| `horizontalAlignment` | перечисление | `Left`, `Center`, `Right`, `Justify`, `Auto` |
|
||||
| `verticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
|
||||
| `textPlacement` | перечисление | `Wrap`, `Cut`, `Block`, `Auto` |
|
||||
| `textOrientation` | число | Поворот в десятых долях градуса: `900` = 90° |
|
||||
| `textColor` | цвет | Цвет текста |
|
||||
| `indent` | число | Отступ текста |
|
||||
| `autoIndent` | число | Автоматический отступ |
|
||||
| `format` | текст | Формат данных: `"ЧЦ=15; ЧДЦ=2"` |
|
||||
| `editFormat` | текст | Формат редактирования |
|
||||
| `mask` | текст | Маска ввода |
|
||||
| `markNegatives` | да/нет | Выделять отрицательные |
|
||||
|
||||
### Фон и рамка
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `backColor` | цвет | Цвет фона |
|
||||
| `pattern` | перечисление | `WithoutPattern`, `Solid`, `Pattern1`…`Pattern17` (в Конфигураторе «Узор 1» … «Узор 17») |
|
||||
| `patternColor` | цвет | Цвет узора |
|
||||
| `border` | линия | Все четыре стороны |
|
||||
| `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | линия | Отдельная сторона |
|
||||
| `borderColor` | цвет | Цвет рамки |
|
||||
|
||||
### Поведение
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `hidden` | да/нет | Скрыть |
|
||||
| `protection` | да/нет | Защита от редактирования |
|
||||
| `print` | да/нет | Выводить на печать |
|
||||
| `hyperLink` | да/нет | Гиперссылка |
|
||||
| `detailsUse` | перечисление | Использование расшифровки: `Cell`, `Row`, `WithoutProcessing` |
|
||||
| `autoMarkIncomplete` | да/нет | Автоотметка незаполненного |
|
||||
| `bySelectedColumns` | да/нет | По выделенным колонкам |
|
||||
| `columnSizeChange` | перечисление | `Normal`, `QuickChange` |
|
||||
| `autoWidthCalculation` | да/нет | Автоматический расчёт ширины |
|
||||
| `widthWeightFactor` | число | Весовой коэффициент ширины |
|
||||
|
||||
### Картинка в ячейке
|
||||
|
||||
| Ключ | Тип | Значение |
|
||||
|------|-----|----------|
|
||||
| `picIndex` | число | Номер картинки |
|
||||
| `pictureSizeMode` | перечисление | `AutoSize`, `Proportionally`, `RealSize` |
|
||||
| `picHorizontalAlignment` | перечисление | `Auto`, `Center`, `Left`, `Right` |
|
||||
| `picVerticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
|
||||
| `textPosition` | перечисление | Положение текста относительно картинки: `Auto`, `Top`, `Right`, `Bottom` |
|
||||
|
||||
### Чего в стиле нет
|
||||
|
||||
- `width` — свойство колонки, задаётся через `columnWidths`;
|
||||
- `height` — свойство строки, задаётся ключом `height` у строки;
|
||||
- `fillType` — выводится из того, каким ключом задано содержимое ячейки
|
||||
(`text` / `param` / `template`);
|
||||
- `containsValue`, `valueType`, `controlType` — свойства конкретной ячейки, а не общего
|
||||
оформления: задаются ключами ячейки `valueType` и `controlType`;
|
||||
- линия рисунка и её стороны — свойства рисунка: задаются его ключами `line` и `sides`
|
||||
(у ячейки такого свойства нет вовсе).
|
||||
|
||||
## Ограничения
|
||||
|
||||
DSL описывает не все конструкции табличного документа. Перечисленное ниже **теряется при
|
||||
|
||||
@@ -1,147 +0,0 @@
|
||||
# Оформление: шрифты, стили, колонки
|
||||
|
||||
Оформление в табличном документе — одна сущность на всех: ячейка, строка и колонка ссылаются
|
||||
на один и тот же именованный стиль. Ячейка — ключом `style`, строка — `rowStyle`, колонка —
|
||||
через `columnStyles`.
|
||||
|
||||
## Шрифты (`fonts.<name>`)
|
||||
|
||||
| Поле | По умолч. | Описание |
|
||||
|------|-----------|----------|
|
||||
| `face` | `"Arial"` | Имя шрифта |
|
||||
| `size` | `10` | Размер (бывает дробным: `8.3`) |
|
||||
| `bold` | `false` | Жирный |
|
||||
| `italic` | `false` | Курсив |
|
||||
| `underline` | `false` | Подчёркнутый |
|
||||
| `strikeout` | `false` | Зачёркнутый |
|
||||
|
||||
Шрифт `"default"` используется, когда стиль не указывает шрифт явно. Если не определён,
|
||||
создаётся автоматически (Arial 10).
|
||||
|
||||
Вместо собственного описания шрифт может быть **ссылкой** — на элемент стиля конфигурации
|
||||
или на системный шрифт. Тогда у него единственное поле:
|
||||
|
||||
```json
|
||||
"fonts": {
|
||||
"основной": { "ref": "style:TextFont" },
|
||||
"системный": { "ref": "sys:DefaultGUIFont" }
|
||||
}
|
||||
```
|
||||
|
||||
Это та же запись, что у шрифта в описании формы.
|
||||
|
||||
## Стили (`styles.<name>`)
|
||||
|
||||
Ключ стиля — имя свойства так, как оно называется в выгрузке. Ниже частые; полный список
|
||||
из 44 свойств — в `mxl-dsl-format-properties.md`.
|
||||
|
||||
| Поле | Описание |
|
||||
|------|----------|
|
||||
| `font` | Ссылка на имя из `fonts` |
|
||||
| `horizontalAlignment` | `Left`, `Center`, `Right`, `Justify`, `Auto` |
|
||||
| `verticalAlignment` | `Top`, `Center`, `Bottom` |
|
||||
| `textPlacement` | Что делать с длинным текстом: `Wrap` (перенос), `Cut` (обрезать), `Block`, `Auto` |
|
||||
| `backColor` | Цвет фона (см. «Цвет») |
|
||||
| `textColor` | Цвет текста |
|
||||
| `border`, `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | Рамка (см. «Рамка») |
|
||||
| `borderColor` | Цвет рамки |
|
||||
| `format` | Формат данных 1С: `"ЧЦ=15; ЧДЦ=2"`, `"ДФ=dd.MM.yyyy"` |
|
||||
| `hidden` | Скрыть |
|
||||
| `protection` | Защита от редактирования |
|
||||
| `indent` | Отступ |
|
||||
| `textOrientation` | Поворот текста, в десятых долях градуса (`900` = 90°) |
|
||||
|
||||
Значения перечислений регистр не различают: `"center"` и `"Center"` равнозначны.
|
||||
|
||||
```json
|
||||
"styles": {
|
||||
"шапка": {
|
||||
"font": "жирный",
|
||||
"horizontalAlignment": "Center",
|
||||
"verticalAlignment": "Center",
|
||||
"textPlacement": "Wrap",
|
||||
"backColor": "#EBEBEB"
|
||||
},
|
||||
"итог": { "font": "жирный", "topBorder": "Solid", "horizontalAlignment": "Right" }
|
||||
}
|
||||
```
|
||||
|
||||
## Цвет
|
||||
|
||||
Строка в одной из четырёх форм — это нотация самой платформы:
|
||||
|
||||
| Форма | Значение |
|
||||
|-------|----------|
|
||||
| `#RRGGBB` | RGB-hex, напр. `#FFFFC0` |
|
||||
| `style:ИмяСтиля` | Элемент стиля конфигурации или платформы, напр. `style:FormBackColor` |
|
||||
| `web:Имя` | Цвет из web-палитры, напр. `web:Gainsboro`, `web:FireBrick` |
|
||||
| `win:Имя` | Системный цвет Windows, напр. `win:ButtonText` |
|
||||
|
||||
Имя должно существовать в своей палитре — несуществующее платформа отвергнет при загрузке.
|
||||
|
||||
## Рамка
|
||||
|
||||
Пять ключей: `border` — все четыре стороны сразу, `leftBorder` / `topBorder` / `rightBorder` /
|
||||
`bottomBorder` — по отдельности. Значение одинаковое у всех:
|
||||
|
||||
| Запись | Значение |
|
||||
|--------|----------|
|
||||
| `"Solid"` | Стиль линии, ширина 1 |
|
||||
| `{ "style": "Solid", "width": 2 }` | Стиль и ширина |
|
||||
|
||||
Стили линии: `None`, `Solid`, `Dotted`, `Dashed`, `DashDotted`, `DashDottedDotted`,
|
||||
`ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`. Конфигуратор предлагает разные наборы
|
||||
в разных местах — у рамки ячейки одни, у линии рисунка другие, — но палитра одна на документ.
|
||||
|
||||
Задавать стороны по отдельности можно всегда: если все четыре совпали, компилятор сам свернёт
|
||||
их в один `border` — так это хранит платформа.
|
||||
|
||||
```json
|
||||
"рамка-снизу": { "bottomBorder": "Dotted" },
|
||||
"рамка-вокруг": { "border": { "style": "Solid", "width": 2 } }
|
||||
```
|
||||
|
||||
## Колоночные раскладки (`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