feat(spec): измерена позиция внешнего источника данных в порядке ChildObjects

В корпусе выгрузок внешних источников нет ни одного, поэтому позиция вида в порядке
ChildObjects была неизвестна, а check-type-maps держал ExternalDataSource исключением
с причиной «позиция в порядке не измерена».

Измерено на платформе 8.3.24.1691: в конфигурацию с объектами-маркерами семи видов
(CommonModule … Task) и настоящим сервисом интеграции загружен внешний источник,
выгрузка показала порядок Task → ExternalDataSource → IntegrationService. Независимо
подтверждено рабочей конфигурацией с внешними источниками.

Спека: ExternalDataSource = 46, IntegrationService сдвинут на 47; добавлены наборы
GeneratedType источника (3 категории) и его таблицы (8 категорий, имя элемента
трёхчастное: префикс.Источник.Таблица).

Вид внесён в 52 карты одиннадцати навыков — без этого cf-validate считал бы каталог
ExternalDataSources/ неизвестным, а порядок в ChildObjects навыки-создатели ставили бы
в конец блока, откуда платформа переставила бы группу при первой же выгрузке.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
Nick Shirokov
2026-09-05 20:21:47 +03:00
co-authored by Claude Opus 5
parent 5592590a0e
commit c1f07f96ad
24 changed files with 87 additions and 53 deletions
+3 -3
View File
@@ -1,4 +1,4 @@
# cf-edit v1.28 — Edit 1C configuration root (Configuration.xml)
# cf-edit v1.29 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -290,7 +290,7 @@ $script:typeOrder = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
# --- Type → on-disk directory name (plural) ---
@@ -306,7 +306,7 @@ $script:typeToDir = @{
"Report"="Reports"; "DataProcessor"="DataProcessors"; "InformationRegister"="InformationRegisters"; "AccumulationRegister"="AccumulationRegisters"
"ChartOfCharacteristicTypes"="ChartsOfCharacteristicTypes"; "ChartOfAccounts"="ChartsOfAccounts"; "AccountingRegister"="AccountingRegisters"
"ChartOfCalculationTypes"="ChartsOfCalculationTypes"; "CalculationRegister"="CalculationRegisters"
"BusinessProcess"="BusinessProcesses"; "Task"="Tasks"; "IntegrationService"="IntegrationServices"
"BusinessProcess"="BusinessProcesses"; "Task"="Tasks"; "ExternalDataSource"="ExternalDataSources"; "IntegrationService"="IntegrationServices"
}
# --- XML manipulation helpers (from subsystem-edit pattern) ---
+3 -3
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cf-edit v1.28 — Edit 1C configuration root (Configuration.xml)
# cf-edit v1.29 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -330,7 +330,7 @@ TYPE_ORDER = [
"Report", "DataProcessor", "InformationRegister", "AccumulationRegister",
"ChartOfCharacteristicTypes", "ChartOfAccounts", "AccountingRegister",
"ChartOfCalculationTypes", "CalculationRegister",
"BusinessProcess", "Task", "IntegrationService",
"BusinessProcess", "Task", "ExternalDataSource", "IntegrationService",
]
# Type → on-disk directory name (plural)
@@ -346,7 +346,7 @@ TYPE_TO_DIR = {
"Report": "Reports", "DataProcessor": "DataProcessors", "InformationRegister": "InformationRegisters", "AccumulationRegister": "AccumulationRegisters",
"ChartOfCharacteristicTypes": "ChartsOfCharacteristicTypes", "ChartOfAccounts": "ChartsOfAccounts", "AccountingRegister": "AccountingRegisters",
"ChartOfCalculationTypes": "ChartsOfCalculationTypes", "CalculationRegister": "CalculationRegisters",
"BusinessProcess": "BusinessProcesses", "Task": "Tasks", "IntegrationService": "IntegrationServices",
"BusinessProcess": "BusinessProcesses", "Task": "Tasks", "ExternalDataSource": "ExternalDataSources", "IntegrationService": "IntegrationServices",
}
ML_PROPS = ["Synonym", "BriefInformation", "DetailedInformation", "Copyright", "VendorInformationAddress", "ConfigurationInformationAddress"]
+3 -3
View File
@@ -1,4 +1,4 @@
# cf-info v1.8 — Compact summary of 1C configuration root
# cf-info v1.9 — Compact summary of 1C configuration root
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -99,7 +99,7 @@ $typeOrder = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
$typeRuNames = @{
@@ -120,7 +120,7 @@ $typeRuNames = @{
"ChartOfCharacteristicTypes"="ПВХ"; "ChartOfAccounts"="Планы счетов"
"AccountingRegister"="Регистры бухгалтерии"; "ChartOfCalculationTypes"="ПВР"
"CalculationRegister"="Регистры расчёта"; "BusinessProcess"="Бизнес-процессы"
"Task"="Задачи"; "IntegrationService"="Сервисы интеграции"
"Task"="Задачи"; "ExternalDataSource"="Внешние источники данных"; "IntegrationService"="Сервисы интеграции"
}
# --- Read panel layout (Ext/ClientApplicationInterface.xml) ---
+3 -3
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cf-info v1.8 — Compact summary of 1C configuration root
# cf-info v1.9 — Compact summary of 1C configuration root
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -126,7 +126,7 @@ type_order = [
"Report", "DataProcessor", "InformationRegister", "AccumulationRegister",
"ChartOfCharacteristicTypes", "ChartOfAccounts", "AccountingRegister",
"ChartOfCalculationTypes", "CalculationRegister",
"BusinessProcess", "Task", "IntegrationService",
"BusinessProcess", "Task", "ExternalDataSource", "IntegrationService",
]
type_ru_names = {
@@ -147,7 +147,7 @@ type_ru_names = {
"ChartOfCharacteristicTypes": "ПВХ", "ChartOfAccounts": "Планы счетов",
"AccountingRegister": "Регистры бухгалтерии", "ChartOfCalculationTypes": "ПВР",
"CalculationRegister": "Регистры расчёта", "BusinessProcess": "Бизнес-процессы",
"Task": "Задачи", "IntegrationService": "Сервисы интеграции",
"Task": "Задачи", "ExternalDataSource": "Внешние источники данных", "IntegrationService": "Сервисы интеграции",
}
# --- Read panel layout (Ext/ClientApplicationInterface.xml) ---
@@ -1,4 +1,4 @@
# cf-validate v1.9 — Validate 1C configuration root structure
# cf-validate v1.10 — Validate 1C configuration root structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -131,7 +131,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
# Type -> directory mapping
@@ -157,7 +157,7 @@ $childTypeDirMap = @{
"ChartOfCalculationTypes"="ChartsOfCalculationTypes"
"CalculationRegister"="CalculationRegisters"
"BusinessProcess"="BusinessProcesses"; "Task"="Tasks"
"IntegrationService"="IntegrationServices"
"ExternalDataSource"="ExternalDataSources"; "IntegrationService"="IntegrationServices"
}
# Valid enum values for Configuration properties
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cf-validate v1.9 — Validate 1C configuration XML structure
# cf-validate v1.10 — Validate 1C configuration XML structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
"""Validates Configuration.xml: root structure, InternalInfo, properties, ChildObjects, languages."""
import sys, os, argparse, re
@@ -68,7 +68,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
# Type -> directory mapping
@@ -93,6 +93,7 @@ CHILD_TYPE_DIR_MAP = {
'ChartOfCalculationTypes': 'ChartsOfCalculationTypes',
'CalculationRegister': 'CalculationRegisters',
'BusinessProcess': 'BusinessProcesses', 'Task': 'Tasks',
'ExternalDataSource': 'ExternalDataSources',
'IntegrationService': 'IntegrationServices',
}
@@ -1,4 +1,4 @@
# cfe-borrow v1.36 — Borrow objects from configuration into extension (CFE)
# cfe-borrow v1.37 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -257,7 +257,7 @@ $childTypeDirMap = @{
"EventSubscription"="EventSubscriptions"; "ScheduledJob"="ScheduledJobs"
"SettingsStorage"="SettingsStorages"; "FilterCriterion"="FilterCriteria"
"CommandGroup"="CommandGroups"; "DocumentNumerator"="DocumentNumerators"
"Sequence"="Sequences"; "IntegrationService"="IntegrationServices"
"Sequence"="Sequences"; "ExternalDataSource"="ExternalDataSources"; "IntegrationService"="IntegrationServices"
"XDTOPackage"="XDTOPackages"; "WebService"="WebServices"
"HTTPService"="HTTPServices"; "WSReference"="WSReferences"
"CommonAttribute"="CommonAttributes"; "Style"="Styles"; "Bot"="Bots"; "PaletteColor"="PaletteColors"; "Language"="Languages"
@@ -323,7 +323,7 @@ $script:typeOrder = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
# --- 6. GeneratedType patterns per type ---
@@ -455,6 +455,11 @@ $script:generatedTypes = @{
"DefinedType" = @(
@{ prefix = "DefinedType"; category = "DefinedType" }
)
"ExternalDataSource" = @(
@{ prefix = "ExternalDataSourceManager"; category = "Manager" }
@{ prefix = "ExternalDataSourceTablesManager"; category = "TablesManager" }
@{ prefix = "ExternalDataSourceCubesManager"; category = "CubesManager" }
)
"Sequence" = @(
@{ prefix = "SequenceRecord"; category = "Record" }
@{ prefix = "SequenceManager"; category = "Manager" }
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cfe-borrow v1.36 — Borrow objects from configuration into extension (CFE)
# cfe-borrow v1.37 — Borrow objects from configuration into extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -325,7 +325,7 @@ CHILD_TYPE_DIR_MAP = {
"EventSubscription": "EventSubscriptions", "ScheduledJob": "ScheduledJobs",
"SettingsStorage": "SettingsStorages", "FilterCriterion": "FilterCriteria",
"CommandGroup": "CommandGroups", "DocumentNumerator": "DocumentNumerators",
"Sequence": "Sequences", "IntegrationService": "IntegrationServices",
"Sequence": "Sequences", "ExternalDataSource": "ExternalDataSources", "IntegrationService": "IntegrationServices",
"XDTOPackage": "XDTOPackages", "WebService": "WebServices",
"HTTPService": "HTTPServices", "WSReference": "WSReferences",
"CommonAttribute": "CommonAttributes", "Style": "Styles",
@@ -408,7 +408,7 @@ TYPE_ORDER = [
"Report", "DataProcessor", "InformationRegister", "AccumulationRegister",
"ChartOfCharacteristicTypes", "ChartOfAccounts", "AccountingRegister",
"ChartOfCalculationTypes", "CalculationRegister",
"BusinessProcess", "Task", "IntegrationService",
"BusinessProcess", "Task", "ExternalDataSource", "IntegrationService",
]
GENERATED_TYPES = {
@@ -539,6 +539,11 @@ GENERATED_TYPES = {
"DefinedType": [
{"prefix": "DefinedType", "category": "DefinedType"},
],
"ExternalDataSource": [
{"prefix": "ExternalDataSourceManager", "category": "Manager"},
{"prefix": "ExternalDataSourceTablesManager", "category": "TablesManager"},
{"prefix": "ExternalDataSourceCubesManager", "category": "CubesManager"},
],
"Sequence": [
{"prefix": "SequenceRecord", "category": "Record"},
{"prefix": "SequenceManager", "category": "Manager"},
+2 -2
View File
@@ -1,4 +1,4 @@
# cfe-diff v1.4 — Analyze and compare 1C configuration extension (CFE)
# cfe-diff v1.5 — Analyze and compare 1C configuration extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -49,7 +49,7 @@ $childTypeDirMap = @{
"EventSubscription"="EventSubscriptions"; "ScheduledJob"="ScheduledJobs"
"SettingsStorage"="SettingsStorages"; "FilterCriterion"="FilterCriteria"
"CommandGroup"="CommandGroups"; "DocumentNumerator"="DocumentNumerators"
"Sequence"="Sequences"; "IntegrationService"="IntegrationServices"
"Sequence"="Sequences"; "ExternalDataSource"="ExternalDataSources"; "IntegrationService"="IntegrationServices"
"CommonAttribute"="CommonAttributes"; "Style"="Styles"; "XDTOPackage"="XDTOPackages"
"WebService"="WebServices"; "HTTPService"="HTTPServices"; "WSReference"="WSReferences"
"Bot"="Bots"
+2 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cfe-diff v1.4 — Analyze and compare 1C configuration extension (CFE)
# cfe-diff v1.5 — Analyze and compare 1C configuration extension (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -80,6 +80,7 @@ CHILD_TYPE_DIR_MAP = {
"CommandGroup": "CommandGroups",
"DocumentNumerator": "DocumentNumerators",
"Sequence": "Sequences",
"ExternalDataSource": "ExternalDataSources",
"IntegrationService": "IntegrationServices",
"CommonAttribute": "CommonAttributes",
"Style": "Styles",
@@ -1,4 +1,4 @@
# cfe-validate v1.15 — Validate 1C configuration extension structure (CFE)
# cfe-validate v1.16 — Validate 1C configuration extension structure (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -156,7 +156,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
# Type -> directory mapping
@@ -180,7 +180,7 @@ $childTypeDirMap = @{
"ChartOfCalculationTypes"="ChartsOfCalculationTypes"
"CalculationRegister"="CalculationRegisters"
"BusinessProcess"="BusinessProcesses"; "Task"="Tasks"
"IntegrationService"="IntegrationServices"
"ExternalDataSource"="ExternalDataSources"; "IntegrationService"="IntegrationServices"
}
# Наборы GeneratedType по типу объекта (эталон — таблица §2.5 спецификации конфигурации).
@@ -208,6 +208,7 @@ $generatedTypeCategories = @{
"Sequence" = @("Record","Manager","RecordSet")
"FilterCriterion" = @("Manager","List")
"SettingsStorage" = @("Manager")
"ExternalDataSource" = @("Manager","TablesManager","CubesManager")
"IntegrationService" = @("Manager")
"WSReference" = @("Manager")
"DefinedType" = @("DefinedType")
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# cfe-validate v1.15 — Validate 1C configuration extension XML structure (CFE)
# cfe-validate v1.16 — Validate 1C configuration extension XML structure (CFE)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
"""Validates extension Configuration.xml: root, InternalInfo, extension properties, ChildObjects, borrowed objects."""
import sys, os, argparse, re
@@ -68,7 +68,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
# Модули заимствованных объектов: тип → виды модулей. Имя свойства в <xr:PropertyState>
@@ -114,6 +114,7 @@ CHILD_TYPE_DIR_MAP = {
'ChartOfCalculationTypes': 'ChartsOfCalculationTypes',
'CalculationRegister': 'CalculationRegisters',
'BusinessProcess': 'BusinessProcesses', 'Task': 'Tasks',
'ExternalDataSource': 'ExternalDataSources',
'IntegrationService': 'IntegrationServices',
}
@@ -142,6 +143,7 @@ GENERATED_TYPE_CATEGORIES = {
'Sequence': ['Record', 'Manager', 'RecordSet'],
'FilterCriterion': ['Manager', 'List'],
'SettingsStorage': ['Manager'],
'ExternalDataSource': ['Manager', 'TablesManager', 'CubesManager'],
'IntegrationService': ['Manager'],
'WSReference': ['Manager'],
'DefinedType': ['DefinedType'],
@@ -1,4 +1,4 @@
# meta-compile v1.103 — Compile 1C metadata object from JSON
# meta-compile v1.104 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -1326,6 +1326,11 @@ $script:generatedTypes = @{
"DefinedType" = @(
@{ prefix = "DefinedType"; category = "DefinedType" }
)
"ExternalDataSource" = @(
@{ prefix = "ExternalDataSourceManager"; category = "Manager" }
@{ prefix = "ExternalDataSourceTablesManager"; category = "TablesManager" }
@{ prefix = "ExternalDataSourceCubesManager"; category = "CubesManager" }
)
"DocumentJournal" = @(
@{ prefix = "DocumentJournalSelection"; category = "Selection" }
@{ prefix = "DocumentJournalList"; category = "List" }
@@ -5329,7 +5334,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
function Register-InChildObjects([string]$ParentXmlPath, [string]$ParentTag, [string]$ChildTag, [string]$ChildName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# meta-compile v1.103 — Compile 1C metadata object from JSON
# meta-compile v1.104 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -1429,6 +1429,11 @@ generated_types = {
'DefinedType': [
{'prefix': 'DefinedType', 'category': 'DefinedType'},
],
'ExternalDataSource': [
{'prefix': 'ExternalDataSourceManager', 'category': 'Manager'},
{'prefix': 'ExternalDataSourceTablesManager', 'category': 'TablesManager'},
{'prefix': 'ExternalDataSourceCubesManager', 'category': 'CubesManager'},
],
'DocumentJournal': [
{'prefix': 'DocumentJournalSelection', 'category': 'Selection'},
{'prefix': 'DocumentJournalList', 'category': 'List'},
@@ -5302,7 +5307,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
@@ -1,4 +1,4 @@
# meta-validate v1.24 — Validate 1C metadata object structure
# meta-validate v1.25 — Validate 1C metadata object structure
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -212,6 +212,7 @@ $generatedTypeCategories = @{
"Report" = @("Object","Manager")
"DataProcessor" = @("Object","Manager")
"DefinedType" = @("DefinedType")
"ExternalDataSource" = @("Manager","TablesManager","CubesManager")
}
# Types that have NO InternalInfo / GeneratedType
@@ -1,4 +1,4 @@
# meta-validate v1.24 — Validate 1C metadata object structure (Python port)
# meta-validate v1.25 — Validate 1C metadata object structure (Python port)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import os
@@ -258,6 +258,7 @@ generated_type_categories = {
"Report": ["Object", "Manager"],
"DataProcessor": ["Object", "Manager"],
"DefinedType": ["DefinedType"],
"ExternalDataSource": ["Manager", "TablesManager", "CubesManager"],
}
# Types that have NO InternalInfo / GeneratedType
@@ -1,4 +1,4 @@
# role-compile v1.35 — Compile 1C role from JSON
# role-compile v1.36 — Compile 1C role from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -1278,7 +1278,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
function Register-InChildObjects([string]$ParentXmlPath, [string]$ParentTag, [string]$ChildTag, [string]$ChildName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# role-compile v1.35 — Compile 1C role from JSON
# role-compile v1.36 — Compile 1C role from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -1148,7 +1148,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
@@ -1,4 +1,4 @@
# subsystem-compile v1.32 — Create 1C subsystem from JSON definition
# subsystem-compile v1.33 — Create 1C subsystem from JSON definition
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -693,7 +693,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
function Register-InChildObjects([string]$ParentXmlPath, [string]$ParentTag, [string]$ChildTag, [string]$ChildName) {
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# subsystem-compile v1.32 — Create 1C subsystem from JSON definition
# subsystem-compile v1.33 — Create 1C subsystem from JSON definition
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -466,7 +466,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
@@ -1,4 +1,4 @@
# xdto-compile v1.15 — Build a 1C XDTO package from an XML Schema (XSD) (+support-guard: общая реализация вместо урезанной)
# xdto-compile v1.16 — Build a 1C XDTO package from an XML Schema (XSD) (+support-guard: общая реализация вместо урезанной)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -1086,7 +1086,7 @@ $childObjectTypes = @(
"Report","DataProcessor","InformationRegister","AccumulationRegister",
"ChartOfCharacteristicTypes","ChartOfAccounts","AccountingRegister",
"ChartOfCalculationTypes","CalculationRegister",
"BusinessProcess","Task","IntegrationService"
"BusinessProcess","Task","ExternalDataSource","IntegrationService"
)
function Register-InChildObjects([string]$ParentXmlPath, [string]$ParentTag, [string]$ChildTag, [string]$ChildName) {
@@ -1,4 +1,4 @@
# xdto-compile v1.15 — Build a 1C XDTO package from an XML Schema (XSD) (Python port) (+support-guard: общая реализация вместо урезанной)
# xdto-compile v1.16 — Build a 1C XDTO package from an XML Schema (XSD) (Python port) (+support-guard: общая реализация вместо урезанной)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -1198,7 +1198,7 @@ CHILD_OBJECT_TYPES = [
'Report', 'DataProcessor', 'InformationRegister', 'AccumulationRegister',
'ChartOfCharacteristicTypes', 'ChartOfAccounts', 'AccountingRegister',
'ChartOfCalculationTypes', 'CalculationRegister',
'BusinessProcess', 'Task', 'IntegrationService',
'BusinessProcess', 'Task', 'ExternalDataSource', 'IntegrationService',
]
+10 -1
View File
@@ -227,6 +227,7 @@ ClassId — фиксированные идентификаторы классо
<!-- CalculationRegister (только ERP и аналогичные) -->
<BusinessProcess>Задание</BusinessProcess>
<Task>ЗадачаИсполнителя</Task>
<ExternalDataSource>ВнешниеДанные</ExternalDataSource>
<IntegrationService>ОбменСообщениями</IntegrationService>
</ChildObjects>
```
@@ -280,7 +281,8 @@ ClassId — фиксированные идентификаторы классо
| 43 | `CalculationRegister` | `CalculationRegisters/` | Регистры расчёта |
| 44 | `BusinessProcess` | `BusinessProcesses/` | Бизнес-процессы |
| 45 | `Task` | `Tasks/` | Задачи |
| 46 | `IntegrationService` | `IntegrationServices/` | Сервисы интеграции |
| 46 | `ExternalDataSource` | `ExternalDataSources/` | Внешние источники данных |
| 47 | `IntegrationService` | `IntegrationServices/` | Сервисы интеграции |
Внутри одного типа объекты отсортированы по имени (алфавитный порядок). Типы, для которых нет объектов, в ChildObjects не записываются.
@@ -315,6 +317,13 @@ ClassId — фиксированные идентификаторы классо
| `IntegrationService` | `IntegrationServiceManager`/Manager |
| `WSReference` | `WSReferenceManager`/Manager |
| `DefinedType` | `DefinedType`/DefinedType |
| `ExternalDataSource` | `ExternalDataSourceManager`/Manager, `ExternalDataSourceTablesManager`/TablesManager, `ExternalDataSourceCubesManager`/CubesManager |
| `ExternalDataSource``Table` | `ExternalDataSourceTableManager`/Manager, `ExternalDataSourceTableObject`/Object, `ExternalDataSourceTableRef`/Ref, `ExternalDataSourceTableList`/List, `ExternalDataSourceTableRecord`/Record, `ExternalDataSourceTableRecordSet`/RecordSet, `ExternalDataSourceTableRecordKey`/RecordKey, `ExternalDataSourceTableRecordManager`/RecordManager |
Таблица внешнего источника — единственный подчинённый объект со своим `<InternalInfo>` в отдельном файле;
имя элемента у неё **трёхчастное**: `<префикс>.<ИмяИсточника>.<ИмяТаблицы>` (например
`ExternalDataSourceTableRef.PG.eds_public_products`). У `<Field>` и `<Function>` блока `InternalInfo` нет —
только атрибут `uuid`.
Табличные части объектов несут собственную пару в своём `<InternalInfo>`: `<Тип>TabularSection.<Объект>.<ТЧ>`/TabularSection и `<Тип>TabularSectionRow.<Объект>.<ТЧ>`/TabularSectionRow.
+1 -3
View File
@@ -66,9 +66,7 @@ const MAPS = [
// вокабуляры: значения — канонические имена, полнота не требуется
{
skill: 'role-compile', file: 'role-compile', kind: 'alias', py: 'TYPE_ALIASES', ps1: null,
// ExternalDataSource — объект метаданных с правами в ролях, но в таблице порядка
// ChildObjects его нет: позиция в порядке не измерена (в корпусе внешних источников нет).
extraTargets: ['Configuration', 'ExternalDataSource', 'Attribute', 'StandardAttribute',
extraTargets: ['Configuration', 'Attribute', 'StandardAttribute',
'TabularSection', 'Dimension', 'Resource', 'Command', 'AddressingAttribute'],
},
{ skill: 'interface-edit', file: 'interface-edit', kind: 'alias', py: 'TYPE_NORM_MAP', ps1: null },