From be3a31ea94676e5e6e54f368c99561297ad4ba7e Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 8 Feb 2026 14:25:11 +0300 Subject: [PATCH] Add advanced spreadsheet features: multiple column sets, verticalUnmerge, Rectangle areas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on УКД (universal correction document) template analysis. Multiple with UUID allow rows to use independent column grids. Merges and named areas also reference column sets. Co-Authored-By: Claude Opus 4.6 --- docs/1c-spreadsheet-spec.md | 88 +++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/docs/1c-spreadsheet-spec.md b/docs/1c-spreadsheet-spec.md index 456765d9..a330852b 100644 --- a/docs/1c-spreadsheet-spec.md +++ b/docs/1c-spreadsheet-spec.md @@ -20,7 +20,7 @@ ``` — языковые настройки - — определения колонок + ... — наборы колонок (один или несколько) ... — строки с данными (повторяются) ... — рисунки (опционально, повторяются) true — признак макета @@ -28,6 +28,7 @@ — общее количество строк — видимых строк (обычно = height) ... — объединения ячеек (повторяются) + ... — отмена объединений (опционально) ... — именованные области (повторяются) ... — стили линий (повторяются) ... — шрифты (опционально, повторяются) @@ -64,6 +65,8 @@ ## Колонки +### Основной набор + ```xml 33 @@ -79,6 +82,30 @@ Перечисляются только колонки с нестандартной шириной. Формат колонки определяет ширину через свойство `` в палитре форматов. +### Дополнительные наборы колонок + +Некоторые строки документа могут использовать **собственную сетку колонок**, отличную от основной. Каждый дополнительный набор имеет UUID: + +```xml + + f01e015f-de4c-4f97-9fbe-a244c4c30c6c + 17 + + 0 + + 12 + + + ... + +``` + +- Первый `` — основной набор (без ``) +- Дополнительные наборы — с `` (UUID), могут иметь другое количество и ширину колонок +- Строки, merge и namedItem ссылаются на набор через `` + +Типичное применение: сложные печатные формы (УПД, УКД), где шапка/подвал/табличная часть имеют разную разбивку на колонки. + ## Строки и ячейки ### Строка @@ -88,6 +115,7 @@ 3 5 + f01e015f-... 5 true ... @@ -95,7 +123,8 @@ ``` -Строки с одинаковым содержимым объединяются через ``. +- Строки с одинаковым содержимым объединяются через `` +- `` привязывает строку к дополнительному набору колонок. Без него — используется основной набор ### Ячейка @@ -164,15 +193,32 @@ ```xml - 3 + 3 1 1 30 + f01e015f-... ``` Размер объединения: `(h + 1)` строк × `(w + 1)` колонок. Если `` не указан — объединение в пределах одной строки. +`-1` — объединение действует для всех строк, использующих данный набор колонок (аналог объединения колонок на уровне всего документа). + +### Отмена объединений + +`` отменяет вертикальное объединение для конкретной строки: + +```xml + + 10 + 7 + 12 + +``` + +Используется в сложных макетах, когда глобальное объединение колонок (`-1`) нужно разорвать в отдельных строках. + ## Именованные области Именованные области — аналог «имён» в табличном документе 1С. Используются для программного вывода секций. @@ -218,6 +264,42 @@ ``` +### Тип Rectangle — прямоугольная область + +Область, ограниченная и по строкам, и по колонкам. Используется с дополнительными наборами колонок: + +```xml + + ОбластьЗаписьДо + + Rectangle + 22 + 22 + 5 + 17 + c6cb0794-... + + +``` + +### Привязка к набору колонок + +Именованные области могут ссылаться на дополнительный набор колонок через ``: + +```xml + + НумерацияЛистов + + Rows + 59 + 59 + -1 + -1 + 0adf41ed-... + + +``` + ### Тип Drawing — именованный рисунок ```xml