Главная Настройки Шаблоны печати

Шаблоны печати

Обновлено Sep 23, 2026

Каждый документ в Controlata печатается по шаблону. В каждом разделе уже есть стандартный шаблон, по нему печать работает сразу, настраивать ничего не нужно.

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

Устроен шаблон просто: это файл Excel, в ячейках которого стоят переменные вида {{number}}. При печати Controlata подставляет в них данные операции и сохраняет все оформление файла: шрифты, заливку, границы, объединенные ячейки, изображения.

Шаблоны работают во всех разделах: материалы, продукты, поставки, производство, заказы, списания, ресурсы, перемещения, инвентаризации, поставщики и покупатели. Печатать можно в Excel или в PDF.

С чего начать

Собирать шаблон с нуля не нужно, возьмите за основу стандартный.

  1. Откройте Настройки → Шаблоны печати.

  2. Найдите нужный раздел и нажмите значок скачивания у Стандартного шаблона. Вы получите тот же файл, по которому печатает Controlata, со всеми переменными на местах.

  3. Откройте файл в Excel и измените его под себя. Менять можно все: оформление, состав и порядок колонок, подписи, добавлять свои блоки и изображения. Например, поставить логотип компании.

  4. Вернитесь в настройки, нажмите Добавить шаблон, выберите раздел, укажите название и приложите файл.

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

Управлять шаблонами может администратор компании. Поддерживаются файлы .xlsx и .xls.

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

Переменные

Переменная это имя поля в двойных фигурных скобках. При печати она заменяется значением, оформление ячейки при этом сохраняется:

Заказ № {{number}} от {{date_placed}}

У связанных объектов поля пишутся через точку:

{{customer.name}}

Какие переменные доступны, зависит от раздела. Полный перечень собран в отдельной статье Переменные в шаблонах печати.

Если в переменной ошибка или поля с таким именем в разделе нет, в ячейке напечатается #ОШИБКА с пояснением. Так опечатка видна сразу, а не по пустой колонке в готовом документе.

Права доступа

Шаблон один для всех сотрудников, но данные в нем зависят от прав. Если у сотрудника нет доступа к ценам или себестоимости, эти значения придут пустыми, а подписи и колонки останутся на месте. Структуру документа права не меняют.

Таблицы

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

Первая это строка-образец, переменные в ней начинаются с префикса таблицы:

{{item.number}}  {{item.name}}  {{item.sku}}  {{item.quantity}}  {{item.price}}  {{item.total}}

Вторая стоит прямо под ней и задает, сколько строк печатать:

{{ repeatRow(15) }}

При печати строка-образец размножается по числу позиций, а строка с repeatRow в документ не попадает. Оформление образца повторяется на каждой строке: шрифты, заливка, границы, высота строки, объединенные ячейки. Если позиций нет вовсе, строка-образец удаляется.

Префикс у каждой таблицы свой, он указан в списке переменных. Таблиц в одном документе может быть несколько: у производства их три, это произведенные продукты, использованные материалы и ресурсы.

Функции

Внутри переменных доступны четыре функции.

Функция Описание
repeatRow(n) Повторяет строку-образец по числу позиций, но не больше n раз. Пишется под образцом и в документ не попадает. По умолчанию n равно 1000, это же и предел.
removeRow() Удаляет строку, в которой стоит.
removeColumn() Удаляет колонку, в которой стоит.
length() Вызывается у таблицы, например items.length(), и возвращает число строк, которые вышли на печать. У обычного поля возвращает длину значения в символах.

Удаление строки, если поле не заполнено. Подпись и значение исчезнут вместе:

{{ customer.phone ? "Телефон" : removeRow() }}
{{ customer.phone ? customer.phone : removeRow() }}

Счетчик напечатанных строк:

Показаны {{ orders.length() }} из {{ orders_count }} заказов

Условия

Условие записывается тернарным оператором, как в Excel или в языках программирования:

{{ условие ? значение если да : значение если нет }}

Текст в условии пишется в двойных кавычках. Если кавычка нужна внутри текста, поставьте ее дважды: ""Ромашка"".

Что можно использовать в условии:

  • Проверка на заполненность. {{ notes ? "Заметки" : "" }} напечатает слово «Заметки», если поле notes заполнено, и оставит ячейку пустой, если нет.

  • Отрицание !. {{ !notes ? "Заметок нет" : "" }} напечатает «Заметок нет», когда поле пустое.

  • Сравнение == и !=. {{ type == "materials" ? "Материалы" : "Продукты" }} напечатает «Материалы», если перемещаются материалы, и «Продукты» во всех остальных случаях.

  • Сравнение чисел >, <, >=, <=. {{ total > 10000 ? "Крупный заказ" : "" }} напечатает «Крупный заказ» для заказов дороже 10 000.

  • Логические && и ||. {{ phone && email ? "Контакты" : "" }} напечатает «Контакты», только если заполнены оба поля. С || достаточно одного из них.

  • Склейка текста &. {{ "Заказ № " & number }} напечатает «Заказ № 0103».

Оформление

Область печати

Область печати задает, что попадет на печать из Excel. В стандартном шаблоне она уже настроена и растягивается вниз сама, когда таблица позиций разрастается. Но если вы дописали свои блоки за ее прежними границами, она за ними не расширится.

Поэтому после правки шаблона проверьте область печати и при необходимости задайте ее заново: Разметка страницы → Область печати → Задать. Убедитесь, что в нее попали все ваши блоки.

На печать в PDF из Controlata область не влияет: PDF собирается из листа целиком, и область печати в этом не участвует. Она важна тогда, когда вы скачиваете документ в Excel и печатаете уже из него.

Границы таблиц

Разделители между строками задавайте нижней границей строки-образца: только она повторится под каждой позицией. Верхнюю границу при размножении строки Controlata не учитывает.

Номера, ИНН, телефоны

Если значение это идентификатор, а не число, задайте ячейке формат Текстовый. Иначе Excel посчитает его числом: у КПП «077201001» пропадет ведущий ноль, а значение прижмется к правому краю. Для сумм и количеств текстовый формат, наоборот, не нужен, тогда сработает ваш числовой или денежный формат.

Если что-то пошло не так

  • В ячейке напечаталось «#ОШИБКА: неизвестное поле». Такого поля в этом разделе нет. Обычно это опечатка. Сверьтесь со списком переменных.

  • В ячейке напечаталось «#ОШИБКА» с другим пояснением. Ошибка в самой записи: вместо сравнения == написано одно =, не закрыта кавычка, опечатка в названии функции.

  • Переменная напечаталась как есть, вместе со скобками. Скорее всего, скобки не парные или в имени поля лишний пробел.

  • Значение пустое. Поле есть, но не заполнено в самой операции, либо у сотрудника нет прав на него.

  • Строка-образец напечаталась один раз, с переменными вместо данных. Проверьте префикс таблицы, он должен совпадать с указанным в списке переменных.

  • Таблица обрывается. Сработало ограничение repeatRow. Увеличьте число или уберите аргумент.

  • Часть документа не печатается из Excel. Проверьте область печати, ваши блоки могли оказаться за ее границами.

Если шаблон никак не удается заставить работать, скачайте стандартный заново и перенесите в него свое оформление, так будет быстрее, чем искать поломку.