mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-03 10:10:21 +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,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# epf-validate v1.2 — Validate 1C external data processor / report structure
|
||||
# epf-validate v1.3 — Validate 1C external data processor / report structure
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# Works for both EPF (ExternalDataProcessor) and ERF (ExternalReport) — auto-detects
|
||||
|
||||
@@ -165,8 +165,9 @@ def main():
|
||||
version = root.get("version", "")
|
||||
if not version:
|
||||
report_warn("1. Missing version attribute on MetaDataObject")
|
||||
elif version not in ("2.17", "2.20", "2.21"):
|
||||
report_warn(f"1. Unusual version '{version}' (expected 2.17, 2.20 or 2.21)")
|
||||
elif version not in ("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(f"1. Unusual version '{version}' (expected 2.17-2.20 or 2.21)")
|
||||
|
||||
# Detect type
|
||||
child_elements = []
|
||||
|
||||
Reference in New Issue
Block a user