From 4630af463f369eb9eaacf2515eb96672bdc2e314 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 24 May 2026 19:12:11 +0300 Subject: [PATCH] =?UTF-8?q?feat(skd-decompile):=20fail-fast=20(Ring=203)?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B1=D0=B5=D0=B7=20dataSet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Служебные отчёты-обёртки содержат только 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/ ккСправкаРасчетРезервыПоСомнительнымДолгам. --- .claude/skills/skd-decompile/scripts/skd-decompile.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 index a730370d..672f9565 100644 --- a/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 +++ b/.claude/skills/skd-decompile/scripts/skd-decompile.ps1 @@ -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 = @()