fix(meta-compile,meta-edit): synonym decimal и документация типов без синонима

Ревью собственной работы против плана нашло три упущения.

1. Синоним `decimal(p,s)` был в плане, но в код не попал — после включения отказа компилятора
   стандартный SQL-тип стал отвергаться. Добавлен в оба навыка и покрыт кейсом.
2. Тип Null в таблице примитивных типов не описан. Голого синонима у него нет и не будет:
   в DSL он задаётся как `v8:Null`. Заодно сказано прямым текстом, что имя С префиксом проходит
   как есть — так задаются типы без синонима (`v8:ValueTable`, `ent:AccountType`, `v8ui:Color`).
3. Раздел 9.1 в 1c-form-spec помечен как общий справочник типов, а не «про формы»: там самые
   полные перечни v8/v8ui/dcs/ent, и они относятся к любому объекту метаданных.

Проверено: meta-compile 94/94 и meta-edit 32/32 в обоих рантаймах, 11 гардов, снэпшот
sql-type-synonyms с decimal принят платформой.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
Nick Shirokov
2026-09-07 14:13:18 +03:00
co-authored by Claude Opus 5
parent ed160c65b5
commit 6169a7ff93
8 changed files with 66 additions and 8 deletions
@@ -1,4 +1,4 @@
# meta-compile v1.111 — Compile 1C metadata object from JSON
# meta-compile v1.112 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -627,6 +627,7 @@ $script:typeSynonyms["int2"] = "Number(5,0)"
$script:typeSynonyms["varchar"] = "String"
$script:typeSynonyms["character varying"] = "String"
$script:typeSynonyms["numeric"] = "Number"
$script:typeSynonyms["decimal"] = "Number"
$script:typeSynonyms["timestamp"] = "DateTime"
$script:typeSynonyms["bytea"] = "BinaryData"
# Платформенные типы, требующие префикса v8: (коллекции/периоды, частые в реквизитах обработок/отчётов).
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# meta-compile v1.111 — Compile 1C metadata object from JSON
# meta-compile v1.112 — Compile 1C metadata object from JSON
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -758,6 +758,7 @@ type_synonyms = {
'varchar': 'String',
'character varying': 'String',
'numeric': 'Number',
'decimal': 'Number',
'timestamp': 'DateTime',
'bytea': 'BinaryData',
# Reference synonyms (Russian, lowercase)
@@ -1,4 +1,4 @@
# meta-edit v1.51 — Edit existing 1C metadata object XML
# meta-edit v1.52 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
[CmdletBinding(PositionalBinding=$false)]
param(
@@ -526,6 +526,7 @@ $script:typeSynonyms["int2"] = "Number(5,0)"
$script:typeSynonyms["varchar"] = "String"
$script:typeSynonyms["character varying"] = "String"
$script:typeSynonyms["numeric"] = "Number"
$script:typeSynonyms["decimal"] = "Number"
$script:typeSynonyms["timestamp"] = "DateTime"
$script:typeSynonyms["bytea"] = "BinaryData"
$script:typeSynonyms["таблицазначений"] = "ValueTable"
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# meta-edit v1.51 — Edit existing 1C metadata object XML
# meta-edit v1.52 — Edit existing 1C metadata object XML
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -560,6 +560,7 @@ type_synonyms = {
"varchar": "String",
"character varying": "String",
"numeric": "Number",
"decimal": "Number",
"timestamp": "DateTime",
"bytea": "BinaryData",
"таблицазначений": "ValueTable",