diff --git a/.claude/skills/skd-edit/scripts/skd-edit.ps1 b/.claude/skills/skd-edit/scripts/skd-edit.ps1
index e635c65a..7ae894a2 100644
--- a/.claude/skills/skd-edit/scripts/skd-edit.ps1
+++ b/.claude/skills/skd-edit/scripts/skd-edit.ps1
@@ -1,5 +1,6 @@
-# skd-edit v1.27 — Atomic 1C DCS editor
+# skd-edit v1.28 — Atomic 1C DCS editor
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
+# NB: парный .py собирает выражения автодат вне f-string ради совместимости с python 3.9 (PEP 701).
param(
[Parameter(Mandatory)]
[Alias('Path')]
diff --git a/.claude/skills/skd-edit/scripts/skd-edit.py b/.claude/skills/skd-edit/scripts/skd-edit.py
index 298934df..f281a849 100644
--- a/.claude/skills/skd-edit/scripts/skd-edit.py
+++ b/.claude/skills/skd-edit/scripts/skd-edit.py
@@ -1,4 +1,4 @@
-# skd-edit v1.27 — Atomic 1C DCS editor (Python port)
+# skd-edit v1.28 — Atomic 1C DCS editor (Python port)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -1244,6 +1244,9 @@ def build_param_fragment(parsed, indent):
if parsed.get("autoDates"):
param_name = parsed["name"]
# Canonical БСП pattern: title + valueType + value + useRestriction + expression
+ # NB: expr автодат собираем в переменную (не в f-string): бэкслеш в \uXXXX
+ # внутри {} f-строки — SyntaxError на python < 3.12 (PEP 701). Совместимость с 3.9.
+ expr_start = esc_xml('&' + param_name + '.\u0414\u0430\u0442\u0430\u041d\u0430\u0447\u0430\u043b\u0430')
b_lines = [
f"{i}",
f"{i}\t\u0414\u0430\u0442\u0430\u041d\u0430\u0447\u0430\u043b\u0430",
@@ -1253,11 +1256,12 @@ def build_param_fragment(parsed, indent):
f"{i}\t",
f'{i}\t0001-01-01T00:00:00',
f"{i}\ttrue",
- f"{i}\t{esc_xml('&' + param_name + '.\u0414\u0430\u0442\u0430\u041d\u0430\u0447\u0430\u043b\u0430')}",
+ f"{i}\t{expr_start}",
f"{i}",
]
fragments.append("\n".join(b_lines))
+ expr_end = esc_xml('&' + param_name + '.\u0414\u0430\u0442\u0430\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f')
e_lines = [
f"{i}",
f"{i}\t\u0414\u0430\u0442\u0430\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f",
@@ -1267,7 +1271,7 @@ def build_param_fragment(parsed, indent):
f"{i}\t",
f'{i}\t0001-01-01T00:00:00',
f"{i}\ttrue",
- f"{i}\t{esc_xml('&' + param_name + '.\u0414\u0430\u0442\u0430\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f')}",
+ f"{i}\t{expr_end}",
f"{i}",
]
fragments.append("\n".join(e_lines))