mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-11 20:50:52 +03:00
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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
112166dc0c
commit
83bb5b6fd3
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user