mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-15 15:59:00 +03:00
Расхождение JSON между портами было 26 макетов из 40, стало 5. Расхождение собранного XML — 20 из 40, стало 7. Причин оказалось четыре, и три из них дефекты, а не просто разнобой. 1. ps1 грузил XML с PreserveWhitespace = $false, и текст ячейки из одних пробелов схлопывался в пустой. Молчаливая потеря данных в каноничном порте, 25 макетов пилота. 2. Стили обнаруживались обходом хэш-таблицы строк, а её порядок в PowerShell НЕ определён. Платформа же кладёт записи палитры в порядке документа, так что порядок обхода — часть верности вывода, а не деталь. Обход теперь по возрастанию номера строки. ([ordered] тут не годится: с целочисленными ключами он индексируется по позиции, а не по ключу.) 3. Именованные области сортировались нестабильным Sort-Object (-Stable появился только в PowerShell 6.2), поэтому области с одинаковыми границами получали произвольный порядок. Добавлен явный ключ исходного порядка — в оба порта, чтобы совпадение было по построению, а не по совпадению. 4. containsValue / valueType / controlType протекали в styles сквозным пробросом неизвестных тегов. Это свойства ЗНАЧЕНИЯ ячейки, а не оформления, и компилятор таких ключей не знает — в DSL они были чистым шумом. Заодно вложенный элемент больше не читается как скаляр: ps1 брал InnerText и получал склейку поддерева, py брал .text и получал пустоту. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>