diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1
index 5c1830aa..26801c0c 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.129 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.130 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$JsonPath,
@@ -4326,6 +4326,8 @@ function Emit-Table {
Emit-PictureRef -val $el.rowsPicture -picTag 'RowsPicture' -indent $inner
# Использование текущей строки таблицы (pass-through; в корпусе соседствует с блоком дин-списка)
if ($el.currentRowUse) { X "$inner$($el.currentRowUse)" }
+ # Запрос обновления дин-списка (pass-through; в корпусе всегда PullFromTop)
+ if ($el.refreshRequest) { X "$inner$($el.refreshRequest)" }
# Блок свойств дин-список-таблицы (помечена эвристикой 11b.4)
if ($el.PSObject.Properties["_dynList"] -and $el._dynList) { Emit-DynListTableBlock -el $el -indent $inner }
if ($el.viewStatusLocation) { X "$inner$($el.viewStatusLocation)" }
diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py
index 1ae2c398..79972c46 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.129 — Compile 1C managed form from JSON or object metadata
+# form-compile v1.130 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import copy
@@ -4062,6 +4062,9 @@ def emit_table(lines, el, name, eid, indent):
# Использование текущей строки таблицы (pass-through; в корпусе соседствует с блоком дин-списка)
if el.get('currentRowUse'):
lines.append(f'{inner}{el["currentRowUse"]}')
+ # Запрос обновления дин-списка (pass-through; в корпусе всегда PullFromTop)
+ if el.get('refreshRequest'):
+ lines.append(f'{inner}{el["refreshRequest"]}')
# Блок свойств дин-список-таблицы (помечена эвристикой)
if el.get('_dynList'):
emit_dynlist_table_block(lines, el, inner)
diff --git a/.claude/skills/form-decompile/scripts/form-decompile.ps1 b/.claude/skills/form-decompile/scripts/form-decompile.ps1
index f799319c..dbea6847 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.103 — Decompile 1C managed Form.xml to JSON DSL (draft)
+# form-decompile v0.104 — Decompile 1C managed Form.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
param(
@@ -1781,6 +1781,8 @@ function Decompile-Element {
$fh = Get-Child $node 'FooterHeight'; if ($null -ne $fh) { $obj['footerHeight'] = [int]$fh }
# Использование текущей строки (Table-уровень; ≠ command-level CurrentRowUse) — pass-through
$cru = Get-Child $node 'CurrentRowUse'; if ($cru) { $obj['currentRowUse'] = $cru }
+ # Запрос обновления дин-списка (всегда PullFromTop в корпусе) — pass-through
+ $rr = Get-Child $node 'RefreshRequest'; if ($rr) { $obj['refreshRequest'] = $rr }
# CommandBarLocation: для дин-список-таблицы компилятор авто-инжектит "None" → инвертируем
# (нет тега → суппресс-маркер ""; "None" → опускаем = авто-дефолт; иначе → захват).
$cbl = Get-Child $node 'CommandBarLocation'
@@ -2207,7 +2209,7 @@ $titleNode = $root.SelectSingleNode("lf:Title", $ns)
if ($titleNode) { $t = Get-LangText $titleNode; if ($null -ne $t) { $dsl['title'] = $t } }
# properties (прямые скаляры под