Files
cc-1c-skills/tests/skills/cases/form-compile/picture-field.json
T
Nick Shirokov c43041c0b7 feat(form-decompile,form-compile): TitleLocation у LabelField/PictureField/Table (кластер TitleLocation)
TitleLocation обрабатывался только у input (passthrough), check/radio
(smart-default) и calendar. У LabelField (7362 в корпусе), PictureField (2479)
и Table (381) тег молча терялся — ни декомпилятор, ни компилятор его не знали.

Профиль доли элементов с тегом: Table 2.9%, LabelField 15.8%, PictureField
80.5% (но 20% без тега). Платформа НЕ всегда эмитит → выбран passthrough
(эмитим при наличии ключа, как у input/calendar), не smart-default. Корректно
и консистентно; переиспользован существующий ключ titleLocation + Map-TitleLoc.

Декомпилятор (ps1): захват titleLocation в трёх ветках. Компилятор (ps1+py):
эмиссия в Emit-LabelField/Emit-Table/Emit-PictureField в позиции по схеме.
spec §4.1: titleLocation вынесен в общие свойства с пометкой охвата.

Тест-покрытие добавлено в input-fields (labelField=left), picture-field
(picField=none), table (table=top) — снэпшоты сертифицированы в 1С 8.3.24.
Раундтрип 60 форм с TitleLocation на label/pic/table/radio: остатка нет.
Регресс ps+py 33/33.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 13:33:05 +03:00

36 lines
1.9 KiB
JSON

{
"name": "Таблица с колонкой-картинкой (PictureField + ValuesPicture + Selection)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "DataProcessor", "name": "КартинкаВСтроке" },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/DataProcessors/КартинкаВСтроке.xml", "-FormName": "Форма" }
}
],
"params": { "outputPath": "DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml" },
"validatePath": "DataProcessors/КартинкаВСтроке/Forms/Форма/Ext/Form.xml",
"input": {
"title": "Картинка в строке",
"elements": [
{ "table": "ТаблицаДанных", "path": "ТаблицаДанных",
"on": ["Selection"], "handlers": { "Selection": "ТаблицаДанныхВыбор" },
"columns": [
{ "input": "ТаблицаДанныхНоменклатура", "path": "ТаблицаДанных.Номенклатура" },
{ "picField": "ТаблицаДанныхКартинка", "path": "ТаблицаДанных.Картинка", "titleLocation": "none", "valuesPicture": "StdPicture.Favorites", "loadTransparent": true },
{ "check": "ТаблицаДанныхКартинкаФлаг", "path": "ТаблицаДанных.Картинка", "title": "Флаг" }
]}
],
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.КартинкаВСтроке", "main": true },
{ "name": "ТаблицаДанных", "type": "ValueTable", "title": "Таблица данных", "columns": [
{ "name": "Номенклатура", "type": "string(10)" },
{ "name": "Картинка", "type": "boolean" }
]}
]
}
}