mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-21 09:45:53 +03:00
fix(meta-compile,meta-validate): «только единственным» касается и характеристики
Правило было уже реальности: Конфигуратор не даёт включить характеристику в составной тип вместе ни с каким другим типом — в том числе с другой характеристикой. Предупреждение теперь ловит и DefinedType.X, и Characteristic.X. Корпус подтверждает даже чище, чем для определяемого типа: 1741 характеристика единственным типом и 0 в составных (у определяемого было 6500 против 1). Уровень прежний — предупреждение: загрузчик такое принимает, проверено загрузкой в базу. Голых метатипов это не касается: DocumentRef + CatalogRef — обычный составной тип, 525 вхождений в поставляемых ERP и БП. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
0db3656c9c
commit
dd0ad18076
@@ -1674,8 +1674,8 @@ if not bad_grammar and not not_storable and not unknown_vocab and types_seen:
|
||||
# WARN — голый метатип в типе значения ПВХ: загрузка проходит, но Конфигуратор такой тип не
|
||||
# предлагает (в дереве выбора это папка без флажка), а ЛюбаяСсылка на выгрузке
|
||||
# возвращается как ЛюбаяСсылкаИБ;
|
||||
# WARN — определяемый тип одним из составного: Конфигуратор даёт выбрать его только
|
||||
# единственным. В корпусе erp+acc 6500 единственных против 1 составного — и этот один
|
||||
# WARN — определяемый тип или характеристика одним из составного: Конфигуратор даёт
|
||||
# выбрать их только единственными (характеристику — даже с другой характеристикой). В корпусе erp+acc 6500 единственных против 1 составного — и этот один
|
||||
# лежит в типовой ERP (Документ.НачислениеИСписаниеБонусныхБаллов.Баллы), поэтому не ошибка.
|
||||
dt_sets_seen = 0
|
||||
dt_sets_bad = False
|
||||
@@ -1696,9 +1696,9 @@ for tb in root.xpath("//md:Type | //md:ValueType", namespaces=NS):
|
||||
if owner_kind == "ChartOfCharacteristicTypes" and not re.match(r'^DefinedType[.]', raw):
|
||||
dt_sets_bad = True
|
||||
report_warn(f"23. План видов характеристик '{obj_name}': тип значения '{raw}' Конфигуратор не предлагает (в дереве выбора это папка без флажка); ЛюбаяСсылка на выгрузке вернётся как ЛюбаяСсылкаИБ")
|
||||
if members > 1 and re.match(r'^DefinedType[.]', raw):
|
||||
if members > 1 and re.match(r'^(DefinedType|Characteristic)[.]', raw):
|
||||
dt_sets_bad = True
|
||||
report_warn(f"23. Составной тип содержит определяемый тип '{raw}' — Конфигуратор даёт выбрать его только единственным; платформа загрузит")
|
||||
report_warn(f"23. Составной тип содержит '{raw}' — Конфигуратор даёт выбрать определяемый тип и характеристику только единственным; платформа загрузит")
|
||||
if dt_sets_seen and not dt_sets_bad:
|
||||
report_ok(f"23. Type sets: {dt_sets_seen} block(s) checked")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user