mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-27 21:49:41 +03:00
У бухрегистра условные стандартные реквизиты стоят по обе стороны фикс-списка: PeriodAdjustment — перед Account, пары субконто — после Period. Эмиттер же клал все ключи, которых нет в списке типа, скопом вперёд, поэтому порядок расходился с выгрузкой. Разделено на три части: ключи вне списка по умолчанию идут ПЕРЕД ним (легаси вроде ExchangeDate у части планов обмена), подходящие под хвостовой шаблон типа — ПОСЛЕ, а именованные условные (PeriodAdjustment) занимают своё место в самом списке и эмитятся при наличии в DSL. Пары субконто заданы ШАБЛОНОМ, а не списком имён: их количество определяется свойством MaxExtDimensionCount плана счетов. В корпусе везде 3, но это однородность выборки, а не правило, и список из ExtDimension1..3 закрыл бы только наблюдаемый случай. Хвост сортируется по номеру, внутри номера ExtDimensionN идёт перед ExtDimensionTypeN. Проверка: - синтетика с ПЯТЬЮ парами субконто и перемешанными ключами на входе даёт канонический порядок с пропусками номеров; порты байт-в-байт (modulo UUID); - раундтрип «все виды» (112 объектов, 42 вида): порядок ≠ 0, TOTAL diff 0; - юнит-тесты 648/648 ps1, 645/648 py; 1С-сертификация accounting-register ✓. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>