# 1c Meta Decompile

> Декомпиляция объекта метаданных 1С в JSON-заготовку формата meta-compile. Используй когда нужно получить черновик DSL-описания нового объекта по образцу другого. Не сохраняет UUID/модули/формы.

- Skill: `desko77/1c-meta-decompile` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add desko77/1c-meta-decompile`
- Raw SKILL.md: https://api.skillmd.com/api/skills/desko77/1c-meta-decompile/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Desko77 (https://skillmd.com/u/desko77)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/desko77/1c-meta-decompile

---


# /meta-decompile - DSL-заготовка из XML объекта метаданных

Читает XML объекта метаданных (`Catalogs/Имя.xml` и т.п.) и эмитит компактный JSON в формате `/meta-compile`. Назначение - **взять существующий объект образцом и собрать по нему НОВЫЙ**: декомпилировать → поправить → скомпилировать под другим именем.

## ⚠️ Главное: это НЕ обратимая выгрузка

Компиляция черновика создает **новый объект с новой идентичностью**, а не копию исходного. В JSON **не** попадают: UUID (идентичность самого объекта и всех дочерних), тела модулей, формы, макеты, права. Захватываются только структура и свойства.

Отсюда правило: **никогда не компилируй черновик поверх объекта-источника и не выдавай его за "реимпорт"** - у пересобранного объекта другие UUID, поэтому все ссылки на исходный объект (из кода, других объектов, состава подсистем, предопределенных данных) сломаются, а код модулей и формы пропадут.

## Когда использовать

**Собрать новый объект по образцу существующего** - получить DSL-заготовку рабочего объекта, переименовать и адаптировать состав, скомпилировать в новый. Быстрее, чем писать DSL с нуля для богатого объекта.

## Когда **не** использовать

- **Точечная правка существующего объекта** (добавить реквизит, ТЧ, свойство) → `/meta-edit`. Цикл decompile→compile тут вреден: дает объект с новой идентичностью и теряет модули/формы.
- **Сохранить / восстановить / перенести тот же объект** (бэкап, миграция между конфигурациями с сохранением ссылок) → штатная выгрузка 1С (`/db-dump-xml` ↔ `/db-load-xml`, CF), а не decompile.
- **Просто понять структуру** объекта (реквизиты, ТЧ, типы) без пересборки → `/meta-info` (дешевле, не плодит файл).

## Параметры

| Параметр | Описание |
|----------|----------|
| `ObjectPath` | Путь к XML объекта (`Catalogs/Имя.xml`), обязательный |
| `OutputPath` | Путь к выходному JSON. Если не задан - JSON в stdout |

```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-decompile.ps1" -ObjectPath "<Объект.xml>" -OutputPath "<out.json>"
```

Неподдерживаемый тип объекта или не-`MetaDataObject` root → ненулевой код выхода и сообщение в stderr.

## Workflow (сборка нового объекта по образцу)

1. `/meta-decompile <Образец.xml> -OutputPath draft.json` - получить заготовку.
2. В `draft.json` **сменить `name`** на имя нового объекта и адаптировать состав (реквизиты/ТЧ/свойства). Ссылки на *другие* объекты (владельцы, ввод на основании, типы) - по имени, сохраняются как есть.
3. `/meta-compile -JsonPath draft.json -OutputDir <ConfigDir>` - собрать (объект получит свежие UUID).
4. `/meta-validate` + `/meta-info` - проверить.
5. Модули, формы, макеты, права - добавить отдельно (в черновик они не попадают).

