diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1
index 21dd99350..e9ed0270c 100644
--- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1
+++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1
@@ -1,4 +1,4 @@
-# cfe-borrow v1.38 — Borrow objects from configuration into extension (CFE)
+# cfe-borrow v1.39 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -1043,8 +1043,8 @@ function Borrow-Form {
$childItemsXml = $childItemsXml.Remove($pm.Index, $pm.Length)
}
}
- # Strip StdPicture blocks (except Print)
- $childItemsXml = [regex]::Replace($childItemsXml, '(?s)\s*\s*StdPicture\.(?!Print\b)\w+.*?', '')
+ # Стандартные картинки (StdPicture.*) не вырезаются: Конфигуратор оставляет их у кнопок, подменю
+ # и страниц в обеих частях формы (эталоны 8.3.27, 26 элементов в 3 формах).
# Same Picture strip for AutoCommandBar
if ($autoCmdXml) {
@@ -1056,7 +1056,6 @@ function Borrow-Form {
$autoCmdXml = $autoCmdXml.Remove($pm.Index, $pm.Length)
}
}
- $autoCmdXml = [regex]::Replace($autoCmdXml, '(?s)\s*\s*StdPicture\.(?!Print\b)\w+.*?', '')
}
# Auto-borrow StyleItems referenced in ChildItems
diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py
index af1565bfd..9a05aaafd 100644
--- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py
+++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# cfe-borrow v1.38 — Borrow objects from configuration into extension (CFE)
+# cfe-borrow v1.39 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -2005,8 +2005,8 @@ def main():
cp_name = pm.group(1)
if cp_name not in borrowed_pic_set:
child_items_xml = child_items_xml[:pm.start()] + child_items_xml[pm.end():]
- # Strip StdPicture blocks (except Print)
- child_items_xml = re.sub(r'\s*\s*StdPicture\.(?!Print\b)\w+.*?', '', child_items_xml, flags=re.DOTALL)
+ # Стандартные картинки (StdPicture.*) не вырезаются: Конфигуратор оставляет их у кнопок, подменю
+ # и страниц в обеих частях формы (эталоны 8.3.27, 26 элементов в 3 формах).
# Same Picture strip for AutoCommandBar
if auto_cmd_xml:
@@ -2015,7 +2015,6 @@ def main():
cp_name = pm.group(1)
if cp_name not in borrowed_pic_set:
auto_cmd_xml = auto_cmd_xml[:pm.start()] + auto_cmd_xml[pm.end():]
- auto_cmd_xml = re.sub(r'\s*\s*StdPicture\.(?!Print\b)\w+.*?', '', auto_cmd_xml, flags=re.DOTALL)
# Auto-borrow StyleItems referenced in ChildItems
referenced_styles = set()
diff --git a/docs/1c-extension-spec.md b/docs/1c-extension-spec.md
index 44ba65876..7d8c9662a 100644
--- a/docs/1c-extension-spec.md
+++ b/docs/1c-extension-spec.md
@@ -481,14 +481,19 @@ Form.xml заимствованной формы — **двухчастный ф
8. **Events элементов: удаление** (вариант B) — все `` внутри визуальных элементов удаляются в обеих секциях. Обработчики расширения добавляются через `elementEvents` в Part 1 с `callType`.
-9. **Picture stripping** (вариант B) — блоки `` с `CommonPicture.XXX` удаляются, если `CommonPicture.XXX` **не заимствован** в расширение. Сам элемент PictureDecoration остаётся, только `` убирается. `StdPicture.Print` сохраняется, остальные StdPicture удаляются.
+9. **Картинки элементов** (сверено с Конфигуратором 8.3.27):
+ - у `PictureDecoration` блок `` удаляется в обеих секциях при любом виде картинки (`xr:Abs`, `CommonPicture`, `StdPicture`). Сам элемент остаётся;
+ - `StdPicture.*` у кнопок, подменю и страниц **сохраняется** в обеих секциях как есть;
+ - блоки `` с `CommonPicture.XXX` удаляются, только если `CommonPicture.XXX` не заимствуется (нет в конфигурации-источнике).
-10. **Авто-заимствование CommonPictures** — при заимствовании формы автоматически заимствуются все CommonPictures, на которые ссылаются элементы формы.
+10. **Авто-заимствование CommonPictures** — при заимствовании формы автоматически заимствуются все CommonPictures, на которые ссылаются элементы формы (картинки декораций к этому моменту уже удалены и заимствования не вызывают).
11. **Авто-заимствование StyleItems** — элементы формы ссылаются на StyleItems через `` и `style:XXX`. Все такие StyleItems должны быть заимствованы. Стандартные стили (NormalTextFont, AccentColor, FormBackColor и др.) не имеют файлов и автоматически пропускаются.
12. **Авто-заимствование Enums + EnumValues** — `` могут содержать `Enum.XXX.EnumValue.YYY`. Перечисление `Enum.XXX` заимствуется вместе с конкретными `EnumValue` (borrowed с `ExtendedConfigurationObject` указывающим на UUID оригинального значения).
+13. **Файлы встроенных картинок** — ссылка `Файл` в свойстве элемента (`Picture`, `RowsPicture`, `HeaderPicture`, `ValuesPicture`) указывает на `Ext/Form/Items/<имя элемента>/<Файл>`. Файлы, на которые ссылается итоговая форма, копируются из источника байт в байт; без них платформа отвергает загрузку («Файл не найден»). Уже лежащий в расширении файл при повторном заимствовании не перезаписывается.
+
#### 5.5.3. Нумерация ID элементов
| Диапазон | Принадлежность |
diff --git a/tests/skills/cases/cfe-borrow/fixtures/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/fixtures/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index 53f3b8101..e31e66f18 100644
--- a/tests/skills/cases/cfe-borrow/fixtures/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/fixtures/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -81,6 +117,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/form-item-pictures.json b/tests/skills/cases/cfe-borrow/form-item-pictures.json
index 403364207..1bed6eb29 100644
--- a/tests/skills/cases/cfe-borrow/form-item-pictures.json
+++ b/tests/skills/cases/cfe-borrow/form-item-pictures.json
@@ -1,5 +1,5 @@
{
- "name": "Заимствование формы: картинки кнопок, строк таблицы и поля картинки переносятся файлами, картинка декорации выбрасывается (как у Конфигуратора)",
+ "name": "Заимствование формы: картинки кнопок, строк таблицы и поля картинки переносятся файлами, стандартные картинки кнопок, подменю и страниц остаются, картинка декорации выбрасывается (как у Конфигуратора)",
"setup": "fixture:form-item-pictures",
"preRun": [
{
@@ -20,7 +20,11 @@
"text": [
"RowsPicture.png",
"HeaderPicture.png",
- "ValuesPicture.png"
+ "ValuesPicture.png",
+ "StdPicture.Refresh",
+ "StdPicture.CreateListItem",
+ "StdPicture.DataCompositionSettingsWizard",
+ "StdPicture.Print"
]
},
"fileNotContains": {
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index 7aca34a37..81bc912b6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -81,6 +117,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index fadb2b254..b8c916da6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-missing-source/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -64,6 +100,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
@@ -93,6 +147,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -131,6 +221,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index 7aca34a37..81bc912b6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -81,6 +117,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index fadb2b254..b8c916da6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures-reborrow/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -64,6 +100,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
@@ -93,6 +147,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -131,6 +221,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index 7aca34a37..81bc912b6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -81,6 +117,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
index fadb2b254..b8c916da6 100644
--- a/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
+++ b/tests/skills/cases/cfe-borrow/snapshots/form-item-pictures/cfe/Documents/Расход/Forms/ФормаДокумента/Ext/Form.xml
@@ -26,6 +26,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -64,6 +100,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+
@@ -93,6 +147,42 @@
+
+
+
+
+ ru
+ Создать
+
+
+
+ StdPicture.CreateListItem
+ true
+
+
+
+
+
+
+ ru
+ Печать
+
+
+
+ StdPicture.Print
+ true
+
+
+
@@ -131,6 +221,24 @@
+
+
+
+
+
+
+ ru
+ Настройки
+
+
+
+ StdPicture.DataCompositionSettingsWizard
+ true
+
+
+
+
+