Files
cc-1c-skills/tests/skills/cases/cfe-patch-method/actualize-params.json
T
Nick ShirokovandClaude Opus 5 d4832ce363 fix(cfe-patch-method): -Check ловит расхождение списка параметров
-Check сравнивал только тело и сигнатуру не смотрел вовсе. Если поставщик добавил
методу параметр, а тело не изменил (новый параметр часто ещё не используется),
платформа перехватчик отвергает — «Список параметров метода "X" не соответствует
методу "Y"» — а -Check говорил АКТУАЛЕН, и починка не запускалась.

Замер на стенде (8.3.24, /CheckCanApplyConfigurationExtensions + рантайм): платформа
сверяет только ЧИСЛО параметров. Имена, значения по умолчанию и лишний Экспорт не
сравнивает; дефолты копии вдобавок не действуют — берутся из оригинала. Поэтому
сверяем количество и ничего сверх того, иначе получили бы ложный дрейф там, где
платформа молчит.

Число параметров считается существующим Split-TopLevel по ParamsText обеих сторон;
при расхождении метод идёт обычной веткой дрейфа со статусом ДРЕЙФ и причиной
«список параметров: в оригинале N, в перехватчике M». -Actualize починку уже умел:
он собирает строку сигнатуры заново из оригинала — не запускался только потому, что
-Check не звал.

Кейсы: расхождение числа (ДРЕЙФ), переименованные параметры с другим дефолтом
(АКТУАЛЕН, как у платформы) и -Actualize, переписывающий список параметров.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
2026-08-30 19:17:18 +03:00

58 lines
1.8 KiB
JSON

{
"name": "-Actualize: список параметров перехватчика переписывается по оригиналу",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "CommonModule",
"name": "БатчМод",
"context": "server"
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"writeFile": {
"path": "CommonModules/БатчМод/Ext/Module.bsl",
"content": "#Область ПрограммныйИнтерфейс\n\nФункция Расчёт(А, Б = 5) Экспорт\n\tХ = 1;\n\tВозврат Х;\nКонецФункции\n\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.БатчМод"
}
},
{
"writeFile": {
"path": "cfe/CommonModules/БатчМод/Ext/Module.bsl",
"content": "#Область ПрограммныйИнтерфейс\n&ИзменениеИКонтроль(\"Расчёт\")\nФункция Тест_Расчёт(А)\n\tХ = 1;\n\tВозврат Х;\nКонецФункции\n#КонецОбласти\n"
}
}
],
"params": {
"extensionPath": "cfe"
},
"args_extra": [
"-Actualize"
],
"expect": {
"fileContains": {
"file": "cfe/CommonModules/БатчМод/Ext/Module.bsl",
"text": "Функция Тест_Расчёт(А, Б = 5)"
}
}
}