diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1
index 9568800e..05c9962e 100644
--- a/.claude/skills/form-compile/scripts/form-compile.ps1
+++ b/.claude/skills/form-compile/scripts/form-compile.ps1
@@ -1,4 +1,4 @@
-# form-compile v1.74 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.75 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -2351,6 +2351,7 @@ function Get-HLocation {
'^(auto|авто)$' { return $null } # дефолт — не эмитим
'^(left|слева|лево)$' { return 'Left' }
'^(right|справа|право)$' { return 'Right' }
+ '^(center|центр|по центру)$' { return 'Center' }
default { return "$v" }
}
}
@@ -3997,6 +3998,7 @@ function Emit-CommandBar {
if ($el.autofill -eq $true) { X "$innertrue" }
+ $hl = Get-HLocation $el; if ($hl) { X "$inner$hl" }
Emit-CommonFlags -el $el -indent $inner
Emit-Layout -el $el -indent $inner
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner -content $el.extendedTooltip
diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py
index 7ea65a06..8eaf6c6a 100644
--- a/.claude/skills/form-compile/scripts/form-compile.py
+++ b/.claude/skills/form-compile/scripts/form-compile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# form-compile v1.74 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.75 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import copy
@@ -2369,6 +2369,8 @@ def get_hlocation(el):
return 'Left'
if s in ('right', 'справа', 'право'):
return 'Right'
+ if s in ('center', 'центр', 'по центру'):
+ return 'Center'
return str(v)
@@ -3700,6 +3702,10 @@ def emit_command_bar(lines, el, name, eid, indent):
if el.get('autofill') is True:
lines.append(f'{inner}true')
+ _hl = get_hlocation(el)
+ if _hl:
+ lines.append(f'{inner}{_hl}')
+
emit_common_flags(lines, el, inner)
emit_layout(lines, el, inner)
emit_companion(lines, 'ExtendedTooltip', f'{name}РасширеннаяПодсказка', inner, el.get('extendedTooltip'))
diff --git a/.claude/skills/form-decompile/scripts/form-decompile.ps1 b/.claude/skills/form-decompile/scripts/form-decompile.ps1
index b49cae83..0df919db 100644
--- a/.claude/skills/form-decompile/scripts/form-decompile.ps1
+++ b/.claude/skills/form-decompile/scripts/form-decompile.ps1
@@ -1,4 +1,4 @@
-# form-decompile v0.51 — Decompile 1C managed Form.xml to JSON DSL (draft)
+# form-decompile v0.52 — Decompile 1C managed Form.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
param(
@@ -1539,6 +1539,7 @@ function Decompile-Element {
$obj[$key] = $name
Add-CommonProps $obj $node $name
$cs = Get-Child $node 'CommandSource'; if ($cs) { $obj['commandSource'] = $cs }
+ $hl = Get-Child $node 'HorizontalLocation'; if ($hl) { $obj['horizontalLocation'] = $hl.ToLower() }
if ((Get-Child $node 'Autofill') -eq 'true') { $obj['autofill'] = $true }
$kids = Decompile-Children $node
if ($kids) { $obj['children'] = $kids }
diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md
index b47d6c37..8e1377a1 100644
--- a/docs/form-dsl-spec.md
+++ b/docs/form-dsl-spec.md
@@ -667,9 +667,11 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs
#### cmdBar — CommandBar
```json
-{ "cmdBar": "КоманднаяПанель", "children": [ ... ] }
+{ "cmdBar": "КоманднаяПанель", "horizontalLocation": "right", "children": [ ... ] }
```
+Свойства: `commandSource`, `autofill`, `horizontalLocation` (``: `auto` дефолт / `left` / `right` / `center`, + рус. синонимы), `title`, `children` + общие флаги/layout.
+
#### popup — Popup
```json
diff --git a/tests/skills/cases/form-compile/commands.json b/tests/skills/cases/form-compile/commands.json
index 725f7530..0691440c 100644
--- a/tests/skills/cases/form-compile/commands.json
+++ b/tests/skills/cases/form-compile/commands.json
@@ -16,7 +16,7 @@
"input": {
"title": "Форма с командами",
"elements": [
- { "cmdBar": "Панель", "children": [
+ { "cmdBar": "Панель", "horizontalLocation": "right", "children": [
{ "button": "Выполнить", "command": "Выполнить", "defaultButton": true },
{ "button": "Закрыть", "stdCommand": "Close" }
]},
diff --git a/tests/skills/cases/form-compile/snapshots/commands/DataProcessors/Команды/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/commands/DataProcessors/Команды/Forms/Форма/Ext/Form.xml
index 19659c8c..51c8aac6 100644
--- a/tests/skills/cases/form-compile/snapshots/commands/DataProcessors/Команды/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/commands/DataProcessors/Команды/Forms/Форма/Ext/Form.xml
@@ -12,6 +12,7 @@
+ Right