diff --git a/.claude/skills/meta-edit/scripts/meta-edit.ps1 b/.claude/skills/meta-edit/scripts/meta-edit.ps1
index 615631e1a..2a6ed988a 100644
--- a/.claude/skills/meta-edit/scripts/meta-edit.ps1
+++ b/.claude/skills/meta-edit/scripts/meta-edit.ps1
@@ -1,4 +1,4 @@
-# meta-edit v1.57 — Edit existing 1C metadata object XML
+# meta-edit v1.58 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -2660,7 +2660,7 @@ function Process-Remove($removeDef) {
function Modify-Properties($propsDef) {
$propsDef.PSObject.Properties | ForEach-Object {
- $propName = $_.Name
+ $propName = Get-CanonicalName $_.Name ($script:knownObjectProps + @($script:complexPropertyMap.Keys))
$propValue = $_.Value
# Свойство-список: наличие элемента решает Get-ListPropertyElement (тип объекта, заимствование)
@@ -2769,7 +2769,7 @@ function Modify-ChildElements($modifyDef, [string]$childType) {
}
$changes.PSObject.Properties | ForEach-Object {
- $changeProp = $_.Name
+ $changeProp = Get-CanonicalName $_.Name ($script:childModifyKeys + $script:knownChildProps)
$changeValue = $_.Value
# TS child attribute operations (add/remove/modify attrs inside a TabularSection)
@@ -2883,7 +2883,8 @@ function Modify-ChildElements($modifyDef, [string]$childType) {
}
}
}
- if ($currentSyn -eq $oldSynonym -or -not $currentSyn) {
+ # Без учёта регистра: авто-синоним «ИНН» против разбивки «Инн»
+ if ($currentSyn -ieq $oldSynonym -or -not $currentSyn) {
$newSynonym = Split-CamelCase $newName
$synXml = Build-MLTextXml (Get-ChildIndent $propsEl) "Synonym" $newSynonym
$newSynNodes = Import-Fragment $synXml
@@ -3177,6 +3178,13 @@ $script:knownChildProps = @(
'Synonym','ToolTip','Type','Use','UseInTotals'
)
+# Ключи веток modify дочернего элемента в их написании. Стоят перед knownChildProps: при канонизации
+# первый выигрывает, и Name уходит в ветку переименования name, а не в скалярную.
+$script:childModifyKeys = @(
+ 'add','remove','modify','name','type','synonym','Format','EditFormat','ToolTip','ChoiceForm','MinValue','MaxValue',
+ 'LinkByType','ChoiceParameterLinks','ChoiceParameters','FillValue'
+)
+
# Канонический порядок свойств реквизита (последовательность Build-AttributeFragment) — для вставки в позицию.
# Порядок 1С терпит (cert), но держим канонический для консистентности с meta-compile.
$script:attrPropOrder = @(
@@ -3565,6 +3573,14 @@ function Build-FillValueExplicitXml([string]$typeStr, $spec) {
return "$(Esc-XmlText $r.Text)"
}
+# Прощающий ввод: ключ свойства в любом регистре сводим к каноническому имени из списка (первое
+# совпадение без учёта регистра). Дальше работаем только с ним — в XML уходит имя тега, а не
+# написание из входа. Неизвестное возвращается как есть — его отвергнет allowlist.
+function Get-CanonicalName([string]$name, [string[]]$canon) {
+ foreach ($c in $canon) { if ($c -eq $name) { return $c } }
+ return $name
+}
+
function Find-PropertyElement([string]$propName) {
foreach ($child in $script:propertiesEl.ChildNodes) {
if ($child.NodeType -eq 'Element' -and $child.LocalName -eq $propName) {
diff --git a/.claude/skills/meta-edit/scripts/meta-edit.py b/.claude/skills/meta-edit/scripts/meta-edit.py
index d4480001e..118710f3c 100644
--- a/.claude/skills/meta-edit/scripts/meta-edit.py
+++ b/.claude/skills/meta-edit/scripts/meta-edit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# meta-edit v1.57 — Edit existing 1C metadata object XML
+# meta-edit v1.58 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -2580,6 +2580,7 @@ def modify_properties(props_def):
global modify_count
for prop_name, prop_value in props_def.items():
+ prop_name = canonical_name(prop_name, list(known_object_props) + list(complex_property_map))
# Свойство-список: наличие элемента решает get_list_property_element (тип объекта, заимствование)
if prop_name in complex_property_map:
values_list = []
@@ -2670,6 +2671,7 @@ def modify_child_elements(modify_def, child_type):
die(f"{xml_tag} '{elem_name}': no Properties element found")
for change_prop, change_value in changes.items():
+ change_prop = canonical_name(change_prop, child_modify_keys + list(known_child_props))
# TS child attribute operations (add/remove/modify attrs inside a TabularSection)
if xml_tag == "TabularSection" and change_prop in ("add", "remove", "modify"):
# Find ChildObjects inside this TS element
@@ -2759,7 +2761,8 @@ def modify_child_elements(modify_def, child_type):
for gc in item_el:
if localname(gc) == "content":
current_syn = (gc.text or "").strip()
- if current_syn == old_synonym or not current_syn:
+ # Без учёта регистра: авто-синоним «ИНН» против разбивки «Инн» (так в PS-мастере)
+ if current_syn.lower() == old_synonym.lower() or not current_syn:
new_synonym = split_camel_case(new_name)
syn_indent = get_child_indent(props_el)
new_syn_xml = build_mltext_xml(syn_indent, "Synonym", new_synonym)
@@ -3021,6 +3024,13 @@ known_object_props = {
}
# Известные свойства дочерних элементов (union Attribute/Dimension/Resource) — allowlist default-ветки modify-child.
+# Ключи веток modify дочернего элемента в их написании. Стоят перед known_child_props: при канонизации
+# первый выигрывает, и Name уходит в ветку переименования name, а не в скалярную.
+child_modify_keys = [
+ "add", "remove", "modify", "name", "type", "synonym", "Format", "EditFormat", "ToolTip", "ChoiceForm", "MinValue",
+ "MaxValue", "LinkByType", "ChoiceParameterLinks", "ChoiceParameters", "FillValue",
+]
+
known_child_props = {
'AccountingFlag', 'Balance', 'BaseDimension', 'ChoiceFoldersAndItems', 'ChoiceForm', 'ChoiceHistoryOnInput',
'ChoiceParameterLinks', 'ChoiceParameters', 'Comment', 'CreateOnInput', 'DataHistory', 'DenyIncompleteValues',
@@ -3500,6 +3510,17 @@ def build_fill_value_explicit_xml(type_str, spec):
return f'{esc_xml_text(r["Text"])}'
+# Прощающий ввод: ключ свойства в любом регистре сводим к каноническому имени из списка (первое
+# совпадение без учёта регистра). Дальше работаем только с ним — в XML уходит имя тега, а не
+# написание из входа. Неизвестное возвращается как есть — его отвергнет allowlist.
+def canonical_name(name, canon):
+ low = name.lower()
+ for c in canon:
+ if c.lower() == low:
+ return c
+ return name
+
+
def find_property_element(prop_name):
for child in properties_el:
if localname(child) == prop_name:
diff --git a/tests/skills/cases/meta-edit/lenient-attribute-key-case.json b/tests/skills/cases/meta-edit/lenient-attribute-key-case.json
new file mode 100644
index 000000000..b895c2495
--- /dev/null
+++ b/tests/skills/cases/meta-edit/lenient-attribute-key-case.json
@@ -0,0 +1,55 @@
+{
+ "name": "Прощающий ввод: ключи свойств реквизита в другом регистре — канонические теги, Name переименовывает",
+ "preRun": [
+ {
+ "script": "meta-compile/scripts/meta-compile",
+ "input": {
+ "type": "Catalog",
+ "name": "Контрагенты",
+ "attributes": [
+ "ИНН: String(12)"
+ ]
+ },
+ "args": {
+ "-JsonPath": "{inputFile}",
+ "-OutputDir": "{workDir}"
+ }
+ }
+ ],
+ "params": {
+ "objectPath": "Catalogs/Контрагенты"
+ },
+ "input": {
+ "modify": {
+ "attributes": {
+ "ИНН": {
+ "Name": "КодНалогоплательщика",
+ "indexing": "Index",
+ "fillchecking": "ShowError"
+ }
+ }
+ }
+ },
+ "expect": {
+ "fileContains": [
+ {
+ "file": "Catalogs/Контрагенты.xml",
+ "text": [
+ "КодНалогоплательщика",
+ "Код налогоплательщика",
+ "Index",
+ "ShowError"
+ ]
+ }
+ ],
+ "fileNotContains": [
+ {
+ "file": "Catalogs/Контрагенты.xml",
+ "text": [
+ ""
+ ]
+ }
+ ],
+ "fileNotContains": [
+ {
+ "file": "cfe/Documents/Прих.xml",
+ "text": "11",
+ "true"
+ ]
+ }
+ ]
+ }
+}
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Catalogs/Контрагенты.xml
new file mode 100644
index 000000000..832261c56
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Catalogs/Контрагенты.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ Контрагенты
+
+
+ ru
+ Контрагенты
+
+
+
+ false
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 9
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.Контрагенты.StandardAttribute.Description
+ Catalog.Контрагенты.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
+ КодНалогоплательщика
+
+ ru
+ Код налогоплательщика
+
+
+
+
+ xs:string
+
+ 12
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ ShowError
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ Index
+ Use
+ Use
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Catalogs/Контрагенты/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Catalogs/Контрагенты/Ext/ObjectModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Configuration.xml
new file mode 100644
index 000000000..7dd7b758d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Configuration.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+ UUID-014
+ UUID-015
+
+
+
+ TestConfig
+
+
+ ru
+ TestConfig
+
+
+
+
+ Version8_3_24
+ ManagedApplication
+
+ PlatformApplication
+
+ Russian
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Biometrics
+ true
+
+
+ Location
+ false
+
+
+ BackgroundLocation
+ false
+
+
+ BluetoothPrinters
+ false
+
+
+ WiFiPrinters
+ false
+
+
+ Contacts
+ false
+
+
+ Calendars
+ false
+
+
+ PushNotifications
+ false
+
+
+ LocalNotifications
+ false
+
+
+ InAppPurchases
+ false
+
+
+ PersonalComputerFileExchange
+ false
+
+
+ Ads
+ false
+
+
+ NumberDialing
+ false
+
+
+ CallProcessing
+ false
+
+
+ CallLog
+ false
+
+
+ AutoSendSMS
+ false
+
+
+ ReceiveSMS
+ false
+
+
+ SMSLog
+ false
+
+
+ Camera
+ false
+
+
+ Microphone
+ false
+
+
+ MusicLibrary
+ false
+
+
+ PictureAndVideoLibraries
+ false
+
+
+ AudioPlaybackAndVibration
+ false
+
+
+ BackgroundAudioPlaybackAndVibration
+ false
+
+
+ InstallPackages
+ false
+
+
+ OSBackup
+ true
+
+
+ ApplicationUsageStatistics
+ false
+
+
+ BarcodeScanning
+ false
+
+
+ BackgroundAudioRecording
+ false
+
+
+ AllFilesAccess
+ false
+
+
+ Videoconferences
+ false
+
+
+ NFC
+ false
+
+
+ DocumentScanning
+ false
+
+
+ SpeechToText
+ false
+
+
+ Geofences
+ false
+
+
+ IncomingShareRequests
+ false
+
+
+ AllIncomingShareRequestsTypesProcessing
+ false
+
+
+
+
+
+ Normal
+
+
+ Language.Русский
+
+
+
+
+
+ Managed
+ NotAutoFree
+ DontUse
+ DontUse
+ TaxiEnableVersion8_2
+ DontUse
+ Version8_3_24
+
+
+
+ Русский
+ Контрагенты
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Ext/ClientApplicationInterface.xml
new file mode 100644
index 000000000..3c1161b2d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Ext/ClientApplicationInterface.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ UUID-002
+
+
+
+
+ UUID-004
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Languages/Русский.xml
new file mode 100644
index 000000000..37c60d786
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-attribute-key-case/Languages/Русский.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Русский
+
+
+ ru
+ Русский
+
+
+
+ ru
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост.xml
new file mode 100644
index 000000000..28ea8fc43
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост.xml
@@ -0,0 +1,273 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+
+ Ост
+
+
+ ru
+ Ост
+
+
+
+ true
+
+
+ Balance
+ false
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+ Managed
+ Use
+ true
+
+
+
+
+
+
+
+ Кол
+
+
+ ru
+ Кол
+
+
+
+
+ xs:decimal
+
+ 10
+ 0
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ Use
+
+
+
+
+ Товар
+
+
+ ru
+ Товар
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ DontIndex
+ Use
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост/Ext/RecordSetModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост/Ext/RecordSetModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост2.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост2.xml
new file mode 100644
index 000000000..0011c4302
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост2.xml
@@ -0,0 +1,273 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+
+ Ост2
+
+
+ ru
+ Ост2
+
+
+
+ true
+
+
+ Balance
+ false
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+
+ DontCheck
+ false
+ false
+ Auto
+ TransformValues
+
+
+ false
+
+
+ Auto
+ Auto
+
+ false
+ Use
+ false
+
+
+
+ Use
+
+
+
+
+
+
+ Managed
+ Use
+ true
+
+
+
+
+
+
+
+ Кол
+
+
+ ru
+ Кол
+
+
+
+
+ xs:decimal
+
+ 10
+ 0
+ Any
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ Use
+
+
+
+
+ Товар
+
+
+ ru
+ Товар
+
+
+
+
+ xs:string
+
+ 10
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ false
+ DontIndex
+ Use
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост2/Ext/RecordSetModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/AccumulationRegisters/Ост2/Ext/RecordSetModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Configuration.xml
new file mode 100644
index 000000000..d2dc29830
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Configuration.xml
@@ -0,0 +1,259 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+ UUID-014
+ UUID-015
+
+
+
+ TestConfig
+
+
+ ru
+ TestConfig
+
+
+
+
+ Version8_3_27
+ ManagedApplication
+
+ PlatformApplication
+
+ Russian
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Biometrics
+ true
+
+
+ Location
+ false
+
+
+ BackgroundLocation
+ false
+
+
+ BluetoothPrinters
+ false
+
+
+ WiFiPrinters
+ false
+
+
+ Contacts
+ false
+
+
+ Calendars
+ false
+
+
+ PushNotifications
+ false
+
+
+ LocalNotifications
+ false
+
+
+ InAppPurchases
+ false
+
+
+ PersonalComputerFileExchange
+ false
+
+
+ Ads
+ false
+
+
+ NumberDialing
+ false
+
+
+ CallProcessing
+ false
+
+
+ CallLog
+ false
+
+
+ AutoSendSMS
+ false
+
+
+ ReceiveSMS
+ false
+
+
+ SMSLog
+ false
+
+
+ Camera
+ false
+
+
+ Microphone
+ false
+
+
+ MusicLibrary
+ false
+
+
+ PictureAndVideoLibraries
+ false
+
+
+ AudioPlaybackAndVibration
+ false
+
+
+ BackgroundAudioPlaybackAndVibration
+ false
+
+
+ InstallPackages
+ false
+
+
+ OSBackup
+ true
+
+
+ ApplicationUsageStatistics
+ false
+
+
+ BarcodeScanning
+ false
+
+
+ BackgroundAudioRecording
+ false
+
+
+ AllFilesAccess
+ false
+
+
+ Videoconferences
+ false
+
+
+ NFC
+ false
+
+
+ DocumentScanning
+ false
+
+
+ SpeechToText
+ false
+
+
+ Geofences
+ false
+
+
+ IncomingShareRequests
+ false
+
+
+ AllIncomingShareRequestsTypesProcessing
+ false
+
+
+ TextToSpeech
+ false
+
+
+
+
+
+ Normal
+
+
+ Language.Русский
+
+
+
+
+
+ Managed
+ NotAutoFree
+ DontUse
+ DontUse
+ TaxiEnableVersion8_2
+ DontUse
+ Version8_3_27
+
+
+
+ Русский
+ Расх
+ Прих
+ Ост
+ Ост2
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Прих.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Прих.xml
new file mode 100644
index 000000000..1872e6773
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Прих.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ Прих
+
+
+ ru
+ Прих
+
+
+
+ true
+
+ String
+ 11
+ Variable
+ Year
+ true
+ true
+
+
+
+ Document.Прих.StandardAttribute.Number
+
+ Use
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+ Allow
+ Deny
+ AutoDelete
+ WriteSelected
+ AutoFill
+
+ true
+ true
+ false
+
+ Managed
+ Use
+
+
+
+
+
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Прих/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Прих/Ext/ObjectModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Расх.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Расх.xml
new file mode 100644
index 000000000..8ff6fd91d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Расх.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ Расх
+
+
+ ru
+ Расх
+
+
+
+ true
+
+ String
+ 11
+ Variable
+ Year
+ true
+ true
+
+
+
+ Document.Расх.StandardAttribute.Number
+
+ Use
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+ Allow
+ Deny
+ AutoDelete
+ WriteSelected
+ AutoFill
+
+ AccumulationRegister.Ост
+ AccumulationRegister.Ост2
+
+ true
+ true
+ false
+
+ Managed
+ Use
+
+
+
+
+
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Расх/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Documents/Расх/Ext/ObjectModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Ext/ClientApplicationInterface.xml
new file mode 100644
index 000000000..3c1161b2d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Ext/ClientApplicationInterface.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ UUID-002
+
+
+
+
+ UUID-004
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Languages/Русский.xml
new file mode 100644
index 000000000..fe1c53366
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/Languages/Русский.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Русский
+
+
+ ru
+ Русский
+
+
+
+ ru
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост.xml
new file mode 100644
index 000000000..33c648438
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+
+ Adopted
+ Ост
+
+ UUID-014
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост2.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост2.xml
new file mode 100644
index 000000000..84b43731b
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/AccumulationRegisters/Ост2.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+
+ Adopted
+ Ост2
+
+ UUID-014
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Configuration.xml
new file mode 100644
index 000000000..4f2a6bd80
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Configuration.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+ UUID-014
+ UUID-015
+
+
+
+ Adopted
+ Расш
+
+
+ ru
+ Расш
+
+
+
+ Customization
+ true
+ Расш_
+ Version8_3_27
+ ManagedApplication
+
+ PlatformApplication
+
+ Russian
+
+ Role.Расш_ОсновнаяРоль
+
+
+
+ Language.Русский
+
+
+
+
+
+ TaxiEnableVersion8_2
+
+
+ Русский
+ Расш_ОсновнаяРоль
+ Прих
+ Ост
+ Ост2
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Documents/Прих.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Documents/Прих.xml
new file mode 100644
index 000000000..0be886453
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Documents/Прих.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ Adopted
+ Прих
+
+ UUID-012
+
+ AccumulationRegister.Ост
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Languages/Русский.xml
new file mode 100644
index 000000000..87112c20b
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Languages/Русский.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Adopted
+ Русский
+
+ UUID-002
+ ru
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Roles/Расш_ОсновнаяРоль.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Roles/Расш_ОсновнаяРоль.xml
new file mode 100644
index 000000000..7fc211d46
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case-adopted/cfe/Roles/Расш_ОсновнаяРоль.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ Расш_ОсновнаяРоль
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Catalogs/Контрагенты.xml
new file mode 100644
index 000000000..88699cc75
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Catalogs/Контрагенты.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+
+ Контрагенты
+
+
+ ru
+ Контрагенты
+
+
+
+ true
+ HierarchyFoldersAndItems
+ false
+ 2
+ true
+ true
+
+ ToItems
+ 11
+ 25
+ String
+ Variable
+ WholeCatalog
+ false
+ true
+ AsDescription
+
+ Auto
+ InDialog
+ false
+ BothWays
+
+ Catalog.Контрагенты.StandardAttribute.Description
+ Catalog.Контрагенты.StandardAttribute.Code
+
+ Begin
+ DontUse
+ Directly
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ Managed
+ Use
+
+
+
+
+
+ Use
+ Auto
+ DontUse
+ false
+ false
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Catalogs/Контрагенты/Ext/ObjectModule.bsl b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Catalogs/Контрагенты/Ext/ObjectModule.bsl
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Configuration.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Configuration.xml
new file mode 100644
index 000000000..7dd7b758d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Configuration.xml
@@ -0,0 +1,252 @@
+
+
+
+
+
+ UUID-002
+ UUID-003
+
+
+ UUID-004
+ UUID-005
+
+
+ UUID-006
+ UUID-007
+
+
+ UUID-008
+ UUID-009
+
+
+ UUID-010
+ UUID-011
+
+
+ UUID-012
+ UUID-013
+
+
+ UUID-014
+ UUID-015
+
+
+
+ TestConfig
+
+
+ ru
+ TestConfig
+
+
+
+
+ Version8_3_24
+ ManagedApplication
+
+ PlatformApplication
+
+ Russian
+
+
+
+
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Biometrics
+ true
+
+
+ Location
+ false
+
+
+ BackgroundLocation
+ false
+
+
+ BluetoothPrinters
+ false
+
+
+ WiFiPrinters
+ false
+
+
+ Contacts
+ false
+
+
+ Calendars
+ false
+
+
+ PushNotifications
+ false
+
+
+ LocalNotifications
+ false
+
+
+ InAppPurchases
+ false
+
+
+ PersonalComputerFileExchange
+ false
+
+
+ Ads
+ false
+
+
+ NumberDialing
+ false
+
+
+ CallProcessing
+ false
+
+
+ CallLog
+ false
+
+
+ AutoSendSMS
+ false
+
+
+ ReceiveSMS
+ false
+
+
+ SMSLog
+ false
+
+
+ Camera
+ false
+
+
+ Microphone
+ false
+
+
+ MusicLibrary
+ false
+
+
+ PictureAndVideoLibraries
+ false
+
+
+ AudioPlaybackAndVibration
+ false
+
+
+ BackgroundAudioPlaybackAndVibration
+ false
+
+
+ InstallPackages
+ false
+
+
+ OSBackup
+ true
+
+
+ ApplicationUsageStatistics
+ false
+
+
+ BarcodeScanning
+ false
+
+
+ BackgroundAudioRecording
+ false
+
+
+ AllFilesAccess
+ false
+
+
+ Videoconferences
+ false
+
+
+ NFC
+ false
+
+
+ DocumentScanning
+ false
+
+
+ SpeechToText
+ false
+
+
+ Geofences
+ false
+
+
+ IncomingShareRequests
+ false
+
+
+ AllIncomingShareRequestsTypesProcessing
+ false
+
+
+
+
+
+ Normal
+
+
+ Language.Русский
+
+
+
+
+
+ Managed
+ NotAutoFree
+ DontUse
+ DontUse
+ TaxiEnableVersion8_2
+ DontUse
+ Version8_3_24
+
+
+
+ Русский
+ Контрагенты
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Ext/ClientApplicationInterface.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Ext/ClientApplicationInterface.xml
new file mode 100644
index 000000000..3c1161b2d
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Ext/ClientApplicationInterface.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ UUID-002
+
+
+
+
+ UUID-004
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Languages/Русский.xml b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Languages/Русский.xml
new file mode 100644
index 000000000..37c60d786
--- /dev/null
+++ b/tests/skills/cases/meta-edit/snapshots/lenient-property-key-case/Languages/Русский.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Русский
+
+
+ ru
+ Русский
+
+
+
+ ru
+
+
+
\ No newline at end of file