mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-17 00:30:23 +03:00
Заимствованное содержимое вставлялось текстом по ВСЕМ вхождениям <ChildObjects>, а у объекта с табличными частями свой контейнер один, но вхождений столько же, сколько ТЧ. При повторном заимствовании по тому же объекту ps1 выдавал невалидный XML («mismatched tag»), py — валидный, но с табличными частями внутри табличной части и дублем ТЧ. Отдельно ветка «Replace empty ChildObjects» в ps1 переписывала КАЖДЫЙ блок содержимым первого — теряла данные. Свой <ChildObjects> закрывается в файле последним: объект в файле один, вложенные ТЧ закрываются раньше. Правило вынесено в общую функцию каждого порта, на неё переведены все места вставки. Дедуп при повторном заимствовании брал имена регуляркой «первый <ChildObjects> до первого </ChildObjects>» — у объекта с ТЧ этот отрезок обрывается на закрытии первой ТЧ: захватывает имена её колонок и теряет всё, что идёт после. Заменён разбором прямых детей своего контейнера. В py дедуп дополнительно сканировал все <Name> во всём файле, включая имя самого объекта. Проверено: два заимствования подряд по одному документу дают в обоих портах валидный XML, 5 табличных частей на верхнем уровне, вложенности и дублей нет; выходы портов отличаются только свежими uuid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>