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:
Nick Shirokov
2026-06-04 19:31:44 +03:00
co-authored by Claude Opus 4.8
parent 9c1ea1662a
commit f27a17139a
14 changed files with 572 additions and 290 deletions
@@ -139,98 +139,119 @@
<DataPath>Объект.Товары</DataPath>
<ContextMenu name="ТоварыКонтекстноеМеню" id="55"/>
<AutoCommandBar name="ТоварыКоманднаяПанель" id="56"/>
<SearchStringAddition name="ТоварыСтрокаПоиска" id="57"/>
<ViewStatusAddition name="ТоварыСостояниеПросмотра" id="58"/>
<SearchControlAddition name="ТоварыУправлениеПоиском" id="59"/>
<SearchStringAddition name="ТоварыСтрокаПоиска" id="57">
<AdditionSource>
<Item>Товары</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТоварыСтрокаПоискаКонтекстноеМеню" id="58"/>
<ExtendedTooltip name="ТоварыСтрокаПоискаРасширеннаяПодсказка" id="59"/>
</SearchStringAddition>
<ViewStatusAddition name="ТоварыСостояниеПросмотра" id="60">
<AdditionSource>
<Item>Товары</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТоварыСостояниеПросмотраКонтекстноеМеню" id="61"/>
<ExtendedTooltip name="ТоварыСостояниеПросмотраРасширеннаяПодсказка" id="62"/>
</ViewStatusAddition>
<SearchControlAddition name="ТоварыУправлениеПоиском" id="63">
<AdditionSource>
<Item>Товары</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ТоварыУправлениеПоискомКонтекстноеМеню" id="64"/>
<ExtendedTooltip name="ТоварыУправлениеПоискомРасширеннаяПодсказка" id="65"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="ТоварыНомерСтроки" id="60">
<LabelField name="ТоварыНомерСтроки" id="66">
<DataPath>Объект.Товары.LineNumber</DataPath>
<ContextMenu name="ТоварыНомерСтрокиКонтекстноеМеню" id="61"/>
<ExtendedTooltip name="ТоварыНомерСтрокиРасширеннаяПодсказка" id="62"/>
<ContextMenu name="ТоварыНомерСтрокиКонтекстноеМеню" id="67"/>
<ExtendedTooltip name="ТоварыНомерСтрокиРасширеннаяПодсказка" id="68"/>
</LabelField>
<InputField name="ТоварыНоменклатура" id="63">
<InputField name="ТоварыНоменклатура" id="69">
<DataPath>Объект.Товары.Номенклатура</DataPath>
<ContextMenu name="ТоварыНоменклатураКонтекстноеМеню" id="64"/>
<ExtendedTooltip name="ТоварыНоменклатураРасширеннаяПодсказка" id="65"/>
<ContextMenu name="ТоварыНоменклатураКонтекстноеМеню" id="70"/>
<ExtendedTooltip name="ТоварыНоменклатураРасширеннаяПодсказка" id="71"/>
</InputField>
<InputField name="ТоварыХарактеристика" id="66">
<InputField name="ТоварыХарактеристика" id="72">
<DataPath>Объект.Товары.Характеристика</DataPath>
<ContextMenu name="ТоварыХарактеристикаКонтекстноеМеню" id="67"/>
<ExtendedTooltip name="ТоварыХарактеристикаРасширеннаяПодсказка" id="68"/>
<ContextMenu name="ТоварыХарактеристикаКонтекстноеМеню" id="73"/>
<ExtendedTooltip name="ТоварыХарактеристикаРасширеннаяПодсказка" id="74"/>
</InputField>
<InputField name="ТоварыНазначение" id="69">
<InputField name="ТоварыНазначение" id="75">
<DataPath>Объект.Товары.Назначение</DataPath>
<ContextMenu name="ТоварыНазначениеКонтекстноеМеню" id="70"/>
<ExtendedTooltip name="ТоварыНазначениеРасширеннаяПодсказка" id="71"/>
<ContextMenu name="ТоварыНазначениеКонтекстноеМеню" id="76"/>
<ExtendedTooltip name="ТоварыНазначениеРасширеннаяПодсказка" id="77"/>
</InputField>
<InputField name="ТоварыУпаковка" id="72">
<InputField name="ТоварыУпаковка" id="78">
<DataPath>Объект.Товары.Упаковка</DataPath>
<ContextMenu name="ТоварыУпаковкаКонтекстноеМеню" id="73"/>
<ExtendedTooltip name="ТоварыУпаковкаРасширеннаяПодсказка" id="74"/>
<ContextMenu name="ТоварыУпаковкаКонтекстноеМеню" id="79"/>
<ExtendedTooltip name="ТоварыУпаковкаРасширеннаяПодсказка" id="80"/>
</InputField>
<InputField name="ТоварыКоличествоУпаковок" id="75">
<InputField name="ТоварыКоличествоУпаковок" id="81">
<DataPath>Объект.Товары.КоличествоУпаковок</DataPath>
<ContextMenu name="ТоварыКоличествоУпаковокКонтекстноеМеню" id="76"/>
<ExtendedTooltip name="ТоварыКоличествоУпаковокРасширеннаяПодсказка" id="77"/>
<ContextMenu name="ТоварыКоличествоУпаковокКонтекстноеМеню" id="82"/>
<ExtendedTooltip name="ТоварыКоличествоУпаковокРасширеннаяПодсказка" id="83"/>
</InputField>
<InputField name="ТоварыКоличество" id="78">
<InputField name="ТоварыКоличество" id="84">
<DataPath>Объект.Товары.Количество</DataPath>
<ContextMenu name="ТоварыКоличествоКонтекстноеМеню" id="79"/>
<ExtendedTooltip name="ТоварыКоличествоРасширеннаяПодсказка" id="80"/>
<ContextMenu name="ТоварыКоличествоКонтекстноеМеню" id="85"/>
<ExtendedTooltip name="ТоварыКоличествоРасширеннаяПодсказка" id="86"/>
</InputField>
<InputField name="ТоварыПодразделение" id="81">
<InputField name="ТоварыПодразделение" id="87">
<DataPath>Объект.Товары.Подразделение</DataPath>
<ContextMenu name="ТоварыПодразделениеКонтекстноеМеню" id="82"/>
<ExtendedTooltip name="ТоварыПодразделениеРасширеннаяПодсказка" id="83"/>
<ContextMenu name="ТоварыПодразделениеКонтекстноеМеню" id="88"/>
<ExtendedTooltip name="ТоварыПодразделениеРасширеннаяПодсказка" id="89"/>
</InputField>
<InputField name="ТоварыГруппаПродукции" id="84">
<InputField name="ТоварыГруппаПродукции" id="90">
<DataPath>Объект.Товары.ГруппаПродукции</DataPath>
<ContextMenu name="ТоварыГруппаПродукцииКонтекстноеМеню" id="85"/>
<ExtendedTooltip name="ТоварыГруппаПродукцииРасширеннаяПодсказка" id="86"/>
<ContextMenu name="ТоварыГруппаПродукцииКонтекстноеМеню" id="91"/>
<ExtendedTooltip name="ТоварыГруппаПродукцииРасширеннаяПодсказка" id="92"/>
</InputField>
<InputField name="ТоварыАналитикаУчетаНоменклатуры" id="87">
<InputField name="ТоварыАналитикаУчетаНоменклатуры" id="93">
<DataPath>Объект.Товары.АналитикаУчетаНоменклатуры</DataPath>
<ContextMenu name="ТоварыАналитикаУчетаНоменклатурыКонтекстноеМеню" id="88"/>
<ExtendedTooltip name="ТоварыАналитикаУчетаНоменклатурыРасширеннаяПодсказка" id="89"/>
<ContextMenu name="ТоварыАналитикаУчетаНоменклатурыКонтекстноеМеню" id="94"/>
<ExtendedTooltip name="ТоварыАналитикаУчетаНоменклатурыРасширеннаяПодсказка" id="95"/>
</InputField>
<InputField name="ТоварыИдентификаторСтроки" id="90">
<InputField name="ТоварыИдентификаторСтроки" id="96">
<DataPath>Объект.Товары.ИдентификаторСтроки</DataPath>
<ContextMenu name="ТоварыИдентификаторСтрокиКонтекстноеМеню" id="91"/>
<ExtendedTooltip name="ТоварыИдентификаторСтрокиРасширеннаяПодсказка" id="92"/>
<ContextMenu name="ТоварыИдентификаторСтрокиКонтекстноеМеню" id="97"/>
<ExtendedTooltip name="ТоварыИдентификаторСтрокиРасширеннаяПодсказка" id="98"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
</Page>
<Page name="ГруппаДополнительно" id="93">
<Page name="ГруппаДополнительно" id="99">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дополнительно</v8:content>
</v8:item>
</Title>
<ExtendedTooltip name="ГруппаДополнительноРасширеннаяПодсказка" id="94"/>
<ExtendedTooltip name="ГруппаДополнительноРасширеннаяПодсказка" id="100"/>
<ChildItems>
<UsualGroup name="ГруппаПараметры" id="95">
<UsualGroup name="ГруппаПараметры" id="101">
<Group>Horizontal</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПараметрыРасширеннаяПодсказка" id="96"/>
<ExtendedTooltip name="ГруппаПараметрыРасширеннаяПодсказка" id="102"/>
<ChildItems>
<UsualGroup name="ГруппаПараметрыЛево" id="97">
<UsualGroup name="ГруппаПараметрыЛево" id="103">
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПараметрыЛевоРасширеннаяПодсказка" id="98"/>
<ExtendedTooltip name="ГруппаПараметрыЛевоРасширеннаяПодсказка" id="104"/>
</UsualGroup>
<UsualGroup name="ГруппаПараметрыПраво" id="99">
<UsualGroup name="ГруппаПараметрыПраво" id="105">
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаПараметрыПравоРасширеннаяПодсказка" id="100"/>
<ExtendedTooltip name="ГруппаПараметрыПравоРасширеннаяПодсказка" id="106"/>
</UsualGroup>
</ChildItems>
</UsualGroup>
<UsualGroup name="ГруппаДополнительныеРеквизиты" id="101">
<UsualGroup name="ГруппаДополнительныеРеквизиты" id="107">
<Group>Vertical</Group>
<ExtendedTooltip name="ГруппаДополнительныеРеквизитыРасширеннаяПодсказка" id="102"/>
<ExtendedTooltip name="ГруппаДополнительныеРеквизитыРасширеннаяПодсказка" id="108"/>
</UsualGroup>
</ChildItems>
</Page>
@@ -238,7 +259,7 @@
</Pages>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="103">
<Attribute name="Объект" id="109">
<Type>
<v8:Type>cfg:DocumentObject.АктВыполненныхВнутреннихРабот</v8:Type>
</Type>