mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-06 10:10:52 +03:00
fix(db-*): пакетная команда в дополнительных аргументах отбивается
-AdditionalV8Arguments пропускал чужие пакетные команды платформы, а в одной командной строке DESIGNER выполняет только ПОСЛЕДНЮЮ из них, остальные молча отбрасывает. Проверено на 8.3.24: db-load-xml с /CheckCanApplyConfigurationExtensions в дополнительных аргументах печатал «Load completed successfully», возвращал 0 — и не загружал ничего, что подтвердилось выгрузкой расширения из базы. Assert-ExtraArgs отбивал только ключи, которыми навык владеет сам (V8OwnedKeys); рядом заведён V8BatchKeys — известные пакетные команды (/CheckConfig, /CheckModules, /CheckCanApplyConfigurationExtensions, /DumpDBCfgList, /DeleteCfg, /UpdateCfg, /CompareCfg, /MergeCfg, /ManageCfgSupport, /RollbackCfg, /ConvertFiles) — со своим сообщением: такая команда подменила бы операцию навыка. Обычные опции (/UseHwLicenses+ и прочие) проходят как раньше. Правка внесена во все 15 копий общего блока в обоих портах; тела Assert-ExtraArgs остались побайтно одинаковыми (у стаба epf-build сохранён его поток stderr). 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
057c1044d9
commit
5943828216
@@ -225,6 +225,17 @@ $script:V8OwnedKeys = @(
|
||||
'/DumpConfigToFiles', '/LoadConfigFromFiles', '/UpdateDBCfg',
|
||||
'/DumpExternalDataProcessorOrReportToFiles', '/LoadExternalDataProcessorOrReportFromFiles'
|
||||
)
|
||||
# Пакетные команды платформы. В одной командной строке DESIGNER выполняет ТОЛЬКО ПОСЛЕДНЮЮ,
|
||||
# остальные молча отбрасывает (проверено на 8.3.24: /LoadConfigFromFiles вместе с
|
||||
# /CheckCanApplyConfigurationExtensions завершились кодом 0 с пустым логом, и загрузка НЕ
|
||||
# состоялась). Такая команда в дополнительных аргументах подменяет собой операцию навыка, а навык
|
||||
# отчитывается успехом. Дополнительные аргументы — это опции, а не режимы.
|
||||
$script:V8BatchKeys = @(
|
||||
'/CheckConfig', '/CheckModules', '/CheckCanApplyConfigurationExtensions',
|
||||
'/DumpDBCfgList', '/DeleteCfg', '/UpdateCfg', '/CompareCfg', '/MergeCfg',
|
||||
'/ManageCfgSupport', '/RollbackCfg', '/ConvertFiles'
|
||||
)
|
||||
|
||||
$script:IbcmdOwnedKeys = @(
|
||||
'--db-path', '--data', '--out', '--file', '--load', '--restore',
|
||||
'--import', '--export', '--apply', '--force', '--create-database',
|
||||
@@ -275,6 +286,14 @@ function Assert-ExtraArgs {
|
||||
Write-Host "Error: '$tok' is a positional token — pass values as --key=value ($paramName cannot extend the ibcmd command)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
if ($Engine -ne 'ibcmd') {
|
||||
foreach ($b in $script:V8BatchKeys) {
|
||||
if (Test-ArgKeyMatch $tok $b) {
|
||||
Write-Host "Error: $b is a batch command; passed via $paramName it would replace the skill's own operation (a command line runs only its last batch command)" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($k in $owned) {
|
||||
if (Test-ArgKeyMatch $tok $k) {
|
||||
$hint = ''
|
||||
|
||||
@@ -67,6 +67,17 @@ V8_OWNED_KEYS = [
|
||||
"/DumpConfigToFiles", "/LoadConfigFromFiles", "/UpdateDBCfg",
|
||||
"/DumpExternalDataProcessorOrReportToFiles", "/LoadExternalDataProcessorOrReportFromFiles",
|
||||
]
|
||||
# Пакетные команды платформы. В одной командной строке DESIGNER выполняет ТОЛЬКО ПОСЛЕДНЮЮ,
|
||||
# остальные молча отбрасывает (проверено на 8.3.24: /LoadConfigFromFiles вместе с
|
||||
# /CheckCanApplyConfigurationExtensions завершились кодом 0 с пустым логом, и загрузка НЕ
|
||||
# состоялась). Такая команда в дополнительных аргументах подменяет собой операцию навыка, а навык
|
||||
# отчитывается успехом. Дополнительные аргументы — это опции, а не режимы.
|
||||
V8_BATCH_KEYS = [
|
||||
"/CheckConfig", "/CheckModules", "/CheckCanApplyConfigurationExtensions",
|
||||
"/DumpDBCfgList", "/DeleteCfg", "/UpdateCfg", "/CompareCfg", "/MergeCfg",
|
||||
"/ManageCfgSupport", "/RollbackCfg", "/ConvertFiles",
|
||||
]
|
||||
|
||||
IBCMD_OWNED_KEYS = [
|
||||
"--db-path", "--data", "--out", "--file", "--load", "--restore",
|
||||
"--import", "--export", "--apply", "--force", "--create-database",
|
||||
@@ -207,6 +218,14 @@ def assert_extra_args(extra, engine, hints):
|
||||
f"({param} cannot extend the ibcmd command)",
|
||||
)
|
||||
sys.exit(1)
|
||||
if engine != "ibcmd":
|
||||
for b in V8_BATCH_KEYS:
|
||||
if arg_key_match(tok, b):
|
||||
print(
|
||||
f"Error: {b} is a batch command; passed via {param} it would replace "
|
||||
f"the skill's own operation (a command line runs only its last batch command)",
|
||||
)
|
||||
sys.exit(1)
|
||||
for k in owned:
|
||||
if arg_key_match(tok, k):
|
||||
hint = f" (use {hints[k]})" if hints and k in hints else ""
|
||||
|
||||
Reference in New Issue
Block a user