mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-20 00:45:54 +03:00
feat(meta-compile,meta-edit): типы СУБД на входе переводятся в типы 1С
Модель, проектирующая внешний источник по схеме БД, естественно пишет типы так, как они названы в information_schema. До сих пор такое имя молча уходило в XML дословно (<v8:Type>integer</v8:Type>), валидатор ничего не замечал, и падало это только на загрузке в базу. Добавлены однозначные соответствия, замеренные на стенде PostgreSQL — то же самое даёт Конфигуратор при импорте структуры таблицы: integer/int/int4 → Number(10,0) varchar(n)/character varying(n) → String(n) bigint/int8 → Number(19,0) numeric(p,s) → Number(p,s) smallint/int2 → Number(5,0) timestamp → DateTime · bytea → BinaryData boolean НЕ включён намеренно: в DSL это уже Булево, а psqlODBC при импорте отдаёт Строка(5) — молча выбрать один из двух смыслов нельзя. text/real/money/json не включены: замера нет. Словарь типов meta-edit был беднее meta-compile на 25 записей (не было Time, BinaryData, UUID, коллекций, ссылки на таблицу внешнего источника) — дополнен до набора авторитета. Конфликтов значений не было ни одного. Проверено: наборы обоих навыков зелёные в двух рантаймах, снэпшот sql-type-synonyms принят платформой 8.3.24.1691, PS и PY дают идентичный XML. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
This commit is contained in:
co-authored by
Claude Opus 5
parent
41e2eca638
commit
eccb11b0ed
@@ -1,4 +1,4 @@
|
||||
# meta-compile v1.109 — Compile 1C metadata object from JSON
|
||||
# meta-compile v1.110 — Compile 1C metadata object from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
[CmdletBinding(PositionalBinding=$false)]
|
||||
param(
|
||||
@@ -612,6 +612,23 @@ $script:typeSynonyms["хранилищезначений"] = "ValueStorage"
|
||||
$script:typeSynonyms["хранилищезначения"] = "ValueStorage"
|
||||
$script:typeSynonyms["uuid"] = "UUID"
|
||||
$script:typeSynonyms["уникальныйидентификатор"] = "UUID"
|
||||
# Типы СУБД — прощающий ввод: модель, проектирующая внешний источник по схеме БД, пишет типы
|
||||
# так, как они названы в information_schema. Соответствие замерено на стенде PostgreSQL: то же
|
||||
# самое даёт Конфигуратор при импорте структуры таблицы. Только однозначные: boolean НЕ включён
|
||||
# (в DSL это уже Булево, а psqlODBC при импорте отдаёт Строка(5) — два разных смысла), как и
|
||||
# text/real/money/json — для них замера нет.
|
||||
$script:typeSynonyms["integer"] = "Number(10,0)"
|
||||
$script:typeSynonyms["int"] = "Number(10,0)"
|
||||
$script:typeSynonyms["int4"] = "Number(10,0)"
|
||||
$script:typeSynonyms["bigint"] = "Number(19,0)"
|
||||
$script:typeSynonyms["int8"] = "Number(19,0)"
|
||||
$script:typeSynonyms["smallint"] = "Number(5,0)"
|
||||
$script:typeSynonyms["int2"] = "Number(5,0)"
|
||||
$script:typeSynonyms["varchar"] = "String"
|
||||
$script:typeSynonyms["character varying"] = "String"
|
||||
$script:typeSynonyms["numeric"] = "Number"
|
||||
$script:typeSynonyms["timestamp"] = "DateTime"
|
||||
$script:typeSynonyms["bytea"] = "BinaryData"
|
||||
# Платформенные типы, требующие префикса v8: (коллекции/периоды, частые в реквизитах обработок/отчётов).
|
||||
$script:v8PlatformTypes = @("ValueTable","ValueTree","ValueList","ValueListType","StandardPeriod",
|
||||
"StandardBeginningDate","PointInTime","TypeDescription","FixedArray","FixedMap","FixedStructure")
|
||||
|
||||
Reference in New Issue
Block a user