From daaa0aeaf85258f551dc391ac0005677b71129dc Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 15 Aug 2026 20:42:39 +0300 Subject: [PATCH] =?UTF-8?q?docs(mxl-compile):=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BD=D0=B0=20=D0=BA=D0=B0=D1=80=D1=82=D0=B8?= =?UTF-8?q?=D0=BD=D0=BA=D1=83=20=D0=BD=D0=B5=20=D1=80=D0=B0=D0=B7=D0=BB?= =?UTF-8?q?=D0=B8=D1=87=D0=B0=D0=B5=D1=82=20=D0=B8=D1=81=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Одна и та же запись `ref="v8ui:Имя"` стоит и за предопределённой картинкой платформы, и за общей картинкой конфигурации — по макету источник не определить. Загрузку это не ломает: платформа ссылку при загрузке не проверяет, макет со ссылкой на отсутствующую общую картинку принимается. Заодно снят прежний вывод «tx/ty с ref не встречаются»: на стенде такая запись есть, координаты идут перед ссылкой. Раундтрип на ней сходится. --- .../skills/mxl-compile/reference/dsl-spec.md | 5 +++-- docs/1c-spreadsheet-spec.md | 16 ++++++++++---- docs/mxl-dsl-spec.md | 5 +++-- .../fixtures/platform-roundtrip/Рисунки2.xml | 21 +++++++++++++++++++ 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/.claude/skills/mxl-compile/reference/dsl-spec.md b/.claude/skills/mxl-compile/reference/dsl-spec.md index c178e44a..dab01931 100644 --- a/.claude/skills/mxl-compile/reference/dsl-spec.md +++ b/.claude/skills/mxl-compile/reference/dsl-spec.md @@ -419,8 +419,9 @@ Порядок в списке `drawings` — порядок в документе; кто кого перекрывает, задаёт `zOrder`. -Запись в `pictures` — либо ссылка на библиотеку картинок платформы (`ref`), либо сами данные -в base64 (`data`). Пустая запись `{}` — картинка не задана, такое в макетах встречается. +Запись в `pictures` — либо ссылка (`ref`), либо сами данные в base64 (`data`). Ссылкой +задаются и предопределённая картинка платформы, и общая картинка конфигурации — пишутся они +одинаково, префиксом `v8ui:`. Пустая запись `{}` — картинка не задана, такое в макетах встречается. С данными сочетаются `transparent` и `transparentPixel` — два способа записать прозрачность, исключающие друг друга: `transparent: false` — прозрачного фона нет, `transparentPixel: { "x": …, "y": … }` — прозрачным считается цвет пикселя с этими координатами diff --git a/docs/1c-spreadsheet-spec.md b/docs/1c-spreadsheet-spec.md index 0fce1ddf..7a300f65 100644 --- a/docs/1c-spreadsheet-spec.md +++ b/docs/1c-spreadsheet-spec.md @@ -744,10 +744,18 @@ AARnQUlBAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA в корпусе встречается `tx="97" ty="83"` при картинке 368×117, то есть Конфигуратор углом не ограничен. -Прозрачность не привязана к тому, где лежит картинка: `t` пишется и у ссылочной записи, причём -ПЕРЕД `ref` — ``. В «Бухгалтерии предприятия» на 8.3.27 таких -записей 67, а `t="false"` стоит у 11 135 картинок; значения `true` у этого атрибута не бывает -ни в одной проверенной конфигурации — включённую прозрачность выражают `tx`/`ty`. +Прозрачность не привязана к тому, где лежит картинка: и `t`, и `tx`/`ty` пишутся у ссылочной +записи тоже, причём ПЕРЕД `ref` — ``, +``. В «Бухгалтерии предприятия» на 8.3.27 +ссылочных записей с `t` 67, а `t="false"` стоит у 11 135 картинок; значения `true` у этого +атрибута не встретилось ни в одной проверенной конфигурации — включённую прозрачность +выражают `tx`/`ty`. + +Сама ссылка не различает, откуда картинка: и предопределённая картинка платформы, и общая +картинка конфигурации записываются одинаково, префиксом `v8ui:`. Проверить, что за ней стоит, +по одному макету нельзя — нужна конфигурация. При загрузке макета платформа ссылку не проверяет: +макет со ссылкой на общую картинку грузится в базу, где такой картинки нет (в отличие +от ссылочных типов у ячейки-поля ввода, которым нужна матч-конфигурация). ## Рисунки diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index 227f3cbc..4a4aeb11 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -427,8 +427,9 @@ Порядок в списке `drawings` — порядок в документе; кто кого перекрывает, задаёт `zOrder`. -Запись в `pictures` — либо ссылка на библиотеку картинок платформы (`ref`), либо сами данные -в base64 (`data`). Пустая запись `{}` — картинка не задана, такое в макетах встречается. +Запись в `pictures` — либо ссылка (`ref`), либо сами данные в base64 (`data`). Ссылкой +задаются и предопределённая картинка платформы, и общая картинка конфигурации — пишутся они +одинаково, префиксом `v8ui:`. Пустая запись `{}` — картинка не задана, такое в макетах встречается. С данными сочетаются `transparent` и `transparentPixel` — два способа записать прозрачность, исключающие друг друга: `transparent: false` — прозрачного фона нет, `transparentPixel: { "x": …, "y": … }` — прозрачным считается цвет пикселя с этими координатами diff --git a/tests/skills/cases/mxl-compile/fixtures/platform-roundtrip/Рисунки2.xml b/tests/skills/cases/mxl-compile/fixtures/platform-roundtrip/Рисунки2.xml index d3bd6831..de79a3ae 100644 --- a/tests/skills/cases/mxl-compile/fixtures/platform-roundtrip/Рисунки2.xml +++ b/tests/skills/cases/mxl-compile/fixtures/platform-roundtrip/Рисунки2.xml @@ -230,6 +230,23 @@ 12 3 + + Picture + 13 + 0 + 29 + 0 + 29 + 38 + 2 + 0 + 2 + 38 + false + Stretch + 13 + 4 + true 8 31 @@ -311,4 +328,8 @@ XvkDAGiVKbfel/HTPEnZy6hXpXRVsS9iOcXg0bpv9me2msW0lS42Z/b6zXvrcWBf QnLqhED0yxE0niZMaADTqW9sxdmwLSAWufFtTBMwTdpzfa8u8AsvEH/3qV8i/x95 A0x239DYKjuDAAAAAElFTkSuQmCC + + 3 + + \ No newline at end of file