mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 01:00:24 +03:00
feat(mxl-compile,mxl-decompile,mxl-validate): примечания к ячейкам
Ключ ячейки note описывает всплывающую подсказку: строкой, объектом языков или полной формой с оформлением, признаком авторазмера и геометрией окошка. Из четырнадцати тегов, которые платформа пишет в примечание, настоящей информации несут пять. drawingType, pictureSize и id — константы на всём корпусе. Якорь конца это координаты самой ячейки (1087 примечаний из 1087), якорь начала — 1/1 (1085 из 1087, три исключения в одном макете берёт раундтрип-ключ anchor). Остаётся текст, стиль, autoSize и четыре смещения, причём autoSize описывает не наличие геометрии, а пересчёт размера: при true координаты всё равно записаны и осмысленны. Стиль примечания — обычная запись палитры; без своего стиля пишем тот, что даёт Конфигуратор (926 примечаний корпуса из 1087). Формат примечания добавлен в сбор именованных стилей декомпилятора и в перечень владельцев формата: иначе стиль подсказки вырезался как неиспользуемый и ссылка оставалась висячей. mxl-validate: индекс формата примечания проверяется наравне с ячейкой, строкой и колонкой. Стенд СПримечанием собирается байт в байт обоими портами и добавлен в платформенные фикстуры. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
faa8ab7659
commit
4005f36cce
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# mxl-validate v1.4 — Validate 1C spreadsheet document Template.xml
|
||||
# mxl-validate v1.5 — Validate 1C spreadsheet document Template.xml
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
"""Validates spreadsheet Template.xml: height, palette refs, column/row indices, areas, merges."""
|
||||
import sys, os, argparse
|
||||
@@ -303,6 +303,13 @@ def main():
|
||||
max_cell_format_ref = val
|
||||
if val > format_count:
|
||||
r.error(f'Row {row_index}: cell format index {val} > format palette size ({format_count})')
|
||||
# Примечание — четвёртый владелец формата, и его ссылка тоже бывает битой.
|
||||
note = cell.find(f'{{{NS_D}}}note')
|
||||
if note is not None:
|
||||
nf = note.find(f'{{{NS_D}}}formatIndex')
|
||||
if nf is not None and nf.text and int(nf.text) > format_count:
|
||||
r.error(f'Row {row_index}: note format index {nf.text}'
|
||||
f' > format palette size ({format_count})')
|
||||
|
||||
row_index += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user