Skip to content
Back to skills

1c Skd Decompile

ASecurity

Декомпиляция схемы компоновки данных 1С (СКД) из XML в JSON-черновик DSL. Используй когда нужно декомпилировать СКД, преобразовать схему компоновки в JSON, получить DSL из макета СКД

  • 73 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 2, 2026
ai-agentspythonshellbash

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add Desko77/claude-code-skills-1c --skill 1c-skd-decompile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1c Skd Decompile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1c Skd Decompile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/desko77-1c-skd-decompile/badge)](https://www.skillsdirectory.com/skills/desko77-1c-skd-decompile)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 1c-skd-decompile
description: Декомпиляция схемы компоновки данных 1С (СКД) из XML в JSON-черновик DSL. Используй когда нужно декомпилировать СКД, преобразовать схему компоновки в JSON, получить DSL из макета СКД
argument-hint: <Template.xml> [output.json]
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - Glob
---

# /skd-decompile - Декомпилятор СКД в JSON DSL

Принимает XML схемы компоновки данных (корневой элемент `DataCompositionSchema`; в выгрузке EDT/Конфигуратора это обычно `Template.xml` макета) и генерирует JSON-черновик в формате DSL скила `/skd-compile`. Обратная операция к `/skd-compile`.

**ВАЖНО: результат - ЧЕРНОВИК**, не гарантированный lossless round-trip. Перед компиляцией через `/skd-compile` обязательно просмотреть JSON и разрешить все маркеры `_todo`.

## Использование

```
/skd-decompile <Template.xml> [output.json]
```

## Команда

```powershell
powershell.exe -NoProfile -File skills/1c-skd-decompile/scripts/skd-decompile.ps1 -InputFile "<путь>/Template.xml" [-OutputFile "<путь>.skd.json"]
```

## Параметры

| Параметр   | Обязательный | Описание                                                                                     |
|------------|:------------:|----------------------------------------------------------------------------------------------|
| InputFile  | да           | Путь к XML СКД. Имя файла любое - проверяется только корневой элемент `DataCompositionSchema` |
| OutputFile | нет          | Путь для JSON. По умолчанию рядом с входным: `<имя>.skd.json`                                  |

## Коды возврата

| Код | Условие                                                                  |
|-----|--------------------------------------------------------------------------|
| 0   | Успех (в том числе с предупреждениями `_todo`)                            |
| 1   | Ошибка: файл не найден, XML не парсится, корень не `DataCompositionSchema` |
| 2   | Неверные аргументы (python-версия, argparse) |

## Рабочий процесс

1. `/skd-decompile` - получить JSON-черновик из существующей СКД
2. Просмотреть черновик, разрешить каждый `_todo` (вручную или моделью)
3. Править JSON под задачу (новые поля, варианты, параметры)
4. `/skd-compile` - собрать новый Template.xml
5. `/skd-validate` и `/skd-info` - проверить результат

Легитимные сценарии: заготовка нового отчета на основе существующего как шаблона; структурный рефакторинг полей/вариантов. Для точечной правки одного отчета лучше `/skd-edit` - полный цикл переписывает весь макет.

## Ограничения - черновик и маркеры _todo

- Конструкции XML, которые наш DSL не выражает, помечаются ключом `"_todo"` (массив строк-пояснений) на уровне соответствующего элемента JSON или корня. Каждая помета дублируется предупреждением в stderr.
- Перед скармливанием `/skd-compile` разрешить каждый `_todo`: перенести смысл в поддерживаемую форму или сознательно удалить (компилятор упадет на объектах-заглушках, состоящих из одного `_todo`).
- В `_todo` уходят (не полный список): составные типы значений и `TypeSet`, папки полей (`DataSetFieldFolder`), вложенные схемы (`nestedSchema`), условия выбора макета (`templateCondition`), ячейки-картинки, привязки макета к полю (`fieldTemplate`), пользовательские поля вариантов (`userFields`), `scope` условного оформления, `GroupItemAuto` в группировках, неизвестные типы элементов структуры/отбора/выборки.
- Молчаливые упрощения (без `_todo` на каждом узле): `userSettingID` структурных элементов отбрасываются (одна сводная помета в корне), `userSettingID` отборов в shorthand-форме заменяются флагом `@user` (при компиляции сгенерируется новый GUID), стиль ячеек макета подбирается эвристикой по 4 встроенным пресетам (`header`/`data`/`subheader`/`total`), ширины и высота макета читаются только из первой строки.
- `dataParameters` всегда выводятся явным массивом (свертка в `"auto"` не выполняется).
- Схема без единого `dataSet` декомпилируется, но помечается в корне: `/skd-compile` требует минимум один набор данных.
- py-версия строит глобальную карту namespace-префиксов документа (первое объявление префикса побеждает). На XML, где один и тот же префикс переиспользован с разными URI на разных уровнях (встречается у .NET-сериализаторов), возможен неверный резолвинг типов - для таких файлов используй ps1-версию (контекстный резолвинг по месту).

## Примеры

```powershell
# Декомпиляция макета отчета, JSON рядом (Template.skd.json)
powershell.exe -NoProfile -File skills/1c-skd-decompile/scripts/skd-decompile.ps1 -InputFile "src/Reports/Продажи/Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml"

# Явный путь вывода
powershell.exe -NoProfile -File skills/1c-skd-decompile/scripts/skd-decompile.ps1 -InputFile "C:/tmp/Schema.xml" -OutputFile "C:/tmp/schema-draft.json"
```

Альтернатива (Python, тот же алгоритм):

```
python skills/1c-skd-decompile/scripts/skd-decompile.py -InputFile "<путь>/Template.xml" [-OutputFile "<путь>.skd.json"]
```

## JSON-схема DSL

Полная спецификация целевого формата: **`docs/skd-dsl-spec.md`** (прочитать через Read tool). Краткий справочник - в `skills/1c-skd-compile/SKILL.md`.

Files in this skill

  • SKILL.md7.3 KB
  • evals/evals.json3.2 KB
  • scripts/skd-decompile.ps181.3 KB
  • scripts/skd-decompile.py72.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.