Files
cc-1c-skills/tests/skills/cases/meta-compile/exchange-plan-content.json
T
Nick Shirokov 11e7abfc3f feat(meta-compile,meta-decompile): состав плана обмена — Content.xml (v1.42/v0.31)
Соседний Ext/Content.xml (состав плана обмена: объекты-участники + признак
авторегистрации) был вне скоупа раундтрипа → при декомпиляции→компиляции состав
терялся (компилятор писал пустой <ExchangePlanContent/>, декомпилятор не захватывал).

DSL content/Состав: массив MDObjectRef — строка "Type.Name" (AutoRecord=Deny,
дефолт) / "Type.Name: autoRecord" (Allow; токен-признак autoRecord/АвтоРегистрация,
регистронезав.; прощающе : Allow/: Разрешить) ЛИБО объект {metadata, autoRecord:
bool|Allow/Deny/Разрешить/Запретить} (синонимы Метаданные/объект, АвтоРегистрация).
Декомпилятор пишет короткую строковую форму.

Class-2 фикс заголовка: пустой <ExchangePlanContent/> писался с 2 namespace,
реальный 1С — с 4 (+xmlns:xs/xsi); чинил и пустой шаблон.

Роундтрип 42 ЭП (acc+erp): match 39/42, TOTAL 146 без новых диффов (остаток —
известный хвост TS-LineNumber/FillValue-пробелы). Регресс 48/48 ps1+py, ps1↔py
identical. 1С-cert ✓ (пустой 4-ns корень + непустой состав); verify-snapshots
расширен: getStructuralDeps стабит объекты состава ЭП по MDObjectRef + стаб Constant.
spec §7.2a, кейс exchange-plan-content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 12:55:08 +03:00

24 lines
1018 B
JSON

{
"name": "План обмена с составом (content)",
"input": {
"type": "ExchangePlan",
"name": "ОбменСФилиаламиСоставом",
"comment": "обмен с явным составом",
"content": [
"Catalog.Организации",
"InformationRegister.Курсы: autoRecord",
"Document.РеализацияТоваров: АвтоРегистрация",
{ "metadata": "Catalog.Номенклатура", "autoRecord": true },
{ "Метаданные": "Constant.ВалютаУчета", "АвтоРегистрация": "Разрешить" },
{ "metadata": "InformationRegister.ЦеныНоменклатуры", "autoRecord": false }
]
},
"validatePath": "ExchangePlans/ОбменСФилиаламиСоставом",
"expect": {
"files": [
"ExchangePlans/ОбменСФилиаламиСоставом.xml",
"ExchangePlans/ОбменСФилиаламиСоставом/Ext/Content.xml"
]
}
}