fix(skd): multilang в calcField appearance и selection lwsTitle + hidden combo

Найдено через новый debug-tool debug/skd-decompile/verify-roundtrip.ps1
(XML→decompile→compile→diff на сэмпле 30 ERP).

1. Emit-CalcFields appearance: третий дубликат-emitter с тем же
   multilang-багом как был в Emit-AppearanceValue для field/cond. Унифи-
   цирован через Emit-AppearanceValue. (compile.ps1+py)

2. Emit-SelectionItem: lwsTitle для folder + field-with-title
   эмитили "$($item.folder)" — для hashtable получали "@{ru=X; en=Y}".
   Унифицирован через Emit-MLText с новой опцией -NoXsiType
   (lwsTitle в оригинале без xsi:type, в отличие от <title> в fields).
   (compile.ps1+py)

3. Build-Parameter hidden detection: combo availableAsField=false +
   useRestriction=true. Только availableAsField=false (без
   useRestriction) → object form `availableAsField: false`.

На сэмпле 30 ERP roundtrip-diff: ADDED <content> 667 → 129
(multilang-потери в selection закрыты). Остаточные LOST <item> ~10k —
другие потери (attributeUseRestriction и проч.) — отдельная задача.

Versions: compile v1.35→v1.36, decompile v0.20→v0.21.
This commit is contained in:
Nick Shirokov
2026-05-21 21:50:46 +03:00
parent 8b71054478
commit c3a8a9c874
20 changed files with 69 additions and 314 deletions
@@ -1,15 +1 @@
{
"myHeader": {
"font": "Calibri",
"fontSize": 11,
"bold": false,
"italic": false,
"hAlign": "Center",
"vAlign": "Center",
"wrap": false,
"bgColor": "style:ReportHeaderBackColor",
"textColor": null,
"borderColor": "style:ReportLineColor",
"borders": true
}
}
{ "myHeader": { "font": "Calibri", "fontSize": 11, "bold": false, "italic": false, "hAlign": "Center", "vAlign": "Center", "wrap": false, "bgColor": "style:ReportHeaderBackColor", "textColor": null, "borderColor": "style:ReportLineColor", "borders": true } }