diff --git a/.claude/skills/skd-edit/scripts/skd-edit.ps1 b/.claude/skills/skd-edit/scripts/skd-edit.ps1
index f7430037..05dacc58 100644
--- a/.claude/skills/skd-edit/scripts/skd-edit.ps1
+++ b/.claude/skills/skd-edit/scripts/skd-edit.ps1
@@ -1893,8 +1893,10 @@ switch ($Operation) {
if ($groupName) {
# Find named StructureItemGroup
$dcssetNs = "http://v8.1c.ru/8.1/data-composition-system/settings"
+ $xsiNs = "http://www.w3.org/2001/XMLSchema-instance"
$nsMgr = New-Object System.Xml.XmlNamespaceManager($xmlDoc.NameTable)
$nsMgr.AddNamespace("dcsset", $dcssetNs)
+ $nsMgr.AddNamespace("xsi", $xsiNs)
$groupEl = $settings.SelectSingleNode(".//dcsset:item[@xsi:type='dcsset:StructureItemGroup'][dcsset:name='$groupName']", $nsMgr)
if (-not $groupEl) {
Write-Host "[WARN] StructureItemGroup `"$groupName`" not found — adding to variant level"
diff --git a/tests/skills/cases/skd-compile/available-values-and-folders.json b/tests/skills/cases/skd-compile/available-values-and-folders.json
new file mode 100644
index 00000000..9605231f
--- /dev/null
+++ b/tests/skills/cases/skd-compile/available-values-and-folders.json
@@ -0,0 +1,48 @@
+{
+ "name": "availableValues, denyIncompleteValues, Folder в selection",
+ "params": { "outputPath": "Template.xml" },
+ "input": {
+ "dataSets": [{
+ "name": "Основной",
+ "query": "ВЫБРАТЬ Т.Счет, Т.Остаток, Т.Поступление1, Т.Поступление2, Т.Выбытие1, Т.Выбытие2 ИЗ Регистр КАК Т",
+ "fields": ["Счет: string", "Остаток: decimal(15,2)", "Поступление1: decimal(15,2)", "Поступление2: decimal(15,2)", "Выбытие1: decimal(15,2)", "Выбытие2: decimal(15,2)"]
+ }],
+ "parameters": [{
+ "name": "ПорядокОкругления",
+ "type": "EnumRef.Округления",
+ "value": "Перечисление.Округления.Окр1_00",
+ "use": "Always",
+ "denyIncompleteValues": true,
+ "availableValues": [
+ {"value": "Перечисление.Округления.Окр1_00", "presentation": "руб. коп"},
+ {"value": "Перечисление.Округления.Окр1", "presentation": "руб."},
+ {"value": "Перечисление.Округления.Окр1000", "presentation": "тыс. руб"}
+ ]
+ }],
+ "settingsVariants": [{
+ "name": "Основной",
+ "settings": {
+ "selection": [
+ "Auto",
+ "Счет",
+ "Остаток",
+ {"folder": "Поступление", "items": ["Поступление1", "Поступление2"]},
+ {"folder": "Выбытие", "items": ["Выбытие1", "Выбытие2"]}
+ ],
+ "structure": {
+ "type": "group",
+ "name": "ДанныеОтчета",
+ "groupBy": ["Счет"],
+ "selection": [
+ "Auto",
+ {"folder": "Поступление", "items": ["Поступление1", "Поступление2"]}
+ ]
+ }
+ }
+ }]
+ },
+ "validatePath": "Template.xml",
+ "expect": {
+ "files": ["Template.xml"]
+ }
+}
diff --git a/tests/skills/cases/skd-compile/snapshots/available-values-and-folders/Template.xml b/tests/skills/cases/skd-compile/snapshots/available-values-and-folders/Template.xml
new file mode 100644
index 00000000..45bf05ca
--- /dev/null
+++ b/tests/skills/cases/skd-compile/snapshots/available-values-and-folders/Template.xml
@@ -0,0 +1,208 @@
+
+
+
+ ИсточникДанных1
+ Local
+
+
+ Основной
+
+ Счет
+ Счет
+
+ xs:string
+
+ 0
+ Variable
+
+
+
+
+ Остаток
+ Остаток
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Поступление1
+ Поступление1
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Поступление2
+ Поступление2
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Выбытие1
+ Выбытие1
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Выбытие2
+ Выбытие2
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+ ИсточникДанных1
+ ВЫБРАТЬ Т.Счет, Т.Остаток, Т.Поступление1, Т.Поступление2, Т.Выбытие1, Т.Выбытие2 ИЗ Регистр КАК Т
+
+
+ ПорядокОкругления
+
+ d5p1:EnumRef.Округления
+
+ Перечисление.Округления.Окр1_00
+
+ Перечисление.Округления.Окр1_00
+
+
+ ru
+ руб. коп
+
+
+
+
+ Перечисление.Округления.Окр1
+
+
+ ru
+ руб.
+
+
+
+
+ Перечисление.Округления.Окр1000
+
+
+ ru
+ тыс. руб
+
+
+
+ true
+
+
+
+ Основной
+
+
+ ru
+ Основной
+
+
+
+
+
+ Счет
+
+
+ Остаток
+
+
+
+
+ ru
+ Поступление
+
+
+
+ Поступление1
+
+
+ Поступление2
+
+ Auto
+
+
+
+
+ ru
+ Выбытие
+
+
+
+ Выбытие1
+
+
+ Выбытие2
+
+ Auto
+
+
+
+ ДанныеОтчета
+
+
+ Счет
+ Items
+ None
+ 0001-01-01T00:00:00
+ 0001-01-01T00:00:00
+
+
+
+
+
+
+
+
+
+
+ ru
+ Поступление
+
+
+
+ Поступление1
+
+
+ Поступление2
+
+ Auto
+
+
+
+
+
+
diff --git a/tests/skills/cases/skd-edit/conditional-appearance-v2.json b/tests/skills/cases/skd-edit/conditional-appearance-v2.json
new file mode 100644
index 00000000..43901275
--- /dev/null
+++ b/tests/skills/cases/skd-edit/conditional-appearance-v2.json
@@ -0,0 +1,22 @@
+{
+ "name": "conditionalAppearance: DesignTimeValue, Format, OrGroup",
+ "preRun": [
+ {
+ "script": "skd-compile/scripts/skd-compile",
+ "input": {
+ "dataSets": [{
+ "name": "Основной",
+ "query": "ВЫБРАТЬ Т.Сумма ИЗ Регистр КАК Т",
+ "fields": ["Сумма: decimal(15,2)"]
+ }],
+ "parameters": ["ПорядокОкругления: string"]
+ },
+ "args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
+ }
+ ],
+ "params": {
+ "templatePath": "Template.xml",
+ "operation": "add-conditionalAppearance",
+ "value": "Формат = ЧЦ=15; ЧДЦ=2 when ПараметрыДанных.ПорядокОкругления = Перечисление.Округления.Окр1_00 ;; Формат = ЧЦ=15; ЧДЦ=0 when ПараметрыДанных.ПорядокОкругления = Перечисление.Округления.Окр1 or ПараметрыДанных.ПорядокОкругления = Перечисление.Округления.Окр1000"
+ }
+}
diff --git a/tests/skills/cases/skd-edit/modify-parameter.json b/tests/skills/cases/skd-edit/modify-parameter.json
new file mode 100644
index 00000000..05309342
--- /dev/null
+++ b/tests/skills/cases/skd-edit/modify-parameter.json
@@ -0,0 +1,22 @@
+{
+ "name": "modify-parameter: use, denyIncompleteValues, availableValue",
+ "preRun": [
+ {
+ "script": "skd-compile/scripts/skd-compile",
+ "input": {
+ "dataSets": [{
+ "name": "Основной",
+ "query": "ВЫБРАТЬ Т.Сумма ИЗ Регистр КАК Т",
+ "fields": ["Сумма: decimal(15,2)"]
+ }],
+ "parameters": [{"name": "ПорядокОкругления", "type": "string", "value": "Окр1_00"}]
+ },
+ "args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
+ }
+ ],
+ "params": {
+ "templatePath": "Template.xml",
+ "operation": "modify-parameter",
+ "value": "ПорядокОкругления use=Always ;; ПорядокОкругления denyIncompleteValues=true ;; ПорядокОкругления availableValue=Перечисление.Округления.Окр1_00 presentation=руб. коп ;; ПорядокОкругления availableValue=Перечисление.Округления.Окр1 presentation=руб."
+ }
+}
diff --git a/tests/skills/cases/skd-edit/set-structure-named.json b/tests/skills/cases/skd-edit/set-structure-named.json
new file mode 100644
index 00000000..d2231ee6
--- /dev/null
+++ b/tests/skills/cases/skd-edit/set-structure-named.json
@@ -0,0 +1,25 @@
+{
+ "name": "set-structure с @name= и Folder в selection + @group=",
+ "preRun": [
+ {
+ "script": "skd-compile/scripts/skd-compile",
+ "input": {
+ "dataSets": [{
+ "name": "Основной",
+ "query": "ВЫБРАТЬ Т.Счет, Т.Поступление1, Т.Поступление2, Т.Выбытие1 ИЗ Регистр КАК Т",
+ "fields": ["Счет: string", "Поступление1: decimal(15,2)", "Поступление2: decimal(15,2)", "Выбытие1: decimal(15,2)"]
+ }]
+ },
+ "args": { "-DefinitionFile": "{inputFile}", "-OutputPath": "{workDir}/Template.xml" }
+ },
+ {
+ "script": "skd-edit/scripts/skd-edit",
+ "args": { "-TemplatePath": "{workDir}/Template.xml", "-Operation": "set-structure", "-Value": "Счет @name=ДанныеОтчета" }
+ }
+ ],
+ "params": {
+ "templatePath": "Template.xml",
+ "operation": "add-selection",
+ "value": "Auto @group=ДанныеОтчета ;; Счет @group=ДанныеОтчета ;; Folder(Поступление: Поступление1, Поступление2) @group=ДанныеОтчета ;; Выбытие1 @group=ДанныеОтчета"
+ }
+}
diff --git a/tests/skills/cases/skd-edit/snapshots/conditional-appearance-v2/Template.xml b/tests/skills/cases/skd-edit/snapshots/conditional-appearance-v2/Template.xml
new file mode 100644
index 00000000..4f068625
--- /dev/null
+++ b/tests/skills/cases/skd-edit/snapshots/conditional-appearance-v2/Template.xml
@@ -0,0 +1,107 @@
+
+
+
+ ИсточникДанных1
+ Local
+
+
+ Основной
+
+ Сумма
+ Сумма
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+ ИсточникДанных1
+ ВЫБРАТЬ Т.Сумма ИЗ Регистр КАК Т
+
+
+ ПорядокОкругления
+
+ xs:string
+
+ 0
+ Variable
+
+
+
+
+ Основной
+
+
+ ru
+ Основной
+
+
+
+
+
+
+
+
+
+
+ ПараметрыДанных.ПорядокОкругления
+ Equal
+ Перечисление.Округления.Окр1_00
+
+
+
+
+ Формат
+
+
+ ru
+ ЧЦ=15; ЧДЦ=2
+
+
+
+
+
+
+
+
+
+ OrGroup
+
+ ПараметрыДанных.ПорядокОкругления
+ Equal
+ Перечисление.Округления.Окр1
+
+
+ ПараметрыДанных.ПорядокОкругления
+ Equal
+ Перечисление.Округления.Окр1000
+
+
+
+
+
+ Формат
+
+
+ ru
+ ЧЦ=15; ЧДЦ=0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/skills/cases/skd-edit/snapshots/modify-parameter/Template.xml b/tests/skills/cases/skd-edit/snapshots/modify-parameter/Template.xml
new file mode 100644
index 00000000..a2fde25a
--- /dev/null
+++ b/tests/skills/cases/skd-edit/snapshots/modify-parameter/Template.xml
@@ -0,0 +1,76 @@
+
+
+
+ ИсточникДанных1
+ Local
+
+
+ Основной
+
+ Сумма
+ Сумма
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+ ИсточникДанных1
+ ВЫБРАТЬ Т.Сумма ИЗ Регистр КАК Т
+
+
+ ПорядокОкругления
+
+ xs:string
+
+ 0
+ Variable
+
+
+ Окр1_00
+ true
+
+
+ Перечисление.Округления.Окр1_00
+
+
+ ru
+ руб. коп
+
+
+
+
+ Перечисление.Округления.Окр1
+
+
+ ru
+ руб.
+
+
+
+
+
+ Основной
+
+
+ ru
+ Основной
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/skills/cases/skd-edit/snapshots/set-structure-named/Template.xml b/tests/skills/cases/skd-edit/snapshots/set-structure-named/Template.xml
new file mode 100644
index 00000000..b04acea4
--- /dev/null
+++ b/tests/skills/cases/skd-edit/snapshots/set-structure-named/Template.xml
@@ -0,0 +1,112 @@
+
+
+
+ ИсточникДанных1
+ Local
+
+
+ Основной
+
+ Счет
+ Счет
+
+ xs:string
+
+ 0
+ Variable
+
+
+
+
+ Поступление1
+ Поступление1
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Поступление2
+ Поступление2
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ Выбытие1
+ Выбытие1
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+ ИсточникДанных1
+ ВЫБРАТЬ Т.Счет, Т.Поступление1, Т.Поступление2, Т.Выбытие1 ИЗ Регистр КАК Т
+
+
+ Основной
+
+
+ ru
+ Основной
+
+
+
+
+ ДанныеОтчета
+
+
+ Счет
+ Items
+ None
+ 0001-01-01T00:00:00
+ 0001-01-01T00:00:00
+
+
+
+
+
+
+
+
+
+ Счет
+
+
+
+
+ ru
+ Поступление
+
+
+
+ Поступление1
+
+
+ Поступление2
+
+ Auto
+
+
+ Выбытие1
+
+
+
+
+
+
+
+