mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-06 02:00:54 +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
@@ -260,6 +260,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',
|
||||
@@ -310,6 +321,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 = ''
|
||||
|
||||
Reference in New Issue
Block a user