Files
cc-1c-skills/tests/skills/cases/cfe-borrow/catalog-with-owner.json
T
Nick ShirokovandClaude Opus 5 83bb5b6fd3 fix(cfe-borrow): свойства и виды, от которых зависят стандартные поля
Сплошной прогон по типам объектов (11 минимальных объектных форм УТ, каждая
заимствована и загружена в UT_DEMO) дал три падения из одиннадцати. Все три —
один класс: в оболочке не хватает того, от чего зависит существование
стандартного поля, и платформа отвергает загрузку «Неверный путь к данным».

1. Справочник с владельцем: «Объект.Owner» не разрешается без <Owners>.
   Свойство — список <xr:Item>, а не скаляр, поэтому переносится фрагментом,
   как __TypeXml у DefinedType. Одного переноса мало: ссылка должна вести на
   объект, который в расширении есть, иначе платформа падает с access violation
   вместо сообщения. Добавлен общий проход, заимствующий владельцев (и владельцев
   владельцев) — Конфигуратор поступает так же, эталон Issue66Example7_1.

2. Регистр сведений: «Запись.Period» не разрешается без
   InformationRegisterPeriodicity. Вместе с ним переносится WriteMode, от
   которого зависит «Запись.Recorder» — Конфигуратор несёт оба, 6 эталонов из 6.

3. Задача: «Объект.Исполнитель» — это реквизит адресации, отдельный вид
   дочернего объекта. AddressingAttribute добавлен к видам, которые
   заимствуются поимённо, рядом с Dimension и Resource.

Правка сделана в Read-SourceObject и Build-BorrowedObjectXml — там, где оболочка
рождается: механизм $extraProps работает только в потоке -BorrowMainAttribute и
обычное заимствование оболочки не покрывает.

Проверено: те же 11 форм грузятся 11 из 11; ПВХ с путём «Объект.ValueType»
грузился и раньше — Конфигуратор Type и CharacteristicExtValues тоже не
переносит (эталон Issue66Example8), правило «свойство, включающее поле»
подтверждается с обеих сторон.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 19:43:23 +03:00

28 lines
1.1 KiB
JSON

{
"name": "Заимствование справочника с владельцем: Owners переносится, сам владелец заимствуется",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "Catalog", "name": "Договоры" },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "Catalog", "name": "Терминалы", "owners": ["Catalog.Договоры"] },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "cfe-init/scripts/cfe-init",
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
}
],
"params": { "extensionPath": "ext", "object": "Catalog.Терминалы" },
"expect": {
"fileContains": {
"file": "ext/Catalogs/Терминалы.xml",
"text": "<Owners><xr:Item xsi:type=\"xr:MDObjectRef\">Catalog.Договоры</xr:Item></Owners>"
},
"files": ["ext/Catalogs/Договоры.xml"]
}
}