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(дешевле, не плодит файл).