mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
fix(meta-*): двоичные данные с длиной, корень реестра в py, ХранилищеЗначения в meta-info
Мелкие находки ревью, по одному кейсу на каждую: - meta-compile: BinaryData(N[,fixed|variable]) — фиксированная длина больше не теряется; голая форма по-прежнему 4294967292/Fixed, как её пишет платформа при импорте из СУБД. Посторонний текст в скобках (BinaryData(abc)) отвергается, а не даёт тихий безлимит — PS принимал его и молча подставлял дефолт, py такой тип не понимал вовсе. - meta-decompile: сворачивает в голый BinaryData только точное совпадение с этим дефолтом. - meta-info: xs:base64Binary без квалификаторов — вторая форма ХранилищаЗначения, а не двоичные данные; раньше два навыка читали один и тот же узел по-разному. - meta-remove (py): в ветке «файлов нет» корень реестра был жёстко Configuration, поэтому осиротевшая таблица внешнего источника не находилась и навык падал, тогда как PS её разрегистрировал. Сообщение в обоих портах теперь называет реальный реестр. Проверено: наборы meta-compile/decompile/info/remove/edit/validate зелёные в обоих рантаймах, гарды прошли, снэпшот eds-binary-data принят платформой 8.3.24.1691. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
co-authored by
Claude Opus 5
parent
7dc401718f
commit
a38f30c9dd
@@ -1,4 +1,4 @@
|
||||
# meta-decompile v0.66 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.67 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document,
|
||||
@@ -213,7 +213,12 @@ function Get-TypeShorthand {
|
||||
if ($bq) {
|
||||
$blen = $bq.SelectSingleNode('v8:Length', $nsm)
|
||||
$bal = $bq.SelectSingleNode('v8:AllowedLength', $nsm)
|
||||
if ($blen -and $bal -and $bal.InnerText -eq 'Variable') { $parts += "BinaryData($($blen.InnerText))" }
|
||||
$blenVal = if ($blen) { $blen.InnerText.Trim() } else { "" }
|
||||
$balVal = if ($bal) { $bal.InnerText.Trim() } else { "" }
|
||||
# Голым BinaryData сворачиваем ТОЛЬКО точный дефолт компилятора
|
||||
# (4294967292/Fixed), иначе фиксированная длина терялась на раундтрипе.
|
||||
if ($balVal -eq 'Variable' -and $blenVal) { $parts += "BinaryData($blenVal)" }
|
||||
elseif ($blenVal -and $blenVal -ne '4294967292') { $parts += "BinaryData($blenVal,fixed)" }
|
||||
else { $parts += 'BinaryData' }
|
||||
} else { $parts += 'ValueStorage' }
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user