fix(spec): позиция Bot в порядке типов ChildObjects, добавлен PaletteColor

Спецификация держала Bot на позиции 11 (после CommonModule), а платформа ставит его
сразу за DefinedType. Замерено на стенде: конфигурацию с намеренно дописанными в конец
Bot и PaletteColor загрузили и выгрузили обратно —

  8.5.1.1302:  DefinedType -> Bot -> PaletteColor -> CommonCommand
  8.3.27.1859: DefinedType -> Bot -> CommonCommand

то есть позиция не версионная, а взаимный порядок Bot и PaletteColor, которого не было
ни в одной выгрузке корпуса, теперь известен.

Последствия неверного эталона были не только косметические: cf-edit add-childObject уже
сегодня ставил новую группу Bot не туда, а планируемое выравнивание порядка групп по
такому списку передвинуло бы корректно лежащий Bot в конфигурации вроде УТ.

PaletteColor (8.5) в спецификации отсутствовал вовсе. Добавлен рядом с Bot; §7.4
поправлен: порядок типов между версиями не меняется, а набор растёт.

Синхронизированы все карты под гардом check-type-maps: порядок в cf-edit, cf-info,
cf-validate, cfe-validate, cfe-borrow и каталоги в тех же плюс cfe-diff. Проверка
эталона: последовательность групп в ut_8.3.27 и unf_8.5 теперь монотонна по списку —
раньше УТ давала False.

Кейс add-bot позицию не проверял: в фикстуре были только язык и бот, тест прошёл бы и с
неверным порядком. Добавлен add-childobject-bot-position с CommonModule, DefinedType и
CommandGroup, где место видно однозначно.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
This commit is contained in:
Nick Shirokov
2026-08-29 21:21:46 +03:00
co-authored by Claude Opus 5
parent 1046e6018c
commit bdd2ed63f9
36 changed files with 1037 additions and 70 deletions
+40 -36
View File
@@ -245,41 +245,42 @@ ClassId — фиксированные идентификаторы классо
| 8 | `CommonTemplate` | `CommonTemplates/` | Общие макеты |
| 9 | `FilterCriterion` | `FilterCriteria/` | Критерии отбора |
| 10 | `CommonModule` | `CommonModules/` | Общие модули |
| 11 | `Bot` | `Bots/` | Боты (платформа 8.3.18+) |
| 12 | `CommonAttribute` | `CommonAttributes/` | Общие реквизиты |
| 13 | `ExchangePlan` | `ExchangePlans/` | Планы обмена |
| 14 | `XDTOPackage` | `XDTOPackages/` | XDTO-пакеты |
| 15 | `WebService` | `WebServices/` | Веб-сервисы |
| 16 | `HTTPService` | `HTTPServices/` | HTTP-сервисы |
| 17 | `WSReference` | `WSReferences/` | WS-ссылки |
| 18 | `EventSubscription` | `EventSubscriptions/` | Подписки на события |
| 19 | `ScheduledJob` | `ScheduledJobs/` | Регламентные задания |
| 20 | `SettingsStorage` | `SettingsStorages/` | Хранилища настроек |
| 21 | `FunctionalOption` | `FunctionalOptions/` | Функциональные опции |
| 22 | `FunctionalOptionsParameter` | `FunctionalOptionsParameters/` | Параметры ФО |
| 23 | `DefinedType` | `DefinedTypes/` | Определяемые типы |
| 24 | `CommonCommand` | `CommonCommands/` | Общие команды |
| 25 | `CommandGroup` | `CommandGroups/` | Группы команд |
| 26 | `Constant` | `Constants/` | Константы |
| 27 | `CommonForm` | `CommonForms/` | Общие формы |
| 28 | `Catalog` | `Catalogs/` | Справочники |
| 29 | `Document` | `Documents/` | Документы |
| 30 | `DocumentNumerator` | `DocumentNumerators/` | Нумераторы документов |
| 31 | `Sequence` | `Sequences/` | Последовательности |
| 32 | `DocumentJournal` | `DocumentJournals/` | Журналы документов |
| 33 | `Enum` | `Enums/` | Перечисления |
| 34 | `Report` | `Reports/` | Отчёты |
| 35 | `DataProcessor` | `DataProcessors/` | Обработки |
| 36 | `InformationRegister` | `InformationRegisters/` | Регистры сведений |
| 37 | `AccumulationRegister` | `AccumulationRegisters/` | Регистры накопления |
| 38 | `ChartOfCharacteristicTypes` | `ChartsOfCharacteristicTypes/` | Планы видов характеристик |
| 39 | `ChartOfAccounts` | `ChartsOfAccounts/` | Планы счетов |
| 40 | `AccountingRegister` | `AccountingRegisters/` | Регистры бухгалтерии |
| 41 | `ChartOfCalculationTypes` | `ChartsOfCalculationTypes/` | Планы видов расчёта |
| 42 | `CalculationRegister` | `CalculationRegisters/` | Регистры расчёта |
| 43 | `BusinessProcess` | `BusinessProcesses/` | Бизнес-процессы |
| 44 | `Task` | `Tasks/` | Задачи |
| 45 | `IntegrationService` | `IntegrationServices/` | Сервисы интеграции |
| 11 | `CommonAttribute` | `CommonAttributes/` | Общие реквизиты |
| 12 | `ExchangePlan` | `ExchangePlans/` | Планы обмена |
| 13 | `XDTOPackage` | `XDTOPackages/` | XDTO-пакеты |
| 14 | `WebService` | `WebServices/` | Веб-сервисы |
| 15 | `HTTPService` | `HTTPServices/` | HTTP-сервисы |
| 16 | `WSReference` | `WSReferences/` | WS-ссылки |
| 17 | `EventSubscription` | `EventSubscriptions/` | Подписки на события |
| 18 | `ScheduledJob` | `ScheduledJobs/` | Регламентные задания |
| 19 | `SettingsStorage` | `SettingsStorages/` | Хранилища настроек |
| 20 | `FunctionalOption` | `FunctionalOptions/` | Функциональные опции |
| 21 | `FunctionalOptionsParameter` | `FunctionalOptionsParameters/` | Параметры ФО |
| 22 | `DefinedType` | `DefinedTypes/` | Определяемые типы |
| 23 | `Bot` | `Bots/` | Боты (платформа 8.3.18+) |
| 24 | `PaletteColor` | `PaletteColors/` | Цвета палитры (платформа 8.5+) |
| 25 | `CommonCommand` | `CommonCommands/` | Общие команды |
| 26 | `CommandGroup` | `CommandGroups/` | Группы команд |
| 27 | `Constant` | `Constants/` | Константы |
| 28 | `CommonForm` | `CommonForms/` | Общие формы |
| 29 | `Catalog` | `Catalogs/` | Справочники |
| 30 | `Document` | `Documents/` | Документы |
| 31 | `DocumentNumerator` | `DocumentNumerators/` | Нумераторы документов |
| 32 | `Sequence` | `Sequences/` | Последовательности |
| 33 | `DocumentJournal` | `DocumentJournals/` | Журналы документов |
| 34 | `Enum` | `Enums/` | Перечисления |
| 35 | `Report` | `Reports/` | Отчёты |
| 36 | `DataProcessor` | `DataProcessors/` | Обработки |
| 37 | `InformationRegister` | `InformationRegisters/` | Регистры сведений |
| 38 | `AccumulationRegister` | `AccumulationRegisters/` | Регистры накопления |
| 39 | `ChartOfCharacteristicTypes` | `ChartsOfCharacteristicTypes/` | Планы видов характеристик |
| 40 | `ChartOfAccounts` | `ChartsOfAccounts/` | Планы счетов |
| 41 | `AccountingRegister` | `AccountingRegisters/` | Регистры бухгалтерии |
| 42 | `ChartOfCalculationTypes` | `ChartsOfCalculationTypes/` | Планы видов расчёта |
| 43 | `CalculationRegister` | `CalculationRegisters/` | Регистры расчёта |
| 44 | `BusinessProcess` | `BusinessProcesses/` | Бизнес-процессы |
| 45 | `Task` | `Tasks/` | Задачи |
| 46 | `IntegrationService` | `IntegrationServices/` | Сервисы интеграции |
Внутри одного типа объекты отсортированы по имени (алфавитный порядок). Типы, для которых нет объектов, в ChildObjects не записываются.
@@ -1055,7 +1056,10 @@ ChildObjects содержат `IntegrationServiceChannel` (каналы) — inl
### 7.4. Configuration.xml — ChildObjects
Набор типов объектов в ChildObjects **идентичен** между версиями.
Порядок типов между версиями не меняется, а вот набор — растёт: `Bot` доступен с платформы 8.3.18,
`PaletteColor` — с 8.5. Версия появления указана в колонке «Описание» таблицы порядка типов.
Конфигурация на более старой платформе просто не содержит таких групп; позиция типа, когда он есть,
одна и та же (замерено: 8.3.27 и 8.5.1 ставят `Bot` сразу за `DefinedType`).
### 7.5. ConfigDumpInfo.xml и Ext/ файлы