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.Тест" } }