Commit Graph
2 Commits
Author SHA1 Message Date
Nick ShirokovandClaude Opus 5 d3ea826286 fix(cfe-borrow): основной реквизит формы переносится из источника
Реквизит синтезировался с зашитыми name="Объект", типом <Тип>Object и
SavedData=true, а сверху доклеивались «довески» исходной формы. Для формы
списка это давало реквизит «Объект» объектного типа с настройками
динамического списка внутри, и платформа отвергала файл: «Исключение XDTO
произошло при чтении файла». Навык при этом отрабатывал молча, exit 0.

По корпусу (8675 форм с основным реквизитом, УТ + ERP) объектных только 4074:
динамический список — 3847, менеджер записи — 546, xs:string — 108, набор
констант — 97. <Settings xsi:type="DynamicList"> встречается ровно у
динамических списков, 3847 из 3847.

Эталоны Конфигуратора дают единое правило для всех видов: реквизит копируется
из исходной формы дословно, меняется только id. Теперь так и делается, а
вычисление типа из таблицы GeneratedType уходит вместе с тихим сбоем
«нет категории Object → cfg:.Имя» для перечислений, констант и регистров.

Следом расшиты ещё три места, зашитые на литерал «Объект»:
- вырезание путей к данным — корень берётся из имени основного реквизита,
  иначе у формы списка вырезало бы все пути «Список.*»; путь ровно на сам
  реквизит («Список» у таблицы формы) тоже сохраняется;
- сбор путей для заимствования дочерних объектов — на необъектных формах не
  находил ничего, и в оболочку не попадало ни одного реквизита;
- вид дочернего объекта: измерения и ресурсы регистра переносятся как
  <Dimension>/<Resource>, а не все как <Attribute>.

Проверено на трёх эталонах (форма документа, форма списка, форма записи
регистра): основной реквизит, корни путей к данным и виды дочерних объектов
оболочки совпадают. Расширение с формой списка и формой записи грузится в
UT_DEMO и применяется к БД — до правки загрузка падала.

Снапшоты: <Type> у основного реквизита теперь многострочный, как у
Конфигуратора; синтез писал его в одну строку.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 14:32:54 +03:00
Nick ShirokovandClaude Opus 5 656160407a test(cfe-borrow): кейсы на свойства формы после CommandSet
В фикстурах cfe-borrow CommandSet не встречался ни разу, поэтому потеря
свойств не ловилась. Добавлена фикстура doc-form-commandset — форма документа
с реальным порядком секций (CommandSet, затем AutoTime/UsePostingMode/
RepostOnWrite), вложенным CommandSet у таблицы, RowPictureDataPath от Объект.
и CommandInterface. Форма собрана файлом, а не form-compile: тот выдаёт
свойства ДО CommandSet, то есть как раз не тот порядок, который нужен.

Два кейса над ней — заимствование без основного реквизита и с ним. Оба падают
на коде до правки и проходят после.

README: задокументированы ключи expect fileContains/fileNotContains/filesEqual,
которые раннер понимает, но в таблице их не было. Плюс предупреждение, что
подстрока сверяется буквально: ожидание "<CommandSet></CommandSet>" не
срабатывает на переводе строки внутри и потому не проверяет ничего.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 13:11:36 +03:00