Files
cc-1c-skills/tests/skills/cases/form-compile/calendar.json
T
Nick Shirokov 8998c0b5db feat(form-decompile,form-compile): свойства CalendarField (кластер CalendarField)
CalendarField терял специфичные свойства при раундтрипе: декомпилятор их не
читал, компилятор не эмитил. Пробел DSL (класс 3). CalendarField — длинный
хвост (18 форм на 17033, 0.1%), но элемент маленький и ограниченный → решено
покрыть целиком, убрав класс молчаливых потерь.

Добавлены ключи (passthrough, эмитятся только при наличии): selectionMode,
showCurrentDate, widthInMonths, heightInMonths, showMonthsPanel. Плюс
подключён общий titleLocation (раньше у календаря не обрабатывался).

Порядок тегов выверен по корпусу (18 форм): DataPath > Title > TitleLocation
> [layout] > SelectionMode > ShowCurrentDate > WidthInMonths > HeightInMonths
> ShowMonthsPanel > companions > Events.

Декомпилятор (ps1) + компилятор (ps1+py) + spec. Новый тест-кейс calendar
(два календаря: со скалярами+событием и с months-panel), сертифицирован
в 1С 8.3.24. Регресс ps+py 33/33.

Tooltip-свойства календаря (ToolTip/ToolTipRepresentation) намеренно оставлены
будущему общему tooltip-кластеру. Раундтрип календарных форм: ПериодКомандировки
→ match; остаточный TitleLocation на radio/table — отдельная находка (BACKLOG).

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

29 lines
1.3 KiB
JSON

{
"name": "Форма с полем календаря",
"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": [
{ "calendar": "Календарь", "path": "Дата", "titleLocation": "none", "selectionMode": "Interval", "showCurrentDate": false, "widthInMonths": 2, "events": { "OnActivateDate": "КалендарьПриАктивизацииДаты" } },
{ "calendar": "КалендарьМесяцы", "path": "ДатаМесяцы", "showMonthsPanel": true, "heightInMonths": 0 }
],
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.Календарь", "main": true },
{ "name": "Дата", "type": "date" },
{ "name": "ДатаМесяцы", "type": "date" }
]
}
}