diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1
index 69f8fbbe..80339fa0 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.37 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.38 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -1974,7 +1974,7 @@ function Emit-Element {
"spinButton"=1;"dropListButton"=1;"markIncomplete"=1;"skipOnInput"=1;"inputHint"=1
"textEdit"=1
# label/hyperlink
- "hyperlink"=1
+ "hyperlink"=1;"formatted"=1
# group-specific
"showTitle"=1;"united"=1;"collapsed"=1
# hierarchy
@@ -2527,7 +2527,8 @@ function Emit-Label {
$hasTitleKey = $null -ne $el.PSObject.Properties['title']
$labelTitle = if ($hasTitleKey) { $el.title } else { Title-FromName -name $name }
if ($labelTitle) {
- $formatted = if ($el.hyperlink -eq $true) { "true" } else { "false" }
+ # formatted — независимое свойство (НЕ выводится из hyperlink): ссылка может быть не-форматированной и наоборот.
+ $formatted = if ($el.formatted -eq $true) { "true" } else { "false" }
X "$inner
"
Emit-MLItems -val $labelTitle -indent "$inner`t"
X "$inner"
diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py
index cdc235dd..a5ab5c1a 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.37 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.38 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import copy
@@ -1367,7 +1367,7 @@ KNOWN_KEYS = {
"multiLine", "passwordMode", "choiceButton", "clearButton",
"spinButton", "dropListButton", "markIncomplete", "skipOnInput", "inputHint",
"textEdit",
- "hyperlink",
+ "hyperlink", "formatted",
"showTitle", "united", "collapsed",
"children", "columns",
"changeRowSet", "changeRowOrder", "header", "footer",
@@ -2177,7 +2177,8 @@ def emit_label(lines, el, name, eid, indent):
label_title = el['title'] if 'title' in el else title_from_name(name)
if label_title:
- formatted = 'true' if el.get('hyperlink') is True else 'false'
+ # formatted — независимое свойство (НЕ выводится из hyperlink).
+ formatted = 'true' if el.get('formatted') is True else 'false'
lines.append(f'{inner}')
emit_ml_items(lines, f'{inner}\t', label_title)
lines.append(f'{inner}')
diff --git a/.claude/skills/form-decompile/scripts/form-decompile.ps1 b/.claude/skills/form-decompile/scripts/form-decompile.ps1
index 085578c3..475eb44f 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.17 — Decompile 1C managed Form.xml to JSON DSL (draft)
+# form-decompile v0.18 — Decompile 1C managed Form.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
param(
@@ -399,6 +399,9 @@ function Decompile-Element {
$obj[$key] = $name
Add-CommonProps $obj $node $name
if ((Get-Child $node 'Hyperlink') -eq 'true') { $obj['hyperlink'] = $true }
+ # formatted — атрибут , НЕЗАВИСИМ от hyperlink (true → ключ, false → опускаем)
+ $tiNode = $node.SelectSingleNode("lf:Title", $ns)
+ if ($tiNode -and $tiNode.GetAttribute('formatted') -eq 'true') { $obj['formatted'] = $true }
}
'LabelField' {
$obj[$key] = $name
diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md
index 00ad093a..5edd8de4 100644
--- a/docs/form-dsl-spec.md
+++ b/docs/form-dsl-spec.md
@@ -276,6 +276,7 @@
|----------|-----|----------|
| `title` | string | Текст надписи |
| `hyperlink` | bool | Режим гиперссылки |
+| `formatted` | bool | Форматированный текст (``). **Независим от `hyperlink`** — выводится только при `true` |
| `width` | int | Ширина |
| `height` | int | Высота |
| `autoMaxWidth` | bool | Автомаксимальная ширина |
diff --git a/tests/skills/cases/form-compile/snapshots/events/DataProcessors/События/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/events/DataProcessors/События/Forms/Форма/Ext/Form.xml
index 95304b6c..18c07411 100644
--- a/tests/skills/cases/form-compile/snapshots/events/DataProcessors/События/Forms/Форма/Ext/Form.xml
+++ b/tests/skills/cases/form-compile/snapshots/events/DataProcessors/События/Forms/Форма/Ext/Form.xml
@@ -31,7 +31,7 @@
-
+
ru
Нажмите для перехода