fix(meta-edit): remove-* у обычного объекта без элемента свойства-списка — отказ

add/set на файле без элемента уже отказывали («файл не из выгрузки платформы?»),
а remove печатал WARN и выходил с кодом 0. У заимствованного объекта отсутствие
элемента по-прежнему значит «удалять нечего» — предупреждение.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 17:44:51 +03:00
co-authored by Claude Opus 5.5
parent 0ff848784e
commit b95dcd8f13
2 changed files with 7 additions and 4 deletions
@@ -1,4 +1,4 @@
# meta-edit v1.58 — Edit existing 1C metadata object XML
# meta-edit v1.59 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -3605,10 +3605,11 @@ function Get-ListPropertyElement([string]$propName, [bool]$create) {
Die "Свойство '$propName' заимствованного объекта $($script:objType).$($script:objName) расширение не меняет — значение берётся из основной конфигурации"
}
$propEl = Find-PropertyElement $propName
if ($propEl -or -not $create) { return $propEl }
if ($propEl) { return $propEl }
if (-not $isAdopted) {
Die "В Properties объекта $($script:objType).$($script:objName) нет элемента '$propName' — файл не из выгрузки платформы?"
}
if (-not $create) { return $null }
$newNodes = Import-Fragment "<$propName/>"
Insert-PropertyInOrder $script:propertiesEl $newNodes[0] $null $propName
return $newNodes[0]
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# meta-edit v1.58 — Edit existing 1C metadata object XML
# meta-edit v1.59 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -3541,10 +3541,12 @@ def get_list_property_element(prop_name, create):
if is_adopted and obj_type not in (map_entry or {}).get("adopted", []):
die(f"Свойство '{prop_name}' заимствованного объекта {obj_type}.{obj_name} расширение не меняет — значение берётся из основной конфигурации")
prop_el = find_property_element(prop_name)
if prop_el is not None or not create:
if prop_el is not None:
return prop_el
if not is_adopted:
die(f"В Properties объекта {obj_type}.{obj_name} нет элемента '{prop_name}' — файл не из выгрузки платформы?")
if not create:
return None
new_nodes = import_fragment(f"<{prop_name}/>")
insert_property_in_order(properties_el, new_nodes[0], None, prop_name)
return new_nodes[0]