mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-01 17:27:45 +03:00
Cell в rows теперь может быть либо string ("text"/"{param}"/"|"/">"/null),
либо объектом {value, style: "presetName"}. Object form применяется когда
стиль ячейки отличается от template default.
compile (ps1+py): helpers _get_cell_value / _get_cell_style_or_default.
Emit-AreaTemplateDSL / _emit_area_template_dsl используют per-cell style
для appearance вместо единого template style.
decompile: refactor Build-Template. Первый pass — собрать style name per
cell в cellStyleMap. Второй pass — выбрать template default как most
frequent style. Третий pass — обернуть в {value, style} ячейки, чьи
стили отличаются от default. TemplateStyleMismatch sentinel удалён —
теперь все случаи покрываются через inline override.
Дедуп при обоих pass'ах (Match-PresetByShape) работает через
effectivePresets (built-in + user + ранее аллоцированные customN), так
что одинаковые shape'ы получают одно имя.
Новый тест template-inline-cell-style (round-trip bit-perfect).
Versions: compile v1.32→v1.33, decompile v0.15→v0.16.
Метрики на момент коммита:
- ERP-сэмпл 30: 30/30 clean, 0 sentinel'ов
- Корпус из 40 отчётов целевого класса: 40/40 clean, 0 sentinel'ов
Закрывает категории A, B, C полностью на обоих корпусах.
27 lines
1.0 KiB
JSON
27 lines
1.0 KiB
JSON
{
|
|
"dataSets": [
|
|
{
|
|
"name": "Тест",
|
|
"query": "ВЫБРАТЬ * ИЗ Справочник.Сотрудники",
|
|
"fields": [
|
|
"Поле: string"
|
|
]
|
|
}
|
|
],
|
|
"templates": [
|
|
{
|
|
"name": "СмешанныйМакет",
|
|
"style": "data",
|
|
"rows": [
|
|
[
|
|
"A",
|
|
{
|
|
"value": "B",
|
|
"style": "header"
|
|
},
|
|
"C"
|
|
]
|
|
]
|
|
}
|
|
]
|
|
} |