Files
cc-1c-skills/.opencode/skills/mxl-compile/reference/styles.md
T

7.2 KiB
Raw Blame History

Оформление: шрифты, стили, колонки

Оформление в табличном документе — одна сущность на всех: ячейка, строка и колонка ссылаются на один и тот же именованный стиль. Ячейка — ключом style, строка — rowStyle, колонка — через columnStyles.

Шрифты (fonts.<name>)

Поле По умолч. Описание
face "Arial" Имя шрифта
size 10 Размер (бывает дробным: 8.3)
bold false Жирный
italic false Курсив
underline false Подчёркнутый
strikeout false Зачёркнутый

Шрифт "default" используется, когда стиль не указывает шрифт явно. Если не определён, создаётся автоматически (Arial 10).

Вместо собственного описания шрифт может быть ссылкой — на элемент стиля конфигурации или на системный шрифт. Тогда у него единственное поле:

"fonts": {
  "основной":  { "ref": "style:TextFont" },
  "системный": { "ref": "sys:DefaultGUIFont" }
}

Это та же запись, что у шрифта в описании формы.

Стили (styles.<name>)

Ключ стиля — имя свойства так, как оно называется в выгрузке. Ниже частые; полный список из 44 свойств — в 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" равнозначны.

"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 } Стиль и ширина

Стили линии: Solid, None, Dotted, ThinDashed, LargeDashed, ThickDashed, Double.

Задавать стороны по отдельности можно всегда: если все четыре совпали, компилятор сам свернёт их в один border — так это хранит платформа.

"рамка-снизу":  { "bottomBorder": "Dotted" },
"рамка-вокруг": { "border": { "style": "Solid", "width": 2 } }

Колоночные раскладки (columnSets)

Группа строк может иметь собственные ширины колонок — в 1С это «индивидуальная ширина колонок». Документные columns и columnWidths описывают раскладку по умолчанию; дополнительные объявляются в columnSets, а область ссылается на нужную ключом columnSet — так же, как ячейка ссылается на styles через style.

{
  "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; значение — имя стиля.

"columnWidths": { "1": 30, "2-3": 15 },
"columnStyles": { "1": "по-центру", "4": "скрытая" }

Внутри columnSets работает тот же ключ. Ширина и стиль независимы: колонка может иметь только ширину, только стиль или и то, и другое.