From f522d29cc0cb27a60e03b07c12f6dc565b85b5e6 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Wed, 12 Aug 2026 20:34:13 +0300 Subject: [PATCH] =?UTF-8?q?fix(cfe-borrow):=20=D0=BD=D0=B5=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D0=B8=D1=82=D1=8C=20FoldersOnTop?= =?UTF-8?q?=20=D0=B2=20=D0=BE=D0=B1=D0=BE=D0=BB=D0=BE=D1=87=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B8=D0=BC=D1=81=D1=82=D0=B2=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сквозной прогон (собрали расширение навыками → загрузили → обновили БД → выгрузили обратно) показал: записанный нами из выгрузки пропадает. Платформа его у заимствованной оболочки не хранит — принимает молча и выбрасывает. Соседние свойства того же списка (Hierarchical, CodeLength, DescriptionLength, CodeType, CodeAllowedLength) сохраняются, так что дело именно в этом свойстве. Эталон Конфигуратора его тоже не переносит. Список propsToExtract собирался на глаз при появлении -BorrowMainAttribute; это второе свойство из него, которое платформа не принимает (первым был NumberPeriodicity, ронявший UpdateDBCfg). Одноразовый прогонщик сценариев — debug/roundtrip/ (в .gitignore). Регресс cfe-borrow 12/12 на обоих рантаймах, гарды зелёные. --- .claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 | 7 +++++-- .claude/skills/cfe-borrow/scripts/cfe-borrow.py | 7 +++++-- .../snapshots/form-bindings/Ext/Catalogs/Товары.xml | 1 - 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 index e0349bce..2eccb3ba 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.24 — Borrow objects from configuration into extension (CFE) (не переносить NumberPeriodicity в оболочку документа) +# cfe-borrow v1.25 — Borrow objects from configuration into extension (CFE) (не переносить FoldersOnTop — платформа его не хранит) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [Parameter(Mandatory)][string]$ExtensionPath, @@ -1402,7 +1402,10 @@ function Resolve-SourceAttributes { # контролируемость свойства "Нумератор" недопустимо». Конфигуратор его не переносит # (эталон заимствования документа: NumberType/NumberLength/NumberAllowedLength и всё). # Загрузку это не ломает, ошибка вылезает только на обновлении конфигурации БД. - $propsToExtract = @("Hierarchical","FoldersOnTop","CodeLength","DescriptionLength","CodeType","CodeAllowedLength", + # FoldersOnTop сюда НЕ входит: платформа его у заимствованной оболочки не хранит — при + # загрузке молча выбрасывает (проверено раундтрипом: записали, выгрузили обратно, свойства + # нет). Конфигуратор его тоже не переносит. Остальные из списка сохраняются. + $propsToExtract = @("Hierarchical","CodeLength","DescriptionLength","CodeType","CodeAllowedLength", "NumberType","NumberLength","NumberAllowedLength") foreach ($pName in $propsToExtract) { $pNode = $propsNode.SelectSingleNode("md:${pName}", $srcNs) diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py index c9f01081..2e8eb7ac 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.24 — Borrow objects from configuration into extension (CFE) (не переносить NumberPeriodicity в оболочку документа) +# cfe-borrow v1.25 — Borrow objects from configuration into extension (CFE) (не переносить FoldersOnTop — платформа его не хранит) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -1091,8 +1091,11 @@ def main(): # контролируемость свойства "Нумератор" недопустимо». Конфигуратор его не переносит # (эталон заимствования документа: NumberType/NumberLength/NumberAllowedLength и всё). # Загрузку это не ломает, ошибка вылезает только на обновлении конфигурации БД. + # FoldersOnTop сюда НЕ входит: платформа его у заимствованной оболочки не хранит — при + # загрузке молча выбрасывает (проверено раундтрипом: записали, выгрузили обратно, свойства + # нет). Конфигуратор его тоже не переносит. Остальные из списка сохраняются. props_to_extract = [ - "Hierarchical", "FoldersOnTop", "CodeLength", "DescriptionLength", + "Hierarchical", "CodeLength", "DescriptionLength", "CodeType", "CodeAllowedLength", "NumberType", "NumberLength", "NumberAllowedLength", ] diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-bindings/Ext/Catalogs/Товары.xml b/tests/skills/cases/cfe-borrow/snapshots/form-bindings/Ext/Catalogs/Товары.xml index 526e43a0..5cd85a5a 100644 --- a/tests/skills/cases/cfe-borrow/snapshots/form-bindings/Ext/Catalogs/Товары.xml +++ b/tests/skills/cases/cfe-borrow/snapshots/form-bindings/Ext/Catalogs/Товары.xml @@ -29,7 +29,6 @@ UUID-012 false - true 9 25 String