mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-19 17:50:23 +03:00
fix(form,meta,skd): resolve_type_str — одно тело + срезание префикса типа
Шесть копий resolve_type_str разошлись на 6 вариантов в PY и 4 в PS1, а вместе с формой разошлось и поведение: префикс ссылочного типа срезал только form-compile. Проверка на платформе (стенд 8.3.24.1691, cf-init → meta-compile → db-load-xml) показала, что это не косметика. Префикс ломает поиск в словаре синонимов, из-за чего русское имя типа остаётся непереведённым: СправочникСсылка.Склады → cfg:CatalogRef.Склады (верно) cfg:СправочникСсылка.Склады → cfg:СправочникСсылка.Склады (неверно) Платформа отвечает «Неизвестное имя типа - СправочникСсылка.Склады» и отклоняет загрузку. Именно с префиксом тип и написан в выгрузке, откуда пользователь его копирует. cfg: снимается всегда, d5p1: — только у ссылочных типов (с точкой): сам по себе префикс неоднозначен, в формах d5p1:Chart, d5p1:TextDocument и ещё три типа адресуют свои пространства имён, и там он часть канонического значения. Первая версия правки срезала его безусловно и уронила 4 кейса form-compile. Тело общее для всех шести навыков; словари синонимов остаются локальными, навык объявляет на свой словарь алиас TYPE_SYNONYMS / $script:typeSynonyms. Регресс-кейс meta-compile/type-prefix-lenient проверяет все три формы ввода. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d99d63288e
commit
826ba3de71
@@ -107,6 +107,17 @@ const FAMILIES = [
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Прощающий ввод: разбор строки типа ──────────────────────────────────
|
||||
{
|
||||
name: 'resolve_type_str', py: 'resolve_type_str', ps1: 'Resolve-TypeStr',
|
||||
// Тело одинаково во всех навыках, а словари синонимов разные — навык объявляет алиас
|
||||
// TYPE_SYNONYMS / $script:typeSynonyms на свой локальный словарь.
|
||||
variants: [
|
||||
{ id: 'base', authority: 'meta-compile',
|
||||
consumers: ['form-compile', 'form-edit', 'meta-edit', 'skd-compile', 'skd-edit'] },
|
||||
],
|
||||
},
|
||||
|
||||
// ─── Экранирование XML ───────────────────────────────────────────────────
|
||||
{
|
||||
name: 'esc_xml', py: 'esc_xml', ps1: 'Esc-Xml',
|
||||
@@ -195,8 +206,6 @@ const FAMILIES = [
|
||||
// число групп не должно расти. Фаза 2 сводит семью к одному телу и переносит её в FAMILIES.
|
||||
|
||||
const DRIFTED = [
|
||||
{ name: 'resolve_type_str', py: 'resolve_type_str', ps1: 'Resolve-TypeStr', maxVariants: { py: 6, ps1: 4 },
|
||||
note: 'алгоритм один, отличия редакторские; отдельно — срезание префикса cfg: только в form-compile' },
|
||||
{ name: 'emit_mltext', py: 'emit_mltext', ps1: 'Emit-MLText', maxVariants: { py: 5, ps1: 5 } },
|
||||
{ name: 'get_ml_text', py: 'get_ml_text', ps1: 'Get-MLText', maxVariants: { py: 7, ps1: 6 } },
|
||||
{ name: 'validate: report_error', py: null, ps1: 'Report-Error', maxVariants: { ps1: 3 } },
|
||||
|
||||
Reference in New Issue
Block a user