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
@@ -334,6 +334,48 @@
</Properties>
</Field>
<Field uuid="UUID-024">
<Properties>
<Name>price2</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>price2</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>12</v8:Digits>
<v8:FractionDigits>3</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:decimal">0</FillValue>
<FillChecking>DontCheck</FillChecking>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<ChoiceForm/>
<NameInDataSource>price2</NameInDataSource>
<ReadOnly>false</ReadOnly>
<AllowNull>false</AllowNull>
</Properties>
</Field>
<Field uuid="UUID-025">
<Properties>
<Name>created</Name>
<Synonym>
@@ -373,7 +415,7 @@
<AllowNull>false</AllowNull>
</Properties>
</Field>
<Field uuid="UUID-025">
<Field uuid="UUID-026">
<Properties>
<Name>born</Name>
<Synonym>
@@ -413,7 +455,7 @@
<AllowNull>false</AllowNull>
</Properties>
</Field>
<Field uuid="UUID-026">
<Field uuid="UUID-027">
<Properties>
<Name>uid</Name>
<Synonym>
@@ -450,7 +492,7 @@
<AllowNull>false</AllowNull>
</Properties>
</Field>
<Field uuid="UUID-027">
<Field uuid="UUID-028">
<Properties>
<Name>blob</Name>
<Synonym>
@@ -15,6 +15,7 @@
"name: varchar(150)",
"descr: character varying(50)",
"price: numeric(15,2)",
"price2: decimal(12,3)",
"created: timestamp",
"born: date",
"uid: uuid",
@@ -35,7 +36,8 @@
"<v8:Length>150</v8:Length>",
"<v8:DateFractions>DateTime</v8:DateFractions>",
"<v8:Type>v8:UUID</v8:Type>",
"<v8:Type>xs:base64Binary</v8:Type>"
"<v8:Type>xs:base64Binary</v8:Type>",
"<v8:Digits>12</v8:Digits>"
]
}
],