mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-30 00:16:56 +03:00
fix(meta-compile,meta-edit,meta-validate): strict enum validation + fix RequireCalculationTypes
Normalize-EnumValue now uses 4-step logic: alias→case-insensitive→ error (if propName known)→pass-through (if unknown). Previously step 3 silently passed invalid values through to XML, causing cryptic 1C LoadConfigFromFiles errors. Also fixed RequireCalculationTypes→OnActionPeriod (the former never existed in 1C; verified against ERP/ACC dumps). Added NotUsed→DontUse alias, synced meta-edit.ps1 aliases with meta-compile. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
d1e770c843
commit
63de8bd27c
@@ -156,15 +156,15 @@
|
|||||||
| `descriptionLength` | `25` | DescriptionLength |
|
| `descriptionLength` | `25` | DescriptionLength |
|
||||||
| `autonumbering` | `true` | Autonumbering |
|
| `autonumbering` | `true` | Autonumbering |
|
||||||
| `checkUnique` | `false` | CheckUnique |
|
| `checkUnique` | `false` | CheckUnique |
|
||||||
| `dependenceOnCalculationTypes` | `NotUsed` | DependenceOnCalculationTypes |
|
| `dependenceOnCalculationTypes` | `DontUse` | DependenceOnCalculationTypes |
|
||||||
| `actionPeriodUse` | `false` | ActionPeriodUse |
|
| `actionPeriodUse` | `false` | ActionPeriodUse |
|
||||||
| `attributes` | `[]` | → Attribute |
|
| `attributes` | `[]` | → Attribute |
|
||||||
| `tabularSections` | `{}` | → TabularSection |
|
| `tabularSections` | `{}` | → TabularSection |
|
||||||
|
|
||||||
`dependenceOnCalculationTypes`: `NotUsed`, `ExclusionAndDependence`, `ExclusionOnly`.
|
`dependenceOnCalculationTypes`: `DontUse`, `OnActionPeriod`.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{ "type": "ChartOfCalculationTypes", "name": "Начисления", "dependenceOnCalculationTypes": "ExclusionAndDependence" }
|
{ "type": "ChartOfCalculationTypes", "name": "Начисления", "dependenceOnCalculationTypes": "OnActionPeriod" }
|
||||||
```
|
```
|
||||||
|
|
||||||
## Зависимости
|
## Зависимости
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# meta-compile v1.8 — Compile 1C metadata object from JSON
|
# meta-compile v1.9 — Compile 1C metadata object from JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
@@ -87,8 +87,8 @@ $script:enumValueAliases = @{
|
|||||||
"RecordSubordinate" = "RecorderSubordinate"; "Subordinate" = "RecorderSubordinate"
|
"RecordSubordinate" = "RecorderSubordinate"; "Subordinate" = "RecorderSubordinate"
|
||||||
"ПодчинениеРегистратору" = "RecorderSubordinate"; "Независимый" = "Independent"
|
"ПодчинениеРегистратору" = "RecorderSubordinate"; "Независимый" = "Independent"
|
||||||
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
||||||
"NotDependOnCalculationTypes" = "DontUse"; "NoDependence" = "DontUse"
|
"NotDependOnCalculationTypes" = "DontUse"; "NoDependence" = "DontUse"; "NotUsed" = "DontUse"
|
||||||
"Depend" = "RequireCalculationTypes"; "RequireCalculation" = "RequireCalculationTypes"
|
"Depend" = "OnActionPeriod"; "ПоПериодуДействия" = "OnActionPeriod"
|
||||||
# InformationRegisterPeriodicity
|
# InformationRegisterPeriodicity
|
||||||
"None" = "Nonperiodical"; "Daily" = "Day"; "Monthly" = "Month"
|
"None" = "Nonperiodical"; "Daily" = "Day"; "Monthly" = "Month"
|
||||||
"Quarterly" = "Quarter"; "Yearly" = "Year"
|
"Quarterly" = "Quarter"; "Yearly" = "Year"
|
||||||
@@ -117,7 +117,7 @@ $script:validEnumValues = @{
|
|||||||
"RegisterType" = @("Balance","Turnovers")
|
"RegisterType" = @("Balance","Turnovers")
|
||||||
"WriteMode" = @("Independent","RecorderSubordinate")
|
"WriteMode" = @("Independent","RecorderSubordinate")
|
||||||
"InformationRegisterPeriodicity" = @("Nonperiodical","Second","Day","Month","Quarter","Year","RecorderPosition")
|
"InformationRegisterPeriodicity" = @("Nonperiodical","Second","Day","Month","Quarter","Year","RecorderPosition")
|
||||||
"DependenceOnCalculationTypes" = @("DontUse","RequireCalculationTypes")
|
"DependenceOnCalculationTypes" = @("DontUse","OnActionPeriod")
|
||||||
"DataLockControlMode" = @("Automatic","Managed")
|
"DataLockControlMode" = @("Automatic","Managed")
|
||||||
"FullTextSearch" = @("Use","DontUse")
|
"FullTextSearch" = @("Use","DontUse")
|
||||||
"DataHistory" = @("Use","DontUse")
|
"DataHistory" = @("Use","DontUse")
|
||||||
@@ -140,18 +140,21 @@ $script:validEnumValues = @{
|
|||||||
|
|
||||||
function Normalize-EnumValue {
|
function Normalize-EnumValue {
|
||||||
param([string]$propName, [string]$value)
|
param([string]$propName, [string]$value)
|
||||||
# 1. Check alias dictionary
|
# 1. Check alias dictionary — silent auto-correct
|
||||||
if ($script:enumValueAliases.ContainsKey($value)) {
|
if ($script:enumValueAliases.ContainsKey($value)) {
|
||||||
return $script:enumValueAliases[$value]
|
return $script:enumValueAliases[$value]
|
||||||
}
|
}
|
||||||
# 2. Case-insensitive match against valid values
|
# 2. Case-insensitive match against valid values — silent
|
||||||
$valid = $script:validEnumValues[$propName]
|
$valid = $script:validEnumValues[$propName]
|
||||||
if ($valid) {
|
if ($valid) {
|
||||||
foreach ($v in $valid) {
|
foreach ($v in $valid) {
|
||||||
if ($v -ieq $value) { return $v }
|
if ($v -ieq $value) { return $v }
|
||||||
}
|
}
|
||||||
|
# 3. Known property, unknown value — error with hint
|
||||||
|
Write-Error "Invalid value '$value' for property '$propName'. Valid values: $($valid -join ', ')"
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
# 3. Return as-is (validator will catch if wrong)
|
# 4. Unknown property — pass-through (no validation data)
|
||||||
return $value
|
return $value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# meta-compile v1.8 — Compile 1C metadata object from JSON
|
# meta-compile v1.9 — Compile 1C metadata object from JSON
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -147,8 +147,8 @@ enum_value_aliases = {
|
|||||||
'RecordSubordinate': 'RecorderSubordinate', 'Subordinate': 'RecorderSubordinate',
|
'RecordSubordinate': 'RecorderSubordinate', 'Subordinate': 'RecorderSubordinate',
|
||||||
'ПодчинениеРегистратору': 'RecorderSubordinate', 'Независимый': 'Independent',
|
'ПодчинениеРегистратору': 'RecorderSubordinate', 'Независимый': 'Independent',
|
||||||
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
||||||
'NotDependOnCalculationTypes': 'DontUse', 'NoDependence': 'DontUse',
|
'NotDependOnCalculationTypes': 'DontUse', 'NoDependence': 'DontUse', 'NotUsed': 'DontUse',
|
||||||
'Depend': 'RequireCalculationTypes', 'RequireCalculation': 'RequireCalculationTypes',
|
'Depend': 'OnActionPeriod', 'ПоПериодуДействия': 'OnActionPeriod',
|
||||||
# InformationRegisterPeriodicity
|
# InformationRegisterPeriodicity
|
||||||
'None': 'Nonperiodical', 'Daily': 'Day', 'Monthly': 'Month',
|
'None': 'Nonperiodical', 'Daily': 'Day', 'Monthly': 'Month',
|
||||||
'Quarterly': 'Quarter', 'Yearly': 'Year',
|
'Quarterly': 'Quarter', 'Yearly': 'Year',
|
||||||
@@ -177,7 +177,7 @@ valid_enum_values = {
|
|||||||
'RegisterType': ['Balance', 'Turnovers'],
|
'RegisterType': ['Balance', 'Turnovers'],
|
||||||
'WriteMode': ['Independent', 'RecorderSubordinate'],
|
'WriteMode': ['Independent', 'RecorderSubordinate'],
|
||||||
'InformationRegisterPeriodicity': ['Nonperiodical', 'Second', 'Day', 'Month', 'Quarter', 'Year', 'RecorderPosition'],
|
'InformationRegisterPeriodicity': ['Nonperiodical', 'Second', 'Day', 'Month', 'Quarter', 'Year', 'RecorderPosition'],
|
||||||
'DependenceOnCalculationTypes': ['DontUse', 'RequireCalculationTypes'],
|
'DependenceOnCalculationTypes': ['DontUse', 'OnActionPeriod'],
|
||||||
'DataLockControlMode': ['Automatic', 'Managed'],
|
'DataLockControlMode': ['Automatic', 'Managed'],
|
||||||
'FullTextSearch': ['Use', 'DontUse'],
|
'FullTextSearch': ['Use', 'DontUse'],
|
||||||
'DataHistory': ['Use', 'DontUse'],
|
'DataHistory': ['Use', 'DontUse'],
|
||||||
@@ -199,16 +199,19 @@ valid_enum_values = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
def normalize_enum_value(prop_name, value):
|
def normalize_enum_value(prop_name, value):
|
||||||
# 1. Check alias dictionary
|
# 1. Check alias dictionary — silent auto-correct
|
||||||
if value in enum_value_aliases:
|
if value in enum_value_aliases:
|
||||||
return enum_value_aliases[value]
|
return enum_value_aliases[value]
|
||||||
# 2. Case-insensitive match against valid values
|
# 2. Case-insensitive match against valid values — silent
|
||||||
valid = valid_enum_values.get(prop_name)
|
valid = valid_enum_values.get(prop_name)
|
||||||
if valid:
|
if valid:
|
||||||
for v in valid:
|
for v in valid:
|
||||||
if v.lower() == value.lower():
|
if v.lower() == value.lower():
|
||||||
return v
|
return v
|
||||||
# 3. Return as-is (validator will catch if wrong)
|
# 3. Known property, unknown value — error with hint
|
||||||
|
print(f"Invalid value '{value}' for property '{prop_name}'. Valid values: {', '.join(valid)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
# 4. Unknown property — pass-through (no validation data)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def get_enum_prop(prop_name, field_name, default):
|
def get_enum_prop(prop_name, field_name, default):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# meta-edit v1.5 — Edit existing 1C metadata object XML (inline mode + complex properties + TS attribute ops + modify-ts)
|
# meta-edit v1.6 — Edit existing 1C metadata object XML (inline mode + complex properties + TS attribute ops + modify-ts)
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[string]$DefinitionFile,
|
[string]$DefinitionFile,
|
||||||
@@ -48,14 +48,18 @@ $script:enumValueAliases = @{
|
|||||||
"Balances" = "Balance"; "Остатки" = "Balance"; "Обороты" = "Turnovers"
|
"Balances" = "Balance"; "Остатки" = "Balance"; "Обороты" = "Turnovers"
|
||||||
"RecordSubordinate" = "RecorderSubordinate"; "Subordinate" = "RecorderSubordinate"
|
"RecordSubordinate" = "RecorderSubordinate"; "Subordinate" = "RecorderSubordinate"
|
||||||
"ПодчинениеРегистратору" = "RecorderSubordinate"; "Независимый" = "Independent"
|
"ПодчинениеРегистратору" = "RecorderSubordinate"; "Независимый" = "Independent"
|
||||||
"NotDependOnCalculationTypes" = "DontUse"; "NoDependence" = "DontUse"
|
"NotDependOnCalculationTypes" = "DontUse"; "NoDependence" = "DontUse"; "NotUsed" = "DontUse"
|
||||||
|
"Depend" = "OnActionPeriod"; "ПоПериодуДействия" = "OnActionPeriod"
|
||||||
"None" = "Nonperiodical"; "Daily" = "Day"; "Monthly" = "Month"
|
"None" = "Nonperiodical"; "Daily" = "Day"; "Monthly" = "Month"
|
||||||
"Quarterly" = "Quarter"; "Yearly" = "Year"
|
"Quarterly" = "Quarter"; "Yearly" = "Year"
|
||||||
"Непериодический" = "Nonperiodical"; "День" = "Day"; "Месяц" = "Month"
|
"Непериодический" = "Nonperiodical"; "Секунда" = "Second"; "День" = "Day"; "Месяц" = "Month"
|
||||||
"Квартал" = "Quarter"; "Год" = "Year"
|
"Квартал" = "Quarter"; "Год" = "Year"
|
||||||
|
"ПозицияРегистратора" = "RecorderPosition"
|
||||||
"Автоматический" = "Automatic"; "Управляемый" = "Managed"
|
"Автоматический" = "Automatic"; "Управляемый" = "Managed"
|
||||||
"Использовать" = "Use"; "НеИспользовать" = "DontUse"
|
"Использовать" = "Use"; "НеИспользовать" = "DontUse"
|
||||||
"Разрешить" = "Allow"; "Запретить" = "Deny"
|
"Разрешить" = "Allow"; "Запретить" = "Deny"
|
||||||
|
"ВДиалоге" = "InDialog"; "ВСписке" = "InList"; "ОбаСпособа" = "BothWays"
|
||||||
|
"ВВидеНаименования" = "AsDescription"; "ВВидеКода" = "AsCode"
|
||||||
"НеПроверять" = "DontCheck"; "Ошибка" = "ShowError"; "Предупреждение" = "ShowWarning"
|
"НеПроверять" = "DontCheck"; "Ошибка" = "ShowError"; "Предупреждение" = "ShowWarning"
|
||||||
"НеИндексировать" = "DontIndex"; "Индексировать" = "Index"
|
"НеИндексировать" = "DontIndex"; "Индексировать" = "Index"
|
||||||
"ИндексироватьСДопУпорядочиванием" = "IndexWithAdditionalOrder"
|
"ИндексироватьСДопУпорядочиванием" = "IndexWithAdditionalOrder"
|
||||||
@@ -65,7 +69,7 @@ $script:validEnumValues = @{
|
|||||||
"RegisterType" = @("Balance","Turnovers")
|
"RegisterType" = @("Balance","Turnovers")
|
||||||
"WriteMode" = @("Independent","RecorderSubordinate")
|
"WriteMode" = @("Independent","RecorderSubordinate")
|
||||||
"InformationRegisterPeriodicity" = @("Nonperiodical","Second","Day","Month","Quarter","Year","RecorderPosition")
|
"InformationRegisterPeriodicity" = @("Nonperiodical","Second","Day","Month","Quarter","Year","RecorderPosition")
|
||||||
"DependenceOnCalculationTypes" = @("DontUse","RequireCalculationTypes")
|
"DependenceOnCalculationTypes" = @("DontUse","OnActionPeriod")
|
||||||
"DataLockControlMode" = @("Automatic","Managed")
|
"DataLockControlMode" = @("Automatic","Managed")
|
||||||
"FullTextSearch" = @("Use","DontUse")
|
"FullTextSearch" = @("Use","DontUse")
|
||||||
"DataHistory" = @("Use","DontUse")
|
"DataHistory" = @("Use","DontUse")
|
||||||
@@ -74,21 +78,35 @@ $script:validEnumValues = @{
|
|||||||
"RealTimePosting" = @("Allow","Deny")
|
"RealTimePosting" = @("Allow","Deny")
|
||||||
"EditType" = @("InDialog","InList","BothWays")
|
"EditType" = @("InDialog","InList","BothWays")
|
||||||
"HierarchyType" = @("HierarchyFoldersAndItems","HierarchyItemsOnly")
|
"HierarchyType" = @("HierarchyFoldersAndItems","HierarchyItemsOnly")
|
||||||
|
"CodeType" = @("String","Number")
|
||||||
|
"CodeAllowedLength" = @("Variable","Fixed")
|
||||||
|
"NumberType" = @("String","Number")
|
||||||
|
"NumberAllowedLength" = @("Variable","Fixed")
|
||||||
|
"RegisterRecordsDeletion" = @("AutoDelete","AutoDeleteOnUnpost","AutoDeleteOff")
|
||||||
|
"RegisterRecordsWritingOnPost" = @("WriteModified","WriteSelected","WriteAll")
|
||||||
|
"ReturnValuesReuse" = @("DontUse","DuringRequest","DuringSession")
|
||||||
|
"ReuseSessions" = @("DontUse","AutoUse")
|
||||||
"FillChecking" = @("DontCheck","ShowError","ShowWarning")
|
"FillChecking" = @("DontCheck","ShowError","ShowWarning")
|
||||||
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
|
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Normalize-EnumValue {
|
function Normalize-EnumValue {
|
||||||
param([string]$propName, [string]$value)
|
param([string]$propName, [string]$value)
|
||||||
|
# 1. Check alias dictionary — silent auto-correct
|
||||||
if ($script:enumValueAliases.ContainsKey($value)) {
|
if ($script:enumValueAliases.ContainsKey($value)) {
|
||||||
return $script:enumValueAliases[$value]
|
return $script:enumValueAliases[$value]
|
||||||
}
|
}
|
||||||
|
# 2. Case-insensitive match against valid values — silent
|
||||||
$valid = $script:validEnumValues[$propName]
|
$valid = $script:validEnumValues[$propName]
|
||||||
if ($valid) {
|
if ($valid) {
|
||||||
foreach ($v in $valid) {
|
foreach ($v in $valid) {
|
||||||
if ($v -ieq $value) { return $v }
|
if ($v -ieq $value) { return $v }
|
||||||
}
|
}
|
||||||
|
# 3. Known property, unknown value — error with hint
|
||||||
|
Write-Error "Invalid value '$value' for property '$propName'. Valid values: $($valid -join ', ')"
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
# 4. Unknown property — pass-through (no validation data)
|
||||||
return $value
|
return $value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# meta-edit v1.5 — Edit existing 1C metadata object XML (inline mode + complex properties + TS attribute ops + modify-ts)
|
# meta-edit v1.6 — Edit existing 1C metadata object XML (inline mode + complex properties + TS attribute ops + modify-ts)
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -88,8 +88,8 @@ enum_value_aliases = {
|
|||||||
'RecordSubordinate': 'RecorderSubordinate', 'Subordinate': 'RecorderSubordinate',
|
'RecordSubordinate': 'RecorderSubordinate', 'Subordinate': 'RecorderSubordinate',
|
||||||
'ПодчинениеРегистратору': 'RecorderSubordinate', 'Независимый': 'Independent',
|
'ПодчинениеРегистратору': 'RecorderSubordinate', 'Независимый': 'Independent',
|
||||||
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
# DependenceOnCalculationTypes (ChartOfCalculationTypes)
|
||||||
'NotDependOnCalculationTypes': 'DontUse', 'NoDependence': 'DontUse',
|
'NotDependOnCalculationTypes': 'DontUse', 'NoDependence': 'DontUse', 'NotUsed': 'DontUse',
|
||||||
'Depend': 'RequireCalculationTypes', 'RequireCalculation': 'RequireCalculationTypes',
|
'Depend': 'OnActionPeriod', 'ПоПериодуДействия': 'OnActionPeriod',
|
||||||
# InformationRegisterPeriodicity
|
# InformationRegisterPeriodicity
|
||||||
'None': 'Nonperiodical', 'Daily': 'Day', 'Monthly': 'Month',
|
'None': 'Nonperiodical', 'Daily': 'Day', 'Monthly': 'Month',
|
||||||
'Quarterly': 'Quarter', 'Yearly': 'Year',
|
'Quarterly': 'Quarter', 'Yearly': 'Year',
|
||||||
@@ -117,7 +117,7 @@ valid_enum_values = {
|
|||||||
'RegisterType': ['Balance', 'Turnovers'],
|
'RegisterType': ['Balance', 'Turnovers'],
|
||||||
'WriteMode': ['Independent', 'RecorderSubordinate'],
|
'WriteMode': ['Independent', 'RecorderSubordinate'],
|
||||||
'InformationRegisterPeriodicity': ['Nonperiodical', 'Second', 'Day', 'Month', 'Quarter', 'Year', 'RecorderPosition'],
|
'InformationRegisterPeriodicity': ['Nonperiodical', 'Second', 'Day', 'Month', 'Quarter', 'Year', 'RecorderPosition'],
|
||||||
'DependenceOnCalculationTypes': ['DontUse', 'RequireCalculationTypes'],
|
'DependenceOnCalculationTypes': ['DontUse', 'OnActionPeriod'],
|
||||||
'DataLockControlMode': ['Automatic', 'Managed'],
|
'DataLockControlMode': ['Automatic', 'Managed'],
|
||||||
'FullTextSearch': ['Use', 'DontUse'],
|
'FullTextSearch': ['Use', 'DontUse'],
|
||||||
'DataHistory': ['Use', 'DontUse'],
|
'DataHistory': ['Use', 'DontUse'],
|
||||||
@@ -140,16 +140,19 @@ valid_enum_values = {
|
|||||||
|
|
||||||
|
|
||||||
def normalize_enum_value(prop_name, value):
|
def normalize_enum_value(prop_name, value):
|
||||||
# 1. Check alias dictionary
|
# 1. Check alias dictionary — silent auto-correct
|
||||||
if value in enum_value_aliases:
|
if value in enum_value_aliases:
|
||||||
return enum_value_aliases[value]
|
return enum_value_aliases[value]
|
||||||
# 2. Case-insensitive match against valid values
|
# 2. Case-insensitive match against valid values — silent
|
||||||
valid = valid_enum_values.get(prop_name)
|
valid = valid_enum_values.get(prop_name)
|
||||||
if valid:
|
if valid:
|
||||||
for v in valid:
|
for v in valid:
|
||||||
if v.lower() == value.lower():
|
if v.lower() == value.lower():
|
||||||
return v
|
return v
|
||||||
# 3. Return as-is (validator will catch if wrong)
|
# 3. Known property, unknown value — error with hint
|
||||||
|
print(f"Invalid value '{value}' for property '{prop_name}'. Valid values: {', '.join(valid)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
# 4. Unknown property — pass-through (no validation data)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ $validPropertyValues = @{
|
|||||||
"FillChecking" = @("DontCheck","ShowError","ShowWarning")
|
"FillChecking" = @("DontCheck","ShowError","ShowWarning")
|
||||||
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
|
"Indexing" = @("DontIndex","Index","IndexWithAdditionalOrder")
|
||||||
"DataHistory" = @("Use","DontUse")
|
"DataHistory" = @("Use","DontUse")
|
||||||
"DependenceOnCalculationTypes" = @("DontUse","RequireCalculationTypes")
|
"DependenceOnCalculationTypes" = @("DontUse","OnActionPeriod")
|
||||||
}
|
}
|
||||||
|
|
||||||
# Properties forbidden per type (would cause LoadConfigFromFiles error)
|
# Properties forbidden per type (would cause LoadConfigFromFiles error)
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ valid_property_values = {
|
|||||||
"FillChecking": ["DontCheck", "ShowError", "ShowWarning"],
|
"FillChecking": ["DontCheck", "ShowError", "ShowWarning"],
|
||||||
"Indexing": ["DontIndex", "Index", "IndexWithAdditionalOrder"],
|
"Indexing": ["DontIndex", "Index", "IndexWithAdditionalOrder"],
|
||||||
"DataHistory": ["Use", "DontUse"],
|
"DataHistory": ["Use", "DontUse"],
|
||||||
"DependenceOnCalculationTypes": ["DontUse", "RequireCalculationTypes"],
|
"DependenceOnCalculationTypes": ["DontUse", "OnActionPeriod"],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Properties forbidden per type (would cause LoadConfigFromFiles error)
|
# Properties forbidden per type (would cause LoadConfigFromFiles error)
|
||||||
|
|||||||
Reference in New Issue
Block a user