fix(cfe-borrow): стандартные картинки элементов остаются в заимствованной форме

Навык вырезал у элементов заимствованной формы все StdPicture.*, кроме Print.
Сверка с Конфигуратором 8.3.27 (заимствование форм УТ с основным реквизитом
и без) правило опровергла: у кнопок, подменю и страниц — в командной панели
формы, контекстных меню и теле формы — стандартная картинка остаётся в обеих
частях формы байт в байт, 26 элементов из 26. Выбрасывается только картинка
декорации, это уже учтено. Вырезание убрано в обоих портах, v1.39.

На шести эталонах Конфигуратора картинки элементов и заимствованные общие
картинки теперь совпадают полностью. Спецификация (§5.5.2) приведена
к фактическому поведению, включая файлы встроенных картинок.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 20:10:26 +03:00
co-authored by Claude Opus 5.5
parent 69745af336
commit 868ba8db49
11 changed files with 559 additions and 12 deletions
+7 -2
View File
@@ -481,14 +481,19 @@ Form.xml заимствованной формы — **двухчастный ф
8. **Events элементов: удаление** (вариант B) — все `<Events>` внутри визуальных элементов удаляются в обеих секциях. Обработчики расширения добавляются через `elementEvents` в Part 1 с `callType`.
9. **Picture stripping** (вариант B) — блоки `<Picture>` с `<xr:Ref>CommonPicture.XXX</xr:Ref>` удаляются, если `CommonPicture.XXX` **не заимствован** в расширение. Сам элемент PictureDecoration остаётся, только `<Picture>` убирается. `StdPicture.Print` сохраняется, остальные StdPicture удаляются.
9. **Картинки элементов** (сверено с Конфигуратором 8.3.27):
- у `PictureDecoration` блок `<Picture>` удаляется в обеих секциях при любом виде картинки (`xr:Abs`, `CommonPicture`, `StdPicture`). Сам элемент остаётся;
- `StdPicture.*` у кнопок, подменю и страниц **сохраняется** в обеих секциях как есть;
- блоки `<Picture>` с `<xr:Ref>CommonPicture.XXX</xr:Ref>` удаляются, только если `CommonPicture.XXX` не заимствуется (нет в конфигурации-источнике).
10. **Авто-заимствование CommonPictures** — при заимствовании формы автоматически заимствуются все CommonPictures, на которые ссылаются элементы формы.
10. **Авто-заимствование CommonPictures** — при заимствовании формы автоматически заимствуются все CommonPictures, на которые ссылаются элементы формы (картинки декораций к этому моменту уже удалены и заимствования не вызывают).
11. **Авто-заимствование StyleItems** — элементы формы ссылаются на StyleItems через `<Font ref="style:XXX" kind="StyleItem"/>` и `<BackColor>style:XXX</BackColor>`. Все такие StyleItems должны быть заимствованы. Стандартные стили (NormalTextFont, AccentColor, FormBackColor и др.) не имеют файлов и автоматически пропускаются.
12. **Авто-заимствование Enums + EnumValues** — `<ChoiceParameters>` могут содержать `<Value xsi:type="xr:DesignTimeRef">Enum.XXX.EnumValue.YYY</Value>`. Перечисление `Enum.XXX` заимствуется вместе с конкретными `EnumValue` (borrowed с `ExtendedConfigurationObject` указывающим на UUID оригинального значения).
13. **Файлы встроенных картинок** — ссылка `<xr:Abs>Файл</xr:Abs>` в свойстве элемента (`Picture`, `RowsPicture`, `HeaderPicture`, `ValuesPicture`) указывает на `Ext/Form/Items/<имя элемента>/<Файл>`. Файлы, на которые ссылается итоговая форма, копируются из источника байт в байт; без них платформа отвергает загрузку («Файл не найден»). Уже лежащий в расширении файл при повторном заимствовании не перезаписывается.
#### 5.5.3. Нумерация ID элементов
| Диапазон | Принадлежность |