mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-19 17:50:23 +03:00
fix(cf-edit,subsystem-edit,interface-edit): регистр значения операции
Волна закрыла ключи DSL и параметры CLI, но не значения внутри DSL: имя операции сравнивалось точным совпадением, тогда как PS диспетчеризует через switch, а он регистронезависим. На cf-edit "Modify-Property" PS применял, а py писал Unknown operation; на subsystem-edit "Add-Child" py молча ничего не делал. Имя операции теперь нормализуется в нижний регистр. skd-edit не затронут: у него операция приходит параметром с choices, что уже закрыто ci_parse_args. Заодно переписан кейс form-edit/lenient-key-case: он был написан в форме operations/op, которой у навыка нет, — навык такой вход игнорирует, и кейс проходил на обоих портах, не проверяя ничего. Теперь форма взята из документации навыка, а в эталоне есть след эффекта. Кейсы cf-edit, subsystem-edit и interface-edit расширены регистром значения операции. Проверка: 683/683 (PS), 680+3 skipped (PY), гарды 4/4, 11 снэпшотов приняты платформой, версии портов совпадают. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
57b0f95b5f
commit
5baece90d6
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)][Alias('Path')][string]$ConfigPath,
|
[Parameter(Mandatory)][Alias('Path')][string]$ConfigPath,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -1055,23 +1055,25 @@ def main():
|
|||||||
|
|
||||||
for op in operations:
|
for op in operations:
|
||||||
op_name = op.get("operation", args.Operation or "")
|
op_name = op.get("operation", args.Operation or "")
|
||||||
|
# PS сравнивает имя операции через switch, а он регистронезависим.
|
||||||
|
op_key = str(op_name).lower()
|
||||||
op_value = op.get("value", args.Value or "")
|
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))
|
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))
|
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))
|
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))
|
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))
|
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))
|
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)
|
do_set_panels(op_value)
|
||||||
elif op_name == "set-home-page":
|
elif op_key == "set-home-page":
|
||||||
do_set_home_page(op_value)
|
do_set_home_page(op_value)
|
||||||
else:
|
else:
|
||||||
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
||||||
|
|||||||
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)][Alias('Path')][string]$CIPath,
|
[Parameter(Mandatory)][Alias('Path')][string]$CIPath,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -774,19 +774,21 @@ def main():
|
|||||||
|
|
||||||
for op in operations:
|
for op in operations:
|
||||||
op_name = op.get("operation", args.Operation or "")
|
op_name = op.get("operation", args.Operation or "")
|
||||||
|
# PS сравнивает имя операции через switch, а он регистронезависим.
|
||||||
|
op_key = str(op_name).lower()
|
||||||
op_value = op.get("value", args.Value or "")
|
op_value = op.get("value", args.Value or "")
|
||||||
|
|
||||||
if op_name == "hide":
|
if op_key == "hide":
|
||||||
do_hide(parse_value_list(op_value))
|
do_hide(parse_value_list(op_value))
|
||||||
elif op_name == "show":
|
elif op_key == "show":
|
||||||
do_show(parse_value_list(op_value))
|
do_show(parse_value_list(op_value))
|
||||||
elif op_name == "place":
|
elif op_key == "place":
|
||||||
do_place(op_value)
|
do_place(op_value)
|
||||||
elif op_name == "order":
|
elif op_key == "order":
|
||||||
do_order(op_value)
|
do_order(op_value)
|
||||||
elif op_name == "subsystem-order":
|
elif op_key == "subsystem-order":
|
||||||
do_subsystem_order(op_value)
|
do_subsystem_order(op_value)
|
||||||
elif op_name == "group-order":
|
elif op_key == "group-order":
|
||||||
do_group_order(op_value)
|
do_group_order(op_value)
|
||||||
else:
|
else:
|
||||||
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
||||||
|
|||||||
@@ -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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
|
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
@@ -831,7 +831,7 @@ def main():
|
|||||||
info(f'Set {prop_name} = "{prop_value}"')
|
info(f'Set {prop_name} = "{prop_value}"')
|
||||||
return
|
return
|
||||||
|
|
||||||
if prop_name == "Comment":
|
if prop_key == "comment":
|
||||||
for ch in list(prop_el):
|
for ch in list(prop_el):
|
||||||
prop_el.remove(ch)
|
prop_el.remove(ch)
|
||||||
if not prop_value:
|
if not prop_value:
|
||||||
@@ -842,7 +842,7 @@ def main():
|
|||||||
info(f'Set Comment = "{prop_value}"')
|
info(f'Set Comment = "{prop_value}"')
|
||||||
return
|
return
|
||||||
|
|
||||||
if prop_name == "Picture":
|
if prop_key == "picture":
|
||||||
for ch in list(prop_el):
|
for ch in list(prop_el):
|
||||||
prop_el.remove(ch)
|
prop_el.remove(ch)
|
||||||
if not prop_value:
|
if not prop_value:
|
||||||
@@ -884,17 +884,19 @@ def main():
|
|||||||
|
|
||||||
for op in operations:
|
for op in operations:
|
||||||
op_name = op.get("operation", args.Operation or "")
|
op_name = op.get("operation", args.Operation or "")
|
||||||
|
# PS сравнивает имя операции через switch, а он регистронезависим.
|
||||||
|
op_key = str(op_name).lower()
|
||||||
op_value = op.get("value", args.Value or "")
|
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))
|
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))
|
do_remove_content(parse_value_list(op_value))
|
||||||
elif op_name == "add-child":
|
elif op_key == "add-child":
|
||||||
do_add_child(op_value)
|
do_add_child(op_value)
|
||||||
elif op_name == "remove-child":
|
elif op_key == "remove-child":
|
||||||
do_remove_child(op_value)
|
do_remove_child(op_value)
|
||||||
elif op_name == "set-property":
|
elif op_key == "set-property":
|
||||||
do_set_property(op_value)
|
do_set_property(op_value)
|
||||||
else:
|
else:
|
||||||
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
print(f"Unknown operation: {op_name}", file=sys.stderr)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "Прощающий ввод: регистр ключей операции",
|
"name": "Прощающий ввод: регистр ключей И значения операции",
|
||||||
"input": [
|
"input": [
|
||||||
{
|
{
|
||||||
"Operation": "modify-property",
|
"Operation": "Modify-Property",
|
||||||
"Value": "Version=3.0.0"
|
"Value": "Version=3.0.0"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Прощающий ввод: регистр ключей операции",
|
"name": "Прощающий ввод: регистр ключей DSL",
|
||||||
"preRun": [
|
"preRun": [
|
||||||
{
|
{
|
||||||
"script": "meta-compile/scripts/meta-compile",
|
"script": "meta-compile/scripts/meta-compile",
|
||||||
@@ -24,12 +24,10 @@
|
|||||||
"formPath": "DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml"
|
"formPath": "DataProcessors/РедРегистр/Forms/Форма/Ext/Form.xml"
|
||||||
},
|
},
|
||||||
"input": {
|
"input": {
|
||||||
"Operations": [
|
"Attributes": [
|
||||||
{
|
{
|
||||||
"Op": "add-attribute",
|
"Name": "Сумма",
|
||||||
"Name": "Рек",
|
"Type": "decimal(15,2)"
|
||||||
"Type": "String",
|
|
||||||
"Length": 5
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -11,5 +11,15 @@
|
|||||||
</Type>
|
</Type>
|
||||||
<MainAttribute>true</MainAttribute>
|
<MainAttribute>true</MainAttribute>
|
||||||
</Attribute>
|
</Attribute>
|
||||||
|
<Attribute name="Сумма" id="2">
|
||||||
|
<Type>
|
||||||
|
<v8:Type>xs:decimal</v8:Type>
|
||||||
|
<v8:NumberQualifiers>
|
||||||
|
<v8:Digits>15</v8:Digits>
|
||||||
|
<v8:FractionDigits>2</v8:FractionDigits>
|
||||||
|
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||||
|
</v8:NumberQualifiers>
|
||||||
|
</Type>
|
||||||
|
</Attribute>
|
||||||
</Attributes>
|
</Attributes>
|
||||||
</Form>
|
</Form>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Прощающий ввод: регистр ключей операции",
|
"name": "Прощающий ввод: регистр ключей И значения операции",
|
||||||
"preRun": [
|
"preRun": [
|
||||||
{
|
{
|
||||||
"script": "subsystem-compile/scripts/subsystem-compile",
|
"script": "subsystem-compile/scripts/subsystem-compile",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
},
|
},
|
||||||
"input": [
|
"input": [
|
||||||
{
|
{
|
||||||
"Operation": "subsystem-order",
|
"Operation": "Subsystem-Order",
|
||||||
"Value": "[\"Subsystem.Продажи.Subsystem.Розничные\",\"Subsystem.Продажи.Subsystem.Оптовые\"]"
|
"Value": "[\"Subsystem.Продажи.Subsystem.Розничные\",\"Subsystem.Продажи.Subsystem.Оптовые\"]"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Прощающий ввод: регистр ключей операции",
|
"name": "Прощающий ввод: регистр ключей И значения операции",
|
||||||
"preRun": [
|
"preRun": [
|
||||||
{
|
{
|
||||||
"script": "subsystem-compile/scripts/subsystem-compile",
|
"script": "subsystem-compile/scripts/subsystem-compile",
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
},
|
},
|
||||||
"input": [
|
"input": [
|
||||||
{
|
{
|
||||||
"Operation": "add-child",
|
"Operation": "Add-Child",
|
||||||
"Value": "Настройки"
|
"Value": "Настройки"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user