mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
feat(cfe-borrow): полный набор GeneratedType у заимствованных оболочек
Платформа отвергала заимствованный план видов характеристик: «отсутствует один или более типов объекта ChartOfCharacteristicTypes». В карте $script:generatedTypes не хватало категории Characteristic — а вместе с ней ещё пяти категорий у пяти типов (планы счетов и видов расчёта, регистры бухгалтерии и расчёта, бизнес-процессы). Дефект был чистым дрейфом копий: карта живёт в трёх навыках, и в meta-compile с meta-validate она верна. Чтобы расхождение больше не копилось молча, каноническая таблица наборов GeneratedType заведена в спецификации (§2.5), а check-type-maps.mjs получил виды gentypes/gencats и сверяет по ней все три карты. Регресс cfe-* 47/47 на обоих рантаймах, оба гарда дрейфа зелёные.
This commit is contained in:
@@ -283,6 +283,44 @@ ClassId — фиксированные идентификаторы классо
|
||||
|
||||
Внутри одного типа объекты отсортированы по имени (алфавитный порядок). Типы, для которых нет объектов, в ChildObjects не записываются.
|
||||
|
||||
### 2.5. InternalInfo объектов — наборы GeneratedType
|
||||
|
||||
У каждого объекта метаданных в `<InternalInfo>` перечислены порождаемые платформой типы. Набор фиксирован для типа объекта: имя элемента — `<префикс>.<ИмяОбъекта>`, атрибут `category` — категория из таблицы. **Неполный набор платформа отвергает при загрузке**: «отсутствует один или более типов объекта <Тип>» (для заимствованных оболочек в расширениях — тоже).
|
||||
|
||||
Запись `префикс`/Категория; `…` в префиксе = имя типа объекта (`…Ref` у `ChartOfAccounts` читается `ChartOfAccountsRef`).
|
||||
|
||||
| Тип объекта | Префикс + категория (в порядке типовой выгрузки) |
|
||||
|-------------|--------------------------------------------------|
|
||||
| `Catalog` | `CatalogObject`/Object, `CatalogRef`/Ref, `CatalogSelection`/Selection, `CatalogList`/List, `CatalogManager`/Manager |
|
||||
| `Document` | `DocumentObject`/Object, `DocumentRef`/Ref, `DocumentSelection`/Selection, `DocumentList`/List, `DocumentManager`/Manager |
|
||||
| `Enum` | `EnumRef`/Ref, `EnumManager`/Manager, `EnumList`/List |
|
||||
| `Constant` | `ConstantManager`/Manager, `ConstantValueManager`/ValueManager, `ConstantValueKey`/ValueKey |
|
||||
| `Report` | `ReportObject`/Object, `ReportManager`/Manager |
|
||||
| `DataProcessor` | `DataProcessorObject`/Object, `DataProcessorManager`/Manager |
|
||||
| `ExchangePlan` | `ExchangePlanObject`/Object, `ExchangePlanRef`/Ref, `ExchangePlanSelection`/Selection, `ExchangePlanList`/List, `ExchangePlanManager`/Manager |
|
||||
| `Task` | `TaskObject`/Object, `TaskRef`/Ref, `TaskSelection`/Selection, `TaskList`/List, `TaskManager`/Manager |
|
||||
| `BusinessProcess` | `BusinessProcessObject`/Object, `BusinessProcessRef`/Ref, `BusinessProcessSelection`/Selection, `BusinessProcessList`/List, `BusinessProcessManager`/Manager, `BusinessProcessRoutePointRef`/RoutePointRef |
|
||||
| `ChartOfCharacteristicTypes` | `ChartOfCharacteristicTypesObject`/Object, `…Ref`/Ref, `…Selection`/Selection, `…List`/List, `Characteristic`/Characteristic, `…Manager`/Manager |
|
||||
| `ChartOfAccounts` | `ChartOfAccountsObject`/Object, `…Ref`/Ref, `…Selection`/Selection, `…List`/List, `…Manager`/Manager, `…ExtDimensionTypes`/ExtDimensionTypes, `…ExtDimensionTypesRow`/ExtDimensionTypesRow |
|
||||
| `ChartOfCalculationTypes` | `ChartOfCalculationTypesObject`/Object, `…Ref`/Ref, `…Selection`/Selection, `…List`/List, `…Manager`/Manager, `DisplacingCalculationTypes`/DisplacingCalculationTypes, `DisplacingCalculationTypesRow`/DisplacingCalculationTypesRow, `BaseCalculationTypes`/BaseCalculationTypes, `BaseCalculationTypesRow`/BaseCalculationTypesRow, `LeadingCalculationTypes`/LeadingCalculationTypes, `LeadingCalculationTypesRow`/LeadingCalculationTypesRow |
|
||||
| `InformationRegister` | `InformationRegisterRecord`/Record, `…Manager`/Manager, `…Selection`/Selection, `…List`/List, `…RecordSet`/RecordSet, `…RecordKey`/RecordKey, `…RecordManager`/RecordManager |
|
||||
| `AccumulationRegister` | `AccumulationRegisterRecord`/Record, `…Manager`/Manager, `…Selection`/Selection, `…List`/List, `…RecordSet`/RecordSet, `…RecordKey`/RecordKey |
|
||||
| `AccountingRegister` | `AccountingRegisterRecord`/Record, `AccountingRegisterExtDimensions`/ExtDimensions, `…Manager`/Manager, `…Selection`/Selection, `…List`/List, `…RecordSet`/RecordSet, `…RecordKey`/RecordKey |
|
||||
| `CalculationRegister` | `CalculationRegisterRecord`/Record, `…Manager`/Manager, `…Selection`/Selection, `…List`/List, `…RecordSet`/RecordSet, `…RecordKey`/RecordKey, `RecalculationsManager`/Recalcs |
|
||||
| `DocumentJournal` | `DocumentJournalSelection`/Selection, `DocumentJournalList`/List, `DocumentJournalManager`/Manager |
|
||||
| `Sequence` | `SequenceRecord`/Record, `SequenceManager`/Manager, `SequenceRecordSet`/RecordSet |
|
||||
| `FilterCriterion` | `FilterCriterionManager`/Manager, `FilterCriterionList`/List |
|
||||
| `SettingsStorage` | `SettingsStorageManager`/Manager |
|
||||
| `IntegrationService` | `IntegrationServiceManager`/Manager |
|
||||
| `WSReference` | `WSReferenceManager`/Manager |
|
||||
| `DefinedType` | `DefinedType`/DefinedType |
|
||||
|
||||
Табличные части объектов несут собственную пару в своём `<InternalInfo>`: `<Тип>TabularSection.<Объект>.<ТЧ>`/TabularSection и `<Тип>TabularSectionRow.<Объект>.<ТЧ>`/TabularSectionRow.
|
||||
|
||||
Без `<InternalInfo>`/`GeneratedType` идут `CommonModule`, `ScheduledJob`, `EventSubscription` и прочие объекты без порождаемых типов.
|
||||
|
||||
Порядок в таблице — как в типовых выгрузках; на загрузку он не влияет (проверено вставкой `Characteristic` в середину набора заимствованного плана видов характеристик), значим именно состав.
|
||||
|
||||
---
|
||||
|
||||
## 3. ConfigDumpInfo.xml — служебный файл выгрузки
|
||||
|
||||
Reference in New Issue
Block a user