diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1
index 6a3b4485..b318ca08 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.154 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.155 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -2917,7 +2917,7 @@ function Emit-Element {
"wrap"=1;"openButton"=1;"listChoiceMode"=1;"showInFooter"=1
"extendedEditMultipleValues"=1;"chooseType"=1;"autoCellHeight"=1
"choiceButtonRepresentation"=1;"footerHorizontalAlign"=1;"headerHorizontalAlign"=1
- "headerDataPath"=1;"headerFormat"=1
+ "headerDataPath"=1;"headerFormat"=1;"currentRowUse"=1
"format"=1;"editFormat"=1;"choiceParameters"=1;"choiceParameterLinks"=1;"typeLink"=1
# label/hyperlink
"hyperlink"=1;"formatted"=1
@@ -4611,10 +4611,15 @@ function Emit-Pages {
if ($el.pagesRepresentation) {
X "$inner$($el.pagesRepresentation)"
}
+ # Использование текущей строки (после PagesRepresentation, порядок XSD)
+ if ($el.currentRowUse) { X "$inner$($el.currentRowUse)" }
Emit-CommonFlags -el $el -indent $inner
Emit-Layout -el $el -indent $inner
+ # Оформление (цвета/шрифты/граница) заголовка группы страниц — TitleFont/TitleTextColor/… (как у Page)
+ Emit-Appearance -el $el -indent $inner -profile 'field'
+
# Companion
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 0afced2e..d8113dff 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.154 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.155 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import copy
@@ -2034,7 +2034,7 @@ KNOWN_KEYS = {
"wrap", "openButton", "listChoiceMode", "showInHeader", "showInFooter",
"extendedEditMultipleValues", "chooseType", "autoCellHeight",
"choiceButtonRepresentation", "footerHorizontalAlign", "headerHorizontalAlign",
- "headerDataPath", "headerFormat",
+ "headerDataPath", "headerFormat", "currentRowUse",
"format", "editFormat", "choiceParameters", "choiceParameterLinks", "typeLink",
"hyperlink", "formatted",
"collapsedTitle", "showTitle", "united", "collapsed", "behavior",
@@ -4350,10 +4350,16 @@ def emit_pages(lines, el, name, eid, indent):
if el.get('pagesRepresentation'):
lines.append(f'{inner}{el["pagesRepresentation"]}')
+ # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 (\u043f\u043e\u0441\u043b\u0435 PagesRepresentation, \u043f\u043e\u0440\u044f\u0434\u043e\u043a XSD)
+ if el.get('currentRowUse'):
+ lines.append(f'{inner}{el["currentRowUse"]}')
emit_common_flags(lines, el, inner)
emit_layout(lines, el, inner)
+ # \u041e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 (\u0446\u0432\u0435\u0442\u0430/\u0448\u0440\u0438\u0444\u0442\u044b/\u0433\u0440\u0430\u043d\u0438\u0446\u0430) \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u2014 TitleFont/TitleTextColor/\u2026 (\u043a\u0430\u043a \u0443 Page)
+ emit_appearance(lines, el, inner, 'field')
+
# Companion
emit_companion(lines, 'ExtendedTooltip', f'{name}\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430', 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 b3e33116..b2a9cea9 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.129 — Decompile 1C managed Form.xml to JSON DSL (draft)
+# form-decompile v0.130 — Decompile 1C managed Form.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
param(
@@ -2090,6 +2090,7 @@ function Decompile-Element {
$obj[$key] = $name
Add-CommonProps $obj $node $name
$pr = Get-Child $node 'PagesRepresentation'; if ($pr) { $obj['pagesRepresentation'] = $pr }
+ $cru = Get-Child $node 'CurrentRowUse'; if ($cru) { $obj['currentRowUse'] = $cru }
$kids = Decompile-Children $node
if ($kids) { $obj['children'] = $kids }
}
diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md
index c2f23c9a..e061a264 100644
--- a/docs/form-dsl-spec.md
+++ b/docs/form-dsl-spec.md
@@ -223,7 +223,7 @@ companion-панели с собственным контентом. Оба не
### 4.1e. Оформление элемента (цвета / шрифты / граница)
-Прямые свойства оформления элемента. Ключи — англ. camelCase 1:1 с тегами; **принимаются рус. синонимы** (forgiving). Применимо к полям (input/check/radio/labelField/picField/calendar), декорациям (label/picture), кнопкам (button), группам (group/columnGroup), **страницам (page: `backColor`/`titleTextColor`/`titleFont`)**, **попапам (popup: `titleTextColor`/`titleFont`)** и таблицам (table); порядок тегов в XML — по базовому типу (профиль), компилятор расставляет сам (1С толерантна к порядку оформления внутри элемента).
+Прямые свойства оформления элемента. Ключи — англ. camelCase 1:1 с тегами; **принимаются рус. синонимы** (forgiving). Применимо к полям (input/check/radio/labelField/picField/calendar), декорациям (label/picture), кнопкам (button), группам (group/columnGroup), **страницам (page/pages: `backColor`/`titleTextColor`/`titleFont`)**, **попапам (popup: `titleTextColor`/`titleFont`)** и таблицам (table); порядок тегов в XML — по базовому типу (профиль), компилятор расставляет сам (1С толерантна к порядку оформления внутри элемента).
| Ключ | Тег | Рус. синоним |
|------|-----|--------------|
@@ -667,7 +667,7 @@ companion-панели с собственным контентом. Оба не
Page поддерживает `group` для задания ориентации содержимого и `children` для вложенных элементов.
Также `picture` — картинка-иконка вкладки (формат «картинка-ссылка» из §4.1: скаляр-Ref/`abs:X` или объект `{src, loadTransparent?, transparentPixel?}`, дефолт `loadTransparent=false`).
-Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `TabsOnBottom`, `TabsOnLeft`, `TabsOnRight`.
+Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `TabsOnBottom`, `TabsOnLeft`, `TabsOnRight`; `currentRowUse` (`Auto`/`DontUse`/…); оформление заголовка вкладок (`titleFont`/`titleTextColor`/`titleBackColor`/… — как у `page`).
#### button — Button