fix(cfe-borrow): связь на незаимствованный реквизит объекта — ссылка на основной реквизит

С -BorrowMainAttribute Form в расширение попадают только реквизиты, используемые
формой; путь связи параметров выбора использованием не считается. Связь на такой
реквизит (Объект.Ответственный, которого нет на форме) оставалась текстом, и
платформа отвергала загрузку: «Неверный путь к полю».

Конфигуратор реквизит не заимствует, а связь пишет id основного реквизита — как
у стандартного поля (эталон УТ Претензии.ФормаЭлементаСамообслуживание:
Объект.Партнер → 1). Навык делает так же: текст — только для реквизита, который
попадёт в расширение (тот же сбор, что в Borrow-MainAttribute). Форма эталона
совпадает построчно в обоих портах.

Найдено ревью диапазона main...dev. Кейсы form-link-codes и -main дополнены
реквизитом вне формы.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-27 16:30:48 +03:00
co-authored by Claude Opus 5.5
parent 7381b0503c
commit 3e726495d5
11 changed files with 184 additions and 50 deletions
+4 -2
View File
@@ -482,11 +482,13 @@ Form.xml заимствованной формы — **двухчастный ф
| Путь | Основной реквизит заимствован | Не заимствован |
|---|---|---|
| `<РеквизитФормы>`, `<РеквизитФормы>.<Колонка>` | код `N`, `N/<колонка>` | то же |
| `Объект.<реквизит/ТЧ/измерение/ресурс>`, `Объект.<ТЧ>.<реквизит>` | текст | `N/0:<uuid>`, `N/0:<uuid ТЧ>/0:<uuid>` |
| `Объект.<стандартный>` | `N` (ссылка на сам реквизит) | `N/-k` |
| `Объект.<реквизит/ТЧ/измерение/ресурс>`, `Объект.<ТЧ>.<реквизит>` | текст, если реквизит попал в расширение; иначе `N` | `N/0:<uuid>`, `N/0:<uuid ТЧ>/0:<uuid>` |
| `Объект.<стандартный>` | `N` (ссылка на сам основной реквизит) | `N/-k` |
| `Items.<Т>.CurrentData.<Поле>`, `Т` на `Объект.<ТЧ>` | текст | `<id Т>:CD/0:<uuid>` · `<id Т>:CD/<id>:AC` · `<id Т>:CD/-2` |
| `Items.<Т>.CurrentData.<Колонка>`, `Т` на реквизите формы | `<id Т>:CD/<id колонки>` | то же |
С заимствованным основным реквизитом в режиме `Form` в расширение попадают только реквизиты, используемые формой; путь связи использованием не считается. На реквизит, который так и не попал в расширение, Конфигуратор пишет `N` — как на стандартное поле (эталон УТ `Претензии.ФормаЭлементаСамообслуживание`: `Объект.Партнер` → `1`, реквизит не заимствован).
Здесь `N` и `<id Т>` — id реквизита и элемента **исходной** формы (в расширении реквизиты перенумерованы в 1000000+, ссылка остаётся в нумерации базы); `<uuid>` — uuid метаданных источника; `CD` = `02023637-7868-4a5f-8576-835a76e0c9ba` (текущая строка таблицы), `AC` = `5bdad865-f2c5-434b-8041-ba4aad3b6687` (колонка `AdditionalColumns`, `<id>` — её id). Коды `-k` стандартных реквизитов у каждого вида свои (оракул 8.3.27):
| Вид | Коды |