mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-03 02:00:22 +03:00
fix(meta-compile,meta-validate,cf-init,*-validate): промежуточные версии формата 2.18/2.19
Версия формата выгрузки идёт лестницей, а не скачком 2.17 -> 2.20: 8.3.20-8.3.24 -> 2.17, 8.3.25 -> 2.18, 8.3.26 -> 2.19, 8.3.27 -> 2.20. Прежняя дельта мерилась через две ступени и приписала версии 2.20 всё, что появилось по дороге. Замер на одной и той же конфигурации, выгруженной четырьмя платформами: - 2.18: TypeReductionMode (4793 файла), TextToSpeech, 3 редких свойства форм; - 2.19: новых тегов нет, роли перешли на omit-on-default; - 2.20: только LineNumberLength. meta-compile: единый гейт isFormat220 управлял обоими свойствами, поэтому на проекте 2.18/2.19 TypeReductionMode не эмитился, хотя платформа этих версий его пишет — роундтрип разъезжался. Порог расщеплён: >=2.18 для TypeReductionMode, >=2.20 для LineNumberLength. meta-validate: реестр versionedProps объявлял TypeReductionMode свойством 2.20, из-за чего проверка 18 давала ложную ошибку на корректном файле 2.18/2.19. Исправлено на 2.18. Валидаторы (meta/form/cf/cfe/epf) считали 2.18 и 2.19 неизвестными версиями и предупреждали «Unusual version»; cf-init не давал отскаффолдить конфигурацию под 8.3.25/8.3.26. Обе версии впущены. Тесты: фикстура empty-config-218, кейс meta-compile на границу свойств (TypeReductionMode есть, LineNumberLength нет), два кейса meta-validate на законность штампов 2.18/2.19; кейс error-220-props-in-217 теперь проверяет оба сообщения с разными порогами. Кейс 2.18 проверен загрузкой в живую 8.3.25 через verify-snapshots. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ecd289fe11
commit
2e5289a88f
@@ -1,4 +1,4 @@
|
||||
# cfe-validate v1.4 — Validate 1C configuration extension structure (CFE)
|
||||
# cfe-validate v1.5 — Validate 1C configuration extension structure (CFE)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -197,8 +197,9 @@ if ($root.NamespaceURI -ne $expectedNs) {
|
||||
$version = $root.GetAttribute("version")
|
||||
if (-not $version) {
|
||||
Report-Warn "1. Missing version attribute on MetaDataObject"
|
||||
} elseif ($version -ne "2.17" -and $version -ne "2.20" -and $version -ne "2.21") {
|
||||
Report-Warn "1. Unusual version '$version' (expected 2.17, 2.20 or 2.21)"
|
||||
} elseif ($version -notin @("2.17", "2.18", "2.19", "2.20", "2.21")) {
|
||||
# Лестница версий формата: 2.17 (8.3.20-8.3.24), 2.18 (8.3.25), 2.19 (8.3.26), 2.20 (8.3.27).
|
||||
Report-Warn "1. Unusual version '$version' (expected 2.17-2.20 or 2.21)"
|
||||
}
|
||||
|
||||
# Must have Configuration child
|
||||
|
||||
Reference in New Issue
Block a user