feat(skd-decompile): fail-fast (Ring 3) для отчётов без dataSet

Служебные отчёты-обёртки содержат только settingsVariant с outputParameters
(МакетОформления и подобное) и используются для динамического заполнения
из кода. Compile требует ≥1 dataSet, и весь DSL заточен под data-driven
отчёты — раньше decompile проходил, но compile падал с exit 1.

Теперь decompile fail-fast (exit 3, ring3 skip) — это правильнее
классифицирует такие отчёты в verify-roundtrip как "не поддерживается"
вместо "compile сломался".

См. C:/WS/projects/titan/src/cfe/Титан2/Reports/
ккСправкаРасчетРезервыПоСомнительнымДолгам.
This commit is contained in:
Nick Shirokov
2026-05-24 19:12:11 +03:00
parent dd02dcf3c4
commit 4630af463f
@@ -1,4 +1,4 @@
# skd-decompile v0.81 — Decompile 1C DCS Template.xml to JSON DSL (draft)
# skd-decompile v0.82 — Decompile 1C DCS Template.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -91,6 +91,13 @@ foreach ($ns_el in $xmlDoc.SelectNodes("//*[local-name()='nestedSchema']")) {
Fail-Ring3 -kind "nestedSchema (вложенные подсхемы)" -loc "nestedSchema"
}
# Пустые dataSets — отчёт без источника данных (только settingsVariant с outputParameters).
# Такие отчёты валидны (динамическое заполнение из кода), но compile требует ≥1 dataSet,
# и весь DSL заточен под data-driven отчёты — fail-fast.
if ($xmlDoc.SelectNodes("//*[local-name()='dataSet']").Count -eq 0) {
Fail-Ring3 -kind "отчёт без dataSet (служебный шаблон-обёртка)" -loc "DataCompositionSchema/dataSet"
}
# --- 2. Warnings accumulator ---
$script:warnings = @()