mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +03:00
fix(meta-decompile): одноэлементный FixedArray choiceParameters терялся как скаляр (v0.33)
Get-ChoiceParamValue возвращал 1-элементный ArrayList → PowerShell разворачивал коллекцию при `return` в скаляр → FixedArray с одним элементом декомпилировался как скалярное значение → компилятор эмитил `app:value` вместо `v8:FixedArray`+`v8:Value`. Фикс: унарная запятая `return ,$arr`. Многоэлементные массивы не задевало (не разворачиваются). Компилятор на явном `["x"]` был корректен — баг чисто декомпиляторный. Роундтрип Document: Attribute>Value 54→0, TOTAL 166→94, match 109→118/151. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# meta-decompile v0.32 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.33 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document. Инверс meta-compile (omit-on-default: ключ эмитим только
|
||||
@@ -210,7 +210,7 @@ function Get-ChoiceParamValue {
|
||||
if ($xt -match 'FixedArray$') {
|
||||
$arr = [System.Collections.ArrayList]@()
|
||||
foreach ($sub in @($valNode.SelectNodes('v8:Value', $nsm))) { [void]$arr.Add((Convert-ChScalarNode $sub)) }
|
||||
return $arr
|
||||
return ,$arr # унарная запятая: PS иначе разворачивает 1-элементную коллекцию при return → FixedArray станет скаляром
|
||||
}
|
||||
return Convert-ChScalarNode $valNode
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user