fix(cfe-borrow): стандартные картинки элементов остаются в заимствованной форме

Навык вырезал у элементов заимствованной формы все StdPicture.*, кроме Print.
Сверка с Конфигуратором 8.3.27 (заимствование форм УТ с основным реквизитом
и без) правило опровергла: у кнопок, подменю и страниц — в командной панели
формы, контекстных меню и теле формы — стандартная картинка остаётся в обеих
частях формы байт в байт, 26 элементов из 26. Выбрасывается только картинка
декорации, это уже учтено. Вырезание убрано в обоих портах, v1.39.

На шести эталонах Конфигуратора картинки элементов и заимствованные общие
картинки теперь совпадают полностью. Спецификация (§5.5.2) приведена
к фактическому поведению, включая файлы встроенных картинок.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 20:10:26 +03:00
co-authored by Claude Opus 5.5
parent 69745af336
commit 868ba8db49
11 changed files with 559 additions and 12 deletions
@@ -1,4 +1,4 @@
# cfe-borrow v1.38 — Borrow objects from configuration into extension (CFE)
# cfe-borrow v1.39 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -1043,8 +1043,8 @@ function Borrow-Form {
$childItemsXml = $childItemsXml.Remove($pm.Index, $pm.Length)
}
}
# Strip StdPicture blocks (except Print)
$childItemsXml = [regex]::Replace($childItemsXml, '(?s)\s*<Picture>\s*<xr:Ref>StdPicture\.(?!Print\b)\w+</xr:Ref>.*?</Picture>', '')
# Стандартные картинки (StdPicture.*) не вырезаются: Конфигуратор оставляет их у кнопок, подменю
# и страниц в обеих частях формы (эталоны 8.3.27, 26 элементов в 3 формах).
# Same Picture strip for AutoCommandBar
if ($autoCmdXml) {
@@ -1056,7 +1056,6 @@ function Borrow-Form {
$autoCmdXml = $autoCmdXml.Remove($pm.Index, $pm.Length)
}
}
$autoCmdXml = [regex]::Replace($autoCmdXml, '(?s)\s*<Picture>\s*<xr:Ref>StdPicture\.(?!Print\b)\w+</xr:Ref>.*?</Picture>', '')
}
# Auto-borrow StyleItems referenced in ChildItems
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cfe-borrow v1.38 — Borrow objects from configuration into extension (CFE)
# cfe-borrow v1.39 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -2005,8 +2005,8 @@ def main():
cp_name = pm.group(1)
if cp_name not in borrowed_pic_set:
child_items_xml = child_items_xml[:pm.start()] + child_items_xml[pm.end():]
# Strip StdPicture blocks (except Print)
child_items_xml = re.sub(r'\s*<Picture>\s*<xr:Ref>StdPicture\.(?!Print\b)\w+</xr:Ref>.*?</Picture>', '', child_items_xml, flags=re.DOTALL)
# Стандартные картинки (StdPicture.*) не вырезаются: Конфигуратор оставляет их у кнопок, подменю
# и страниц в обеих частях формы (эталоны 8.3.27, 26 элементов в 3 формах).
# Same Picture strip for AutoCommandBar
if auto_cmd_xml:
@@ -2015,7 +2015,6 @@ def main():
cp_name = pm.group(1)
if cp_name not in borrowed_pic_set:
auto_cmd_xml = auto_cmd_xml[:pm.start()] + auto_cmd_xml[pm.end():]
auto_cmd_xml = re.sub(r'\s*<Picture>\s*<xr:Ref>StdPicture\.(?!Print\b)\w+</xr:Ref>.*?</Picture>', '', auto_cmd_xml, flags=re.DOTALL)
# Auto-borrow StyleItems referenced in ChildItems
referenced_styles = set()