mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 14:25:17 +03:00
feat(form-decompile,form-compile): Planner design-time Settings из ring-3 (Фаза 1 кластера Chart-Settings)
Реквизит planner-типа несёт <Settings xsi:type="pl:Planner"> — встроенный конфиг
поля-планировщика (элементы расписания + оформление/поведение + шкала времени).
Раньше декомпилятор делал fail-ring3 (третий вид Settings после TypeDescription/
DynamicList). Корпус 8.3.24: Planner Settings = 1 реальная форма (КонтактныеЛица/
ФормаЛиды), всё chart-семейство = 38 форм. Решение (с пользователем): структурный
DSL ради возможности модели СОЗДАВАТЬ дашборды/планировщики, не только раундтрипить.
DSL: ключ planner:{…} на реквизите (docs/form-dsl-spec.md):
- items[] (элементы расписания) + appearance/поведение-скаляры + timeScale
(placement/levels[]/colors) + period;
- цвета verbatim, шрифт {kind:AutoFont}/ref, граница {width,style}, ML-форматы;
- компилятор подставляет дефолты для пропущенных ключей (краткий авторинг),
декомпилятор — полный захват (раундтрип бит-в-бит).
Снят fail-ring3 для pl:Planner (Chart/GanttChart остаются — Фазы 2/3).
Заодно фикс: d5p1:Dendrogram отсутствовал в specialTypeNs (эмитился без
xmlns-префикса) — добавлен в карту (ps1+py).
Раундтрип бит-в-бит: синтетика upload/epf/Диаграммы (с items+period) +
реальная ФормаЛиды (без items/period, иные значения скаляров). Зеркало py
(ps1==py байт-в-байт). Кейс chart-fields расширен (+planner +dendrogram),
сертифицирован загрузкой в 1С. Регресс 41/41 (ps1+py).
Ограничение Phase 1: dimensions/item.dimensionValues пока всегда пустые.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "Форма с полями диаграмм (без design-time Settings)",
|
||||
"name": "Форма с полями диаграмм + design-time Settings планировщика",
|
||||
"preRun": [
|
||||
{
|
||||
"script": "meta-compile/scripts/meta-compile",
|
||||
@@ -20,14 +20,23 @@
|
||||
{ "graphicalSchema": "Схема", "path": "Схема", "titleLocation": "none", "edit": false },
|
||||
{ "periodField": "Период", "path": "Период", "titleLocation": "none" },
|
||||
{ "ganttChart": "Ганта", "path": "Ганта", "titleLocation": "none",
|
||||
"ganttTable": { "table": "ТаблицаГанта", "path": "Ганта", "height": 3 } }
|
||||
"ganttTable": { "table": "ТаблицаГанта", "path": "Ганта", "height": 3 } },
|
||||
{ "dendrogram": "Дендро", "path": "Дендро", "titleLocation": "none" },
|
||||
{ "planner": "Планировщик", "path": "Планировщик", "titleLocation": "none" }
|
||||
],
|
||||
"attributes": [
|
||||
{ "name": "Объект", "type": "DataProcessorObject.Диаграммы", "main": true },
|
||||
{ "name": "Диаграмма", "type": "d5p1:Chart" },
|
||||
{ "name": "Схема", "type": "d5p1:FlowchartContextType" },
|
||||
{ "name": "Период", "type": "v8:StandardPeriod" },
|
||||
{ "name": "Ганта", "type": "d5p1:GanttChart" }
|
||||
{ "name": "Ганта", "type": "d5p1:GanttChart" },
|
||||
{ "name": "Дендро", "type": "d5p1:Dendrogram" },
|
||||
{ "name": "Планировщик", "type": "pl:Planner", "planner": {
|
||||
"items": [
|
||||
{ "text": "Встреча", "begin": "2026-06-09T01:00:00", "end": "2026-06-09T04:00:00" }
|
||||
],
|
||||
"period": { "begin": "2026-06-09T00:00:00", "end": "2026-06-09T23:59:59" }
|
||||
} }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
+135
-5
@@ -65,15 +65,27 @@
|
||||
</SearchControlAddition>
|
||||
</Table>
|
||||
</GanttChartField>
|
||||
<DendrogramField name="Дендро" id="26">
|
||||
<DataPath>Дендро</DataPath>
|
||||
<TitleLocation>None</TitleLocation>
|
||||
<ContextMenu name="ДендроКонтекстноеМеню" id="27"/>
|
||||
<ExtendedTooltip name="ДендроРасширеннаяПодсказка" id="28"/>
|
||||
</DendrogramField>
|
||||
<PlannerField name="Планировщик" id="29">
|
||||
<DataPath>Планировщик</DataPath>
|
||||
<TitleLocation>None</TitleLocation>
|
||||
<ContextMenu name="ПланировщикКонтекстноеМеню" id="30"/>
|
||||
<ExtendedTooltip name="ПланировщикРасширеннаяПодсказка" id="31"/>
|
||||
</PlannerField>
|
||||
</ChildItems>
|
||||
<Attributes>
|
||||
<Attribute name="Объект" id="26">
|
||||
<Attribute name="Объект" id="32">
|
||||
<Type>
|
||||
<v8:Type>cfg:DataProcessorObject.Диаграммы</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
</Attribute>
|
||||
<Attribute name="Диаграмма" id="27">
|
||||
<Attribute name="Диаграмма" id="33">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -84,7 +96,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/chart">d5p1:Chart</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="Схема" id="28">
|
||||
<Attribute name="Схема" id="34">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -95,7 +107,7 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/graphscheme">d5p1:FlowchartContextType</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="Период" id="29">
|
||||
<Attribute name="Период" id="35">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -106,7 +118,7 @@
|
||||
<v8:Type>v8:StandardPeriod</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="Ганта" id="30">
|
||||
<Attribute name="Ганта" id="36">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -117,5 +129,123 @@
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/chart">d5p1:GanttChart</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="Дендро" id="37">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Дендро</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/chart">d5p1:Dendrogram</v8:Type>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="Планировщик" id="38">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Планировщик</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type xmlns:pl="http://v8.1c.ru/8.3/data/planner">pl:Planner</v8:Type>
|
||||
</Type>
|
||||
<Settings xmlns:pl="http://v8.1c.ru/8.3/data/planner" xsi:type="pl:Planner">
|
||||
<pl:item>
|
||||
<pl:value xsi:nil="true"/>
|
||||
<pl:text>Встреча</pl:text>
|
||||
<pl:tooltip/>
|
||||
<pl:begin>2026-06-09T01:00:00</pl:begin>
|
||||
<pl:end>2026-06-09T04:00:00</pl:end>
|
||||
<pl:borderColor>auto</pl:borderColor>
|
||||
<pl:backColor>auto</pl:backColor>
|
||||
<pl:textColor>auto</pl:textColor>
|
||||
<pl:font kind="AutoFont"/>
|
||||
<pl:dimensionValues/>
|
||||
<pl:replacementDate>0001-01-01T00:00:00</pl:replacementDate>
|
||||
<pl:deleted>false</pl:deleted>
|
||||
<pl:id>UUID-001</pl:id>
|
||||
<pl:textFormatted>false</pl:textFormatted>
|
||||
<pl:border width="1">
|
||||
<v8ui:style xsi:type="v8ui:ControlBorderType">Single</v8ui:style>
|
||||
</pl:border>
|
||||
<pl:editMode>EnableEdit</pl:editMode>
|
||||
</pl:item>
|
||||
<pl:borderColor>auto</pl:borderColor>
|
||||
<pl:backColor>auto</pl:backColor>
|
||||
<pl:textColor>auto</pl:textColor>
|
||||
<pl:lineColor>auto</pl:lineColor>
|
||||
<pl:font kind="AutoFont"/>
|
||||
<pl:beginOfRepresentationPeriod>0001-01-01T00:00:00</pl:beginOfRepresentationPeriod>
|
||||
<pl:endOfRepresentationPeriod>0001-01-01T00:00:00</pl:endOfRepresentationPeriod>
|
||||
<pl:alignElementsOfTimeScale>true</pl:alignElementsOfTimeScale>
|
||||
<pl:displayTimeScaleWrapHeaders>true</pl:displayTimeScaleWrapHeaders>
|
||||
<pl:displayWrapHeaders>true</pl:displayWrapHeaders>
|
||||
<pl:timeScaleWrapHeadersFormat>
|
||||
<v8:item>
|
||||
<v8:lang>#</v8:lang>
|
||||
<v8:content>DLF="DD"</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>DLF="DD"</v8:content>
|
||||
</v8:item>
|
||||
</pl:timeScaleWrapHeadersFormat>
|
||||
<pl:periodicVariantUnit>Day</pl:periodicVariantUnit>
|
||||
<pl:periodicVariantRepetition>1</pl:periodicVariantRepetition>
|
||||
<pl:timeScaleWrapBeginIndent>0</pl:timeScaleWrapBeginIndent>
|
||||
<pl:timeScaleWrapEndIndent>0</pl:timeScaleWrapEndIndent>
|
||||
<pl:timeScale>
|
||||
<placement xmlns="http://v8.1c.ru/8.2/data/chart">Left</placement>
|
||||
<level xmlns="http://v8.1c.ru/8.2/data/chart">
|
||||
<measure>Hour</measure>
|
||||
<interval>1</interval>
|
||||
<show>true</show>
|
||||
<line width="1" gap="false">
|
||||
<v8ui:style xsi:type="v8ui:ChartLineType">Solid</v8ui:style>
|
||||
</line>
|
||||
<scaleColor>auto</scaleColor>
|
||||
<dayFormatRule>MonthDayWeekDay</dayFormatRule>
|
||||
<format>
|
||||
<v8:item>
|
||||
<v8:lang>#</v8:lang>
|
||||
<v8:content>DF="HH:mm"</v8:content>
|
||||
</v8:item>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>DF="HH:mm"</v8:content>
|
||||
</v8:item>
|
||||
</format>
|
||||
<labels>
|
||||
<ticks>0</ticks>
|
||||
</labels>
|
||||
<backColor>auto</backColor>
|
||||
<textColor>auto</textColor>
|
||||
<showPereodicalLabels>true</showPereodicalLabels>
|
||||
</level>
|
||||
<transparent xmlns="http://v8.1c.ru/8.2/data/chart">false</transparent>
|
||||
<backColor xmlns="http://v8.1c.ru/8.2/data/chart">auto</backColor>
|
||||
<textColor xmlns="http://v8.1c.ru/8.2/data/chart">auto</textColor>
|
||||
<currentLevel xmlns="http://v8.1c.ru/8.2/data/chart">0</currentLevel>
|
||||
</pl:timeScale>
|
||||
<pl:period>
|
||||
<pl:begin>2026-06-09T00:00:00</pl:begin>
|
||||
<pl:end>2026-06-09T23:59:59</pl:end>
|
||||
</pl:period>
|
||||
<pl:displayCurrentDate>true</pl:displayCurrentDate>
|
||||
<pl:itemsTimeRepresentation>BeginTime</pl:itemsTimeRepresentation>
|
||||
<pl:itemsBehaviorWhenSpaceInsufficient>CollapseItems</pl:itemsBehaviorWhenSpaceInsufficient>
|
||||
<pl:autoMinColumnWidth>true</pl:autoMinColumnWidth>
|
||||
<pl:autoMinRowHeight>true</pl:autoMinRowHeight>
|
||||
<pl:minColumnWidth>0</pl:minColumnWidth>
|
||||
<pl:minRowHeight>0</pl:minRowHeight>
|
||||
<pl:fixDimensionsHeader>auto</pl:fixDimensionsHeader>
|
||||
<pl:fixTimeScaleHeader>auto</pl:fixTimeScaleHeader>
|
||||
<pl:border width="1">
|
||||
<v8ui:style xsi:type="v8ui:ControlBorderType">Single</v8ui:style>
|
||||
</pl:border>
|
||||
<pl:newItemsTextType>String</pl:newItemsTextType>
|
||||
</Settings>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Form>
|
||||
|
||||
Reference in New Issue
Block a user