diff --git a/README.md b/README.md index 974ed867..6e2365af 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/docs/1c-specs-index.md b/docs/1c-specs-index.md index 9278e086..0077625e 100644 --- a/docs/1c-specs-index.md +++ b/docs/1c-specs-index.md @@ -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) | diff --git a/docs/mxl-dsl-format-properties.md b/docs/mxl-dsl-format-properties.md deleted file mode 100644 index 7af4d710..00000000 --- a/docs/mxl-dsl-format-properties.md +++ /dev/null @@ -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` - (у ячейки такого свойства нет вовсе). diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index f1738cee..b8608cfd 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -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.`) + +| Поле | По умолч. | Описание | +|------|-----------|----------| +| `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.`) + +Ключ стиля — имя свойства так, как оно называется в выгрузке. Ниже частые; полный +перечень — в разделе «Полный список свойств стиля». + +| Поле | Описание | +|------|----------| +| `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 описывает не все конструкции табличного документа. Перечисленное ниже **теряется при diff --git a/docs/mxl-dsl-styles.md b/docs/mxl-dsl-styles.md deleted file mode 100644 index 416a1410..00000000 --- a/docs/mxl-dsl-styles.md +++ /dev/null @@ -1,147 +0,0 @@ -# Оформление: шрифты, стили, колонки - -Оформление в табличном документе — одна сущность на всех: ячейка, строка и колонка ссылаются -на один и тот же именованный стиль. Ячейка — ключом `style`, строка — `rowStyle`, колонка — -через `columnStyles`. - -## Шрифты (`fonts.`) - -| Поле | По умолч. | Описание | -|------|-----------|----------| -| `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.`) - -Ключ стиля — имя свойства так, как оно называется в выгрузке. Ниже частые; полный список -из 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` работает тот же ключ. Ширина и стиль независимы: колонка может иметь -только ширину, только стиль или и то, и другое.