diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 index 9a766a1c..eddd9afa 100644 --- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 +++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 @@ -1,4 +1,4 @@ -# cfe-borrow v1.26 — Borrow objects from configuration into extension (CFE) +# cfe-borrow v1.27 — Borrow objects from configuration into extension (CFE) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)][string]$ExtensionPath, @@ -1571,14 +1571,6 @@ function Merge-AttributesIntoObject { $added = 0 foreach ($attr in $attrsToAdd) { if ($existingNames.ContainsKey($attr.Name)) { continue } - $attrXml = Build-AdoptedAttributeXml $attr.Name $attr.Uuid $attr.TypeXml "`t`t`t" - - # Expand self-closing ChildObjects if needed - if (-not $childObjs.HasChildNodes -or $childObjs.IsEmpty) { - $closeWs = $objDoc.CreateWhitespace("`r`n`t`t") - $childObjs.AppendChild($closeWs) | Out-Null - } - $added++ } @@ -1605,8 +1597,14 @@ function Merge-AttributesIntoObject { if ($text3.Length -gt 0 -and $text3[0] -eq [char]0xFEFF) { $text3 = $text3.Substring(1) } $text3 = $text3.Replace('encoding="utf-8"', 'encoding="UTF-8"') - # Insert attributes before - $text3 = $text3 -replace '', "${allAttrXml}`r`n`t`t" + # Insert attributes — handle both and .... + # Самозакрытый элемент раскрывается здесь же, а не пробельным узлом в DOM: тот давал + # лишнюю строку с табуляцией перед первым (у Конфигуратора пустых строк нет). + if ($text3 -match '') { + $text3 = [regex]::Replace($text3, '', "${allAttrXml}`r`n`t`t") + } else { + $text3 = $text3.Replace('', "${allAttrXml}`r`n`t`t") + } # Пустой элемент: XmlWriter отдаёт ``, Конфигуратор пишет ``. Внутри # CDATA/комментария ` />` может быть содержимым (там `>` не экранируется), diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py index 8eaa312f..dc193fcf 100644 --- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py +++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# cfe-borrow v1.26 — Borrow objects from configuration into extension (CFE) +# cfe-borrow v1.27 — Borrow objects from configuration into extension (CFE) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse