mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-05 01:30:54 +03:00
fix(cfe-init,cfe-borrow): наследовать формат-версию MDClasses от базовой конфигурации
При заимствовании форм из конфигураций старого формата (напр. УТ, весь конфиг 2.13) расширение получалось разноверсийным: cfe-init хардкодил version="2.17", а cfe-borrow писал layout-форму версией исходника (2.13). Платформа на строгом импорте (ibcmd config import --extension) отвергала: «версия формата файла отличается» (Designer /LoadConfigFromFiles это пропускал — он лояльнее). Эталон Конфигуратора подтверждает: расширение должно быть ЕДИНОЙ формат-версии, а заимствованная форма поднимается до версии корня расширения. - cfe-init: формат-версия MDClasses теперь читается из базового Configuration.xml (root @version, дефолт 2.17), а не хардкодится. Формат-версия НЕ функция CompatibilityMode (УТ: Compat 8_3_17 + формат 2.13). Переиспользует паттерн Detect-FormatVersion, уже принятый в form-*/meta-*/role-*/subsystem-* навыках. - cfe-borrow: layout-форма (<Form>/<BaseForm>) пишется версией расширения ($script:formatVersion / format_version), а не версией исходной формы. Итог: всё расширение единой версией базы. E2E на свежей УТ-базе (2.13): borrow → ibcmd import чисто, PS и PY. acc (2.17) без изменений. cfe-init/cfe-borrow 6/6 ×2 рантайма. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0dc014dc47
commit
330f52c6e6
@@ -1,4 +1,4 @@
|
||||
# cfe-borrow v1.6 — Borrow objects from configuration into extension (CFE)
|
||||
# cfe-borrow v1.7 — Borrow objects from configuration into extension (CFE)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)][string]$ExtensionPath,
|
||||
@@ -556,8 +556,10 @@ function Borrow-Form {
|
||||
$srcFormDoc.Load($srcFormXmlPath)
|
||||
$srcFormEl = $srcFormDoc.DocumentElement
|
||||
|
||||
$formVersion = $srcFormEl.GetAttribute("version")
|
||||
if (-not $formVersion) { $formVersion = $script:formatVersion }
|
||||
# Borrowed form must use the extension's format version (not the source form's), so the whole
|
||||
# extension stays uniform — otherwise the platform rejects the import on a version mismatch
|
||||
# (e.g. a 2.13 form inside a 2.17 extension). The platform itself upgrades the form to the root version.
|
||||
$formVersion = $script:formatVersion
|
||||
|
||||
# Find direct children: form properties, AutoCommandBar, ChildItems
|
||||
$srcAutoCmd = $null
|
||||
|
||||
Reference in New Issue
Block a user