diff --git a/.claude/skills/skd-compile/scripts/skd-compile.ps1 b/.claude/skills/skd-compile/scripts/skd-compile.ps1
index a250d357..ff40fd6a 100644
--- a/.claude/skills/skd-compile/scripts/skd-compile.ps1
+++ b/.claude/skills/skd-compile/scripts/skd-compile.ps1
@@ -1,4 +1,4 @@
-# skd-compile v1.37 — Compile 1C DCS from JSON
+# skd-compile v1.38 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -122,6 +122,15 @@ function Resolve-QueryValue {
function Emit-MLText {
param([string]$tag, $text, [string]$indent, [switch]$NoXsiType)
+ # Empty value → self-closing tag (matches platform output)
+ if ($null -eq $text -or ($text -is [string] -and $text -eq '')) {
+ if ($NoXsiType) {
+ X "$indent<$tag/>"
+ } else {
+ X "$indent<$tag xsi:type=`"v8:LocalStringType`"/>"
+ }
+ return
+ }
if ($NoXsiType) {
X "$indent<$tag>"
} else {
@@ -1870,11 +1879,14 @@ function Emit-SelectionItem {
if ($item.title) {
Emit-MLText -tag "dcsset:lwsTitle" -text $item.title -indent "$indent`t" -NoXsiType
}
+ if ($item.viewMode) {
+ X "$indent`t$(Esc-Xml "$($item.viewMode)")"
+ }
X "$indent"
}
function Emit-Selection {
- param($items, [string]$indent, [switch]$skipAuto)
+ param($items, [string]$indent, [switch]$skipAuto, $blockViewMode = $null)
if (-not $items -or $items.Count -eq 0) { return }
@@ -1883,6 +1895,9 @@ function Emit-Selection {
if ($skipAuto -and ($item -is [string]) -and $item -eq 'Auto') { continue }
Emit-SelectionItem -item $item -indent "$indent`t"
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
@@ -1971,7 +1986,7 @@ function Emit-FilterItem {
}
function Emit-Filter {
- param($items, [string]$indent)
+ param($items, [string]$indent, $blockViewMode = $null)
if (-not $items -or $items.Count -eq 0) { return }
@@ -2003,11 +2018,14 @@ function Emit-Filter {
Emit-FilterItem -item $item -indent "$indent`t"
}
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
function Emit-Order {
- param($items, [string]$indent, [switch]$skipAuto)
+ param($items, [string]$indent, [switch]$skipAuto, $blockViewMode = $null)
if (-not $items -or $items.Count -eq 0) { return }
@@ -2029,8 +2047,28 @@ function Emit-Order {
X "$indent`t`t$dir"
X "$indent`t"
}
+ } else {
+ # Object form: { field, direction, viewMode }
+ if ($item.field -eq "Auto" -or $item.type -eq "auto") {
+ if (-not $skipAuto) {
+ X "$indent`t"
+ }
+ continue
+ }
+ $dir = if ($item.direction) { "$($item.direction)" } else { "Asc" }
+ if ($dir -match '^(?i)desc$') { $dir = "Desc" } elseif ($dir -match '^(?i)asc$') { $dir = "Asc" }
+ X "$indent`t"
+ X "$indent`t`t$(Esc-Xml "$($item.field)")"
+ X "$indent`t`t$dir"
+ if ($item.viewMode) {
+ X "$indent`t`t$(Esc-Xml "$($item.viewMode)")"
+ }
+ X "$indent`t"
}
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
@@ -2071,7 +2109,7 @@ function Emit-AppearanceValue {
}
function Emit-ConditionalAppearance {
- param($items, [string]$indent)
+ param($items, [string]$indent, $blockViewMode = $null)
if (-not $items -or $items.Count -eq 0) { return }
@@ -2124,11 +2162,14 @@ function Emit-ConditionalAppearance {
X "$indent`t"
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
function Emit-OutputParameters {
- param($params, [string]$indent)
+ param($params, [string]$indent, $blockViewMode = $null)
if (-not $params) { return }
@@ -2152,11 +2193,14 @@ function Emit-OutputParameters {
}
X "$indent`t"
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
function Emit-DataParameters {
- param($items, [string]$indent)
+ param($items, [string]$indent, $blockViewMode = $null)
if (-not $items -or $items.Count -eq 0) { return }
@@ -2242,6 +2286,9 @@ function Emit-DataParameters {
X "$indent`t"
}
+ if ($null -ne $blockViewMode) {
+ X "$indent`t$(Esc-Xml "$blockViewMode")"
+ }
X "$indent"
}
@@ -2333,15 +2380,13 @@ function Emit-StructureItem {
$gb = if ($item.groupBy) { $item.groupBy } else { $item.groupFields }
Emit-GroupItems -groupBy $gb -indent "$indent`t"
- # Default order to ["Auto"] if not specified
- $orderItems = $item.order
- if (-not $orderItems) { $orderItems = @("Auto") }
- Emit-Order -items $orderItems -indent "$indent`t"
-
- # Default selection to ["Auto"] if not specified
- $selItems = $item.selection
- if (-not $selItems) { $selItems = @("Auto") }
- Emit-Selection -items $selItems -indent "$indent`t"
+ # Emit order/selection only if specified — platform doesn't always emit them on group
+ if ($item.order) {
+ Emit-Order -items $item.order -indent "$indent`t"
+ }
+ if ($item.selection) {
+ Emit-Selection -items $item.selection -indent "$indent`t"
+ }
Emit-Filter -items $item.filter -indent "$indent`t"
@@ -2356,6 +2401,16 @@ function Emit-StructureItem {
}
}
+ # viewMode/itemsViewMode on StructureItemGroup are context-dependent —
+ # platform emits them in some shapes (top-level single group) but not always.
+ # Emit only when explicitly set in JSON (preserves bit-perfect round-trip).
+ if ($item.viewMode) {
+ X "$indent`t$(Esc-Xml "$($item.viewMode)")"
+ }
+ if ($item.itemsViewMode) {
+ X "$indent`t$(Esc-Xml "$($item.itemsViewMode)")"
+ }
+
X "$indent"
}
elseif ($type -eq "table") {
@@ -2500,27 +2555,34 @@ function Emit-SettingsVariants {
$s = $v.settings
+ # Helper: resolve XViewMode from settings — emit only if explicitly set
+ function Get-BlockVM([string]$key) {
+ $prop = "${key}ViewMode"
+ if ($s.PSObject.Properties[$prop]) { return "$($s.$prop)" }
+ return $null
+ }
+
# Selection (Auto items only belong at group level, not top-level settings)
if ($s.selection) {
- Emit-Selection -items $s.selection -indent "`t`t`t" -skipAuto
+ Emit-Selection -items $s.selection -indent "`t`t`t" -skipAuto -blockViewMode (Get-BlockVM 'selection')
}
# Filter
if ($s.filter) {
- Emit-Filter -items $s.filter -indent "`t`t`t"
+ Emit-Filter -items $s.filter -indent "`t`t`t" -blockViewMode (Get-BlockVM 'filter')
}
# Order (Auto items only belong at group level, not top-level settings)
if ($s.order) {
- Emit-Order -items $s.order -indent "`t`t`t" -skipAuto
+ Emit-Order -items $s.order -indent "`t`t`t" -skipAuto -blockViewMode (Get-BlockVM 'order')
}
# ConditionalAppearance
if ($s.conditionalAppearance) {
- Emit-ConditionalAppearance -items $s.conditionalAppearance -indent "`t`t`t"
+ Emit-ConditionalAppearance -items $s.conditionalAppearance -indent "`t`t`t" -blockViewMode (Get-BlockVM 'conditionalAppearance')
}
- # OutputParameters
+ # OutputParameters (platform does NOT emit on this block)
if ($s.outputParameters) {
Emit-OutputParameters -params $s.outputParameters -indent "`t`t`t"
}
@@ -2585,6 +2647,11 @@ function Emit-SettingsVariants {
}
}
+ # on — emit only if explicitly set
+ if ($s.itemsViewMode) {
+ X "`t`t`t$(Esc-Xml "$($s.itemsViewMode)")"
+ }
+
X "`t`t"
X "`t"
}
diff --git a/.claude/skills/skd-compile/scripts/skd-compile.py b/.claude/skills/skd-compile/scripts/skd-compile.py
index 4a36feda..0b99b07e 100644
--- a/.claude/skills/skd-compile/scripts/skd-compile.py
+++ b/.claude/skills/skd-compile/scripts/skd-compile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# skd-compile v1.37 — Compile 1C DCS from JSON
+# skd-compile v1.38 — Compile 1C DCS from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -37,6 +37,13 @@ def resolve_query_value(val, base_dir):
def emit_mltext(lines, indent, tag, text, no_xsi_type=False):
+ # Empty value → self-closing tag (matches platform output)
+ if text is None or (isinstance(text, str) and text == ''):
+ if no_xsi_type:
+ lines.append(f"{indent}<{tag}/>")
+ else:
+ lines.append(f'{indent}<{tag} xsi:type="v8:LocalStringType"/>')
+ return
if not text:
lines.append(f"{indent}<{tag}/>")
return
@@ -1553,10 +1560,12 @@ def emit_selection_item(lines, item, indent):
lines.append(f'{indent}\t{esc_xml(str(item["field"]))}')
if item.get('title'):
emit_mltext(lines, f'{indent}\t', 'dcsset:lwsTitle', item['title'], no_xsi_type=True)
+ if item.get('viewMode'):
+ lines.append(f'{indent}\t{esc_xml(str(item["viewMode"]))}')
lines.append(f'{indent}')
-def emit_selection(lines, items, indent, skip_auto=False):
+def emit_selection(lines, items, indent, skip_auto=False, block_view_mode=None):
if not items or len(items) == 0:
return
lines.append(f'{indent}')
@@ -1564,6 +1573,8 @@ def emit_selection(lines, items, indent, skip_auto=False):
if skip_auto and isinstance(item, str) and item == 'Auto':
continue
emit_selection_item(lines, item, f'{indent}\t')
+ if block_view_mode is not None:
+ lines.append(f'{indent}\t{esc_xml(str(block_view_mode))}')
lines.append(f'{indent}')
@@ -1639,7 +1650,7 @@ def emit_filter_item(lines, item, indent):
lines.append(f'{indent}')
-def emit_filter(lines, items, indent):
+def emit_filter(lines, items, indent, block_view_mode=None):
if not items or len(items) == 0:
return
@@ -1664,10 +1675,12 @@ def emit_filter(lines, items, indent):
emit_filter_item(lines, filter_obj, f'{indent}\t')
else:
emit_filter_item(lines, item, f'{indent}\t')
+ if block_view_mode is not None:
+ lines.append(f'{indent}\t{esc_xml(str(block_view_mode))}')
lines.append(f'{indent}')
-def emit_order(lines, items, indent, skip_auto=False):
+def emit_order(lines, items, indent, skip_auto=False, block_view_mode=None):
if not items or len(items) == 0:
return
@@ -1689,6 +1702,25 @@ def emit_order(lines, items, indent, skip_auto=False):
lines.append(f'{indent}\t\t{esc_xml(field)}')
lines.append(f'{indent}\t\t{direction}')
lines.append(f'{indent}\t')
+ else:
+ # Object form: { field, direction, viewMode }
+ if str(item.get('field', '')) == 'Auto' or item.get('type') == 'auto':
+ if not skip_auto:
+ lines.append(f'{indent}\t')
+ continue
+ d = str(item.get('direction', 'Asc'))
+ if re.match(r'(?i)^desc$', d):
+ d = 'Desc'
+ elif re.match(r'(?i)^asc$', d):
+ d = 'Asc'
+ lines.append(f'{indent}\t')
+ lines.append(f'{indent}\t\t{esc_xml(str(item["field"]))}')
+ lines.append(f'{indent}\t\t{d}')
+ if item.get('viewMode'):
+ lines.append(f'{indent}\t\t{esc_xml(str(item["viewMode"]))}')
+ lines.append(f'{indent}\t')
+ if block_view_mode is not None:
+ lines.append(f'{indent}\t{esc_xml(str(block_view_mode))}')
lines.append(f'{indent}')
@@ -1723,7 +1755,7 @@ def emit_appearance_value(lines, key, val, indent):
lines.append(f'{indent}')
-def emit_conditional_appearance(lines, items, indent):
+def emit_conditional_appearance(lines, items, indent, block_view_mode=None):
if not items or len(items) == 0:
return
@@ -1767,6 +1799,8 @@ def emit_conditional_appearance(lines, items, indent):
lines.append(f'{indent}\t\t{esc_xml(uid)}')
lines.append(f'{indent}\t')
+ if block_view_mode is not None:
+ lines.append(f'{indent}\t{esc_xml(str(block_view_mode))}')
lines.append(f'{indent}')
@@ -1932,13 +1966,11 @@ def emit_structure_item(lines, item, indent):
emit_group_items(lines, item.get('groupBy') or item.get('groupFields'), f'{indent}\t')
- # Default order to ["Auto"] if not specified
- order_items = item.get('order') or ['Auto']
- emit_order(lines, order_items, f'{indent}\t')
-
- # Default selection to ["Auto"] if not specified
- sel_items = item.get('selection') or ['Auto']
- emit_selection(lines, sel_items, f'{indent}\t')
+ # Emit order/selection only if specified — platform doesn't always emit them on group
+ if item.get('order'):
+ emit_order(lines, item['order'], f'{indent}\t')
+ if item.get('selection'):
+ emit_selection(lines, item['selection'], f'{indent}\t')
emit_filter(lines, item.get('filter'), f'{indent}\t')
@@ -1950,6 +1982,12 @@ def emit_structure_item(lines, item, indent):
for child in item['children']:
emit_structure_item(lines, child, f'{indent}\t')
+ # viewMode/itemsViewMode — emit only when explicitly set (context-dependent)
+ if item.get('viewMode'):
+ lines.append(f'{indent}\t{esc_xml(str(item["viewMode"]))}')
+ if item.get('itemsViewMode'):
+ lines.append(f'{indent}\t{esc_xml(str(item["itemsViewMode"]))}')
+
lines.append(f'{indent}')
elif item_type == 'table':
@@ -2062,23 +2100,30 @@ def emit_settings_variants(lines, defn):
s = v.get('settings', {})
+ # Helper: resolve XViewMode from settings — emit only if explicitly set
+ def _block_vm(key):
+ prop = f'{key}ViewMode'
+ if prop in s:
+ return str(s[prop])
+ return None
+
# Selection
if s.get('selection'):
- emit_selection(lines, s['selection'], '\t\t\t', skip_auto=True)
+ emit_selection(lines, s['selection'], '\t\t\t', skip_auto=True, block_view_mode=_block_vm('selection'))
# Filter
if s.get('filter'):
- emit_filter(lines, s['filter'], '\t\t\t')
+ emit_filter(lines, s['filter'], '\t\t\t', block_view_mode=_block_vm('filter'))
# Order
if s.get('order'):
- emit_order(lines, s['order'], '\t\t\t', skip_auto=True)
+ emit_order(lines, s['order'], '\t\t\t', skip_auto=True, block_view_mode=_block_vm('order'))
# ConditionalAppearance
if s.get('conditionalAppearance'):
- emit_conditional_appearance(lines, s['conditionalAppearance'], '\t\t\t')
+ emit_conditional_appearance(lines, s['conditionalAppearance'], '\t\t\t', block_view_mode=_block_vm('conditionalAppearance'))
- # OutputParameters
+ # OutputParameters (platform does NOT emit on this block)
if s.get('outputParameters'):
emit_output_parameters(lines, s['outputParameters'], '\t\t\t')
@@ -2135,6 +2180,10 @@ def emit_settings_variants(lines, defn):
for item in struct_items:
emit_structure_item(lines, item, '\t\t\t')
+ # on settings — emit only if explicitly set
+ if s.get('itemsViewMode'):
+ lines.append(f'\t\t\t{esc_xml(str(s["itemsViewMode"]))}')
+
lines.append('\t\t')
lines.append('\t')
diff --git a/docs/skd-dsl-spec.md b/docs/skd-dsl-spec.md
index 4867c177..2c58851b 100644
--- a/docs/skd-dsl-spec.md
+++ b/docs/skd-dsl-spec.md
@@ -511,13 +511,14 @@ XML-маппинг — по `` на каждый элемент:
"selection": [
"Наименование",
{ "field": "Количество", "title": "Кол-во" },
+ { "field": "Контрагент", "viewMode": "Inaccessible" },
"Auto"
]
```
- Строка → `SelectedItemField`
- `"Auto"` → `SelectedItemAuto` (только на уровне группировок; на верхнем уровне settings игнорируется)
-- Объект с `field`/`title` → `SelectedItemField` с `lwsTitle`
+- Объект с `field`/`title`/`viewMode` → `SelectedItemField` с `lwsTitle`/`viewMode` (см. [viewMode](#viewmode-режим-доступности))
- Объект с `folder`/`items` → `SelectedItemFolder` — группа полей с заголовком и `placement=Auto`:
```json
@@ -602,13 +603,19 @@ XML-маппинг — по `` на каждый элемент:
### order
```json
-"order": ["Количество desc", "Наименование", "Auto"]
+"order": [
+ "Количество desc",
+ "Наименование",
+ { "field": "Контрагент", "direction": "desc", "viewMode": "Inaccessible" },
+ "Auto"
+]
```
- `"Field"` → `OrderItemField`, `orderType=Asc`
- `"Field desc"` → `OrderItemField`, `orderType=Desc`
- `"Field asc"` → `OrderItemField`, `orderType=Asc`
- `"Auto"` → `OrderItemAuto` (только на уровне группировок; на верхнем уровне settings игнорируется)
+- Объект `{ field, direction?, viewMode? }` — нужен, когда требуется задать `viewMode` (см. [viewMode](#viewmode-режим-доступности))
### conditionalAppearance
@@ -757,6 +764,8 @@ XML-маппинг — по `` на каждый элемент:
| `filter` | Отборы (как в settings) |
| `order` | Сортировка (умолч. `["Auto"]`) |
| `outputParameters` | Параметры вывода (как в settings) |
+| `viewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` — режим доступности группы в пользовательских настройках |
+| `itemsViewMode` | `"Normal"`, `"QuickAccess"`, `"Inaccessible"` — режим доступности подэлементов группы |
| `children` | Вложенные элементы структуры |
Пустой `groupBy` (или `[]`) = детальные записи (без `groupItems` в XML).
@@ -787,6 +796,55 @@ XML-маппинг — по `` на каждый элемент:
}
```
+### viewMode (режим доступности)
+
+`viewMode` управляет доступностью элемента в **пользовательских настройках** отчёта («Изменить вариант…» / «Настройки»). Возможные значения:
+
+| Значение | Семантика |
+|----------|-----------|
+| `"Normal"` | Пользователь видит и может править (default) |
+| `"Inaccessible"` | Скрыто от пользователя, не редактируется |
+| `"QuickAccess"` | Вынесено в быстрые настройки (на форму отчёта) |
+| `"Auto"` | Автоматический режим (наследование от контейнера) |
+
+Применяется в трёх контекстах:
+
+**1. Item-level** — на отдельном элементе блока (см. описание объектной формы соответствующего раздела):
+
+```json
+"filter": [{ "field": "X", "op": "=", "value": "Y", "viewMode": "Inaccessible" }],
+"selection": [{ "field": "X", "viewMode": "Inaccessible" }],
+"order": [{ "field": "X", "viewMode": "Inaccessible" }],
+"conditionalAppearance": [{ "filter": [...], "appearance": {...}, "viewMode": "Inaccessible" }],
+"dataParameters": [{ "parameter": "X", "viewMode": "QuickAccess" }]
+```
+
+Shorthand-флаги `@inaccessible`, `@quickAccess` доступны для `filter` и `dataParameters` строковых форм.
+
+**2. Block-level** — на самом блоке (внутри `settings`). Управляет доступностью всей группы как пункта пользовательских настроек:
+
+```json
+"settings": {
+ "selectionViewMode": "Inaccessible",
+ "filterViewMode": "Inaccessible",
+ "orderViewMode": "Inaccessible",
+ "conditionalAppearanceViewMode": "Inaccessible",
+ "itemsViewMode": "Inaccessible",
+ "selection": [...],
+ "filter": [...]
+}
+```
+
+`itemsViewMode` на settings — общий режим для всех подэлементов варианта (`` в XML).
+
+**3. Structure item** — на элементе структуры (`group`):
+
+```json
+{ "type": "group", "groupBy": ["Организация"], "viewMode": "Inaccessible", "itemsViewMode": "Inaccessible" }
+```
+
+Поля опциональны: если не заданы, режим элемента наследуется. Платформа эмитит `viewMode`/`itemsViewMode` на структурных элементах не всегда — `skd-decompile` сохраняет значение точно как было в XML, чтобы round-trip был bit-perfect.
+
---
## 10. Макеты и привязки (templates, groupTemplates)
diff --git a/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml b/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
index 1d3156a5..f2fcec94 100644
--- a/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/auto-data-parameters/Template.xml
@@ -210,12 +210,6 @@
-
-
-
-
-
-
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
index 45bf05ca..57d1ebe6 100644
--- 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
@@ -181,9 +181,6 @@
0001-01-01T00:00:00
-
-
-
diff --git a/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml b/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
index 2662700b..3e9f5d4b 100644
--- a/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/full-example/Template.xml
@@ -156,19 +156,7 @@
0001-01-01T00:00:00
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-compile/snapshots/grouping-and-totals/Template.xml b/tests/skills/cases/skd-compile/snapshots/grouping-and-totals/Template.xml
index a60c63c9..a18ac4dc 100644
--- a/tests/skills/cases/skd-compile/snapshots/grouping-and-totals/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/grouping-and-totals/Template.xml
@@ -101,12 +101,6 @@
0001-01-01T00:00:00
-
-
-
-
-
-
@@ -117,19 +111,7 @@
0001-01-01T00:00:00
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-compile/snapshots/horizontal-merge/Template.xml b/tests/skills/cases/skd-compile/snapshots/horizontal-merge/Template.xml
index c891619f..88523dfe 100644
--- a/tests/skills/cases/skd-compile/snapshots/horizontal-merge/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/horizontal-merge/Template.xml
@@ -2273,12 +2273,6 @@
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-compile/snapshots/orgroup-string-items/Template.xml b/tests/skills/cases/skd-compile/snapshots/orgroup-string-items/Template.xml
index 76f8b444..3143cbdd 100644
--- a/tests/skills/cases/skd-compile/snapshots/orgroup-string-items/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/orgroup-string-items/Template.xml
@@ -104,12 +104,6 @@
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-compile/snapshots/structure-object-form/Template.xml b/tests/skills/cases/skd-compile/snapshots/structure-object-form/Template.xml
index c49b5df9..0742bd97 100644
--- a/tests/skills/cases/skd-compile/snapshots/structure-object-form/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/structure-object-form/Template.xml
@@ -68,9 +68,6 @@
0001-01-01T00:00:00
-
-
-
Организация
@@ -89,9 +86,6 @@
0001-01-01T00:00:00
-
-
-
Номенклатура
diff --git a/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml b/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
index a1a7f051..69d27f95 100644
--- a/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
+++ b/tests/skills/cases/skd-compile/snapshots/with-filters/Template.xml
@@ -154,12 +154,6 @@
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-decompile/snapshots/dataset-folder-and-auto-group/Template.xml b/tests/skills/cases/skd-decompile/snapshots/dataset-folder-and-auto-group/Template.xml
index 3a4dbfea..ff4088c1 100644
--- a/tests/skills/cases/skd-decompile/snapshots/dataset-folder-and-auto-group/Template.xml
+++ b/tests/skills/cases/skd-decompile/snapshots/dataset-folder-and-auto-group/Template.xml
@@ -72,12 +72,6 @@
-
-
-
-
-
-
@@ -88,12 +82,6 @@
0001-01-01T00:00:00
-
-
-
-
-
-
diff --git a/tests/skills/cases/skd-decompile/snapshots/structure-nested-and-folder/Template.xml b/tests/skills/cases/skd-decompile/snapshots/structure-nested-and-folder/Template.xml
index b3d71cb1..07046a4a 100644
--- a/tests/skills/cases/skd-decompile/snapshots/structure-nested-and-folder/Template.xml
+++ b/tests/skills/cases/skd-decompile/snapshots/structure-nested-and-folder/Template.xml
@@ -134,12 +134,6 @@
0001-01-01T00:00:00
-
-
-
-
-
-
ДанныеЧасть1
diff --git a/tests/skills/cases/skd-decompile/snapshots/variant-full/Template.xml b/tests/skills/cases/skd-decompile/snapshots/variant-full/Template.xml
index ae38fd13..331424d5 100644
--- a/tests/skills/cases/skd-decompile/snapshots/variant-full/Template.xml
+++ b/tests/skills/cases/skd-decompile/snapshots/variant-full/Template.xml
@@ -377,12 +377,6 @@
0001-01-01T00:00:00
-
-
-
-
-
-
@@ -393,19 +387,7 @@
0001-01-01T00:00:00
-
-
-
-
-
-
-
-
-
-
-
-