mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-28 14:09:41 +03:00
feat(form-compile): AdditionSource табличных additions (кластер C)
У всех таблиц SearchStringAddition/ViewStatusAddition/SearchControlAddition несут <AdditionSource> (Item = имя таблицы, Type фиксирован по виду). Раньше компилятор эмитил их пустыми self-closing. - compiler PS1+PY: Emit-TableAddition/emit_table_addition — addition с AdditionSource + вложенными ContextMenu/ExtendedTooltip. - В DSL ничего не добавлено: чистое авто-обогащение (модель объявляет таблицу → корректные элементы поиска генерируются сами). decompiler/spec не тронуты. Эффект на раундтрип: AdditionSource ушёл из LOST; ContextMenu 100→7, ExtendedTooltip 210→124 (каскад схлопнут). Регресс 32/32 PS1+PY, 12 снапшотов обновлены и сертифицированы в 1С (20/20). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9c1ea1662a
commit
f27a17139a
@@ -1,4 +1,4 @@
|
||||
# form-compile v1.28 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.29 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$JsonPath,
|
||||
@@ -1824,6 +1824,22 @@ function Emit-Companion {
|
||||
X "$indent<$tag name=`"$name`" id=`"$id`"/>"
|
||||
}
|
||||
|
||||
# Табличный addition (СтрокаПоиска/СостояниеПросмотра/УправлениеПоиском) с AdditionSource.
|
||||
# Item = имя таблицы, Type фиксирован по виду; внутри — companion ContextMenu/ExtendedTooltip.
|
||||
function Emit-TableAddition {
|
||||
param([string]$tag, [string]$tableName, [string]$nameSuffix, [string]$srcType, [string]$indent)
|
||||
$addName = "$tableName$nameSuffix"
|
||||
$id = New-Id
|
||||
X "$indent<$tag name=`"$addName`" id=`"$id`">"
|
||||
X "$indent`t<AdditionSource>"
|
||||
X "$indent`t`t<Item>$tableName</Item>"
|
||||
X "$indent`t`t<Type>$srcType</Type>"
|
||||
X "$indent`t</AdditionSource>"
|
||||
Emit-Companion -tag "ContextMenu" -name "${addName}КонтекстноеМеню" -indent "$indent`t"
|
||||
Emit-Companion -tag "ExtendedTooltip" -name "${addName}РасширеннаяПодсказка" -indent "$indent`t"
|
||||
X "$indent</$tag>"
|
||||
}
|
||||
|
||||
function Emit-Element {
|
||||
param($el, [string]$indent, [bool]$inCmdBar = $false)
|
||||
|
||||
@@ -2551,9 +2567,9 @@ function Emit-Table {
|
||||
} else {
|
||||
Emit-Companion -tag "AutoCommandBar" -name "${name}КоманднаяПанель" -indent $inner
|
||||
}
|
||||
Emit-Companion -tag "SearchStringAddition" -name "${name}СтрокаПоиска" -indent $inner
|
||||
Emit-Companion -tag "ViewStatusAddition" -name "${name}СостояниеПросмотра" -indent $inner
|
||||
Emit-Companion -tag "SearchControlAddition" -name "${name}УправлениеПоиском" -indent $inner
|
||||
Emit-TableAddition -tag "SearchStringAddition" -tableName $name -nameSuffix "СтрокаПоиска" -srcType "SearchStringRepresentation" -indent $inner
|
||||
Emit-TableAddition -tag "ViewStatusAddition" -tableName $name -nameSuffix "СостояниеПросмотра" -srcType "ViewStatusRepresentation" -indent $inner
|
||||
Emit-TableAddition -tag "SearchControlAddition" -tableName $name -nameSuffix "УправлениеПоиском" -srcType "SearchControl" -indent $inner
|
||||
|
||||
# Columns
|
||||
if ($el.columns -and $el.columns.Count -gt 0) {
|
||||
|
||||
Reference in New Issue
Block a user