Commit Graph
2 Commits
Author SHA1 Message Date
Nick ShirokovandClaude Opus 5.5 3e726495d5 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>
2026-09-27 16:30:48 +03:00
7381b0503c feat(cfe-borrow): связи формы кодируются как у Конфигуратора, а не вырезаются
В заимствованной форме без основного реквизита навык вырезал связи параметров
выбора на Items.<Таблица>.CurrentData.<Поле>, а связи на стандартные поля
(Объект.Owner, Объект.Date) и Объект.<ТЧ>.<Реквизит> — молча. TypeLink на Items.*
вырезался всегда, даже с основным реквизитом. Конфигуратор пишет такие пути кодом.

Код — внутренняя ссылка платформы: в выгрузке она пишет имя, а если имя в форме
не разрешается — код. Грамматика восстановлена оракулом (код в форму конфигурации →
загрузка → выгрузка → имя, 8.3.27) и эталонами Конфигуратора УТ:
<id реквизита> или <id таблицы>:CurrentData, далее 0:<uuid> метаданных источника,
<id колонки>, <id>:<AdditionalColumns> или -k стандартного реквизита (коды своих
для каждого вида объекта — таблица в навыке и в спецификации §5.5.2).

Правило как у Конфигуратора: текст, где он разрешается, иначе код. Путь от
реквизита формы кодируется и с основным реквизитом — текст платформа отвергает
«Неверный путь к полю». TypeLink — то же правило. Некодируемое вырезается, всегда
с предупреждением «Вырезано связей формы». Измерения/ресурсы регистра и реквизиты
ТЧ теперь различаются как реквизиты (с основным реквизитом «Запись.Склад» больше
не подменяется ссылкой на сам реквизит).

Попутно: порядок заимствования ссылочных типов в PS зависел от хеша — теперь
порядок первого упоминания, как в Python-порте. Оба порта, v1.41.

Проверка: четыре формы УТ (ОприходованиеИзлишковТоваров, ЗначенияСвойствОбъектов,
ФормаРасчетыМеждуОрганизациями без и с основным реквизитом) совпадают с выгрузкой
Конфигуратора построчно; все 11 кодов новых кейсов оракул переводит обратно в
исходные пути. Кейсы form-link-codes, -main, -register; form-choice-link-items
ждёт код вместо вырезания.

Проблема и первые данные о кодировке — PR #105.

Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 15:53:52 +03:00