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

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

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

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


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

Начало

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

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

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

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


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

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

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

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

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


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

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

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

Отчеты

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

docs:settings:templates_option

Содержание

Опции шаблонов Excel

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

Основы работы с шаблонами (регистрация, NoRange/Range-наборы, списки переменных) описаны в разделе «Шаблоны первичных документов».

1. Где размещаются опции

Опция — это ключевое слово, написанное текстом в определённой ячейке шаблона. Место ячейки определяет, на что опция действует.

Место в шаблоне Уровень Что настраивает
Ячейка A1 первого листаКнигаДействует на всю книгу (все листы)
Ячейка A2 любого листаЛистДействует только на этот лист
Левая нижняя ячейка области RangeОбластьДействует на эту область
Ячейки нижней (служебной) строки областиСтолбецДействуют на свой столбец области
Левая ячейка строки данных областиОбластьФильтры строк (FILTER, EXFILTER)
Важно. Все служебные ячейки после построения отчёта очищаются автоматически — в готовом документе текста опций не остаётся.

2. Правила записи опций

Символ Назначение Пример
;Разделитель между опциямиRowsFit;ColsFit
\Разделитель между именем опции и её параметрамиSort\Desc
=Внутри параметра: имя=значениеRANGE=TableRange
Перевод строки (Alt+Enter)То же, что \ — разделитель параметровсм. RangeBreaks

Регистр не важен: OnlyValues, ONLYVALUES и onlyvalues — одно и то же.

Перевод строки как разделитель

Внутри одной ячейки параметры можно писать в столбик, нажимая Alt+Enter. Это удобно для длинных опций и обязательно, если в параметре есть формула Excel (в русской локали формулы содержат ;, который иначе был бы принят за разделитель опций).

Правило простое: ; разделяет опции только в конце строки. ; внутри формулы (например в ТЕКСТ(дата;«ДД.ММ.ГГГГ»)) разбор не ломает.

3. Опции книги и листа (ячейки A1 / A2)

OnlyValues

Отключает (замораживает) все формулы: в готовом отчёте вместо формул остаются только вычисленные значения.

  • В A1 — по всей книге.
  • В A2 — только по своему листу.

Применяется почти всегда: получатель документа не должен видеть формулы, а файл не должен «ломаться» при пересылке.

OnlyValues

OnlyValues2

Выборочная заморозка. Замораживает в значения только те формулы, где есть ссылки на данные программы — то есть на поля (Title_, Table_ и т.п.) и на параметры (XLRParams_). Все пользовательские формулы Excel и итоги (=СУММ(…)) остаются живыми.

  • В A1 — по всей книге.
  • В A2 — только по своему листу.

Когда использовать: если в отчёте нужно оставить рабочие формулы (например, чтобы пользователь мог поменять количество и увидеть пересчёт суммы), но при этом убрать ссылки на данные, которых после выгрузки уже не существует.

OnlyValues2
Внимание. OnlyValues2 не замораживает =СУММ(…). Если вам нужен полностью «замороженный» документ без формул — используйте обычный OnlyValues.

FitMergedCells

Подгоняет высоту строк под текст для ячеек, находящихся вне Range-областей (внутри областей эту работу делает RowsFit).

Работает и с обычными, и с объединёнными ячейками (обычный автоподбор высоты Excel объединённые ячейки не умеет). Высота только увеличивается: если текст помещается, строка не трогается. Скрытые столбцы не учитываются.

Ставится в A2. Через \ перечисляются ячейки и/или имена областей через запятую.

FitMergedCells\C5,D5,MyRange1,MyRange2

Типичный случай: объединённая ячейка с адресом клиента (=CLIENT_ADDRESS) или с наименованием фирмы (=FIRM_FIRM_NAME) — текст длинный, высота «съезжает».

FitMergedCells\E8,E9,E10,E11

RangeBreaks

Расстановка разрывов страниц по Range-области с повтором шапки таблицы на каждой новой странице, с необязательными промежуточными итогами по страницам и заголовком над шапкой (например «Универсальный передаточный документ №… Лист 2 из 3»).

Ставится в A2. Подробно — в разделе 7. RangeBreaks — разрывы страниц (подробно).

DeleteMacro

Удаляет из готового отчёта все макросы (VBA-модули). Ставится в A1. Используйте, если готовый файл уходит наружу и не должен содержать код.

DeleteMacro

Несколько опций в одной ячейке

OnlyValues;FitMergedCells\E8,E9,E10,E11

4. Опции области (левая нижняя ячейка области)

OnlyValues

Отключает формулы в пределах этой области.

AutoFilter

Включает автофильтр для области-списка.

Ограничение. Не работает в произвольных областях (с объединёнными ячейками или если размножаемая часть занимает больше одной строки) — приведёт к ошибке.

RowsFit

Автоматически увеличивает высоту строк области, если значение не помещается в высоту, заданную в шаблоне. Незаменима, если в данных встречаются длинные наименования (Table_GOODS_NAME) или значения с переводом строки.

ColsFit

Автоматически расширяет столбцы области по содержимому.

GroupNoSort

Отключает предварительную сортировку при использовании промежуточных итогов Group (см. раздел про итоги). Экономит время, если данные и так приходят отсортированными.

5. Фильтрация строк области

Фильтр записывается в левую (служебную) ячейку строки данных области — то есть в ту же строку, где стоят поля (=Table_GOODS_NAME и т.д.), в самый левый служебный столбец.

Фильтр применяется до построения таблицы: не подошедшие записи в отчёт не попадают, итоги считаются уже по отфильтрованным строкам.

FILTER — условие в стиле SQL

FILTER=<условие>

В условии имена полей пишутся без префикса области (просто MIX_ID, QUANT).

Пример: накладная без услуг

В номенклатуре тип позиции MIX_ID = 2 — это услуга. Чтобы в расходную накладную попали только товары:

FILTER=MIX_ID<>2

Что поддерживается

Возможность Пример
Сравнения = <> != < > >=FILTER=QUANT>0
AND, OR, NOT, скобкиFILTER=MIX_ID<>2 AND QUANT>0
IS NULL / IS NOT NULLFILTER=GTD IS NOT NULL
LIKE (% — любые символы, _ — один символ)FILTER=GOODS_NAME LIKE 'Кабель%'
IN (…) / NOT IN (…)FILTER=MIX_ID IN (0,1)
BETWEEN … AND …FILTER=PRICE BETWEEN 100 AND 5000
Арифметика + - * /FILTER=QUANT*PRICE>=1000
Сравнение поля с полемFILTER=PRICE>SELFCOST
ДатыFILTER=INSERT_DATE>=#2024-01-01#
Строки в апострофахFILTER=STOCK_NAME='Основной'

Составные примеры

Только товары, у которых есть количество и цена выше себестоимости:

FILTER=MIX_ID<>2 AND QUANT>0 AND PRICE>SELFCOST

Позиции с суммой строки от 1000, кроме услуг:

FILTER=MIX_ID NOT IN (2) AND QUANT*PRICE>=1000

EXFILTER — условие формулой Excel

Если привычнее мыслить формулами Excel, используйте EXFILTER. В формуле поля пишутся полностью, как в ячейках области (Table_QUANT, Table_MIX_ID).

EXFILTER=И(Table_MIX_ID<>2; Table_QUANT>0)

Строка попадает в отчёт, если формула вернула ИСТИНА.

EXFILTER=ИЛИ(Table_PRICE*Table_QUANT>=1000; Table_MIX_ID=2)
Подсказка. FILTER работает быстрее и его условия короче. EXFILTER удобен, когда нужна функция Excel (ЕСЛИ, ПОИСК, ЛЕВСИМВ и т.п.). Можно указать обе опции: сначала отработает FILTER, затем EXFILTER по оставшимся строкам.

6. Опции столбцов (нижняя служебная строка области)

Опции пишутся в служебной строке области, каждая — под своим столбцом.

Сортировка

Опция Действие
SortСортировать по этому столбцу (по возрастанию)
Sort\Desc или DescПо убыванию
Sort\Asc или AscПо возрастанию (явно)
Ограничения Excel: сортировка максимум по трём столбцам, слева направо.

Итоги по столбцу

В служебной ячейке столбца указывается вид итога:

Опция Итог
SumСумма
CountКоличество значений
CountNumsКоличество непустых значений
Avg / AverageСреднее
MaxМаксимум
MinМинимум
ProductПроизведение
StDevСтандартное отклонение
StDevPСтандартное отклонение (ген. совокупность)
VarДисперсия
VarPДисперсия (ген. совокупность)
По столбцу можно получить только один итог. Если указать несколько — применится последний.

Пример

В служебной строке под столбцом «Количество» (=Table_QUANT) пишем Sum, под столбцом «Сумма» — тоже Sum. В ячейке слева от итоговых можно написать «Итого».

Промежуточные итоги (Group)

Опция Group ставится в тех столбцах, по которым группируем. В отчёте появятся строки промежуточных итогов (по тем столбцам, где указаны Sum, Avg и т.д.).

  • До 16 полей группировки, группировка идёт слева направо.
  • Group\Collapse — сразу свернуть дерево итогов.
  • Опция области GroupNoSort — отключить предварительную сортировку.

Схлопывание одинаковых строк: GroupRowID / GroupRowSum

Иногда одна и та же позиция попадает в документ несколькими строками (разные партии, разные ГТД). В печатной форме их нужно показать одной строкой, сложив количество и суммы.

Опция Где ставится Действие
GroupRowIDпод столбцом-ключомСтроки с одинаковым значением этого столбца считаются одной позицией. Ключей может быть несколько
GroupRowSumпод столбцом-суммойЗначения этого столбца складываются при схлопывании

Остаётся первая строка группы, остальные удаляются.

Пример

Столбцы области: Наименование, Артикул, Количество, Цена, Сумма.

  • Под столбцом Наименование (или под =Table_GOOD_ID) — GroupRowID
  • Под столбцом КоличествоSum;GroupRowSum
  • Под столбцом СуммаSum;GroupRowSum
Наименование:  GroupRowID
Количество:    Sum;GroupRowSum
Сумма:         Sum;GroupRowSum

Если группировать нужно по нескольким признакам (например по позиции и цене), поставьте GroupRowID под обоими столбцами.

Обратите внимание: две опции в одной ячейке разделяются ;Sum;GroupRowSum. Sum считает общий итог по столбцу, GroupRowSum — складывает значения при схлопывании.

7. RangeBreaks — разрывы страниц (подробно)

Опция листа (ячейка A2). Нужна для многостраничных документов (УПД, счёт-фактура, ТОРГ-12), где на каждой странице должна повторяться шапка таблицы, а внизу страницы — промежуточный итог.

Что делает

На каждом разрыве страницы внутри области:

  1. (если задан SUBSUMCOLS) вставляет строку промежуточного итога — это копия

итоговой строки области, с суммами только по строкам этой страницы;

  1. копирует шапку таблицы (HEAD) в начало новой страницы;
  2. (если заданы PREHEADLEFT/PREHEADRIGHT) вставляет над шапкой строку заголовка;
  3. ставит разрыв страницы.

В конце подставляет общее число страниц туда, где стоит плейсхолдер.

Параметры

Параметр Обязательный Описание
RANGEдаИмя области данных (TableRange)
HEADдаОбласть шапки таблицы: адрес (B19:AI20) или имя области. Копируются целые строки. Её левый и правый столбцы задают, куда писать PREHEADLEFT и PREHEADRIGHT
LASTROWдаГраница, ниже которой разрывы не ставим (подвал документа). Число — номер строки; не число — имя ячейки, находящейся в последней строке
SUBSUMCOLSнетСтолбцы промежуточных итогов: буквы столбцов и/или имена ячеек через запятую. Само наличие параметра включает промежуточные итоги
PAGECOUNTнетЯчейки (через запятую), в которых плейсхолдер {PAGES} заменяется на число страниц
PREHEADLEFTнетЗаголовок над шапкой, слева. Можно указать адрес ячейки или сам текст/формулу
PREHEADRIGHTнетТо же, справа

Плейсхолдеры

Плейсхолдер Значение
{PAGE}Номер текущего листа
{PAGES}Всего листов

{PAGES} можно ставить и в тексте подвала (например «Документ составлен на {PAGES} листах») — укажите такие ячейки в PAGECOUNT, либо просто напишите плейсхолдер в ячейке: он будет заменён.

Пример: УПД на несколько страниц

Ячейка A2 (параметры вводятся в столбик через Alt+Enter):

OnlyValues;
RangeBreaks
RANGE=TableRange
HEAD=B19:AI20
LASTROW=LastRowUPD
SUBSUMCOLS=L,P,S,T
PAGECOUNT=PageCountInfo
PREHEADLEFT="Универсальный передаточный документ №" & СЖПРОБЕЛЫ(Title_CHECK_NUMBER) & " от " & ТЕКСТ(Title_CHECK_DATE;"ДД.ММ.ГГГГ") & " г."
PREHEADRIGHT=Лист {PAGE} из {PAGES};
FitMergedCells\E8,E9

Что здесь происходит:

  • RANGE=TableRange — область с позициями документа.
  • HEAD=B19:AI20 — две строки шапки таблицы («Наименование / Кол-во / Цена / Сумма» и строка нумерации столбцов). Эти строки повторятся на каждой странице.
  • LASTROW=LastRowUPD — имя ячейки в последней строке документа; ниже неё разрывы не ставятся (там подписи и подвал).
  • SUBSUMCOLS=L,P,S,T — промежуточные итоги считаются по столбцам L, P, S, T (количество, сумма без НДС, НДС, сумма с НДС).
  • PAGECOUNT=PageCountInfo — в ячейке с именем PageCountInfo (в подвале: «Документ составлен на {PAGES} листах») подставится число страниц.
  • PREHEADLEFT=… — над шапкой каждой новой страницы появится «Универсальный передаточный документ №123 от 05.02.2024 г.».
  • PREHEADRIGHT=Лист {PAGE} из {PAGES} — справа «Лист 2 из 3».
  • Строка PREHEADRIGHT заканчивается ; — это конец опции RangeBreaks, далее идёт следующая опция.
Про столбцы для итогов. Вместо букв удобнее задать имена ячейкам итоговой строки (меню Формулы\Присвоить имя) и перечислить имена: тогда при добавлении/удалении столбцов в шаблоне опцию править не придётся.
SUBSUMCOLS=SumQuant,SumNoNDS,SumNDS,SumTotal

Важно про итоги и финансы

При включённых промежуточных итогах итоговая строка самой области пересчитывается на сумму последней страницы (так устроена печатная форма). Общий итог документа должен находиться в строке ниже области (например «Всего к оплате»).

Чтобы эта строка не «подхватила» промежуточный итог последней страницы, RangeBreaks принудительно замораживает формулы листа (как OnlyValues), если OnlyValues не задан в книге или на листе. Это сделано намеренно — для защиты сумм в документе.

Рекомендация. Всегда указывайте OnlyValues в A1 для документов с RangeBreaks

так поведение будет предсказуемым.

Заголовок над шапкой

PREHEADLEFT / PREHEADRIGHT можно задать двумя способами:

1) Формулой прямо в опции (как в примере выше). Формула пишется в русской локали (СЖПРОБЕЛЫ, ТЕКСТ), точка с запятой внутри формулы разбор не ломает.

2) Ссылкой на ячейку — если формула длинная, положите её в свободную ячейку (например A3) и укажите её адрес. Ячейка будет очищена после построения.

PREHEADLEFT=A3
PREHEADRIGHT=A4

Строка заголовка автоматически: без рамок, без переноса по словам, шрифт берётся из строки над шапкой шаблона, левый текст выравнивается влево, правый — вправо.

8. Полный перечень опций (шпаргалка)

Опция Где Кратко
OnlyValuesA1 / A2 / областьЗаморозить все формулы
OnlyValues2A1 / A2Заморозить только ссылки на данные, оставить формулы Excel живыми
FitMergedCells\списокA2Подгон высоты строк вне областей (в т.ч. объединённые ячейки)
RangeBreaks\параметрыA2Разрывы страниц, повтор шапки, промежуточные итоги, заголовок листа
DeleteMacroA1Удалить макросы из готового отчёта
AutoFilterобластьАвтофильтр по области-списку
RowsFitобластьАвтоподбор высоты строк области
ColsFitобластьАвтоподбор ширины столбцов области
GroupNoSortобластьНе сортировать перед промежуточными итогами Group
FILTER=условиелевая ячейка строки данныхФильтр строк (SQL-условие)
EXFILTER=формулалевая ячейка строки данныхФильтр строк (формула Excel)
Sort, Desc, AscстолбецСортировка области
Sum, Count, CountNums, Avg, Max, Min, Product, StDev, StDevP, Var, VarPстолбецИтог по столбцу
Group, Group\CollapseстолбецПромежуточные итоги с группировкой
GroupRowIDстолбецКлюч схлопывания одинаковых строк
GroupRowSumстолбецСкладывать значения при схлопывании

9. Типовые рецепты

Расходная накладная (без услуг, схлопывание позиций)

A1:

OnlyValues

Левая ячейка строки данных области TableRange:

FILTER=MIX_ID<>2

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

RowsFit

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

Наименование:  GroupRowID
Количество:    Sum;GroupRowSum
Сумма:         Sum;GroupRowSum

Акт выполненных работ (только услуги)

Левая ячейка строки данных:

FILTER=MIX_ID=2

Многостраничный УПД

Документ с длинными реквизитами

Если объединённые ячейки с адресом клиента и наименованием фирмы «обрезают» текст:

A2:

FitMergedCells\E8,E9,E10,E11

10. Частые ошибки

Симптом Причина Решение
Текст опции остался в готовом отчётеОпция написана с ошибкой или не в той ячейкеПроверьте написание и место (A1 / A2 / служебные ячейки области)
FitMergedCells=C5,D5 не работаетМежду именем опции и параметрами должен быть \, а не =FitMergedCells\C5,D5
Опция после формулы «потерялась»; внутри формулы был принят за разделительПишите параметры в столбик через Alt+Enter; ; ставьте только в конце строки
Промежуточные итоги равны общему итогуНе задан SUBSUMCOLSПеречислите столбцы: SUBSUMCOLS=L,P,S,T
Строки таблицы слишком высокиеВ данных есть перевод строки в конце значенияВключите RowsFit; программа обрезает «хвостовые» переводы строк автоматически
Картинка «разъехалась» на разрыве страницыИсправляется автоматически; убедитесь, что используется актуальная версия
Итог «Всего» показывает сумму последней страницыНе была включена заморозка формулПоставьте OnlyValues в A1
docs/settings/templates_option.txt · Последнее изменение: 2026-07-14 16:44 — VL