diff --git a/.claude/skills/cf-edit/scripts/cf-edit.ps1 b/.claude/skills/cf-edit/scripts/cf-edit.ps1 index e62e947c..60107d6e 100644 --- a/.claude/skills/cf-edit/scripts/cf-edit.ps1 +++ b/.claude/skills/cf-edit/scripts/cf-edit.ps1 @@ -1,4 +1,4 @@ -# cf-edit v1.10 — Edit 1C configuration root (Configuration.xml) +# cf-edit v1.11 — Edit 1C configuration root (Configuration.xml) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)][Alias('Path')][string]$ConfigPath, @@ -167,6 +167,11 @@ $script:xmlDoc = New-Object System.Xml.XmlDocument $script:xmlDoc.PreserveWhitespace = $true $script:xmlDoc.Load($resolvedPath) +# Версия формата редактируемой конфигурации — создаваемые рядом файлы (Ext/HomePageWorkArea.xml) +# должны нести ту же версию, иначе в проекте окажутся файлы разных версий формата. +$script:formatVersion = $script:xmlDoc.DocumentElement.GetAttribute("version") +if (-not $script:formatVersion) { $script:formatVersion = "2.17" } + $script:addCount = 0 $script:removeCount = 0 $script:modifyCount = 0 @@ -864,7 +869,7 @@ function Do-SetHomePage($valArg) { $hpXml = @" - + $tmpl $leftXml $rightXml diff --git a/.claude/skills/cf-edit/scripts/cf-edit.py b/.claude/skills/cf-edit/scripts/cf-edit.py index ba0452d8..62b88c47 100644 --- a/.claude/skills/cf-edit/scripts/cf-edit.py +++ b/.claude/skills/cf-edit/scripts/cf-edit.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# cf-edit v1.10 — Edit 1C configuration root (Configuration.xml) +# cf-edit v1.11 — Edit 1C configuration root (Configuration.xml) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -410,6 +410,10 @@ def main(): tree = etree.parse(resolved_path, xml_parser) xml_root = tree.getroot() + # Версия формата редактируемой конфигурации — создаваемые рядом файлы (Ext/HomePageWorkArea.xml) + # должны нести ту же версию, иначе в проекте окажутся файлы разных версий формата. + format_version = xml_root.get('version') or '2.17' + add_count = 0 remove_count = 0 modify_count = 0 @@ -959,7 +963,7 @@ def main(): '\r\n' + f'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="{format_version}">\r\n' f'\t{tmpl}\r\n' f'{left_xml}\r\n' f'{right_xml}\r\n' diff --git a/.claude/skills/cf-init/scripts/cf-init.ps1 b/.claude/skills/cf-init/scripts/cf-init.ps1 index 54b20dee..732e30cb 100644 --- a/.claude/skills/cf-init/scripts/cf-init.ps1 +++ b/.claude/skills/cf-init/scripts/cf-init.ps1 @@ -1,4 +1,4 @@ -# cf-init v1.2 — Create empty 1C configuration scaffold +# cf-init v1.3 — Create empty 1C configuration scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)] @@ -7,7 +7,12 @@ param( [string]$OutputDir = "src", [string]$Version, [string]$Vendor, - [string]$CompatibilityMode = "Version8_3_24" + [string]$CompatibilityMode = "Version8_3_24", + # Версия формата выгрузки (MDClasses). Её задаёт ПЛАТФОРМА, которой выгружают, и от режима + # совместимости она не зависит: 8.3.24 пишет 2.17, 8.3.27 — 2.20. Дефолт консервативный — + # 2.17 читается всеми поддерживаемыми платформами. + [ValidateSet("2.17", "2.20", "2.21")] + [string]$FormatVersion = "2.17" ) $ErrorActionPreference = "Stop" @@ -73,7 +78,7 @@ $versionXml = if ($Version) { [System.Security.SecurityElement]::Escape($Version # --- Configuration.xml --- $cfgXml = @" - + @@ -175,7 +180,7 @@ $cfgXml = @" # --- Languages/Русский.xml --- $langXml = @" - + Русский diff --git a/.claude/skills/cf-init/scripts/cf-init.py b/.claude/skills/cf-init/scripts/cf-init.py index d9339251..214d334a 100644 --- a/.claude/skills/cf-init/scripts/cf-init.py +++ b/.claude/skills/cf-init/scripts/cf-init.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# cf-init v1.2 — Create empty 1C configuration scaffold +# cf-init v1.3 — Create empty 1C configuration scaffold # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills """Generates minimal XML source files for a 1C configuration.""" import sys, os, argparse, uuid @@ -24,6 +24,9 @@ def main(): parser.add_argument('-Version', dest='Version', default='') parser.add_argument('-Vendor', dest='Vendor', default='') parser.add_argument('-CompatibilityMode', dest='CompatibilityMode', default='Version8_3_24') + # Версия формата выгрузки (MDClasses) — её задаёт ПЛАТФОРМА, а не режим совместимости: + # 8.3.24 пишет 2.17, 8.3.27 — 2.20. Дефолт консервативный: 2.17 читается всеми платформами. + parser.add_argument('-FormatVersion', dest='FormatVersion', default='2.17', choices=['2.17', '2.20', '2.21']) args = parser.parse_args() name = args.Name @@ -96,7 +99,7 @@ def main(): \t\t\t\n""" cfg_xml = f''' - + \t \t\t {contained_objects}\t\t @@ -168,7 +171,7 @@ def main(): # --- Languages/Русский.xml --- lang_xml = f''' - + \t \t\t \t\t\tРусский