From ccbd488d6375834dccdb5354511cf12964cae229 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 11 Aug 2026 17:32:56 +0300 Subject: [PATCH] =?UTF-8?q?fix(mxl-compile):=20=D1=83=20=D0=BD=D0=B5=D0=BE?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=8F=D1=87=D0=B5=D0=B9=D0=BA=D0=B8=20=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D0=B0=20=D0=BD=D0=B5=D1=82=20=D0=B2=D0=BE=D0=B2?= =?UTF-8?q?=D1=81=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ячейка без собственного оформления ссылалась на формат по умолчанию. Платформа в этом случае пишет 0, где ноль — не индекс записи, а «формата нет»: на корпусе так у 170 710 ячеек против 50 635, ссылающихся на умолчание, и 0 встречается в 71% макетов. Подтверждено контролируемым стендом: в макете, где колонкам заданы ширины, а ячейки ничем не оформлены, платформа пишет ячейкам ноль. На пилоте верхняя категория row[].cell[].fmt упала с 63 900 до 55 855 фактов, совпадение строк документа выросло с 16.7% до 17.5%. Co-Authored-By: Claude Opus 5 (1M context) --- .../mxl-compile/scripts/mxl-compile.ps1 | 11 +++++----- .../skills/mxl-compile/scripts/mxl-compile.py | 11 +++++----- .../snapshots/column-sets/Template.xml | 6 +++--- .../snapshots/column-styles/Template.xml | 2 +- .../Демо/Templates/Макет/Ext/Template.xml | 2 +- .../lenient-implicit-cols/Template.xml | 20 +++++++++---------- .../snapshots/lenient-key-case/Template.xml | 6 +++--- .../snapshots/minimal/Template.xml | 2 +- .../snapshots/named-areas-coords/Template.xml | 8 ++++---- .../Templates/Макет/Ext/Template.xml | 2 +- .../snapshots/shorthand-merges/Template.xml | 10 +++++----- .../snapshots/shorthand-rows/Template.xml | 8 ++++---- .../snapshots/simple-template/Template.xml | 6 +++--- .../snapshots/text-languages/Template.xml | 4 ++-- .../snapshots/text-multilang/Template.xml | 4 ++-- .../snapshots/unnamed-blocks/Template.xml | 8 ++++---- .../output-absolute-path/Template.xml | 4 ++-- .../roundtrip-templates/Template.xml | 2 +- .../roundtrip-text-languages/Template.xml | 4 ++-- .../snapshots/roundtrip/Template.xml | 6 +++--- .../snapshots/areas-and-params/Template.xml | 2 +- .../snapshots/template-overview/Template.xml | 6 +++--- .../mxl-info/snapshots/with-text/Template.xml | 8 ++++---- .../snapshots/valid-template/Template.xml | 6 +++--- 24 files changed, 73 insertions(+), 75 deletions(-) diff --git a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 index bcc1de1a..46766fd7 100644 --- a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 +++ b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 @@ -1,4 +1,4 @@ -# mxl-compile v1.31 — Compile 1C spreadsheet from JSON +# mxl-compile v1.32 — Compile 1C spreadsheet from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -787,12 +787,11 @@ function Get-FillType { function Register-CellFormat { param($styleName, [string]$fillType) $resolved = Resolve-Style -styleName $styleName -fillType $fillType - # Ячейка без собственного оформления ссылается на формат ПО УМОЛЧАНИЮ — так делает - # платформа: в её палитре у неоформленного макета один формат (ширина колонки), и все - # ячейки указывают на него. Мы же заводили каждой свой формат с 0, где ноль - # означает «шрифт не задан», то есть формат был пуст по смыслу. + # У ячейки без собственного оформления формата НЕТ вовсе: 0, где ноль — не индекс + # записи, а «формата нет». В корпусе так у 170 710 ячеек против 50 635, ссылающихся на + # формат по умолчанию; 0 встречается в 71% макетов. if ($resolved.Count -eq 1 -and $resolved['font'] -eq $fontMap["default"]) { - return $script:defaultFormatIndex + return 0 } return Register-Format $resolved } diff --git a/.claude/skills/mxl-compile/scripts/mxl-compile.py b/.claude/skills/mxl-compile/scripts/mxl-compile.py index baf1b430..34268487 100644 --- a/.claude/skills/mxl-compile/scripts/mxl-compile.py +++ b/.claude/skills/mxl-compile/scripts/mxl-compile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# mxl-compile v1.31 — Compile 1C spreadsheet from JSON +# mxl-compile v1.32 — Compile 1C spreadsheet from JSON # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import hashlib @@ -834,12 +834,11 @@ def main(): # Helper: register a cell format and return its index def register_cell_format(style_name, fill_type): resolved = resolve_style(style_name, fill_type) - # Ячейка без собственного оформления ссылается на формат ПО УМОЛЧАНИЮ — так делает - # платформа: в её палитре у неоформленного макета один формат (ширина колонки), и все - # ячейки указывают на него. Мы же заводили каждой свой формат с 0, где ноль - # означает «шрифт не задан», то есть формат был пуст по смыслу. + # У ячейки без собственного оформления формата НЕТ вовсе: 0, где ноль — не + # индекс записи, а «формата нет». В корпусе так у 170 710 ячеек против 50 635, + # ссылающихся на формат по умолчанию; 0 встречается в 71% макетов. if len(resolved) == 1 and resolved.get('font') == font_map.get('default', 0): - return default_format_index + return 0 return register_format(resolved) # --- 5.5. Шорткат строк: строка-массив ячеек --- diff --git a/tests/skills/cases/mxl-compile/snapshots/column-sets/Template.xml b/tests/skills/cases/mxl-compile/snapshots/column-sets/Template.xml index 406c81ee..16e47633 100644 --- a/tests/skills/cases/mxl-compile/snapshots/column-sets/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/column-sets/Template.xml @@ -57,7 +57,7 @@ - 1 + 0 ru @@ -68,7 +68,7 @@ - 1 + 0 ru @@ -79,7 +79,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/column-styles/Template.xml b/tests/skills/cases/mxl-compile/snapshots/column-styles/Template.xml index 00bea868..961a4e6c 100644 --- a/tests/skills/cases/mxl-compile/snapshots/column-styles/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/column-styles/Template.xml @@ -63,7 +63,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/guard-allow-external/print-forms/Демо/Templates/Макет/Ext/Template.xml b/tests/skills/cases/mxl-compile/snapshots/guard-allow-external/print-forms/Демо/Templates/Макет/Ext/Template.xml index b7224cf3..43c2069e 100644 --- a/tests/skills/cases/mxl-compile/snapshots/guard-allow-external/print-forms/Демо/Templates/Макет/Ext/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/guard-allow-external/print-forms/Демо/Templates/Макет/Ext/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/lenient-implicit-cols/Template.xml b/tests/skills/cases/mxl-compile/snapshots/lenient-implicit-cols/Template.xml index 011f8c59..5e162bf2 100644 --- a/tests/skills/cases/mxl-compile/snapshots/lenient-implicit-cols/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/lenient-implicit-cols/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru @@ -55,7 +55,7 @@ - 1 + 0 ru @@ -66,7 +66,7 @@ - 1 + 0 ru @@ -77,7 +77,7 @@ - 1 + 0 ru @@ -94,7 +94,7 @@ 1 - 1 + 0 ru @@ -105,7 +105,7 @@ - 1 + 0 ru @@ -121,7 +121,7 @@ - 1 + 0 ru @@ -133,7 +133,7 @@ 2 - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/lenient-key-case/Template.xml b/tests/skills/cases/mxl-compile/snapshots/lenient-key-case/Template.xml index b9f4ad0f..9730ab83 100644 --- a/tests/skills/cases/mxl-compile/snapshots/lenient-key-case/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/lenient-key-case/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/minimal/Template.xml b/tests/skills/cases/mxl-compile/snapshots/minimal/Template.xml index 03bd77c5..2ee2927a 100644 --- a/tests/skills/cases/mxl-compile/snapshots/minimal/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/minimal/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/named-areas-coords/Template.xml b/tests/skills/cases/mxl-compile/snapshots/named-areas-coords/Template.xml index 2f9994ac..9bbffb68 100644 --- a/tests/skills/cases/mxl-compile/snapshots/named-areas-coords/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/named-areas-coords/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru @@ -50,7 +50,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/nested-output-dir/Templates/Макет/Ext/Template.xml b/tests/skills/cases/mxl-compile/snapshots/nested-output-dir/Templates/Макет/Ext/Template.xml index 91f8a0d7..5b303f7f 100644 --- a/tests/skills/cases/mxl-compile/snapshots/nested-output-dir/Templates/Макет/Ext/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/nested-output-dir/Templates/Макет/Ext/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/shorthand-merges/Template.xml b/tests/skills/cases/mxl-compile/snapshots/shorthand-merges/Template.xml index c3cd9ec9..2f4de2ab 100644 --- a/tests/skills/cases/mxl-compile/snapshots/shorthand-merges/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/shorthand-merges/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -40,7 +40,7 @@ 3 - 1 + 0 ru @@ -57,7 +57,7 @@ 1 - 1 + 0 ru @@ -68,7 +68,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/shorthand-rows/Template.xml b/tests/skills/cases/mxl-compile/snapshots/shorthand-rows/Template.xml index eb891bd0..5c80071d 100644 --- a/tests/skills/cases/mxl-compile/snapshots/shorthand-rows/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/shorthand-rows/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru @@ -50,7 +50,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/simple-template/Template.xml b/tests/skills/cases/mxl-compile/snapshots/simple-template/Template.xml index b9f4ad0f..9730ab83 100644 --- a/tests/skills/cases/mxl-compile/snapshots/simple-template/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/simple-template/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/text-languages/Template.xml b/tests/skills/cases/mxl-compile/snapshots/text-languages/Template.xml index ee6b34ac..05fd4121 100644 --- a/tests/skills/cases/mxl-compile/snapshots/text-languages/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/text-languages/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -32,7 +32,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/text-multilang/Template.xml b/tests/skills/cases/mxl-compile/snapshots/text-multilang/Template.xml index 842b89dd..169d0d7a 100644 --- a/tests/skills/cases/mxl-compile/snapshots/text-multilang/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/text-multilang/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-compile/snapshots/unnamed-blocks/Template.xml b/tests/skills/cases/mxl-compile/snapshots/unnamed-blocks/Template.xml index b0158545..eaf2cd23 100644 --- a/tests/skills/cases/mxl-compile/snapshots/unnamed-blocks/Template.xml +++ b/tests/skills/cases/mxl-compile/snapshots/unnamed-blocks/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru @@ -55,7 +55,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-decompile/snapshots/output-absolute-path/Template.xml b/tests/skills/cases/mxl-decompile/snapshots/output-absolute-path/Template.xml index 66e88689..7d4eb860 100644 --- a/tests/skills/cases/mxl-decompile/snapshots/output-absolute-path/Template.xml +++ b/tests/skills/cases/mxl-decompile/snapshots/output-absolute-path/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-decompile/snapshots/roundtrip-templates/Template.xml b/tests/skills/cases/mxl-decompile/snapshots/roundtrip-templates/Template.xml index 930885a6..823de7b0 100644 --- a/tests/skills/cases/mxl-decompile/snapshots/roundtrip-templates/Template.xml +++ b/tests/skills/cases/mxl-decompile/snapshots/roundtrip-templates/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-decompile/snapshots/roundtrip-text-languages/Template.xml b/tests/skills/cases/mxl-decompile/snapshots/roundtrip-text-languages/Template.xml index fb6df7eb..85e9a3d6 100644 --- a/tests/skills/cases/mxl-decompile/snapshots/roundtrip-text-languages/Template.xml +++ b/tests/skills/cases/mxl-decompile/snapshots/roundtrip-text-languages/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -32,7 +32,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-decompile/snapshots/roundtrip/Template.xml b/tests/skills/cases/mxl-decompile/snapshots/roundtrip/Template.xml index b228338b..5a286987 100644 --- a/tests/skills/cases/mxl-decompile/snapshots/roundtrip/Template.xml +++ b/tests/skills/cases/mxl-decompile/snapshots/roundtrip/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-info/snapshots/areas-and-params/Template.xml b/tests/skills/cases/mxl-info/snapshots/areas-and-params/Template.xml index ea61d16b..020667c4 100644 --- a/tests/skills/cases/mxl-info/snapshots/areas-and-params/Template.xml +++ b/tests/skills/cases/mxl-info/snapshots/areas-and-params/Template.xml @@ -28,7 +28,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-info/snapshots/template-overview/Template.xml b/tests/skills/cases/mxl-info/snapshots/template-overview/Template.xml index fea711d0..fe6e83df 100644 --- a/tests/skills/cases/mxl-info/snapshots/template-overview/Template.xml +++ b/tests/skills/cases/mxl-info/snapshots/template-overview/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-info/snapshots/with-text/Template.xml b/tests/skills/cases/mxl-info/snapshots/with-text/Template.xml index b3f4f34c..0020bd0a 100644 --- a/tests/skills/cases/mxl-info/snapshots/with-text/Template.xml +++ b/tests/skills/cases/mxl-info/snapshots/with-text/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -44,7 +44,7 @@ - 1 + 0 ru @@ -55,7 +55,7 @@ - 1 + 0 ru @@ -66,7 +66,7 @@ - 1 + 0 ru diff --git a/tests/skills/cases/mxl-validate/snapshots/valid-template/Template.xml b/tests/skills/cases/mxl-validate/snapshots/valid-template/Template.xml index b228338b..5a286987 100644 --- a/tests/skills/cases/mxl-validate/snapshots/valid-template/Template.xml +++ b/tests/skills/cases/mxl-validate/snapshots/valid-template/Template.xml @@ -17,7 +17,7 @@ - 1 + 0 ru @@ -28,7 +28,7 @@ - 1 + 0 ru @@ -39,7 +39,7 @@ - 1 + 0 ru