mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-03 10:10:21 +03:00
fix(meta-compile,meta-decompile): не-дефолтный TypeReductionMode измерения и nil в FixedArray
Раундтрип по документам и регистрам УТ (1283 объекта) вскрыл два пробела. TypeReductionMode измерения РС: декомпилятор значение захватывал, но парсер измерения в компиляторе не переносил ключ дальше, и любое отклонение от дефолта молча заменялось на TransformValues. Так терялось третье значение свойства — DeleteData («Удалять данные»); всего у свойства три режима: Преобразовывать значения (дефолт), Удалять данные, Запрещать. Синтетика на матрице платформ: DeleteData принимается и переживает роундтрип на 8.3.25, 8.3.26 и 8.3.27 — порог тот же, что у самого свойства (2.18). nil-элемент внутри FixedArray (<v8:Value xsi:nil="true"/>) декомпилировался пустой строкой, компилятор эмитил xs:string. Теперь это JSON null в обе стороны. Конструкция не новая — есть уже в дампе 8.3.20. Спеки: у TypeReductionMode перечислены все три значения с названиями из конфигуратора; версия появления исправлена с 2.20 на 2.18. Проверка: УТ tier-1 1283 объекта -> 1280 совпадений (было 1273), сюита meta-compile 76/76 на обоих портах. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
75e861da6e
commit
3d5c9e5bee
@@ -466,12 +466,13 @@ LineNumber дефолтные. Ключ `lineNumber` на объектной ф
|
||||
|
||||
В `standardAttributes` указывают **только отклонения** от профиля (переопределение синонима, нетиповой fillChecking и т.п.).
|
||||
|
||||
**Формат 2.20 — `TypeReductionMode`** (режим приведения типов). Платформа 8.3.27 пишет его каждому
|
||||
стандартному реквизиту; значение выводится компилятором и в DSL обычно не указывается:
|
||||
**Формат 2.18 — `TypeReductionMode`** (режим приведения типов). Платформа начиная с 8.3.25 пишет его
|
||||
каждому стандартному реквизиту; значение выводится компилятором и в DSL обычно не указывается:
|
||||
`TransformValues` для всех, кроме `Owner` — там `Deny`. Ключ `TypeReductionMode` в override оставлен
|
||||
на случай отклонения от этого правила (правило выведено на корпусе acc; при расхождении в другой
|
||||
конфигурации значение можно задать явно). У измерений регистра сведений действует то же свойство —
|
||||
ключ реквизита `typeReductionMode` (дефолт `TransformValues`). В формате 2.17 тег не эмитится.
|
||||
ключ реквизита `typeReductionMode` (дефолт `TransformValues`). Третье значение — `DeleteData`
|
||||
(редкое: 7 измерений на всю УТ 11.5.27). В формате 2.17 тег не эмитится.
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user