feat(db-dump-xml,db-load-xml): -AllExtensions через ibcmd

Закрыт последний частичный пробел расширений: -AllExtensions под ibcmd
больше не ошибка, а реальные подкоманды:
- db-dump-xml -AllExtensions → ibcmd infobase config export all-extensions <dir>
- db-load-xml -AllExtensions → ibcmd infobase config import all-extensions <dir>
  (+ цепочка config apply --force при -UpdateDB)

1cv8-ветки без изменений. Версии: db-dump-xml 1.3→1.4, db-load-xml 1.7→1.8.

E2E: база с двумя расширениями → export all-extensions (Ext1/Ext2) →
import all-extensions обратно, оба порта; 1cv8-регресс (-AllExtensions
-Mode Full) цел.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-21 17:17:15 +03:00
parent 3f5065221e
commit 8fb3e9421d
4 changed files with 14 additions and 21 deletions
@@ -1,4 +1,4 @@
# db-dump-xml v1.3 — Dump 1C configuration to XML files
# db-dump-xml v1.4 — Dump 1C configuration to XML files
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
<#
.SYNOPSIS
@@ -179,14 +179,11 @@ try {
exit 1
}
if ($AllExtensions) {
Write-Host "Error: ibcmd config export does not support -AllExtensions (use -Extension or 1cv8)" -ForegroundColor Red
exit 1
}
if ($Mode -eq "UpdateInfo") {
$arguments = @("infobase", "config", "export", "all-extensions", "$ConfigDir", "--db-path=$InfoBasePath")
} elseif ($Mode -eq "UpdateInfo") {
Write-Host "Error: ibcmd config export does not support Mode UpdateInfo; use 1cv8" -ForegroundColor Red
exit 1
}
if ($Mode -eq "Partial") {
} elseif ($Mode -eq "Partial") {
$objList = @($Objects -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ })
$arguments = @("infobase", "config", "export", "objects") + $objList
$arguments += "--out=$ConfigDir", "--db-path=$InfoBasePath"
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# db-dump-xml v1.3 — Dump 1C configuration to XML files
# db-dump-xml v1.4 — Dump 1C configuration to XML files
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -125,12 +125,11 @@ def main():
print("Error: ibcmd config export supports hierarchical format only (use -Format Hierarchical or 1cv8)", file=sys.stderr)
sys.exit(1)
if args.AllExtensions:
print("Error: ibcmd config export does not support -AllExtensions (use -Extension or 1cv8)", file=sys.stderr)
sys.exit(1)
if args.Mode == "UpdateInfo":
arguments = ["infobase", "config", "export", "all-extensions", args.ConfigDir, f"--db-path={args.InfoBasePath}"]
elif args.Mode == "UpdateInfo":
print("Error: ibcmd config export does not support Mode UpdateInfo; use 1cv8", file=sys.stderr)
sys.exit(1)
if args.Mode == "Partial":
elif args.Mode == "Partial":
obj_list = [o.strip() for o in args.Objects.split(",") if o.strip()]
arguments = ["infobase", "config", "export", "objects"] + obj_list
arguments += [f"--out={args.ConfigDir}", f"--db-path={args.InfoBasePath}"]
@@ -1,4 +1,4 @@
# db-load-xml v1.7 — Load 1C configuration from XML files
# db-load-xml v1.8 — Load 1C configuration from XML files
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
<#
.SYNOPSIS
@@ -188,10 +188,8 @@ try {
exit 1
}
if ($AllExtensions) {
Write-Host "Error: ibcmd config import does not support -AllExtensions (use -Extension or 1cv8)" -ForegroundColor Red
exit 1
}
if ($Mode -eq "Partial" -or $Files -or $ListFile) {
$arguments = @("infobase", "config", "import", "all-extensions", "$ConfigDir", "--db-path=$InfoBasePath")
} elseif ($Mode -eq "Partial" -or $Files -or $ListFile) {
# partial: import specific files (relative to ConfigDir)
$fileList = @()
if ($ListFile) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# db-load-xml v1.7 — Load 1C configuration from XML files
# db-load-xml v1.8 — Load 1C configuration from XML files
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -133,9 +133,8 @@ def main():
print("Error: ibcmd config import supports hierarchical format only (use -Format Hierarchical or 1cv8)", file=sys.stderr)
sys.exit(1)
if args.AllExtensions:
print("Error: ibcmd config import does not support -AllExtensions (use -Extension or 1cv8)", file=sys.stderr)
sys.exit(1)
if args.Mode == "Partial" or args.Files or args.ListFile:
arguments = ["infobase", "config", "import", "all-extensions", args.ConfigDir, f"--db-path={args.InfoBasePath}"]
elif args.Mode == "Partial" or args.Files or args.ListFile:
# partial: import specific files (relative to ConfigDir)
if args.ListFile:
if not os.path.isfile(args.ListFile):