mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-30 16:36:56 +03:00
feat(meta-compile,meta-decompile): dataLockControlMode дефолт Managed для авторинга (роундтрип цел)
Единый дефолт Managed вместо per-type Automatic/Managed — удобно для создания новых объектов (Automatic задаётся явно). Роундтрип остаётся байт-в-байт: дефолт компилятора и порог omit-on-default декомпилятора сдвинуты синхронно — объекты с Automatic теперь несут ключ в DSL явно, с Managed — опускают, итоговый XML с обеих сторон не меняется. Зеркало ps1+py в обоих навыках. Заодно вылечена латентная рассинхронизация AccountingRegister/CalculationRegister (компилятор Automatic vs порог Managed). Верификация: роундтрип-инвариант на реальном корпусе 7/7 match, 0 диффов (Automatic+Managed справочники, ПС, Sequence, РБ); полный набор тестов 514/514; пересъём снэпшотов — 91 файл, дрейф ровно DataLockControlMode Automatic->Managed, ноль посторонних; py-паритет. meta-compile v1.63 / meta-decompile v0.54 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
5988c81244
commit
fd21f5da79
@@ -1,4 +1,4 @@
|
||||
# meta-decompile v0.53 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.54 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Поддержаны: Catalog, ExchangePlan, ChartOfCharacteristicTypes, ChartOfAccounts, ChartOfCalculationTypes, Document,
|
||||
@@ -445,7 +445,7 @@ Add-EnumProp 'subordinationUse' 'SubordinationUse' 'ToItems'
|
||||
$descrLenDef = switch ($objType) { 'ExchangePlan' { 150 } 'ChartOfCharacteristicTypes' { 100 } 'ChartOfCalculationTypes' { 100 } default { 25 } }
|
||||
$codeLenDef = if ($objType -eq 'ChartOfCalculationTypes') { 5 } else { 9 }
|
||||
$createInpDef = if ($objType -in @('Catalog', 'Document')) { 'Use' } else { 'DontUse' }
|
||||
$dataLockDef = if ($objType -in @('Catalog', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Sequence')) { 'Automatic' } else { 'Managed' }
|
||||
$dataLockDef = 'Managed' # компилятор эмитит Managed по умолчанию для всех типов (авторинг); Automatic несётся в DSL явно
|
||||
$codeSeriesDef = switch ($objType) { 'ChartOfCharacteristicTypes' { 'WholeCharacteristicKind' } 'ChartOfAccounts' { 'WholeChartOfAccounts' } default { 'WholeCatalog' } }
|
||||
$checkUniqueDef = ($objType -in @('ChartOfCharacteristicTypes', 'ChartOfAccounts', 'Document', 'DocumentNumerator')) # ПВХ/ПС/Документ/Нумератор дефолт true, Catalog false
|
||||
$defPresDef = if ($objType -eq 'ChartOfAccounts') { 'AsCode' } else { 'AsDescription' } # ПС по умолчанию AsCode
|
||||
@@ -653,7 +653,7 @@ if ($objType -eq 'Sequence') {
|
||||
if ($items.Count -gt 0) { $dsl[$ll[1]] = [System.Collections.ArrayList]@($items) }
|
||||
}
|
||||
}
|
||||
# dataLockControlMode покрыт общим блоком (дефолт Automatic для Sequence).
|
||||
# dataLockControlMode покрыт общим блоком (дефолт Managed для всех типов).
|
||||
}
|
||||
# FilterCriterion — критерий отбора: тип значения + состав (объекты отбора) + формы.
|
||||
if ($objType -eq 'FilterCriterion') {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# meta-decompile v0.53 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# meta-decompile v0.54 — XML объекта метаданных 1С → JSON-черновик формата meta-compile
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
#
|
||||
# Зеркало meta-decompile.ps1 (КАНОН). Структура 1:1 — те же имена функций, порядок, комментарии.
|
||||
@@ -832,7 +832,7 @@ def build_dsl():
|
||||
descr_len_def = {'ExchangePlan': 150, 'ChartOfCharacteristicTypes': 100, 'ChartOfCalculationTypes': 100}.get(obj_type, 25)
|
||||
code_len_def = 5 if obj_type == 'ChartOfCalculationTypes' else 9
|
||||
create_inp_def = 'Use' if obj_type in ('Catalog', 'Document') else 'DontUse'
|
||||
data_lock_def = 'Automatic' if obj_type in ('Catalog', 'ChartOfAccounts', 'ChartOfCalculationTypes', 'Sequence') else 'Managed'
|
||||
data_lock_def = 'Managed' # компилятор эмитит Managed по умолчанию для всех типов (авторинг); Automatic несётся в DSL явно
|
||||
code_series_def = {'ChartOfCharacteristicTypes': 'WholeCharacteristicKind', 'ChartOfAccounts': 'WholeChartOfAccounts'}.get(obj_type, 'WholeCatalog')
|
||||
check_unique_def = (obj_type in ('ChartOfCharacteristicTypes', 'ChartOfAccounts', 'Document', 'DocumentNumerator'))
|
||||
def_pres_def = 'AsCode' if obj_type == 'ChartOfAccounts' else 'AsDescription'
|
||||
|
||||
Reference in New Issue
Block a user