mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-17 00:05:17 +03:00
feat(form-decompile,form-compile): картинки заголовка/подвала колонок + объектная модель картинки-ссылки (кластер column-pictures)
Декомпилятор терял картинки колонок таблиц формы:
- HeaderPicture/FooterPicture (общие для любого поля-колонки: input/check/labelField/picField)
- ValuesPicture: захват флага LoadTransparent (раньше брался только Ref)
- EditMode у PictureField
Единый формат "картинка-ссылка" (headerPicture/footerPicture/valuesPicture):
скаляр (Ref, loadTransparent=false — частый случай по корпусу ~64%) ИЛИ
объект {src, loadTransparent:true} для отклонения. Платформа всегда эмитит
<xr:LoadTransparent>, дефолт DSL=false. Флаг на каждой картинке (на одном
поле их бывает несколько).
Компилятор: HeaderPicture эмитится сразу после <EditMode> (порядок XDTO
строгий — иначе LoadConfigFromFiles падает с XDTO-исключением).
Forgiving-объект для <Picture> кнопки/попапа/команды: общий хелпер
Emit-CommandPicture принимает скаляр ИЛИ {src, loadTransparent}, чтобы
модель могла описать картинку объектно по аналогии с headerPicture.
Полярность кнопки сохранена (дефолт true). Декомпилятор не трогали —
объект только на вход, раундтрип без изменений.
Раундтрип sample-2.17: TOTAL 1582→1457, dec-fail/compile-fail 0.
Снапшот picture-field пересертифицирован в 1С. Регресс 34/34 ps+python.
Декомпилятор v0.45, компилятор v1.63.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -20,8 +20,8 @@
|
||||
"on": ["Selection"], "handlers": { "Selection": "ТаблицаДанныхВыбор" },
|
||||
"columns": [
|
||||
{ "input": "ТаблицаДанныхНоменклатура", "path": "ТаблицаДанных.Номенклатура" },
|
||||
{ "picField": "ТаблицаДанныхКартинка", "path": "ТаблицаДанных.Картинка", "titleLocation": "none", "valuesPicture": "StdPicture.Favorites", "loadTransparent": true },
|
||||
{ "check": "ТаблицаДанныхКартинкаФлаг", "path": "ТаблицаДанных.Картинка", "title": "Флаг" }
|
||||
{ "picField": "ТаблицаДанныхКартинка", "path": "ТаблицаДанных.Картинка", "titleLocation": "none", "editMode": "EnterOnInput", "headerPicture": "StdPicture.ExecuteTask", "valuesPicture": { "src": "StdPicture.FilterCriterion", "loadTransparent": true } },
|
||||
{ "check": "ТаблицаДанныхКартинкаФлаг", "path": "ТаблицаДанных.Картинка", "title": "Флаг", "headerPicture": { "src": "StdPicture.ClearFilter", "loadTransparent": true } }
|
||||
]}
|
||||
],
|
||||
"attributes": [
|
||||
|
||||
+10
-1
@@ -46,9 +46,14 @@
|
||||
</InputField>
|
||||
<PictureField name="ТаблицаДанныхКартинка" id="17">
|
||||
<DataPath>ТаблицаДанных.Картинка</DataPath>
|
||||
<EditMode>EnterOnInput</EditMode>
|
||||
<HeaderPicture>
|
||||
<xr:Ref>StdPicture.ExecuteTask</xr:Ref>
|
||||
<xr:LoadTransparent>false</xr:LoadTransparent>
|
||||
</HeaderPicture>
|
||||
<TitleLocation>None</TitleLocation>
|
||||
<ValuesPicture>
|
||||
<xr:Ref>StdPicture.Favorites</xr:Ref>
|
||||
<xr:Ref>StdPicture.FilterCriterion</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</ValuesPicture>
|
||||
<ContextMenu name="ТаблицаДанныхКартинкаКонтекстноеМеню" id="18"/>
|
||||
@@ -62,6 +67,10 @@
|
||||
<v8:content>Флаг</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<HeaderPicture>
|
||||
<xr:Ref>StdPicture.ClearFilter</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</HeaderPicture>
|
||||
<CheckBoxType>Auto</CheckBoxType>
|
||||
<TitleLocation>Right</TitleLocation>
|
||||
<ContextMenu name="ТаблицаДанныхКартинкаФлагКонтекстноеМеню" id="21"/>
|
||||
|
||||
Reference in New Issue
Block a user