diff --git a/.claude/skills/cf-edit/scripts/cf-edit.ps1 b/.claude/skills/cf-edit/scripts/cf-edit.ps1
index 27dd3b4c..3cc88cc9 100644
--- a/.claude/skills/cf-edit/scripts/cf-edit.ps1
+++ b/.claude/skills/cf-edit/scripts/cf-edit.ps1
@@ -1,4 +1,4 @@
-# cf-edit v1.18 — Edit 1C configuration root (Configuration.xml)
+# cf-edit v1.19 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)][Alias('Path')][string]$ConfigPath,
diff --git a/.claude/skills/cf-edit/scripts/cf-edit.py b/.claude/skills/cf-edit/scripts/cf-edit.py
index 94454fce..ec0afaa1 100644
--- a/.claude/skills/cf-edit/scripts/cf-edit.py
+++ b/.claude/skills/cf-edit/scripts/cf-edit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# cf-edit v1.18 — Edit 1C configuration root (Configuration.xml)
+# cf-edit v1.19 — Edit 1C configuration root (Configuration.xml)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -1055,23 +1055,25 @@ def main():
for op in operations:
op_name = op.get("operation", args.Operation or "")
+ # PS сравнивает имя операции через switch, а он регистронезависим.
+ op_key = str(op_name).lower()
op_value = op.get("value", args.Value or "")
- if op_name == "modify-property":
+ if op_key == "modify-property":
do_modify_property(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "add-childObject":
+ elif op_key == "add-childobject":
do_add_child_object(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "remove-childObject":
+ elif op_key == "remove-childobject":
do_remove_child_object(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "add-defaultRole":
+ elif op_key == "add-defaultrole":
do_add_default_role(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "remove-defaultRole":
+ elif op_key == "remove-defaultrole":
do_remove_default_role(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "set-defaultRoles":
+ elif op_key == "set-defaultroles":
do_set_default_roles(op_value if isinstance(op_value, str) else str(op_value))
- elif op_name == "set-panels":
+ elif op_key == "set-panels":
do_set_panels(op_value)
- elif op_name == "set-home-page":
+ elif op_key == "set-home-page":
do_set_home_page(op_value)
else:
print(f"Unknown operation: {op_name}", file=sys.stderr)
diff --git a/.claude/skills/interface-edit/scripts/interface-edit.ps1 b/.claude/skills/interface-edit/scripts/interface-edit.ps1
index f875bc29..c6eb0f29 100644
--- a/.claude/skills/interface-edit/scripts/interface-edit.ps1
+++ b/.claude/skills/interface-edit/scripts/interface-edit.ps1
@@ -1,4 +1,4 @@
-# interface-edit v1.17 — Edit 1C CommandInterface.xml (+русские алиасы типов: формы с ё и без)
+# interface-edit v1.18 — Edit 1C CommandInterface.xml (+русские алиасы типов: формы с ё и без)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)][Alias('Path')][string]$CIPath,
diff --git a/.claude/skills/interface-edit/scripts/interface-edit.py b/.claude/skills/interface-edit/scripts/interface-edit.py
index c462cdd9..a362a3a0 100644
--- a/.claude/skills/interface-edit/scripts/interface-edit.py
+++ b/.claude/skills/interface-edit/scripts/interface-edit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# interface-edit v1.17 — Edit 1C CommandInterface.xml (+русские алиасы типов: формы с ё и без)
+# interface-edit v1.18 — Edit 1C CommandInterface.xml (+русские алиасы типов: формы с ё и без)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -774,19 +774,21 @@ def main():
for op in operations:
op_name = op.get("operation", args.Operation or "")
+ # PS сравнивает имя операции через switch, а он регистронезависим.
+ op_key = str(op_name).lower()
op_value = op.get("value", args.Value or "")
- if op_name == "hide":
+ if op_key == "hide":
do_hide(parse_value_list(op_value))
- elif op_name == "show":
+ elif op_key == "show":
do_show(parse_value_list(op_value))
- elif op_name == "place":
+ elif op_key == "place":
do_place(op_value)
- elif op_name == "order":
+ elif op_key == "order":
do_order(op_value)
- elif op_name == "subsystem-order":
+ elif op_key == "subsystem-order":
do_subsystem_order(op_value)
- elif op_name == "group-order":
+ elif op_key == "group-order":
do_group_order(op_value)
else:
print(f"Unknown operation: {op_name}", file=sys.stderr)
diff --git a/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1 b/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
index adb1e86e..a6ca16f1 100644
--- a/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
+++ b/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
@@ -1,4 +1,4 @@
-# subsystem-edit v1.20 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
+# subsystem-edit v1.21 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
diff --git a/.claude/skills/subsystem-edit/scripts/subsystem-edit.py b/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
index b578b030..03d8d97c 100644
--- a/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
+++ b/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# subsystem-edit v1.20 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
+# subsystem-edit v1.21 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -831,7 +831,7 @@ def main():
info(f'Set {prop_name} = "{prop_value}"')
return
- if prop_name == "Comment":
+ if prop_key == "comment":
for ch in list(prop_el):
prop_el.remove(ch)
if not prop_value:
@@ -842,7 +842,7 @@ def main():
info(f'Set Comment = "{prop_value}"')
return
- if prop_name == "Picture":
+ if prop_key == "picture":
for ch in list(prop_el):
prop_el.remove(ch)
if not prop_value:
@@ -884,17 +884,19 @@ def main():
for op in operations:
op_name = op.get("operation", args.Operation or "")
+ # PS сравнивает имя операции через switch, а он регистронезависим.
+ op_key = str(op_name).lower()
op_value = op.get("value", args.Value or "")
- if op_name == "add-content":
+ if op_key == "add-content":
do_add_content(parse_value_list(op_value))
- elif op_name == "remove-content":
+ elif op_key == "remove-content":
do_remove_content(parse_value_list(op_value))
- elif op_name == "add-child":
+ elif op_key == "add-child":
do_add_child(op_value)
- elif op_name == "remove-child":
+ elif op_key == "remove-child":
do_remove_child(op_value)
- elif op_name == "set-property":
+ elif op_key == "set-property":
do_set_property(op_value)
else:
print(f"Unknown operation: {op_name}", file=sys.stderr)
diff --git a/tests/skills/cases/cf-edit/lenient-key-case.json b/tests/skills/cases/cf-edit/lenient-key-case.json
index 8d8f1ab4..57606813 100644
--- a/tests/skills/cases/cf-edit/lenient-key-case.json
+++ b/tests/skills/cases/cf-edit/lenient-key-case.json
@@ -1,8 +1,8 @@
{
- "name": "Прощающий ввод: регистр ключей операции",
+ "name": "Прощающий ввод: регистр ключей И значения операции",
"input": [
{
- "Operation": "modify-property",
+ "Operation": "Modify-Property",
"Value": "Version=3.0.0"
}
]
diff --git a/tests/skills/cases/form-edit/lenient-key-case.json b/tests/skills/cases/form-edit/lenient-key-case.json
index 55d5ad48..9c394c58 100644
--- a/tests/skills/cases/form-edit/lenient-key-case.json
+++ b/tests/skills/cases/form-edit/lenient-key-case.json
@@ -1,5 +1,5 @@
{
- "name": "Прощающий ввод: регистр ключей операции",
+ "name": "Прощающий ввод: регистр ключей DSL",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
@@ -24,12 +24,10 @@
"formPath": "DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml"
},
"input": {
- "Operations": [
+ "Attributes": [
{
- "Op": "add-attribute",
- "Name": "Рек",
- "Type": "String",
- "Length": 5
+ "Name": "Сумма",
+ "Type": "decimal(15,2)"
}
]
}
diff --git a/tests/skills/cases/form-edit/snapshots/lenient-key-case/DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-edit/snapshots/lenient-key-case/DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml
index 5fa2555d..3fe57fff 100644
--- a/tests/skills/cases/form-edit/snapshots/lenient-key-case/DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-edit/snapshots/lenient-key-case/DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml
@@ -11,5 +11,15 @@
true
+
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/interface-edit/lenient-key-case.json b/tests/skills/cases/interface-edit/lenient-key-case.json
index 89ec2b73..2067467c 100644
--- a/tests/skills/cases/interface-edit/lenient-key-case.json
+++ b/tests/skills/cases/interface-edit/lenient-key-case.json
@@ -1,5 +1,5 @@
{
- "name": "Прощающий ввод: регистр ключей операции",
+ "name": "Прощающий ввод: регистр ключей И значения операции",
"preRun": [
{
"script": "subsystem-compile/scripts/subsystem-compile",
@@ -21,7 +21,7 @@
},
"input": [
{
- "Operation": "subsystem-order",
+ "Operation": "Subsystem-Order",
"Value": "[\"Subsystem.Продажи.Subsystem.Розничные\",\"Subsystem.Продажи.Subsystem.Оптовые\"]"
}
]
diff --git a/tests/skills/cases/subsystem-edit/lenient-key-case.json b/tests/skills/cases/subsystem-edit/lenient-key-case.json
index b245947e..71f2db1b 100644
--- a/tests/skills/cases/subsystem-edit/lenient-key-case.json
+++ b/tests/skills/cases/subsystem-edit/lenient-key-case.json
@@ -1,5 +1,5 @@
{
- "name": "Прощающий ввод: регистр ключей операции",
+ "name": "Прощающий ввод: регистр ключей И значения операции",
"preRun": [
{
"script": "subsystem-compile/scripts/subsystem-compile",
@@ -17,7 +17,7 @@
},
"input": [
{
- "Operation": "add-child",
+ "Operation": "Add-Child",
"Value": "Настройки"
}
]