mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-29 21:45:54 +03:00
feat(form-validate): проверка 14 сверяет с дескриптором и штамп <BaseForm> заимствованной формы
У заимствованной формы расширения в теле второй штамп версии — <BaseForm version=…>, и платформа сверяет с дескриптором формы его тоже: расхождение только в нём — отказ загрузки (проверено на 8.3.27.1859). Штамп корня совпадает, <BaseForm> нет — теперь ошибка. Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Sergei Pleshanov
Claude Opus 5.5
parent
88eca0b000
commit
b20276fae1
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# form-validate v1.20 — Validate 1C managed form
|
||||
# form-validate v1.21 — Validate 1C managed form
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -970,12 +970,23 @@ def main():
|
||||
owner_ver = root_version(owner_path) if owner_path else None
|
||||
dump_ver = root_version(dump_anchor) if dump_anchor else None
|
||||
|
||||
# У заимствованной формы расширения второй штамп — <BaseForm version=…>; платформа сверяет с дескриптором и его.
|
||||
base_form_ver = ''
|
||||
for ch in root:
|
||||
if isinstance(ch.tag, str) and etree.QName(ch.tag).localname == 'BaseForm':
|
||||
base_form_ver = ch.get('version', '')
|
||||
break
|
||||
|
||||
if not form_ver:
|
||||
report_ok('14. Format version: not comparable')
|
||||
elif owner_ver and form_ver != owner_ver:
|
||||
report_error(f'14. Format version {form_ver} differs from the form descriptor '
|
||||
f'{os.path.basename(owner_path)} ({owner_ver}) '
|
||||
'— the platform refuses to load parts of one object in different formats')
|
||||
elif owner_ver and base_form_ver and base_form_ver != owner_ver:
|
||||
report_error(f'14. <BaseForm> format version {base_form_ver} differs from the form descriptor '
|
||||
f'{os.path.basename(owner_path)} ({owner_ver}) '
|
||||
'— the platform refuses to load parts of one object in different formats')
|
||||
elif dump_ver and form_ver != dump_ver:
|
||||
report_warn(f'14. Format version {form_ver} differs from the dump ({dump_ver}) — the platform loads it, '
|
||||
'but the dump is no longer uniform (typical after merging branches dumped by different platforms)')
|
||||
|
||||
Reference in New Issue
Block a user