Руководство пользователя НЭП

Автоматизация оперативного и управленческого учета

Инструменты пользователя

Инструменты сайта


Боковая панель

Начало

Карта справки

План первоначальной настройки

Описание программы НЭП

Основное меню


Работа со справочниками

Общие принципы работы со справочниками

Справочник «Номенклатура»

Справочник «Контрагенты»

Справочник «Объекты»


Журналы документов

Складские документы

Дополнительные документы

Отчеты

  • Работа с отчетами
  • База отчетов
  • Настройка и программирование отчетов

Дополнительные модули и функции

Пошаговые инструкции


Администрирование

Основные настройки

Настройка прав доступа

Монитор подключений пользователей

Системные настройки

Установка программы и настройка подключений

  • Установка SQL-сервера Firebird
  • Установка клиентского приложения
  • Настройка подключений
  • Сервер обновлений
  • Обновление версии базы данных

Администрирование серверных модулей

  • Резервное копирование
  • Запрос курса валют
  • Выполнение отчетов и обработок «по расписанию»
  • Регламентные работы

Раздел разработчика


История изменений

Раздел разработчика

docs:settings:templates_option2

Содержание

Опции шаблонов Excel: группировка, итоги и остальные опции

Эта страница — дополнение к основной: «Опции шаблонов Excel». Там описаны опции, которые используются чаще всего. Здесь — то, чего там нет:

  • группировка (Group) со всеми параметрами и тем, как она устроена внутри;
  • опции области, управляющие итогами (SummaryAbove, DisableGrandTotals и другие);
  • оформление строк итогов — откуда берутся формат и цвет;
  • остальные опции пакета, не вошедшие в основную страницу (диаграммы, сводные таблицы,

служебные опции листа и книги).

Правила записи опций (разделители ; и \, перевод строки через Alt+Enter, регистр не важен) — те же, что на основной странице, и здесь не повторяются.

1. Как устроена группировка

Понимание механики экономит много времени: почти все «странности» группировки объясняются тем, что её делает сам Excel, а шаблон только задаёт параметры.

Что происходит по шагам

  1. Сортировка. Область сортируется по колонкам группировки — если не задан GroupNoSort.
  2. Промежуточные итоги. Для каждого уровня группировки выполняется команда Excel

«Промежуточные итоги» (Range.Subtotal). Она вставляет строки итогов и строит структуру

  (те самые «плюсики» слева).
- **Оформление.** На строки итогов накладываются формат и формулы **строки-образца** —
  нижней служебной строки области (см. раздел 4).
- **Объединение подписей** (''mergelabels'') — ключ группы объединяется по строкам блока.
- **Структура и свёртка** (''disableoutline'', ''collapse'').
- **Общий итог** — его тоже делает Excel, одной строкой на всю область.

Три действующих лица

Что Где задаётся Роль
Колонка-ключGroup в служебной строке под колонкойПо её значениям данные делятся на группы. Колонок может быть несколько — это уровни, они идут слева направо
Колонки агрегатовSum, Avg, Count и т. д. под колонкамиЧто именно считать в строках итогов
Строка-образецнижняя служебная строка областиЕё формат (и её формулы) переносятся на каждую строку итогов

Подпись строки итога

Текст подписи формирует Excel, а не шаблон. Он зависит от функции агрегата и от языка Excel:

Агрегат Подпись группы Подпись общего итога
SumКабель ВВГ ИтогОбщий итог
Count / CountNumsКабель ВВГ КоличествоОбщее количество
AvgКабель ВВГ СреднееОбщее среднее

Подпись пишется в колонку своего уровня — ту, под которой стоит Group. Переадресовать её в другую колонку можно параметром placetocolumn (см. ниже).

Если в колонке-ключе значение пустое, подпись получается просто « Итог» — это нормально
и означает «группа без значения ключа». Такие строки группируются отдельно и получают свои
подытоги, как любые другие.

2. Опция Group — все параметры

Ставится в служебной строке области, под колонкой, по которой группируем. Параметры добавляются через \ и могут сочетаться:

Group\MergeLabels\DisableSubtotals
Параметр Что делает
Asc / DescНаправление предварительной сортировки по этой колонке
MergeLabelsОбъединить ячейки ключа по строкам группы
MergeLabels2То же, но в объединение входит и строка итогов этого уровня
MergeLabels3Как MergeLabels2, см. оговорку ниже
WithHeaderВыводить подпись группы отдельной строкой над блоком
PlaceToColumn=NПисать подпись группы не в свою колонку, а в колонку N области
CollapseСвернуть структуру до этого уровня
DisableSubtotalsУ этого уровня не выводить строки итогов
DisableOutlineНе строить структуру («плюсики») по этому уровню
PageBreaksРазрыв страницы после каждой группы этого уровня
SummaryAbove / SummaryBelowПозиция строки итогов именно этого уровня

MergeLabels, MergeLabels2, MergeLabels3

Самый частый вопрос — чем они отличаются.

MergeLabels — объединяются ячейки ключа по строкам данных группы. Строка итогов этого уровня в объединение не входит: в ней остаётся собственная подпись («Кабель ВВГ Итог»).

MergeLabels2 — в объединение входит и строка итогов этого уровня. В объединённой ячейке остаётся значение ключа (подпись итога при этом гасится, чтобы в объединении не всплыл текст «Итог» вместо наименования).

MergeLabels3 — в отчётах с агрегатами (там, где есть Sum и подобные) ведёт себя так же, как MergeLabels2. Разница проявляется только в отчётах без агрегатов: там MergeLabels2 оставляет значение в объединённой ячейке, а MergeLabels3 её очищает и при этом строит структуру. Вариант экзотический — если не уверены, используйте MergeLabels2.

Важно для уровня с DisableSubtotals. У такого уровня своих строк итогов нет, поэтому
MergeLabels и MergeLabels2 дают одинаковый результат: включать в объединение нечего.

WithHeader

Подпись группы выводится отдельной строкой над блоком (как заголовок раздела), а не в строке итогов. Строка вставляется и оформляется по строке-образцу.

Включение WithHeader хотя бы на одном уровне меняет режим у всех уровней выше него.

PlaceToColumn=N

Подпись группы пишется в колонку N области (не листа). Нумерация ведётся с нуля: PlaceToColumn=0 — первая колонка области. Удобно, когда группируем по технической колонке (например по GOOD_ID), а показать наименование нужно в другой.

Collapse

Сворачивает структуру. Если поставить у вложенного уровня — свернёт до этого уровня. Альтернатива с явным указанием глубины — опция области Outline\CollapseLevel=N.

DisableSubtotals

Уровень участвует в группировке (сортировка, объединение подписей, структура), но строк итогов по нему нет. Типовой случай: по товару нужны подытоги, а по разделу — только объединённая подпись.

Что при этом важно знать:

  • подытоги вложенных уровней считаются в пределах внешней группы, даже если у внешнего

уровня итоги отключены;

  • строка общего итога остаётся — она управляется отдельной опцией DisableGrandTotals;
  • если DisableSubtotals стоит у всех уровней, строка общего итога всё равно выводится,

но без подписи (подписывать единственную строку итогов незачем).

DisableOutline

Отключает структуру (группировку строк «плюсиками») по этому уровню. Сами строки итогов остаются. Нужно, когда документ уходит на печать и «плюсики» в нём не нужны.

PageBreaks

После каждой группы этого уровня ставится разрыв страницы. Не путать с опцией листа RangeBreaks — та режет страницы по вместимости и повторяет шапку; PageBreaks режет по смыслу, на границах групп.

SummaryAbove / SummaryBelow у колонки

Позиция строки итогов этого уровня: над данными группы или под ними. Задаётся параметром колонки и переопределяет общий режим области.

Group\MergeLabels\SummaryAbove

Типовой случай: общий режим — «итоги сверху» (так удобнее читать длинный отчёт), а у самой вложенной подгруппы итог нужен снизу, сразу после её строк.

Уровни без своего параметра берут режим области (SummaryAbove / SummaryBelow у области,
см. раздел 3). Если не задано ничего — итоги снизу, как в Excel по умолчанию.

3. Опции области, управляющие итогами

Ставятся в левой нижней ячейке области (там же, где RowsFit и AutoFilter).

Опция Что делает
SummaryAboveСтроки итогов над данными группы — для всей области
SummaryBelowСтроки итогов под данными (поведение по умолчанию)
DisableGrandTotalsНе выводить строку общего итога
GroupNoSortНе сортировать перед группировкой
Outline\CollapseLevel=NСвернуть структуру до уровня N
AutoFilterАвтофильтр по области (ставится по имени области, с группировкой совместим)

GroupNoSort можно поставить и шире — в A1 (на всю книгу) или в A2 (на лист). Это удобно, когда отчёт заведомо приходит отсортированным из запроса.

Когда GroupNoSort не просто ускоряет, а необходим — см. ограничение на три ключа
сортировки в разделе 7.

4. Оформление строк итогов

Строки итогов оформляются по строке-образцу — это нижняя служебная строка области (та самая, в которой написаны Group, Sum и прочие опции). Она не попадает в готовый отчёт: после построения её удаляют, а её оформление уезжает на строки итогов.

Что переносится:

  • формат ячеек — шрифт, рамки, заливка, числовой формат, выравнивание;
  • формулы строки-образца — там, где её ячейка не пуста. Это позволяет положить в строку

итогов свою формулу вместо той, что пишет Excel.

Свой цвет на каждый уровень

Заливка и цвет шрифта строки итогов берутся из ячейки строки-образца в колонке своего уровня. Это значит:

  • покрасьте ячейку служебной строки в колонке группы — так будут выглядеть итоги группы;
  • покрасьте ячейку в колонке подгруппы — так будут выглядеть итоги подгруппы.

Строка общего итога оформляется по колонке самого внешнего уровня.

Колонка X (группа):     Group\MergeLabels      ← ячейку залить, скажем, серым
Колонка AG (подгруппа): Group\MergeLabels      ← ячейку залить светло-серым
Колонка M (сумма):      Sum

Итоги группы получатся серыми, итоги подгруппы — светло-серыми, остальной формат (рамки, числовой формат, шрифт) — общий, из строки-образца.

5. Что происходит с «неудобными» значениями ключа

Случай Поведение
Пустое значение ключаОбразует свою группу со своими подытогами. Подпись итога выглядит как « Итог»
В ключе формулаГруппировка идёт по результату формулы. Движок пересчитывает лист перед выполнением опций, поэтому «невычисленная» формула группировку больше не ломает
В ключе ошибка (#ЗНАЧ!, #Н/Д)Строки с ошибкой не роняют построение: такие значения сравниваются как текст. Но в отчёте ошибка останется видна — это дефект шаблона, его надо править
Разный регистр («Кабель» и «кабель»)Разные группы: сравнение регистрозависимое

6. Общий итог

Строку общего итога делает Excel, одну на всю область, в том же режиме (сверху/снизу), что и остальные итоги.

  • Убрать — опция области DisableGrandTotals.
  • Подпись («Общий итог») Excel пишет в колонку самого внешнего уровня группировки —

независимо от того, у каких уровней итоги отключены.

  • Если итоги отключены у всех уровней, строка общего итога выводится, но без подписи:

формулы в колонках агрегатов есть, текста нет. Если подпись нужна — напишите её в

  строке-образце, в нужной колонке: формулы и текст образца переносятся на строку итогов.

7. Ограничения и ловушки

Сортировка: три ключа, иначе не сортирует вовсе

Excel сортирует максимум по трём колонкам за один проход. Движок использует один проход, поэтому:

Если колонок с Sort / Asc / Desc и Group в сумме больше трёх —
область не сортируется вообще (не «по первым трём», а совсем).

Это самая частая причина «группировка порвалась на части»: при четырёх уровнях группировки данные приходят неотсортированными, и одна и та же группа встречается в отчёте несколько раз.

Что делать: сортировать данные в запросе отчёта (ORDER BY) и поставить области GroupNoSort. Это и правильнее, и быстрее.

Произвольные области

Group, Sort и AutoFilter работают только в тех областях, где одна запись занимает ровно одну строку шаблона. В произвольной области (запись на несколько строк, объединённые ячейки) они молча ничего не делают. Для таких областей есть отдельная опция GroupWithHeader (раздел 9).

Глубина структуры

Структура Excel ограничена 8 уровнями. Каждый уровень группировки с итогами занимает уровень структуры. Практический потолок — 3–4 уровня; дальше отчёт всё равно нечитаем.

Вложенные области (master/detail)

Опции области (RowsFit, SummaryAbove и т. п.) указывайте у самой внешней области.

Порядок уровней

Уровни группировки идут слева направо по колонкам шаблона. Чтобы поменять их местами, надо поменять местами колонки, а не порядок опций.

Сортировка и схлопывание строк

GroupRowID / GroupRowSum (схлопывание одинаковых строк, см. основную страницу) работают до подсчёта итогов. То есть итоги считаются уже по схлопнутым строкам — это обычно и нужно.

8. SmartGroup

Отдельный, независимый механизм группировки. Ставится так же — в служебной строке под колонкой-ключом.

Отличия от Group:

  • предварительной сортировки нет по умолчанию (как если бы всегда стоял GroupNoSort);
  • объединение подписей (MergeLabels) включено по умолчанию;
  • подытоги строятся собственным кодом, а не командой Excel «Промежуточные итоги».

Параметры: MergeLabels, MergeLabels2, DisableSubtotals, PageBreaks. Параметры WithHeader, DisableOutline, DisableGrandTotals в коде зарезервированы, но не реализованы — рассчитывать на них не стоит.

Для новых шаблонов используйте обычную Group: она отлажена, покрыта параметрами и ведёт
себя предсказуемо. SmartGroup остаётся для совместимости со старыми шаблонами.

9. GroupWithHeader

Опция области для произвольных областей — там, где одна запись занимает несколько строк шаблона и обычная Group не работает.

GroupWithHeader\GroupCount=2

GroupCount=N — сколько первых строк блока считаются заголовком группы (по умолчанию 1). Итоги берутся из колонок, помеченных Sum, Avg и т. д.

Опция редкая и в шаблонах НЭП почти не встречается. Перед применением проверьте результат
на макете: поведение сильно зависит от геометрии области.

10. Прочие опции, которых нет в основной странице

Итоги

Опция Где Что делает
Sum\TotalOfRow=NстолбецДля произвольной области: считать итог только по тем строкам, которые порождены N-й строкой блока шаблона. По умолчанию 1

Лист и книга

Опция Где Что делает
HideA2Скрыть лист в готовом отчёте
SheetHideA2Скрыть лист «жёстко» (не виден в списке скрытых листов Excel)
DeleteA2Удалить лист из готового отчёта. Удобно для листов-справочников, которые нужны только при построении
AutoScaleA1 / A2Подогнать масштаб печати под ширину страницы
AutoSafeA1 / A2Автосохранение книги после построения
ShowPivotBarA1Показать панель сводных таблиц

Область и столбец

Опция Где Что делает
OnlyValuesстолбецЗаморозить формулы только в одном столбце области
RowsFit / RowsFit2A1 / A2Подгон высоты строк не по области, а на весь лист или всю книгу
ColsFitA1 / A2 / столбецПодгон ширины: на книгу, на лист или на отдельный столбец
DeleteColumnстолбецУдалить столбец из готового отчёта. Для технических колонок (ключи, служебные вычисления), которые нужны при построении, но не нужны получателю
Outline\CollapseLevel=NобластьСвернуть структуру до уровня N
Chart\Name=ИмяДиаграммыобластьПостроить диаграмму по данным области

11. Сводные таблицы (Pivot)

Отдельный пакет опций. Опция области:

Pivot\Name=ИмяСводной\Dst=Лист2!A1\RowGrand\ColumnGrand
Параметр Что делает
Name=Имя создаваемой сводной таблицы
Dst=Куда её поместить (адрес ячейки, можно на другом листе)
DataToRowsПоля данных — в строки, а не в столбцы
RowGrand / ColumnGrandОбщие итоги по строкам / по столбцам
MergeLabelsОбъединять подписи
NoPreserveFormattingНе сохранять форматирование при обновлении
Refresh=СводнаяNОбновить перечисленные существующие сводные таблицы
RefreshChart=ДиаграммаNОбновить перечисленные сводные диаграммы

Роль каждой колонки задаётся в служебной строке области:

Опция Роль колонки в сводной
RowВ строки
ColumnВ столбцы
DataВ значения
PageВ фильтр страницы

В сводной таблице также работают Group (с параметрами Asc, Desc, Collapse) и GroupNoSort.

12. Диагностика: группировка «не работает»

Симптом Проверьте
Группы повторяются по нескольку разДанные не отсортированы. Колонок с Sort+Group больше трёх → сортировки не было вообще. Сортируйте в запросе + GroupNoSort
Группировки нет совсемОбласть произвольная (запись занимает больше одной строки) — Group в таких не работает
Подытогов нет, а подписи объединилисьУ уровня стоит DisableSubtotals
Нет ни одного агрегата в строках итоговНе указан ни один Sum / Avg / … под колонками
Строки итогов «съели» формат данныхПроверьте строку-образец: именно её формат переносится на итоги
Итоги не того цветаЦвет берётся из ячейки строки-образца в колонке своего уровня, а не из всей строки
Объединённая подпись показывает «Итог» вместо наименованияТак ведёт себя MergeLabels2 в старых сборках; в актуальной подпись итога гасится автоматически
Отчёт строится заметно дольшеПереопределение позиции итогов по уровням (SummaryAbove / SummaryBelow у колонки) требует перестановки строк. Если разницы в позиции не нужно — не задавайте параметр

13. Готовые сочетания

Отчёт по разделам и товарам, итоги снизу

Служебная строка области:

Раздел:      Group\MergeLabels2
Товар:       Group
Количество:  Sum
Сумма:       Sum

Левая нижняя ячейка области:

RowsFit

Длинный отчёт: итоги сверху, свёрнутый по разделам

Раздел:      Group\MergeLabels2\Collapse
Товар:       Group
Сумма:       Sum

Левая нижняя ячейка области:

SummaryAbove

Разделы — только подписью, итоги только по товару

Раздел:      Group\MergeLabels\DisableSubtotals\DisableOutline
Товар:       Group
Сумма:       Sum

Печатная форма: каждый раздел с новой страницы

Раздел:      Group\MergeLabels2\PageBreaks
Товар:       Group
Сумма:       Sum

Данные уже отсортированы запросом

Левая нижняя ячейка области:

GroupNoSort

Обязательно, если уровней группировки и сортировки в сумме больше трёх.

docs/settings/templates_option2.txt · Последнее изменение: 2026-10-03 04:57 — VL