mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-23 10:45:52 +03:00
fix(meta-info): кейс на множество в определяемом типе — фикстура вместо невалидной конфигурации
verify-snapshots отверг кейс: «ОпределяемыйТип.Любой - Недопустимый тип». Спросил платформу — v8:TypeSet внутри определяемого типа запрещён вообще, и не только AnyRef: отвергнуты также голый CatalogRef, Characteristic.X и вложенный DefinedType.X, при том что контрольный вариант с обычным CatalogRef.X принят. Замерено на 8.3.24.1691 загрузкой в базу. Отсюда и ноль таких узлов в корпусе — это не совпадение, а запрет. Комментарий в обоих портах утверждал обратное («платформа допускает») — правда записана, факт добавлен в docs/meta-dsl-spec.md. Сам разбор v8:TypeSet в выводе определяемого типа оставлен: meta-info читалка, и рукотворный файл с таким узлом она обязана показать честно, а не потерять его молча вместе с правдивым счётчиком. Кейс переведён на рукотворную фикстуру с объявленной причиной пропуска платформенной проверки. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
501f7a2c4f
commit
510c9163e3
@@ -1158,9 +1158,11 @@ if (-not $drillDone) {
|
||||
if ($mdType -eq "DefinedType") {
|
||||
$typeNode2 = $props.SelectSingleNode("md:Type", $ns)
|
||||
if ($typeNode2) {
|
||||
# Оба узла, одним XPath и в порядке документа: v8:TypeSet внутри определяемого
|
||||
# типа платформа допускает, а чтение только v8:Type МОЛЧА теряло его — счётчик
|
||||
# «Типы (N)» врал.
|
||||
# Оба узла, одним XPath и в порядке документа. v8:TypeSet внутри определяемого
|
||||
# типа платформа НЕ принимает («Недопустимый тип», замерено на 8.3.24.1691 для
|
||||
# AnyRef, голого CatalogRef, Characteristic.X и вложенного DefinedType.X),
|
||||
# поэтому в выгрузке его не бывает — но в рукотворном файле бывает, и тогда
|
||||
# чтение только v8:Type МОЛЧА теряло узел, а счётчик «Типы (N)» врал.
|
||||
$types = @()
|
||||
foreach ($t in $typeNode2.SelectNodes("v8:Type|v8:TypeSet", $ns)) {
|
||||
if ($t.get_LocalName() -eq 'TypeSet') { $types += Format-SingleTypeSet $t.InnerText }
|
||||
@@ -1360,9 +1362,11 @@ if (-not $drillDone) {
|
||||
if ($mdType -eq "DefinedType") {
|
||||
$typeNode2 = $props.SelectSingleNode("md:Type", $ns)
|
||||
if ($typeNode2) {
|
||||
# Оба узла, одним XPath и в порядке документа: v8:TypeSet внутри определяемого
|
||||
# типа платформа допускает, а чтение только v8:Type МОЛЧА теряло его — счётчик
|
||||
# «Типы (N)» врал.
|
||||
# Оба узла, одним XPath и в порядке документа. v8:TypeSet внутри определяемого
|
||||
# типа платформа НЕ принимает («Недопустимый тип», замерено на 8.3.24.1691 для
|
||||
# AnyRef, голого CatalogRef, Characteristic.X и вложенного DefinedType.X),
|
||||
# поэтому в выгрузке его не бывает — но в рукотворном файле бывает, и тогда
|
||||
# чтение только v8:Type МОЛЧА теряло узел, а счётчик «Типы (N)» врал.
|
||||
$types = @()
|
||||
foreach ($t in $typeNode2.SelectNodes("v8:Type|v8:TypeSet", $ns)) {
|
||||
if ($t.get_LocalName() -eq 'TypeSet') { $types += Format-SingleTypeSet $t.InnerText }
|
||||
|
||||
@@ -1216,9 +1216,11 @@ if not drill_done:
|
||||
if md_type == "DefinedType":
|
||||
type_node2 = find(props, "md:Type")
|
||||
if type_node2 is not None:
|
||||
# Оба узла, одним XPath и в порядке документа: v8:TypeSet внутри определяемого
|
||||
# типа платформа допускает, а чтение только v8:Type МОЛЧА теряло его — счётчик
|
||||
# «Типы (N)» врал.
|
||||
# Оба узла, одним XPath и в порядке документа. v8:TypeSet внутри определяемого
|
||||
# типа платформа НЕ принимает («Недопустимый тип», замерено на 8.3.24.1691 для
|
||||
# AnyRef, голого CatalogRef, Characteristic.X и вложенного DefinedType.X),
|
||||
# поэтому в выгрузке его не бывает — но в рукотворном файле бывает, и тогда
|
||||
# чтение только v8:Type МОЛЧА теряло узел, а счётчик «Типы (N)» врал.
|
||||
types = []
|
||||
for t in find_all(type_node2, "v8:Type|v8:TypeSet"):
|
||||
if local_name(t) == "TypeSet":
|
||||
@@ -1396,9 +1398,11 @@ if not drill_done:
|
||||
if md_type == "DefinedType":
|
||||
type_node2 = find(props, "md:Type")
|
||||
if type_node2 is not None:
|
||||
# Оба узла, одним XPath и в порядке документа: v8:TypeSet внутри определяемого
|
||||
# типа платформа допускает, а чтение только v8:Type МОЛЧА теряло его — счётчик
|
||||
# «Типы (N)» врал.
|
||||
# Оба узла, одним XPath и в порядке документа. v8:TypeSet внутри определяемого
|
||||
# типа платформа НЕ принимает («Недопустимый тип», замерено на 8.3.24.1691 для
|
||||
# AnyRef, голого CatalogRef, Characteristic.X и вложенного DefinedType.X),
|
||||
# поэтому в выгрузке его не бывает — но в рукотворном файле бывает, и тогда
|
||||
# чтение только v8:Type МОЛЧА теряло узел, а счётчик «Типы (N)» врал.
|
||||
types = []
|
||||
for t in find_all(type_node2, "v8:Type|v8:TypeSet"):
|
||||
if local_name(t) == "TypeSet":
|
||||
|
||||
Reference in New Issue
Block a user