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": "Настройки" } ]