$npx -y skills add Nikolay-Shirokov/cc-1c-skills --skill form-decompileДекомпиляция управляемой формы 1С (Form.xml) в JSON-черновик в формате form-compile. Используй для scaffold новой формы по образцу или структурного рефакторинга. Не для точечных правок
| 1 | # /form-decompile — JSON-черновик из Form.xml управляемой формы |
| 2 | |
| 3 | Читает Form.xml и эмитит компактный JSON в формате `form-compile`. **Результат — черновик**, а не обратимое представление: см. раздел «Что получаешь». |
| 4 | |
| 5 | ## Когда использовать |
| 6 | |
| 7 | - **Scaffold новой формы по образцу** — взять существующую форму, получить JSON, поправить и скомпилировать в новую. |
| 8 | - **Структурный рефакторинг** — перебрать дерево элементов, реквизиты, команды. |
| 9 | |
| 10 | ## Когда **не** использовать |
| 11 | |
| 12 | - **Точечные правки готовой формы** (добавить элемент, реквизит, команду) → `/form-edit`. Цикл «декомпиляция → правка JSON → компиляция» переписывает форму целиком, может терять непокрытые конструкции и даёт большой diff. `/form-edit` правит адресно. |
| 13 | |
| 14 | ## Параметры |
| 15 | |
| 16 | | Параметр | Описание | |
| 17 | |----------|----------| |
| 18 | | `FormPath` | Путь к Form.xml (обязательный) | |
| 19 | | `OutputPath` | Путь к выходному JSON. Если не задан — JSON в stdout | |
| 20 | |
| 21 | ```powershell |
| 22 | powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/form-decompile.ps1" -FormPath "<Form.xml>" -OutputPath "<out.json>" |
| 23 | ``` |
| 24 | |
| 25 | ## Что получаешь |
| 26 | |
| 27 | JSON-черновик в формате `/form-compile` — **не полное обратимое представление**: раундтрип `xml → json → xml` не гарантируется, часть конструкций DSL не покрывает и **теряет молча**. |
| 28 | |
| 29 | Критичные конструкции (`ConditionalAppearance` со scope, design-time диаграммы/планировщики на реквизите, неизвестный тип элемента, не-Form root) → скрипт падает с ненулевым кодом и сообщением в stderr; для правок такой формы — `/form-edit`. |
| 30 | |
| 31 | ## Workflow |
| 32 | |
| 33 | 1. `/form-decompile <Form.xml> -OutputPath draft.json` — получить черновик. |
| 34 | 2. Поправить JSON под задачу. |
| 35 | 3. `/form-compile -JsonPath draft.json -OutputPath new/Form.xml` — собрать обратно. |
| 36 | 4. `/form-validate` + `/form-info` — проверить результат. |