mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 17:20:22 +03:00
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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
89f65ca6a6
commit
8fe727e32f
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"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>"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user