diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1
index e43a3018..a5984b09 100644
--- a/.claude/skills/form-compile/scripts/form-compile.ps1
+++ b/.claude/skills/form-compile/scripts/form-compile.ps1
@@ -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"
+ X "$indent`t`t- $tableName
"
+ X "$indent`t`t$srcType"
+ X "$indent`t"
+ 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) {
diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py
index 773e4ab8..87b1bf44 100644
--- a/.claude/skills/form-compile/scripts/form-compile.py
+++ b/.claude/skills/form-compile/scripts/form-compile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# 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
import argparse
import copy
@@ -1549,6 +1549,20 @@ def emit_companion(lines, tag, name, indent):
lines.append(f'{indent}<{tag} name="{name}" id="{cid}"/>')
+def emit_table_addition(lines, tag, table_name, name_suffix, src_type, indent):
+ # Табличный addition с AdditionSource (Item = имя таблицы, Type фиксирован).
+ add_name = f'{table_name}{name_suffix}'
+ aid = new_id()
+ lines.append(f'{indent}<{tag} name="{add_name}" id="{aid}">')
+ lines.append(f'{indent}\t')
+ lines.append(f'{indent}\t\t- {table_name}
')
+ lines.append(f'{indent}\t\t{src_type}')
+ lines.append(f'{indent}\t')
+ emit_companion(lines, 'ContextMenu', f'{add_name}КонтекстноеМеню', f'{indent}\t')
+ emit_companion(lines, 'ExtendedTooltip', f'{add_name}РасширеннаяПодсказка', f'{indent}\t')
+ lines.append(f'{indent}{tag}>')
+
+
def emit_common_flags(lines, el, indent):
if el.get('visible') is False or el.get('hidden') is True:
lines.append(f"{indent}false")
@@ -2211,9 +2225,9 @@ def emit_table(lines, el, name, eid, indent):
lines.append(f'{inner}')
else:
emit_companion(lines, 'AutoCommandBar', f'{name}\u041a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f\u041f\u0430\u043d\u0435\u043b\u044c', inner)
- emit_companion(lines, 'SearchStringAddition', f'{name}\u0421\u0442\u0440\u043e\u043a\u0430\u041f\u043e\u0438\u0441\u043a\u0430', inner)
- emit_companion(lines, 'ViewStatusAddition', f'{name}\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430', inner)
- emit_companion(lines, 'SearchControlAddition', f'{name}\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u041f\u043e\u0438\u0441\u043a\u043e\u043c', inner)
+ emit_table_addition(lines, 'SearchStringAddition', name, '\u0421\u0442\u0440\u043e\u043a\u0430\u041f\u043e\u0438\u0441\u043a\u0430', 'SearchStringRepresentation', inner)
+ emit_table_addition(lines, 'ViewStatusAddition', name, '\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430', 'ViewStatusRepresentation', inner)
+ emit_table_addition(lines, 'SearchControlAddition', name, '\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u041f\u043e\u0438\u0441\u043a\u043e\u043c', 'SearchControl', inner)
# Columns
if el.get('columns') and len(el['columns']) > 0:
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/accumreg-list-simple/AccumulationRegisters/ДенежныеСредства/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/accumreg-list-simple/AccumulationRegisters/ДенежныеСредства/Forms/ФормаСписка/Ext/Form.xml
index e468df18..ffdc59aa 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/accumreg-list-simple/AccumulationRegisters/ДенежныеСредства/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/accumreg-list-simple/AccumulationRegisters/ДенежныеСредства/Forms/ФормаСписка/Ext/Form.xml
@@ -17,55 +17,76 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Period
-
-
+
+
-
+
Список.Recorder
-
-
+
+
-
+
Список.LineNumber
-
-
+
+
-
+
Список.Организация
-
-
+
+
-
+
Список.БанковскийСчет
-
-
+
+
-
+
Список.Сумма
-
-
+
+
-
+
Список.СуммаВалютная
-
-
+
+
-
+
Список.СуммаУпр
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/catalog-list-simple/Catalogs/Валюты/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/catalog-list-simple/Catalogs/Валюты/Forms/ФормаСписка/Ext/Form.xml
index 62d0f1c7..65f871bb 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/catalog-list-simple/Catalogs/Валюты/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/catalog-list-simple/Catalogs/Валюты/Forms/ФормаСписка/Ext/Form.xml
@@ -17,68 +17,89 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Description
-
-
+
+
-
+
Список.Code
-
-
+
+
-
+
Список.ЗагружаетсяИзИнтернета
-
-
+
+
-
+
Список.НаименованиеПолное
-
-
+
+
-
+
Список.Наценка
-
-
+
+
-
+
Список.ОсновнаяВалюта
-
-
+
+
-
+
Список.ПараметрыПрописи
-
-
+
+
-
+
Список.ФормулаРасчетаКурса
-
-
+
+
-
+
Список.СпособУстановкиКурса
-
-
+
+
-
+
Список.Ref
false
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-item-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСчета/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-item-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСчета/Ext/Form.xml
index 3597f6cf..072d852c 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-item-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСчета/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-item-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСчета/Ext/Form.xml
@@ -86,38 +86,59 @@
Объект.ExtDimensionTypes
-
-
-
+
+
+ - ВидыСубконто
+ SearchStringRepresentation
+
+
+
+
+
+
+ - ВидыСубконто
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - ВидыСубконто
+ SearchControl
+
+
+
+
-
+
Объект.ExtDimensionTypes.ExtDimensionType
-
-
+
+
-
+
Объект.ExtDimensionTypes.TurnoversOnly
Right
-
-
+
+
-
+
Объект.ExtDimensionTypes.Валютный
Right
-
-
+
+
-
+
Объект.ExtDimensionTypes.Количественный
Right
-
-
+
+
-
+
cfg:ChartOfAccountsObject.Хозрасчетный
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-list-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-list-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСписка/Ext/Form.xml
index 43224411..8845e471 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-list-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/chartofaccounts-list-simple/ChartsOfAccounts/Хозрасчетный/Forms/ФормаСписка/Ext/Form.xml
@@ -20,33 +20,54 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Description
-
-
+
+
-
+
Список.Code
-
-
+
+
-
+
Список.Ref
false
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/document-item-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/document-item-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаДокумента/Ext/Form.xml
index 2853805a..1e028ccc 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/document-item-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/document-item-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаДокумента/Ext/Form.xml
@@ -139,98 +139,119 @@
Объект.Товары
-
-
-
+
+
+ - Товары
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Товары
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Товары
+ SearchControl
+
+
+
+
-
+
Объект.Товары.LineNumber
-
-
+
+
-
+
Объект.Товары.Номенклатура
-
-
+
+
-
+
Объект.Товары.Характеристика
-
-
+
+
-
+
Объект.Товары.Назначение
-
-
+
+
-
+
Объект.Товары.Упаковка
-
-
+
+
-
+
Объект.Товары.КоличествоУпаковок
-
-
+
+
-
+
Объект.Товары.Количество
-
-
+
+
-
+
Объект.Товары.Подразделение
-
-
+
+
-
+
Объект.Товары.ГруппаПродукции
-
-
+
+
-
+
Объект.Товары.АналитикаУчетаНоменклатуры
-
-
+
+
-
+
Объект.Товары.ИдентификаторСтроки
-
-
+
+
-
+
ru
Дополнительно
-
+
-
+
Horizontal
false
-
+
-
+
Vertical
false
-
+
-
+
Vertical
false
-
+
-
+
Vertical
-
+
@@ -238,7 +259,7 @@
-
+
cfg:DocumentObject.АктВыполненныхВнутреннихРабот
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/document-list-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/document-list-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаСписка/Ext/Form.xml
index f05414f2..1622e9fe 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/document-list-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/document-list-medium/Documents/АктВыполненныхВнутреннихРабот/Forms/ФормаСписка/Ext/Form.xml
@@ -17,88 +17,109 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Number
-
-
+
+
-
+
Список.Date
-
-
+
+
-
+
Список.Организация
-
-
+
+
-
+
Список.ОрганизацияПолучатель
-
-
+
+
-
+
Список.Подразделение
-
-
+
+
-
+
Список.ХозяйственнаяОперация
-
-
+
+
-
+
Список.ПеремещениеПодДеятельность
-
-
+
+
-
+
Список.НаправлениеДеятельности
-
-
+
+
-
+
Список.Ответственный
-
-
+
+
-
+
Список.СторнируемыйДокумент
-
-
+
+
-
+
Список.ИсправляемыйДокумент
-
-
+
+
-
+
Список.Комментарий
-
-
+
+
-
+
Список.Исправление
-
-
+
+
-
+
Список.Ref
false
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile-from-object/snapshots/inforeg-list-periodic/InformationRegisters/ЦеныНоменклатуры/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile-from-object/snapshots/inforeg-list-periodic/InformationRegisters/ЦеныНоменклатуры/Forms/ФормаСписка/Ext/Form.xml
index e9e718db..cbf8a2ce 100644
--- a/tests/skills/cases/form-compile-from-object/snapshots/inforeg-list-periodic/InformationRegisters/ЦеныНоменклатуры/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile-from-object/snapshots/inforeg-list-periodic/InformationRegisters/ЦеныНоменклатуры/Forms/ФормаСписка/Ext/Form.xml
@@ -17,45 +17,66 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Period
-
-
+
+
-
+
Список.Recorder
-
-
+
+
-
+
Список.LineNumber
-
-
+
+
-
+
Список.Номенклатура
-
-
+
+
-
+
Список.ВидЦены
-
-
+
+
-
+
Список.Цена
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile/snapshots/auto-cmd-bar/Catalogs/Бригады/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/auto-cmd-bar/Catalogs/Бригады/Forms/ФормаСписка/Ext/Form.xml
index f6ceeae7..45ab3419 100644
--- a/tests/skills/cases/form-compile/snapshots/auto-cmd-bar/Catalogs/Бригады/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/auto-cmd-bar/Catalogs/Бригады/Forms/ФормаСписка/Ext/Form.xml
@@ -26,20 +26,41 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Description
-
-
+
+
-
+
cfg:DynamicList
@@ -52,7 +73,7 @@
-
+
ru
diff --git a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml
index 8474e7bf..8d38bf52 100644
--- a/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/column-group/DataProcessors/Задачи/Forms/Форма/Ext/Form.xml
@@ -13,16 +13,37 @@
Список
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Наименование
-
-
+
+
-
+
ru
@@ -30,29 +51,29 @@
Horizontal
-
+
-
+
Список.ДатаНачала
-
-
+
+
-
+
Список.ДатаОкончания
-
-
+
+
-
+
InCell
true
-
+
-
+
Список.Исполнитель
-
-
+
+
@@ -60,13 +81,13 @@
-
+
cfg:DataProcessorObject.Задачи
true
-
+
ru
@@ -77,7 +98,7 @@
v8:ValueTable
-
+
xs:string
@@ -86,7 +107,7 @@
-
+
xs:dateTime
@@ -94,7 +115,7 @@
-
+
xs:dateTime
@@ -102,7 +123,7 @@
-
+
xs:string
diff --git a/tests/skills/cases/form-compile/snapshots/dynamic-list-form/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/dynamic-list-form/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml
index cebb5741..9979f860 100644
--- a/tests/skills/cases/form-compile/snapshots/dynamic-list-form/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/dynamic-list-form/Catalogs/Товары/Forms/ФормаСписка/Ext/Form.xml
@@ -17,25 +17,46 @@
false
-
-
-
+
+
+ - Список
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Список
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Список
+ SearchControl
+
+
+
+
-
+
Список.Code
-
-
+
+
-
+
Список.Description
-
-
+
+
-
+
cfg:DynamicList
diff --git a/tests/skills/cases/form-compile/snapshots/picture-field/DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/picture-field/DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml
index 567dcbaa..b15a2177 100644
--- a/tests/skills/cases/form-compile/snapshots/picture-field/DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/picture-field/DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml
@@ -13,25 +13,46 @@
ТаблицаДанных
-
-
-
+
+
+ - ТаблицаДанных
+ SearchStringRepresentation
+
+
+
+
+
+
+ - ТаблицаДанных
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - ТаблицаДанных
+ SearchControl
+
+
+
+
-
+
ТаблицаДанных.Номенклатура
-
-
+
+
-
+
ТаблицаДанных.Картинка
StdPicture.Favorites
true
-
-
+
+
-
+
ТаблицаДанных.Картинка
@@ -40,8 +61,8 @@
Right
-
-
+
+
@@ -50,13 +71,13 @@
-
+
cfg:DataProcessorObject.КартинкаВСтроке
true
-
+
ru
@@ -67,7 +88,7 @@
v8:ValueTable
-
+
xs:string
@@ -76,7 +97,7 @@
-
+
xs:boolean
diff --git a/tests/skills/cases/form-compile/snapshots/table/DataProcessors/Таблица/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/table/DataProcessors/Таблица/Forms/Форма/Ext/Form.xml
index eefcfc45..eaa9d72e 100644
--- a/tests/skills/cases/form-compile/snapshots/table/DataProcessors/Таблица/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/table/DataProcessors/Таблица/Forms/Форма/Ext/Form.xml
@@ -22,36 +22,57 @@
-
-
-
+
+
+ - Данные
+ SearchStringRepresentation
+
+
+
+
+
+
+ - Данные
+ ViewStatusRepresentation
+
+
+
+
+
+
+ - Данные
+ SearchControl
+
+
+
+
-
+
Данные.Дата
-
-
+
+
-
+
Данные.Сумма
-
-
+
+
-
+
Данные.Комментарий
-
-
+
+
-
+
cfg:DataProcessorObject.Таблица
true
-
+
ru
@@ -62,7 +83,7 @@
v8:ValueTable
-
+
xs:dateTime
@@ -70,7 +91,7 @@
-
+
xs:decimal
@@ -80,7 +101,7 @@
-
+
xs:string