feat(form-compile): авто-генерация пустого ExtendedTooltip для Table/CommandBar/Popup (companion presence)

Платформа всегда ставит companion <ExtendedTooltip> на Table/CommandBar/Popup (подтверждено
корпусом: 13174/6086/15681 — 100%), но компилятор его не генерил (не было call-site в
Emit-Table/CommandBar/Popup) → пустой companion терялся при раундтрипе (вскрыто фиксом метрики).

Добавлена эмиссия ExtendedTooltip в Emit-Table (после AutoCommandBar), Emit-CommandBar и
Emit-Popup (перед ChildItems) — с контентом el.extendedTooltip (единый механизм). Зеркало
в form-compile.py идентично.

Валидация: ExtendedTooltip LOST 437→276 — Table(117→1)/CommandBar(46→0) закрыты, Popup
13→7; сертификация в 1С PASS; регресс 33/33 ps+py (снэпшоты перегенерированы — +ExtendedTooltip
и каскад перенумерации id); py==ps1; harness 8144→7911, match 8→9.

Остаток ExtendedTooltip LOST (Button 213 + ButtonGroup 34) — НЕ ExtendedTooltip: это cascade
от непокрытого контента AutoCommandBar (кастомные кнопки/ButtonGroup командной панели не
генерятся компилятором) — отдельный кластер. CheckBoxField 7 — ExtendedTooltip с own-layout
(<Width>). В BACKLOG.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-06 19:13:32 +03:00
co-authored by Claude Opus 4.8
parent b147e491ee
commit f34993b805
18 changed files with 426 additions and 404 deletions
@@ -40,41 +40,42 @@
<AutoCommandBar name="СписокКоманднаяПанель" id="5">
<Autofill>false</Autofill>
</AutoCommandBar>
<SearchStringAddition name="СписокСтрокаПоиска" id="6">
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="6"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="7">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="7"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="8"/>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="9"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="9">
<ViewStatusAddition name="СписокСостояниеПросмотра" id="10">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="10"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="11"/>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="12"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="12">
<SearchControlAddition name="СписокУправлениеПоиском" id="13">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="13"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="14"/>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="14"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="15"/>
</SearchControlAddition>
<ChildItems>
<InputField name="Наименование" id="15">
<InputField name="Наименование" id="16">
<DataPath>Список.Description</DataPath>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="16"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="17"/>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="18"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Список" id="18">
<Attribute name="Список" id="19">
<Type>
<v8:Type>cfg:DynamicList</v8:Type>
</Type>
@@ -103,7 +104,7 @@
</Attribute>
</Attributes>
<Commands>
<Command name="ИзменитьВыделенные" id="19">
<Command name="ИзменитьВыделенные" id="20">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>