mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-21 12:11:02 +03:00
Навык переписан в v2.0: вместо шаблона-заглушки читает оригинал метода из конфигурации-источника и генерирует корректный каркас. Генерация: - новый -ConfigPath (опционален, если ModulePath — путь к файлу .bsl модуля); - наследование директивы контекста, полной сигнатуры, обрамляющих #Если и #Область (в исходном порядке; регион переиспользуется, если уже есть); - тип Instead (&Вместо с ПродолжитьВызов); гвард: Before/After только для процедур; - ModAndControl копирует всё тело оригинала; - воздух (пустые строки) вокруг структурных границ и между методами; - имя с суффиксом типа только при коллизии; - убраны -Context/-IsFunction (выводятся из оригинала). Актуализация (повторный ModAndControl): предок восстанавливается из маркеров, однозначные правки #Вставка/#Удаление переносятся авто, спорные — [РЕСИНК-КОНФЛИКТ] плюс файлы-версии v1/v2/current/diff. Статусы АКТУАЛЕН/АКТУАЛИЗИРОВАН/ЧАСТИЧНО. Паритет ps1<->py (raw-кириллица в .py). Тесты: 12 кейсов, оба рантайма зелёные. runner.mjs: шаг writeFile теперь делает mkdir -p. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
45 lines
2.2 KiB
JSON
45 lines
2.2 KiB
JSON
{
|
|
"name": "Перехватчик После для метода формы (директива контекста &НаКлиенте)",
|
|
"preRun": [
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": { "type": "Catalog", "name": "Товары", "attributes": [ { "name": "Артикул", "type": "String", "length": 25 } ] },
|
|
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
|
|
},
|
|
{
|
|
"script": "form-add/scripts/form-add",
|
|
"args": { "-ObjectPath": "{workDir}/Catalogs/Товары.xml", "-FormName": "ФормаЭлемента" }
|
|
},
|
|
{
|
|
"script": "form-compile/scripts/form-compile",
|
|
"input": {
|
|
"title": "Тест",
|
|
"elements": [ { "input": "Артикул", "path": "Объект.Артикул" } ],
|
|
"attributes": [ { "name": "Объект", "type": "CatalogObject.Товары", "main": true } ]
|
|
},
|
|
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "{workDir}/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml" }
|
|
},
|
|
{
|
|
"writeFile": {
|
|
"path": "Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form/Module.bsl",
|
|
"content": "#Область ОбработчикиСобытийФормы\n\n&НаКлиенте\nПроцедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)\n\tОповеститьОбИзменении(Источник);\nКонецПроцедуры\n\n#КонецОбласти\n"
|
|
}
|
|
},
|
|
{
|
|
"script": "cfe-init/scripts/cfe-init",
|
|
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
|
|
},
|
|
{
|
|
"script": "cfe-borrow/scripts/cfe-borrow",
|
|
"args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "Catalog.Товары.Form.ФормаЭлемента" }
|
|
}
|
|
],
|
|
"params": {
|
|
"extensionPath": "ext",
|
|
"modulePath": "Catalog.Товары.Form.ФормаЭлемента",
|
|
"methodName": "ОбработкаОповещения",
|
|
"interceptorType": "After"
|
|
},
|
|
"expect": { "stdoutContains": "Контекст: &НаКлиенте" }
|
|
}
|