mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-27 12:35:54 +03:00
fix(meta-edit): modify.properties не создаёт элемент свойства-списка в обход проверок
modify.properties создавал отсутствующий элемент до Set-ComplexProperty, и решение Get-ListPropertyElement обходилось: пустой список дописывал <RegisterRecords/> заимствованному объекту, а у обычного объекта без элемента не было отказа. Свойство-список теперь уходит в Set-ComplexProperty до create-if-missing. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
cfd2d1be50
commit
2fc5659b47
@@ -1,4 +1,4 @@
|
||||
# meta-edit v1.56 — Edit existing 1C metadata object XML
|
||||
# meta-edit v1.57 — Edit existing 1C metadata object XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
[CmdletBinding(PositionalBinding=$false)]
|
||||
param(
|
||||
@@ -2663,6 +2663,18 @@ function Modify-Properties($propsDef) {
|
||||
$propName = $_.Name
|
||||
$propValue = $_.Value
|
||||
|
||||
# Свойство-список: наличие элемента решает Get-ListPropertyElement (тип объекта, заимствование)
|
||||
if ($script:complexPropertyMap.ContainsKey($propName)) {
|
||||
$valuesList = @()
|
||||
if ($propValue -is [array]) {
|
||||
$valuesList = @($propValue | ForEach-Object { "$_" })
|
||||
} else {
|
||||
$valuesList = @("$propValue" -split ';;' | ForEach-Object { $_.Trim() } | Where-Object { $_ })
|
||||
}
|
||||
Set-ComplexProperty $propName $valuesList
|
||||
return
|
||||
}
|
||||
|
||||
# Find the property element in Properties
|
||||
$propEl = $null
|
||||
foreach ($child in $script:propertiesEl.ChildNodes) {
|
||||
@@ -2687,18 +2699,6 @@ function Modify-Properties($propsDef) {
|
||||
}
|
||||
}
|
||||
|
||||
# Complex property: Owners, RegisterRecords, BasedOn, InputByString
|
||||
if ($script:complexPropertyMap.ContainsKey($propName)) {
|
||||
$valuesList = @()
|
||||
if ($propValue -is [array]) {
|
||||
$valuesList = @($propValue | ForEach-Object { "$_" })
|
||||
} else {
|
||||
$valuesList = @("$propValue" -split ';;' | ForEach-Object { $_.Trim() } | Where-Object { $_ })
|
||||
}
|
||||
Set-ComplexProperty $propName $valuesList
|
||||
return
|
||||
}
|
||||
|
||||
# Handle boolean values
|
||||
$valueStr = "$propValue"
|
||||
if ($propValue -is [bool]) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# meta-edit v1.56 — Edit existing 1C metadata object XML
|
||||
# meta-edit v1.57 — Edit existing 1C metadata object XML
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -2580,6 +2580,16 @@ def modify_properties(props_def):
|
||||
global modify_count
|
||||
|
||||
for prop_name, prop_value in props_def.items():
|
||||
# Свойство-список: наличие элемента решает get_list_property_element (тип объекта, заимствование)
|
||||
if prop_name in complex_property_map:
|
||||
values_list = []
|
||||
if isinstance(prop_value, list):
|
||||
values_list = [str(v) for v in prop_value]
|
||||
else:
|
||||
values_list = [v.strip() for v in str(prop_value).split(";;") if v.strip()]
|
||||
set_complex_property(prop_name, values_list)
|
||||
continue
|
||||
|
||||
# Find the property element in Properties
|
||||
prop_el = None
|
||||
for child in properties_el:
|
||||
@@ -2599,16 +2609,6 @@ def modify_properties(props_def):
|
||||
else:
|
||||
die(f"Property '{prop_name}': could not create element")
|
||||
|
||||
# Complex property: Owners, RegisterRecords, BasedOn, InputByString
|
||||
if prop_name in complex_property_map:
|
||||
values_list = []
|
||||
if isinstance(prop_value, list):
|
||||
values_list = [str(v) for v in prop_value]
|
||||
else:
|
||||
values_list = [v.strip() for v in str(prop_value).split(";;") if v.strip()]
|
||||
set_complex_property(prop_name, values_list)
|
||||
continue
|
||||
|
||||
# Handle boolean values
|
||||
value_str = str(prop_value)
|
||||
if isinstance(prop_value, bool):
|
||||
|
||||
Reference in New Issue
Block a user