fix(mxl-compile): перечни узоров и стилей линии были выборкой, а не доменом

Оба списка снимались с корпуса ERP и потому отвергали законные значения.
Узоров платформа знает семнадцать («Узор 1» … «Узор 17»), а в корпусе
встречаются только шесть номеров — Pattern4 компилятор отклонял.

Со стилями линии тоньше: палитра одна на документ, но Конфигуратор
предлагает разные наборы в разных местах. У рамки ячейки семь значений
(корпус их покрывал), у линии рисунка — шесть других, и трёх из них
(Dashed, DashDotted, DashDottedDotted) в корпусе нет ни одной. Домен —
объединение обоих наборов.

Обе поправки сняты с диалогов Конфигуратора, а не додуманы по образцу.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-15 18:30:41 +03:00
co-authored by Claude Opus 5
parent b32bb5899b
commit 9a1353a1d9
6 changed files with 22 additions and 11 deletions
@@ -34,7 +34,7 @@
| Ключ | Тип | Значение |
|------|-----|----------|
| `backColor` | цвет | Цвет фона |
| `pattern` | перечисление | `Solid`, `WithoutPattern`, `Pattern7`, `Pattern10`, `Pattern12`, `Pattern13`, `Pattern14`, `Pattern16` |
| `pattern` | перечисление | `WithoutPattern`, `Solid`, `Pattern1``Pattern17` (в Конфигураторе «Узор 1» … «Узор 17») |
| `patternColor` | цвет | Цвет узора |
| `border` | линия | Все четыре стороны |
| `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | линия | Отдельная сторона |
@@ -89,7 +89,9 @@
| `"Solid"` | Стиль линии, ширина 1 |
| `{ "style": "Solid", "width": 2 }` | Стиль и ширина |
Стили линии: `Solid`, `None`, `Dotted`, `ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`.
Стили линии: `None`, `Solid`, `Dotted`, `Dashed`, `DashDotted`, `DashDottedDotted`,
`ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`. Конфигуратор предлагает разные наборы
в разных местах — у рамки ячейки одни, у линии рисунка другие, — но палитра одна на документ.
Задавать стороны по отдельности можно всегда: если все четыре совпали, компилятор сам свернёт
их в один `border` — так это хранит платформа.
@@ -1,4 +1,4 @@
# mxl-compile v1.46 — Compile 1C spreadsheet from JSON
# mxl-compile v1.47 — Compile 1C spreadsheet from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -302,8 +302,11 @@ function Register-Line {
}
function Get-LineStyles {
# Стили линии, встречающиеся в палитрах корпуса.
return @('Solid', 'None', 'Dotted', 'ThinDashed', 'LargeDashed', 'ThickDashed', 'Double')
# Палитра линий одна на документ, а Конфигуратор предлагает РАЗНЫЕ наборы: у рамки ячейки
# свой (сплошная, точечная, штриховые, двойная), у линии рисунка свой (пунктирная,
# пунктирно-точечная, точечно-пунктирно-точечная). Домен — объединение: перечень, снятый
# только с корпуса, отвергал стили рисунков.
return @('None', 'Solid', 'Dashed', 'Dotted', 'DashDotted', 'DashDottedDotted', 'ThinDashed', 'LargeDashed', 'ThickDashed', 'Double')
}
# --- 4. Parse column width specs ---
@@ -1048,7 +1051,8 @@ function Get-FormatEnumValues {
'detailsUse' = @('Cell', 'Row', 'WithoutProcessing')
'fillType' = @('Parameter', 'Template', 'Text')
'horizontalAlignment' = @('Auto', 'Center', 'Justify', 'Left', 'Right')
'pattern' = @('Pattern7', 'Pattern10', 'Pattern12', 'Pattern13', 'Pattern14', 'Pattern16', 'Solid', 'WithoutPattern')
# Узоры платформа нумерует подряд, без семантических имён: «Узор 1» … «Узор 17».
'pattern' = @('WithoutPattern', 'Solid', 'Pattern1', 'Pattern2', 'Pattern3', 'Pattern4', 'Pattern5', 'Pattern6', 'Pattern7', 'Pattern8', 'Pattern9', 'Pattern10', 'Pattern11', 'Pattern12', 'Pattern13', 'Pattern14', 'Pattern15', 'Pattern16', 'Pattern17')
'picHorizontalAlignment' = @('Auto', 'Center', 'Left', 'Right')
'picVerticalAlignment' = @('Bottom', 'Center', 'Top')
'pictureSizeMode' = @('AutoSize', 'Proportionally', 'RealSize')
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# mxl-compile v1.46 — Compile 1C spreadsheet from JSON
# mxl-compile v1.47 — Compile 1C spreadsheet from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import hashlib
@@ -417,8 +417,11 @@ def style_key_synonyms():
def line_styles():
"""Стили линии, встречающиеся в палитрах корпуса."""
return ['Solid', 'None', 'Dotted', 'ThinDashed', 'LargeDashed', 'ThickDashed', 'Double']
"""Палитра линий одна на документ, а Конфигуратор предлагает РАЗНЫЕ наборы: у рамки
ячейки свой (сплошная, точечная, штриховые, двойная), у линии рисунка свой
(пунктирная, пунктирно-точечная, точечно-пунктирно-точечная). Домен — объединение:
перечень, снятый только с корпуса, отвергал стили рисунков."""
return ['None', 'Solid', 'Dashed', 'Dotted', 'DashDotted', 'DashDottedDotted', 'ThinDashed', 'LargeDashed', 'ThickDashed', 'Double']
def color_namespace(val):
+1 -1
View File
@@ -34,7 +34,7 @@
| Ключ | Тип | Значение |
|------|-----|----------|
| `backColor` | цвет | Цвет фона |
| `pattern` | перечисление | `Solid`, `WithoutPattern`, `Pattern7`, `Pattern10`, `Pattern12`, `Pattern13`, `Pattern14`, `Pattern16` |
| `pattern` | перечисление | `WithoutPattern`, `Solid`, `Pattern1``Pattern17` (в Конфигураторе «Узор 1» … «Узор 17») |
| `patternColor` | цвет | Цвет узора |
| `border` | линия | Все четыре стороны |
| `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | линия | Отдельная сторона |
+3 -1
View File
@@ -89,7 +89,9 @@
| `"Solid"` | Стиль линии, ширина 1 |
| `{ "style": "Solid", "width": 2 }` | Стиль и ширина |
Стили линии: `Solid`, `None`, `Dotted`, `ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`.
Стили линии: `None`, `Solid`, `Dotted`, `Dashed`, `DashDotted`, `DashDottedDotted`,
`ThinDashed`, `LargeDashed`, `ThickDashed`, `Double`. Конфигуратор предлагает разные наборы
в разных местах — у рамки ячейки одни, у линии рисунка другие, — но палитра одна на документ.
Задавать стороны по отдельности можно всегда: если все четыре совпали, компилятор сам свернёт
их в один `border` — так это хранит платформа.