Files
cc-1c-skills/tests/skills/cases/meta-compile/catalog-inputbystring-datalock.json
T
Nick ShirokovandClaude Opus 5 66d45d3654 fix(meta-compile): нормализация MDObjectRef — CatalogRef./русская запись → Catalog.
MDObjectRef ссылается на ОБЪЕКТ метаданных (Catalog.Валюты), а не на тип ссылки.
Эмиттеры пропускали значение как есть, если в нём была точка, поэтому
"CatalogRef.Валюты" доходил до XML без изменений → при загрузке конфигурации
платформа отвечала «Неизвестный объект метаданных».

Инструкция вела в баг сама: reference/catalog.md документировал
owners: ["CatalogRef.Контрагенты"]. Тестами не ловилось — все кейсы
использовали каноническую форму.

- Normalize-MDObjectRef расширена ссылочными формами (англ. *Ref + рус. *Ссылка);
  вида метаданных, оканчивающегося на Ref, не существует → схлопывание однозначно.
  В ТИПАХ реквизитов запись CatalogRef.X верна — там мапа не применяется.
- Добавлен параметр defaultRoot (голое имя без точки), инлайн-подстановка
  "Catalog.$ownerRef" в owners убрана — логика теперь в одном месте.
- Нормализация применена в 4 местах, где её не было: owners, basedOn,
  registerRecords, baseCalculationTypes.
- Кейс catalog-inputbystring-datalock переведён на неканонический вход:
  снэпшот не изменился ни на байт — прямое доказательство нормализации.

Регресс 73/73 ps1+py, полная сюита 566/566. Живая проверка на 8.3.27:
подчинённый справочник с owners CatalogRef./СправочникСсылка. грузится чисто.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 14:26:55 +03:00

23 lines
1019 B
JSON

{
"name": "InputByString / DataLockFields / BasedOn каталога (+нормализация MDObjectRef: CatalogRef./рус. → Catalog.)",
"input": {
"type": "Catalog",
"name": "ДоговорыКонтрагентов",
"owners": ["CatalogRef.Контрагенты"],
"codeLength": 11,
"descriptionLength": 100,
"inputByString": ["Код", "Наименование", "НомерДоговора"],
"dataLockFields": ["Организация", "Контрагент", "Владелец"],
"basedOn": ["Справочник.Контрагенты", "DocumentRef.ЗаказПоставщику"],
"attributes": [
"Организация: CatalogRef.Организации",
"Контрагент: CatalogRef.Контрагенты",
"НомерДоговора: String(20) | index"
]
},
"validatePath": "Catalogs/ДоговорыКонтрагентов",
"expect": {
"files": ["Catalogs/ДоговорыКонтрагентов.xml"]
}
}