mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-20 18:19:43 +03:00
fix(mxl-decompile): не писать style по умолчанию, чинить потерю стиля при rowStyle
Одно условие делает две вещи. Сокращение: у 56% ячеек (19 737 из 35 190) стоял "style": "default", хотя компилятор и так подставляет default, когда ключа нет и у строки нет rowStyle. Чистый шум; объём декомпилированного JSON на пилоте упал на 7%. Починка: при ЗАДАННОМ rowStyle ячейка со стилем default, которая его не наследует, теряла стиль вовсе — условие содержало -not rowStyleName, — и при обратной сборке такая ячейка наследовала rowStyle вместо своего умолчания. Проверка на потери: из 40 макетов пилота 23 собрались байт в байт как прежде. У 17 XML изменился, и это разобрано поячеечно: во всех 181 разошедшейся ячейке НИ ОДНА версия не совпадает с оригиналом — там backColor, фон ячейки, который DSL не поддерживает вовсе (числится в ограничениях). То есть правка переключает между двумя одинаково неверными отображениями неподдерживаемой конструкции, не улучшая и не ухудшая совпадение: фактов, совпавших с оригиналом, было 8183 и осталось 8183. Проверено: тесты 54/54 на обоих рантаймах. Дрейф снэпшота один и ожидаемый — из back.json ушёл "style": "default". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1e06e43e92
commit
a9697b613d
@@ -1,4 +1,4 @@
|
|||||||
# mxl-decompile v1.6 — Decompile 1C spreadsheet to JSON
|
# mxl-decompile v1.7 — Decompile 1C spreadsheet to JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
@@ -638,8 +638,13 @@ foreach ($area in $blocks) {
|
|||||||
if ($rowStyleKey -and $cellStyleKey -eq $rowStyleKey) {
|
if ($rowStyleKey -and $cellStyleKey -eq $rowStyleKey) {
|
||||||
# Inherits rowStyle
|
# Inherits rowStyle
|
||||||
} else {
|
} else {
|
||||||
|
# Стиль пишем, только когда он отличается от того, что подставит компилятор:
|
||||||
|
# без rowStyle умолчание и есть "default", поэтому такой ключ — шум (56% ячеек).
|
||||||
|
# А при заданном rowStyle стиль "default" писать ОБЯЗАТЕЛЬНО: раньше здесь стояло
|
||||||
|
# `-not $rowStyleName`, и такая ячейка теряла стиль вовсе — при обратной сборке
|
||||||
|
# она наследовала rowStyle.
|
||||||
$sn = Get-StyleName $cell.FormatIdx
|
$sn = Get-StyleName $cell.FormatIdx
|
||||||
if ($sn -ne "default" -or -not $rowStyleName) {
|
if ($sn -ne "default" -or $rowStyleName) {
|
||||||
$dslCell["style"] = $sn
|
$dslCell["style"] = $sn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# mxl-decompile v1.6 — Decompile 1C spreadsheet to JSON
|
# mxl-decompile v1.7 — Decompile 1C spreadsheet to JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -807,8 +807,13 @@ def main():
|
|||||||
if row_style_key and cell_style_key == row_style_key:
|
if row_style_key and cell_style_key == row_style_key:
|
||||||
pass # Inherits rowStyle
|
pass # Inherits rowStyle
|
||||||
else:
|
else:
|
||||||
|
# Стиль пишем, только когда он отличается от того, что подставит компилятор:
|
||||||
|
# без rowStyle умолчание и есть "default", поэтому такой ключ — шум (56% ячеек).
|
||||||
|
# А при заданном rowStyle стиль "default" писать ОБЯЗАТЕЛЬНО: раньше здесь было
|
||||||
|
# `not row_style_name`, и такая ячейка теряла стиль вовсе — при обратной сборке
|
||||||
|
# она наследовала rowStyle.
|
||||||
sn = get_style_name(cell["FormatIdx"])
|
sn = get_style_name(cell["FormatIdx"])
|
||||||
if sn != "default" or not row_style_name:
|
if sn != "default" or row_style_name:
|
||||||
dsl_cell["style"] = sn
|
dsl_cell["style"] = sn
|
||||||
|
|
||||||
# Content
|
# Content
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{ "columns": 2, "defaultWidth": 10, "fonts": { "default": { "face": "Arial", "size": 10 } }, "styles": {}, "areas": [{ "name": "Test", "rows": [{ "cells": [{ "col": 1, "style": "default", "text": "A" }, { "col": 2, "style": "default", "text": "B" }] }] }] }
|
{ "columns": 2, "defaultWidth": 10, "fonts": { "default": { "face": "Arial", "size": 10 } }, "styles": {}, "areas": [{ "name": "Test", "rows": [{ "cells": [{ "col": 1, "text": "A" }, { "col": 2, "text": "B" }] }] }] }
|
||||||
Reference in New Issue
Block a user