feat(form-decompile,form-compile): MobileDeviceCommandBarContent (состав моб-панели)

Форменное свойство <MobileDeviceCommandBarContent> = список имён командных
панелей/кнопок для командной панели мобильного устройства. DSL:
mobileCommandBarContent: ["Имя1", "Имя2", …] (массив строк).

Константы подтверждены по корпусу (161 файл): Presentation пустой,
CheckState=0, Value xsi:type=xs:string всегда — варьируется только имя-Value.
Компилятор ставит константы, эмитит перед AutoCommandBar; декомпилятор
собирает список имён.

Зеркало py (байт-в-байт). Форма BusinessProcesses/Задание/ФормаСписка →
round-trip match. Кейс commands сертифицирован в 1С. Регресс 39/39 ps1+py.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-08 21:11:18 +03:00
co-authored by Claude Opus 4.8
parent ea43522b5a
commit 8915e99ac8
6 changed files with 53 additions and 3 deletions
@@ -1,4 +1,4 @@
# form-compile v1.81 — Compile 1C managed form from JSON or object metadata
# form-compile v1.82 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -5029,6 +5029,20 @@ if ($def.excludedCommands -and $def.excludedCommands.Count -gt 0) {
X "`t</CommandSet>"
}
# 12c2. MobileDeviceCommandBarContent — форменный список имён командных панелей/кнопок
# (Presentation пустой, CheckState=0, тип xs:string — константы; варьируется только имя-Value).
if ($def.mobileCommandBarContent -and @($def.mobileCommandBarContent).Count -gt 0) {
X "`t<MobileDeviceCommandBarContent>"
foreach ($nm in @($def.mobileCommandBarContent)) {
X "`t`t<xr:Item>"
X "`t`t`t<xr:Presentation/>"
X "`t`t`t<xr:CheckState>0</xr:CheckState>"
X "`t`t`t<xr:Value xsi:type=`"xs:string`">$(Esc-Xml "$nm")</xr:Value>"
X "`t`t</xr:Item>"
}
X "`t</MobileDeviceCommandBarContent>"
}
# 12d. AutoCommandBar (always present, id=-1)
$acbAutofill = Compute-MainAcbAutofill
$acbName = "ФормаКоманднаяПанель"