fix(db-load-xml, db-update, db-load-git): предупреждение о тихом отказе — только при успехе платформы

Блок «[warning] platform reported success, but the log contains N problem(s)»
печатался при любом коде выхода. При провале (code ≠ 0) он стоял под
«Error … (code: N)» и называл провал успехом, а его строки повторяли лог,
который уже выведен целиком.

Блок задуман для случая, когда платформа сообщает об успехе, но в логе отказ, —
теперь он печатается только при code 0. При провале остаются строка ошибки и лог.
Список отказов в выжимке — только тихие отказы, а не все ошибки загрузки, поэтому
при провале он был бы ещё и неполным. -StrictLog не изменился.

Кейсы failed-load-no-success-warning (фейковая платформа, код 1, строка-отказ
в логе) — по одному на навык; на прежних скриптах падают. Все порты:
db-load-xml v1.33, db-update v1.23, db-load-git v1.31.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-27 17:31:51 +03:00
co-authored by Claude Opus 5.5
parent 38c32fb903
commit bdf7902e6a
9 changed files with 154 additions and 18 deletions
@@ -1,4 +1,4 @@
# db-load-git v1.30 — Load Git changes into 1C database
# db-load-git v1.31 — Load Git changes into 1C database
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# NB: *nix-раскладку платформы (/opt/1cv8/<ver>/1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется.
<#
@@ -1051,10 +1051,12 @@ try {
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
# про -StrictLog не даём: операция уже выполнена, повторять её ради того же текста незачем.
$silentFailures = @(Find-SilentRejections $logContent)
if ($silentFailures.Count -gt 0) {
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
if ($exitCode -eq 0 -and $silentFailures.Count -gt 0) {
Write-Host "[warning] platform reported success, but the log contains $($silentFailures.Count) problem(s):" -ForegroundColor Yellow
foreach ($f in $silentFailures) { Write-Host " $f" -ForegroundColor Yellow }
if ($StrictLog -and $exitCode -eq 0) { $exitCode = 1 }
if ($StrictLog) { $exitCode = 1 }
}
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.