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:
Nick Shirokov
2026-09-06 19:11:29 +03:00
co-authored by Claude Opus 5
parent 7dc401718f
commit a38f30c9dd
29 changed files with 1660 additions and 36 deletions
+15 -3
View File
@@ -2080,9 +2080,21 @@ ChildObjects и модулей.
]
```
Допустимые типы поля: `Number`, `String`, `Date`, `Boolean`, `UUID`, `BinaryData` (и `BinaryData(N)`
с ограничением длины) и ссылка на таблицу внешнего источника —
`ExternalDataSourceTableRef.<Источник>.<Таблица>`.
Допустимые типы поля: `Number`, `String`, `Date`, `Boolean`, `UUID`, `BinaryData` и ссылка на таблицу
внешнего источника — `ExternalDataSourceTableRef.<Источник>.<Таблица>`.
Формы `BinaryData`:
| Запись | Length | AllowedLength |
|---|---|---|
| `BinaryData` | 4294967292 | Fixed |
| `BinaryData(N)` | N | Variable |
| `BinaryData(N,fixed)` | N | Fixed |
| `BinaryData(N,variable)` | N | Variable |
Голая форма — то, что пишет платформа при импорте поля из СУБД. Декомпилятор
сворачивает в неё только точное совпадение 4294967292/Fixed; любая другая длина возвращается
со скобками. Посторонний текст в скобках (`BinaryData(abc)`) — ошибка компиляции.
`BinaryData` (ДвоичныеДанные) — **не** `ValueStorage`: платформа пишет его как `xs:base64Binary`
с `BinaryDataQualifiers`, тогда как ХранилищеЗначения — как `v8:ValueStorage`. Декомпилятор