diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
index bdffc167..1ad5b183 100644
--- a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
+++ b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
@@ -1,4 +1,4 @@
-# cfe-validate v1.12 — Validate 1C configuration extension structure (CFE)
+# cfe-validate v1.13 — Validate 1C configuration extension structure (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -1268,22 +1268,22 @@ if ($versionRank -ge 219 -and $childObjNode) {
$typeName = $child.LocalName
if (-not $moduleKindsByType.ContainsKey($typeName)) { continue }
if (-not $childTypeDirMap.ContainsKey($typeName)) { continue }
- $objName = $child.InnerText.Trim()
- if (-not $objName) { continue }
+ $stateObjName = $child.InnerText.Trim()
+ if (-not $stateObjName) { continue }
$typeDir = Join-Path $configDir $childTypeDirMap[$typeName]
- $objFile = Join-Path $typeDir "$objName.xml"
+ $objFile = Join-Path $typeDir "$stateObjName.xml"
if (-not (Test-Path $objFile)) { continue }
$objText = [System.IO.File]::ReadAllText($objFile, [System.Text.Encoding]::UTF8)
if ($objText -notmatch 'Adopted') { continue }
foreach ($kind in $moduleKindsByType[$typeName]) {
$stateChecked++
- $hasFile = Test-Path (Join-Path (Join-Path (Join-Path $typeDir $objName) "Ext") "$kind.bsl")
+ $hasFile = Test-Path (Join-Path (Join-Path (Join-Path $typeDir $stateObjName) "Ext") "$kind.bsl")
$hasFlag = $objText -match "$kind"
if ($hasFile -and -not $hasFlag) {
- $stateIssues += "$typeName.$objName — есть $kind.bsl, но нет для $kind"
+ $stateIssues += "$typeName.$stateObjName — есть $kind.bsl, но нет для $kind"
} elseif ($hasFlag -and -not $hasFile) {
- $stateIssues += "$typeName.$objName — есть для $kind, но нет $kind.bsl"
+ $stateIssues += "$typeName.$stateObjName — есть для $kind, но нет $kind.bsl"
}
}
}
diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.py b/.claude/skills/cfe-validate/scripts/cfe-validate.py
index 35f747c2..39d6bb1d 100644
--- a/.claude/skills/cfe-validate/scripts/cfe-validate.py
+++ b/.claude/skills/cfe-validate/scripts/cfe-validate.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# cfe-validate v1.12 — Validate 1C configuration extension XML structure (CFE)
+# cfe-validate v1.13 — Validate 1C configuration extension XML structure (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
"""Validates extension Configuration.xml: root, InternalInfo, extension properties, ChildObjects, borrowed objects."""
import sys, os, argparse, re
diff --git a/tests/skills/cases/cfe-validate/module-state-file-without-flag.json b/tests/skills/cases/cfe-validate/module-state-file-without-flag.json
index 7d832ea8..78424952 100644
--- a/tests/skills/cases/cfe-validate/module-state-file-without-flag.json
+++ b/tests/skills/cases/cfe-validate/module-state-file-without-flag.json
@@ -28,5 +28,10 @@
}
],
"params": { "extensionPath": "cfe" },
- "expect": { "stdoutContains": "есть Module.bsl, но нет для Module" }
+ "expect": {
+ "stdoutContains": [
+ "есть Module.bsl, но нет для Module",
+ "=== Validation: Extension.Тест ==="
+ ]
+ }
}
diff --git a/tests/skills/cases/cfe-validate/valid.json b/tests/skills/cases/cfe-validate/valid.json
index 11e929e4..e91c5ecb 100644
--- a/tests/skills/cases/cfe-validate/valid.json
+++ b/tests/skills/cases/cfe-validate/valid.json
@@ -6,5 +6,6 @@
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/ext", "-ConfigPath": "{workDir}" }
}
],
- "params": { "extensionPath": "ext" }
+ "params": { "extensionPath": "ext" },
+ "expect": { "stdoutContains": "=== Validation OK: Extension.Тест" }
}
diff --git a/tests/skills/cases/cfe-validate/with-borrowed-object.json b/tests/skills/cases/cfe-validate/with-borrowed-object.json
index 8c00dee7..96dae553 100644
--- a/tests/skills/cases/cfe-validate/with-borrowed-object.json
+++ b/tests/skills/cases/cfe-validate/with-borrowed-object.json
@@ -15,5 +15,6 @@
"args": { "-ExtensionPath": "{workDir}/ext", "-ConfigPath": "{workDir}", "-Object": "Catalog.Товары" }
}
],
- "params": { "extensionPath": "ext" }
+ "params": { "extensionPath": "ext" },
+ "expect": { "stdoutContains": "=== Validation OK: Extension.Тест" }
}