fix(skd-compile): object-form structure, OrGroup string items, useRestriction alias

- Default structure item type to 'group' when omitted; accept groupFields as alias for groupBy
- Parse string shorthand items inside OrGroup/AndGroup/NotGroup filter recursion
- Accept useRestriction key (object form { field: true }) alongside restrict array
- Deduplicate SelectedItemAuto in skd-edit add-selection
- Update SKILL.md with object structure and useRestriction docs
- Add test cases for all 4 fixes

skd-compile v1.9→v1.10, skd-edit v1.8→v1.9

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-04-09 14:54:38 +03:00
co-authored by Claude Opus 4.6
parent 46e065adb9
commit 384e68cab4
14 changed files with 582 additions and 35 deletions
@@ -0,0 +1,33 @@
{
"name": "Объектная форма structure с name, groupFields, children, selection",
"params": { "outputPath": "Template.xml" },
"input": {
"dataSets": [{
"name": "Основной",
"query": "ВЫБРАТЬ Т.Организация, Т.Номенклатура, Т.Количество, Т.Сумма ИЗ Регистр КАК Т",
"fields": ["Организация", "Номенклатура", "Количество: decimal(15,3)", "Сумма: decimal(15,2)"]
}],
"settingsVariants": [{
"name": "Основной",
"settings": {
"structure": [
{
"name": "ПоОрганизациям",
"groupFields": ["Организация"],
"selection": ["Организация", "Сумма"],
"children": [
{
"groupFields": ["Номенклатура"],
"selection": ["Номенклатура", "Количество", "Сумма"]
}
]
}
]
}
}]
},
"validatePath": "Template.xml",
"expect": {
"files": ["Template.xml"]
}
}