mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-29 13:35:54 +03:00
fix(meta-edit): внешнюю обработку/отчёт проверять epf-validate (#108)
Автопроверка после правки жёстко звала meta-validate, который ExternalDataProcessor/ExternalReport не знает: корректная правка заканчивалась «Unrecognized metadata type». Валидатор теперь выбирается по типу объекта. В py-порту stdout сбрасывается перед запуском валидатора — его вывод больше не обгоняет строки meta-edit. verify-snapshots: кейс meta-edit с setup none собирается epf-build, а не грузится пустой конфигурацией, где обработку платформа не видит. Fixes #108 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
68a2a11a6c
commit
372510bbc4
@@ -33,7 +33,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-edit.ps1" -Def
|
||||
| Operation | Inline-операция (альтернатива DefinitionFile) |
|
||||
| Value | Значение для inline-операции |
|
||||
| DefinitionFile | JSON-файл с операциями (альтернатива Operation) |
|
||||
| NoValidate | Не запускать meta-validate после правки |
|
||||
| NoValidate | Не запускать валидацию после правки |
|
||||
|
||||
## Частые операции
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# meta-edit v1.53 — Edit existing 1C metadata object XML
|
||||
# meta-edit v1.54 — Edit existing 1C metadata object XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
[CmdletBinding(PositionalBinding=$false)]
|
||||
param(
|
||||
@@ -3897,15 +3897,17 @@ Info "Saved: $resolvedPath"
|
||||
# ============================================================
|
||||
|
||||
if (-not $NoValidate) {
|
||||
$validateScript = Join-Path (Join-Path $PSScriptRoot "..\..\meta-validate") "scripts\meta-validate.ps1"
|
||||
# Внешняя обработка/отчёт — автономный объект, meta-validate его не знает (#108).
|
||||
$validateSkill = if (@('ExternalDataProcessor','ExternalReport') -contains $script:objType) { "epf-validate" } else { "meta-validate" }
|
||||
$validateScript = Join-Path (Join-Path $PSScriptRoot "..\..\$validateSkill") "scripts\$validateSkill.ps1"
|
||||
$validateScript = [System.IO.Path]::GetFullPath($validateScript)
|
||||
if (Test-Path $validateScript) {
|
||||
Write-Host ""
|
||||
Write-Host "--- Running meta-validate ---" -ForegroundColor DarkGray
|
||||
Write-Host "--- Running $validateSkill ---" -ForegroundColor DarkGray
|
||||
& powershell.exe -NoProfile -File $validateScript -ObjectPath $resolvedPath
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "[SKIP] meta-validate not found at: $validateScript" -ForegroundColor DarkGray
|
||||
Write-Host "[SKIP] $validateSkill not found at: $validateScript" -ForegroundColor DarkGray
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# meta-edit v1.53 — Edit existing 1C metadata object XML
|
||||
# meta-edit v1.54 — Edit existing 1C metadata object XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -3985,16 +3985,20 @@ def main():
|
||||
|
||||
# --- Auto-validate ---
|
||||
if not args.NoValidate:
|
||||
# Внешняя обработка/отчёт — автономный объект, meta-validate его не знает (#108).
|
||||
validate_skill = "epf-validate" if obj_type in ("ExternalDataProcessor", "ExternalReport") else "meta-validate"
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
validate_script = os.path.normpath(os.path.join(script_dir, "..", "..", "meta-validate", "scripts", "meta-validate.py"))
|
||||
validate_script = os.path.normpath(os.path.join(script_dir, "..", "..", validate_skill, "scripts", f"{validate_skill}.py"))
|
||||
if os.path.exists(validate_script):
|
||||
print()
|
||||
print("--- Running meta-validate ---")
|
||||
print(f"--- Running {validate_skill} ---")
|
||||
python_exe = sys.executable
|
||||
# Буфер stdout сбросить до запуска: иначе вывод дочернего процесса обгоняет наш.
|
||||
sys.stdout.flush()
|
||||
subprocess.run([python_exe, validate_script, "-ObjectPath", resolved_path])
|
||||
else:
|
||||
print()
|
||||
print(f"[SKIP] meta-validate not found at: {validate_script}")
|
||||
print(f"[SKIP] {validate_skill} not found at: {validate_script}")
|
||||
|
||||
# --- Summary ---
|
||||
print()
|
||||
|
||||
Reference in New Issue
Block a user