mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-08 03:00:52 +03:00
fix(meta-info,meta-decompile): xs:base64Binary без квалификаторов — двоичные данные, не хранилище
Вчерашняя правка исходила из того, что xs:base64Binary без BinaryDataQualifiers — вторая форма ХранилищаЗначения. Спросили платформу: конфигурация с таким узлом загружается и выгружается обратно как xs:base64Binary с Length 0 / AllowedLength Variable, то есть как БЕЗЛИМИТНЫЕ двоичные данные. ХранилищеЗначения — отдельный узел v8:ValueStorage. - meta-info: xs:base64Binary снова всегда ДвоичныеДанные (правка отменена, замер записан в комментарий). - meta-decompile: узел без квалификаторов теперь возвращается как BinaryData(0), а не ValueStorage — раньше раундтрип молча менял тип реквизита. Проверено: пересборка из полученного DSL даёт байт в байт то же, что выгрузила платформа. - Кейс и фикстура переименованы по факту и стали полной конфигурацией: теперь кейс доезжает до платформы в verify-snapshots (раньше падал с «конфигурации для загрузки нет»). check-uuid-invariant: добавлен сценарий внешнего источника — правки идут в два файла, и пересборка файла источника дала бы ему новый uuid, осиротив существующие таблицы. Проверка не холостая: намеренная порча uuid источника гард роняет. 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
b4bc02bc98
commit
11c0450d2a
@@ -2096,9 +2096,12 @@ ChildObjects и модулей.
|
||||
сворачивает в неё только точное совпадение 4294967292/Fixed; любая другая длина возвращается
|
||||
со скобками. Посторонний текст в скобках (`BinaryData(abc)`) — ошибка компиляции.
|
||||
|
||||
`BinaryData` (ДвоичныеДанные) — **не** `ValueStorage`: платформа пишет его как `xs:base64Binary`
|
||||
с `BinaryDataQualifiers`, тогда как ХранилищеЗначения — как `v8:ValueStorage`. Декомпилятор
|
||||
различает их по наличию квалификаторов.
|
||||
`BinaryData` (ДвоичныеДанные) — **не** `ValueStorage`: это разные типы и разные узлы XML —
|
||||
`xs:base64Binary` и `v8:ValueStorage` соответственно. Квалификаторы их НЕ различают: `xs:base64Binary`
|
||||
без `BinaryDataQualifiers` — тоже двоичные данные, просто безлимитные. Замерено на 8.3.24.1691:
|
||||
такой узел загружается и выгружается обратно как `Length 0` / `AllowedLength Variable`, то есть
|
||||
`BinaryData(0)` — именно так его возвращает декомпилятор. Рукописный XML — единственное место,
|
||||
где узел без квалификаторов встречается: сама платформа их пишет всегда.
|
||||
|
||||
**Составной тип у поля платформа запрещает** — при загрузке отвечает «Поле не может иметь составной
|
||||
тип», хотя «Руководство разработчика» (17.5.2.3.4) его разрешает. Документация опережает реализацию.
|
||||
|
||||
Reference in New Issue
Block a user