diff --git a/tests/skills/cases/meta-decompile/_skill.json b/tests/skills/cases/meta-decompile/_skill.json
new file mode 100644
index 00000000..2827ae16
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/_skill.json
@@ -0,0 +1,12 @@
+{
+ "script": "meta-decompile/scripts/meta-decompile",
+ "setup": "none",
+ "args": [
+ { "flag": "-ObjectPath", "from": "workPath", "field": "objectPath" },
+ { "flag": "-OutputPath", "from": "workPath", "field": "outputPath" }
+ ],
+ "snapshot": {
+ "root": "workDir",
+ "normalizeUuids": true
+ }
+}
diff --git a/tests/skills/cases/meta-decompile/catalog-structural.json b/tests/skills/cases/meta-decompile/catalog-structural.json
new file mode 100644
index 00000000..900664b3
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/catalog-structural.json
@@ -0,0 +1,28 @@
+{
+ "name": "Декомпиляция справочника: ТЧ с use (A), одноэлементный choiceParameters (unwrap), синоним-аббревиатура (HE)",
+ "preRun": [
+ {
+ "script": "meta-compile/scripts/meta-compile",
+ "input": {
+ "type": "Catalog",
+ "name": "ДоговорыЭДО",
+ "hierarchical": true,
+ "attributes": [
+ "СтавкаНДС: Number(5,2)",
+ { "name": "Ответственный", "type": "String(50)", "choiceParameters": ["Отбор.Основной=Да"] }
+ ],
+ "tabularSections": {
+ "Представления": { "use": "ForFolderAndItem", "attributes": ["Язык: String(10)", "Текст: String(100)"] }
+ }
+ },
+ "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
+ }
+ ],
+ "params": {
+ "objectPath": "Catalogs/ДоговорыЭДО.xml",
+ "outputPath": "draft.json"
+ },
+ "expect": {
+ "files": ["draft.json"]
+ }
+}
diff --git a/tests/skills/cases/meta-decompile/ccot-value-type-marker.json b/tests/skills/cases/meta-decompile/ccot-value-type-marker.json
new file mode 100644
index 00000000..9963dac8
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/ccot-value-type-marker.json
@@ -0,0 +1,22 @@
+{
+ "name": "Декомпиляция ПВХ: маркер пустого типизированного FillValue (typeDescription, B)",
+ "preRun": [
+ {
+ "script": "meta-compile/scripts/meta-compile",
+ "input": {
+ "type": "ChartOfCharacteristicTypes",
+ "name": "ВидыСведений",
+ "valueType": "String(25)",
+ "standardAttributes": { "ValueType": { "fillValue": { "typeDescription": true } } }
+ },
+ "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
+ }
+ ],
+ "params": {
+ "objectPath": "ChartsOfCharacteristicTypes/ВидыСведений.xml",
+ "outputPath": "draft.json"
+ },
+ "expect": {
+ "files": ["draft.json"]
+ }
+}
diff --git a/tests/skills/cases/meta-decompile/error-bad-root.json b/tests/skills/cases/meta-decompile/error-bad-root.json
new file mode 100644
index 00000000..f8add079
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/error-bad-root.json
@@ -0,0 +1,19 @@
+{
+ "name": "Ошибка: не-MetaDataObject root (Form.xml) → ring3",
+ "preRun": [
+ {
+ "script": "meta-compile/scripts/meta-compile",
+ "input": { "type": "DataProcessor", "name": "Тест" },
+ "args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
+ },
+ {
+ "script": "form-add/scripts/form-add",
+ "args": { "-ObjectPath": "{workDir}/DataProcessors/Тест.xml", "-FormName": "Форма" }
+ }
+ ],
+ "params": {
+ "objectPath": "DataProcessors/Тест/Forms/Форма/Ext/Form.xml",
+ "outputPath": "draft.json"
+ },
+ "expectError": "MetaDataObject"
+}
diff --git a/tests/skills/cases/meta-decompile/snapshots/catalog-structural/Catalogs/ДоговорыЭДО.xml b/tests/skills/cases/meta-decompile/snapshots/catalog-structural/Catalogs/ДоговорыЭДО.xml
new file mode 100644
index 00000000..6097e14b
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/snapshots/catalog-structural/Catalogs/ДоговорыЭДО.xml
@@ -0,0 +1,322 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ ДоговорыЭДО
+
+
+ ru
+ Договоры ЭДО
+
+
+
+ true
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.ДоговорыЭДО.StandardAttribute.Description
+ Catalog.ДоговорыЭДО.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Automatic
+ Use
+
+
+
+
+
+ Use
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
+ СтавкаНДС
+
+
+ ru
+ Ставка НДС
+
+
+
+
+ xs:decimal
+
+ 5
+ 2
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+ 0
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
+
+
+ Ответственный
+
+
+ ru
+ Ответственный
+
+
+
+
+ xs:string
+
+ 50
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+
+ Да
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
+
+
+
+ UUID-015
+ UUID-016
+
+
+ UUID-017
+ UUID-018
+
+
+
+ Представления
+
+
+ ru
+ Представления
+
+
+
+
+ DontCheck
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+
+
+
+
+ Язык
+
+
+ ru
+ Язык
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+ Текст
+
+
+ ru
+ Текст
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+
+
+
diff --git a/tests/skills/cases/meta-decompile/snapshots/catalog-structural/Catalogs/ДоговорыЭДО/Ext/ObjectModule.bsl b/tests/skills/cases/meta-decompile/snapshots/catalog-structural/Catalogs/ДоговорыЭДО/Ext/ObjectModule.bsl
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/skills/cases/meta-decompile/snapshots/catalog-structural/draft.json b/tests/skills/cases/meta-decompile/snapshots/catalog-structural/draft.json
new file mode 100644
index 00000000..c567b509
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/snapshots/catalog-structural/draft.json
@@ -0,0 +1,22 @@
+{
+ "type": "Catalog",
+ "name": "ДоговорыЭДО",
+ "hierarchical": true,
+ "attributes": [
+ "СтавкаНДС: Number(5,2)",
+ {
+ "name": "Ответственный",
+ "type": "String(50)",
+ "choiceParameters": {
+ "name": "Отбор.Основной",
+ "value": "Да"
+ }
+ }
+ ],
+ "tabularSections": {
+ "Представления": {
+ "use": "ForFolderAndItem",
+ "attributes": ["Язык: String(10)", "Текст: String(100)"]
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/ChartsOfCharacteristicTypes/ВидыСведений.xml b/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/ChartsOfCharacteristicTypes/ВидыСведений.xml
new file mode 100644
index 00000000..71e9b3dd
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/ChartsOfCharacteristicTypes/ВидыСведений.xml
@@ -0,0 +1,307 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+
+ ВидыСведений
+
+
+ ru
+ Виды сведений
+
+
+
+ true
+ false
+
+
+ xs:string
+
+ 25
+ Variable
+
+
+ false
+ true
+ 9
+ Variable
+ 100
+ WholeCharacteristicKind
+ true
+ true
+ AsDescription
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ ShowError
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ true
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ ChartOfCharacteristicTypes.ВидыСведений.StandardAttribute.Description
+ ChartOfCharacteristicTypes.ВидыСведений.StandardAttribute.Code
+
+ DontUse
+ Begin
+ Directly
+ DontUse
+ Auto
+
+
+
+
+
+
+
+
+
+
+
+
+ Managed
+ Use
+
+
+
+
+
+ DontUse
+ false
+ false
+
+
+
+
diff --git a/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/ChartsOfCharacteristicTypes/ВидыСведений/Ext/ObjectModule.bsl b/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/ChartsOfCharacteristicTypes/ВидыСведений/Ext/ObjectModule.bsl
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/draft.json b/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/draft.json
new file mode 100644
index 00000000..93cc5991
--- /dev/null
+++ b/tests/skills/cases/meta-decompile/snapshots/ccot-value-type-marker/draft.json
@@ -0,0 +1,12 @@
+{
+ "type": "ChartOfCharacteristicTypes",
+ "name": "ВидыСведений",
+ "valueType": "String(25)",
+ "standardAttributes": {
+ "ValueType": {
+ "fillValue": {
+ "typeDescription": true
+ }
+ }
+ }
+}
\ No newline at end of file