feat(mxl-compile,mxl-decompile): параметр картинки у ячейки, прозрачность одним ключом

Ячейка получила третий параметр — pictureParameter, имя параметра, которым
подставляют картинку. Сама картинка задаётся оформлением (picIndex), а этот
тег живёт у ячейки, последним из её параметров, и уживается с текстом.
В корпусе таких ячеек 21 в 9 макетах; теперь все 21 возвращаются обратно.

Прозрачность картинки сведена к одному ключу transparent: false — фона нет,
{ x, y } — прозрачен цвет пикселя с этими координатами. Два способа записи
у платформы исключают друг друга (t принимает только false, включённую
прозрачность выражают tx/ty), так что двум ключам DSL соответствовал один
флажок диалога.

Заодно выровнен порядок ключей в проверке «объект описывает ячейку»: в
py-порте не хватало note.
This commit is contained in:
Nick Shirokov
2026-08-15 21:03:01 +03:00
parent daaa0aeaf8
commit fef55043cf
11 changed files with 167 additions and 42 deletions
@@ -0,0 +1,19 @@
{
"name": "Картинка в ячейке, подставляемая параметром",
"input": {
"columns": 3,
"pictures": { "статус": { "ref": "v8ui:Стоп48" } },
"styles": {
"значок": { "picIndex": 1, "picHorizontalAlignment": "Center", "picVerticalAlignment": "Center", "textPosition": "Bottom" }
},
"areas": [{
"rows": [
{ "cells": [
{ "col": 1, "style": "значок", "text": "удалить", "pictureParameter": "Удалить" },
{ "col": 2, "param": "ПорядковыйНомер", "detail": "Строка", "pictureParameter": "Пиктограмма" }
]}
]
}]
},
"params": { "outputPath": "Template.xml" }
}
@@ -6,5 +6,5 @@
"areas": [{ "rows": [["Бланк"]] }]
},
"params": { "outputPath": "Template.xml" },
"expectError": "pictures[пусто]: 'transparent' and 'transparentPixel' require 'ref' or 'data'"
"expectError": "pictures[пусто]: 'transparent' requires 'ref' or 'data'"
}
@@ -7,7 +7,7 @@
"значок": { "ref": "v8ui:Стоп48", "transparent": false },
"точка": {
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGP4z8DwHwAFAAH/q842iQAAAABJRU5ErkJggg==",
"transparentPixel": { "x": 3, "y": 5 }
"transparent": { "x": 3, "y": 5 }
}
},
"areas": [{ "rows": [["Бланк"]] }],
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>ru</currentLanguage>
<defaultLanguage>ru</defaultLanguage>
<languageInfo>
<id>ru</id>
<code>Русский</code>
<description>Русский</description>
</languageInfo>
</languageSettings>
<columns>
<size>3</size>
</columns>
<rowsItem>
<index>0</index>
<row>
<c>
<c>
<f>1</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>удалить</v8:content>
</v8:item>
</tl>
<pictureParameter>Удалить</pictureParameter>
</c>
</c>
<c>
<c>
<f>2</f>
<parameter>ПорядковыйНомер</parameter>
<detailParameter>Строка</detailParameter>
<pictureParameter>Пиктограмма</pictureParameter>
</c>
</c>
</row>
</rowsItem>
<templateMode>true</templateMode>
<defaultFormatIndex>3</defaultFormatIndex>
<height>1</height>
<vgRows>1</vgRows>
<format>
<picIndex>1</picIndex>
<picHorizontalAlignment>Center</picHorizontalAlignment>
<picVerticalAlignment>Center</picVerticalAlignment>
<textPosition>Bottom</textPosition>
</format>
<format>
<fillType>Parameter</fillType>
</format>
<format>
<width>10</width>
</format>
<picture>
<index>0</index>
<picture ref="v8ui:Стоп48"/>
</picture>
</document>