mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-17 00:30:23 +03:00
fix(mxl-compile,mxl-decompile): не терять колонку, объявленную без формата
Платформа иногда перечисляет колонку в раскладке с <formatIndex>0</formatIndex> — колонка объявлена, формата у неё нет (4% макетов корпуса). Компилятор такие опускал, декомпилятор их не видел, и элемент терялся целиком. Выражается пустым значением в columnStyles. Для авторинга это бесполезно — ни одна задача не звучит как «объяви колонку без свойств», — поэтому в описании DSL записи нет: она нужна только чтобы раундтрип не терял байты. На пилоте потери в категории colset[].col[].formatIndex упали с 39 до 35. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4e389d0ef1
commit
3c7f7345bb
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# mxl-decompile v1.11 — Decompile 1C spreadsheet to JSON
|
||||
# mxl-decompile v1.12 — Decompile 1C spreadsheet to JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -747,6 +747,11 @@ def main():
|
||||
"""Колонки раскладки, у которых формат несёт не только ширину, — «колонка → стиль»."""
|
||||
out = OrderedDict()
|
||||
for col, fi in cs["FmtIdx"].items():
|
||||
if fi == 0:
|
||||
# Колонка перечислена, формата у неё нет. Для авторинга бесполезно, но без
|
||||
# этого раундтрип теряет элемент целиком.
|
||||
out[col] = None
|
||||
continue
|
||||
fmt = get_format(fi)
|
||||
if fmt and style_props(fmt):
|
||||
out[col] = get_style_name(fi)
|
||||
|
||||
Reference in New Issue
Block a user