fix(skd-info): -Mode full на схеме без DataSetQuery

Show-Query/show_query при отсутствии DataSetQuery делал exit 1, что
обрывало full режим после Show-Overview — секции fields/resources/
params/variant пользователь не видел. Теперь в full проверяем наличие
Query-набора и при отсутствии печатаем "(no query datasets)" и
продолжаем. Прямой -Mode query сохраняет прежнее поведение.

Воспроизводилось на схемах-приёмниках с одним DataSetObject
(например, ЖурналОшибок в ERP).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-04-25 16:38:57 +03:00
co-authored by Claude Opus 4.7
parent b3c2602439
commit eda7279de0
3 changed files with 30 additions and 4 deletions
+3 -2
View File
@@ -1,4 +1,4 @@
# skd-info v1.1 — Analyze 1C DCS structure
# skd-info v1.2 — Analyze 1C DCS structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory=$true)]
@@ -1349,7 +1349,8 @@ if ($Mode -eq "variant") {
elseif ($Mode -eq "full") {
Show-Overview
$lines.Add(""); $lines.Add("--- query ---"); $lines.Add("")
Show-Query
$hasQuery = $root.SelectNodes("descendant::s:dataSet[@xsi:type='DataSetQuery']", $ns).Count -gt 0
if ($hasQuery) { Show-Query } else { $lines.Add("(no query datasets)") }
$lines.Add(""); $lines.Add("--- fields ---"); $lines.Add("")
Show-Fields
$lines.Add(""); $lines.Add("--- resources ---"); $lines.Add("")
+5 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# skd-info v1.1 — Analyze 1C DCS structure
# skd-info v1.2 — Analyze 1C DCS structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -1662,7 +1662,10 @@ def main():
lines.append("")
lines.append("--- query ---")
lines.append("")
show_query()
if root.findall(".//s:dataSet[@xsi:type='DataSetQuery']", NSMAP):
show_query()
else:
lines.append("(no query datasets)")
lines.append("")
lines.append("--- fields ---")
lines.append("")
@@ -0,0 +1,22 @@
{
"name": "Полный режим на схеме без Query (только DataSetObject)",
"args_extra": ["-Mode", "full"],
"preRun": [
{
"script": "skd-compile/scripts/skd-compile",
"input": {
"dataSets": [{
"name": "ВнешниеДанные",
"objectName": "ЖурналОшибок",
"fields": [
{ "field": "ТекстСообщения", "title": "Текст сообщения", "type": "string(150)" },
{ "field": "Расшифровка", "title": "Описание", "type": "CatalogRef.Контрагенты" }
]
}]
},
"args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
}
],
"params": { "templatePath": "Template.xml" },
"expect": { "stdoutContains": "ВнешниеДанные" }
}