mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
fix(form,meta,skd): срезать любой сгенерированный префикс dNpM:, не только d5p1
Имя префикса для .../8.1/data/enterprise/current-config платформа выдаёт по порядку объявления в файле: в корпусе acc_8.3.27 на этом URI встречаются d4p1, d5p1 и d6p1. Литеральное d5p1: покрывало лишь часть случаев — тип, скопированный из Predefined.xml, приходит с d4p1: и даёт ту же ошибку «Неизвестное имя типа». Обобщено до ^d\d+p\d+: — так же, как это уже делает form-info. Условие «только у ссылочных типов, с точкой» сохранено: все 11 спец-типов чужих пространств имён (d5p1:Chart, mxl:SpreadsheetDocument, pl:Planner и др.) точки не имеют. Регресс-кейс расширен на d4p1 и d6p1: все шесть форм ввода дают один cfg:CatalogRef.Склады. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
826ba3de71
commit
3c50d3caa0
@@ -1,4 +1,4 @@
|
||||
# meta-edit v1.33 — Edit existing 1C metadata object XML (+resolve_type_str: срезание префикса cfg:/d5p1:)
|
||||
# meta-edit v1.34 — Edit existing 1C metadata object XML (+resolve_type_str: срезание префикса cfg:/d5p1:)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$DefinitionFile,
|
||||
@@ -463,14 +463,15 @@ function Resolve-TypeStr {
|
||||
|
||||
# Прощающий ввод: ведущий префикс приходит копипастой из выгрузки. Без срезания он ломает
|
||||
# поиск в словаре — русское имя типа остаётся непереведённым, и платформа отвечает
|
||||
# «Неизвестное имя типа». cfg: снимаем всегда (однозначно = текущая конфигурация), d5p1: —
|
||||
# только у ССЫЛОЧНЫХ типов (с точкой): сам по себе префикс неоднозначен, в формах d5p1:Chart,
|
||||
# d5p1:TextDocument, d5p1:GeographicalSchema и др. адресуют свои пространства имён, и там он
|
||||
# часть канонического значения.
|
||||
# «Неизвестное имя типа». cfg: снимаем всегда — он однозначно означает текущую конфигурацию.
|
||||
# Сгенерированный dNpM: (в корпусе на этом URI встречаются d4p1, d5p1, d6p1 — имя префикса
|
||||
# платформа выдаёт по порядку объявления) снимаем ТОЛЬКО у ссылочных типов, с точкой:
|
||||
# сам по себе префикс многозначен — в формах d5p1:Chart, d5p1:TextDocument,
|
||||
# d5p1:GeographicalSchema адресуют чужие пространства имён, и там он часть значения.
|
||||
if ($typeStr.StartsWith('cfg:')) {
|
||||
$typeStr = $typeStr.Substring(4)
|
||||
} elseif ($typeStr.StartsWith('d5p1:') -and $typeStr.Contains('.')) {
|
||||
$typeStr = $typeStr.Substring(5)
|
||||
} elseif ($typeStr.Contains('.') -and $typeStr -match '^d\d+p\d+:') {
|
||||
$typeStr = $typeStr.Substring($typeStr.IndexOf(':') + 1)
|
||||
}
|
||||
|
||||
# Параметризованные типы: Number(15,2), Строка(100)
|
||||
|
||||
Reference in New Issue
Block a user