Files
cc-1c-skills/tests/skills/cases/cfe-patch-method/module-created-flag.json
T
Nick ShirokovandClaude Opus 5 8fe727e32f feat(cfe-borrow,cfe-patch-method,cfe-validate): модули заимствованных объектов и пометка расширенного свойства
Объект заимствуют, чтобы дописать в него модуль, — теперь пустой файл модуля создаётся
навыком, а не руками. Тип с единственным модулем (CommonModule, HTTPService, WebService)
получает его без указаний, остальные — по -Module; -Module None отменяет. Существующий
файл не перезаписывается никогда.

Вместе с файлом проставляется <xr:PropertyState> со State=Extended. Замер по лестнице
платформ 8.3.20…8.5.1: элемент появился в формате 2.19 (8.3.26), ниже платформа молча
выбрасывает его при загрузке — отсюда гейт по версии формата. Имя свойства равно базовому
имени файла модуля, у заимствованной формы — Form. Правило владения одно: пометку ставит
тот, кто создал файл, поэтому её ставит и cfe-patch-method.

Заодно закрыта перезапись при повторном заимствовании: прямая ветка писала XML уже
заимствованного объекта начисто, унося собственные реквизиты расширения и регистрацию
формы, — молча, с успешным отчётом. Повторный вызов теперь безопасен и служит способом
дозаимствовать модуль.

cfe-validate сверяет «файл модуля ↔ пометка» в обе стороны (предупреждение: перекос
платформа принимает, но выгрузка Конфигуратора так не выглядит).

Проверено: полный регресс 827/0/8 (ps1) и 824/0/11 (py), гарды 5/5, сквозной раундтрип
на 8.3.26 и 8.3.27 — InternalInfo совпадает с выгрузкой платформы.

Закрывает #70. Разбор и эталоны выгрузки — Romandredan.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 20:59:39 +03:00

46 lines
1.5 KiB
JSON

{
"name": "Модуль создан перехватчиком — свойство помечено расширенным (2.20)",
"setup": "empty-config-220",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "CommonModule", "name": "ОбщийМодуль3", "properties": { "Server": true } },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"writeFile": {
"path": "CommonModules/ОбщийМодуль3/Ext/Module.bsl",
"content": "Процедура ОбновитьДанные(Отбор) Экспорт\n\tВозврат;\nКонецПроцедуры\n"
}
},
{
"script": "cfe-init/scripts/cfe-init",
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/cfe", "-ConfigPath": "{workDir}" }
},
{
"script": "cfe-borrow/scripts/cfe-borrow",
"args": {
"-ExtensionPath": "{workDir}/cfe",
"-ConfigPath": "{workDir}",
"-Object": "CommonModule.ОбщийМодуль3",
"-Module": "None"
}
}
],
"params": {
"extensionPath": "cfe",
"modulePath": "CommonModule.ОбщийМодуль3",
"methodName": "ОбновитьДанные",
"interceptorType": "After"
},
"expect": {
"stdoutContains": "&После(\"ОбновитьДанные\")",
"fileContains": [
{
"file": "cfe/CommonModules/ОбщийМодуль3.xml",
"text": ["<xr:Property>Module</xr:Property>", "<xr:State>Extended</xr:State>"]
}
]
}
}