mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-01 16:00:51 +03:00
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
This commit is contained in:
co-authored by
Claude Opus 5
parent
533dd0ded4
commit
d4832ce363
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "-Check: у оригинала прибавился параметр, тело не менялось — дрейф (платформа такой перехватчик отвергает)",
|
||||
"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": [
|
||||
"-Check"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": "ДРЕЙФ"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user