fix(meta-compile,meta-validate): в типе значения ПВХ допустим только определяемый тип

Условие было шире реальности: предупреждение пропускало и Characteristic.X.
В дереве выбора типа значения ПВХ характеристики нет вовсе — тип значения
характеристики не может быть значением характеристики. Единственное множество,
которое Конфигуратор там предлагает, — ОпределяемыйТип.

Уровень прежний: платформа такую конфигурацию грузит (проверено загрузкой в
базу), поэтому предупреждение, а не отказ. В корпусе erp+acc ни один из 24 ПВХ
множеств в типе значения вообще не использует.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-20 19:48:06 +03:00
co-authored by Claude Opus 5
parent 24b1aa9ee1
commit 0db3656c9c
11 changed files with 409 additions and 11 deletions
+1 -1
View File
@@ -149,7 +149,7 @@ JSON DSL для описания объектов метаданных конф
| Контейнер | Что можно | Чем отвечает платформа |
|-----------|-----------|------------------------|
| `DefinedType` (состав) | только конкретные типы | «Недопустимый тип» и файл не грузится — на `AnyRef`, голый `CatalogRef`, `Characteristic.Xxx` и вложенный `DefinedType.Xxx`; контрольный `CatalogRef.Xxx` принят |
| ПВХ (`Type`/тип значения) | `DefinedType.Xxx`, `Characteristic.Xxx` | голый метатип и `AnyRef` тоже грузятся, но Конфигуратор их не предлагает (в дереве выбора это папки без флажка), а `AnyRef` возвращается с выгрузки как `AnyIBRef` |
| ПВХ (`Type`/тип значения) | из множеств — только `DefinedType.Xxx` | остальное тоже грузится, но Конфигуратор не предлагает: голого метатипа и `AnyRef` в дереве выбора нет вовсе, `Characteristic.Xxx` — тоже (тип значения характеристики не может быть значением характеристики). `AnyRef` возвращается с выгрузки как `AnyIBRef`. В корпусе erp+acc ни один из 24 ПВХ множеств в типе значения не использует |
| любой составной тип | `DefinedType.Xxx` только ЕДИНСТВЕННЫМ | одним из составного Конфигуратор выбрать не даёт, но загрузчик принимает: в корпусе erp+acc 6500 единственных против 1 составного, и этот один — в типовой ERP (`Документ.НачислениеИСписаниеБонусныхБаллов.Баллы`) |
Отсюда разная строгость проверок: состав определяемого типа — ошибка, остальные два — предупреждение.