Фильтры в «Фабрике документов» меняют вид значения в готовом DOCX или XLSX: оформляют дату, сумму, телефон, длительность или текст. Данные CRM при этом не изменяются. Сначала выберите точное поле в каталоге источников данных, затем добавьте нужный фильтр.
Куда вставить фильтр
Откройте файл-шаблон в Word или Excel. После пути к полю, внутри двойных фигурных скобок, поставьте | и название фильтра:
Сумма: {{ deal.opportunity | money }}
Если сумма сделки равна 1250.5, в готовом документе получится Сумма: 1 250,50 ₽. В Word это обычный текст абзаца или ячейки таблицы. В Excel вставьте выражение в ячейку. Правила подготовки файлов приведены в инструкциях для DOCX и XLSX.
Строковые параметры пишите в прямых кавычках, например default("не указан"). Числовые параметры пишите без кавычек: truncate(12). Не заменяйте прямые кавычки внутри выражений на типографские «кавычки». Несколько фильтров выполняются слева направо.
Все 11 поддерживаемых фильтров
В примерах с item имеется в виду текущая строка цикла товаров или задач. Отдельное поле вне цикла берите по полному пути из каталога.
| Фильтр | Что вставить | Что получится на условных данных |
|---|---|---|
money |
{{ deal.opportunity | money }} |
Из 1250.5 получится 1 250,50 ₽ |
money_no_currency |
{{ deal.opportunity | money_no_currency }} |
1 250,50 |
money_words |
{{ totals.sum_with_vat | money_words }} |
Из 120000 получится «Сто двадцать тысяч рублей 00 копеек» |
date |
{{ item.created_date | date("dd.MM.yyyy HH:mm") }} |
14.09.2026 14:53 |
duration |
{{ item.time_spent_in_logs | duration("HH:mm:ss") }} |
Из 9300 секунд получится 02:35:00 |
phone |
{{ contact.phone | phone }} |
Из +79991234567 получится +7 (999) 123-45-67 |
percent |
{{ item.tax_rate | percent }} |
Из 12.5 получится 12,50 % |
default |
{{ contact.email | default("не указан") }} |
Для пустого e-mail получится «не указан» |
upper |
{{ company.name | upper }} |
ООО РОМАШКА |
lower |
{{ company.name | lower }} |
ооо ромашка |
truncate |
{{ deal.title | truncate(12) }} |
«Поставка оборудования» превратится в «Поставка об…» |
Денежные фильтры используют рубли и не выбирают символ по валюте сделки. Для документа в другой валюте проверьте оформление отдельно; знак рубля нельзя считать подтверждением валюты исходного числа. percent добавляет знак процента и два десятичных знака, но не умножает число на 100: исходное 0.125 не станет автоматически 12.5%. Телефоны другого формата могут остаться без изменений.
Даты и длительность
Для date используются маски dd для дня, MM для месяца, yyyy для года, HH для часов и mm для минут. Без параметра применяется dd.MM.yyyy. Регистр имеет значение: MM и mm выполняют разные задачи. Этот фильтр оформляет существующую дату, а не переводит её в другой часовой пояс.
Для трудозатрат задачи выберите один из двух вариантов:
Если таблица задач ещё не подготовлена, возьмите полные примеры Word и Excel.
{{ item.time_spent_in_logs | duration("seconds") }}
{{ item.time_spent_in_logs | duration("HH:mm:ss") }}
При 9300 секундах первый выведет 9300, второй выведет 02:35:00. Без параметра duration использует HH:mm:ss. Это длительность: 90061 секунда даст 25:01:01, часы после суток не сбрасываются.
Нужны целые неотрицательные секунды. Строки «2 часа», «02:35:00», дробные и отрицательные значения вызывают ошибку. В отдельной ячейке XLSX duration("seconds") сохраняет числовой тип секунд; запасное значение default("0") остаётся текстом.
Пустое значение и запасной текст
Ноль, пустое поле и отсутствие связанного контакта различаются. Не подставляйте вымышленные ИНН или банковские реквизиты ради заполненной строки. Проверьте источник в CRM либо скройте ненужный блок условием.
У duration отсутствие значения остаётся пустым, а ноль превращается в 00:00:00. Чтобы показать ноль и для отсутствующего времени, соблюдайте порядок:
{{ item.time_spent_in_logs | duration | default("00:00:00") }}
Сначала получается длительность, затем выбирается запасной текст. Для других отсутствующих полей поведение default может отличаться от явно пустого значения. Проверьте обе ситуации в пробном документе.
Как скрыть строку или абзац
КПП можно показать только при заполненном флаге:
{% if company.has_kpp %}КПП: {{ company.kpp }}{% endif %}
Такое условие подходит для текста внутри одной строки. Чтобы удалить целый блок Word, разместите {%p if company.has_kpp %} и {%p endif %} в отдельных абзацах, а нужный текст между ними. Нажатие Shift+Enter внутри абзаца не создаёт отдельный абзац.
Для удаления строки в Excel подготовьте три отдельные строки листа:
{{#if company.has_kpp}}
КПП: {{ company.kpp }}
{{/if}}
При ложном флаге строка с КПП не попадёт в документ. Условные блоки XLSX проверяют заполненность или истинность указанного пути. Произвольные сравнения и else не поддерживаются: выбирайте готовые логические поля, например company.has_kpp.
Проверьте результат перед использованием
Для ФИО, падежей, адресов и множественных значений есть отдельный справочник модификаторов через ~. Не смешивайте их маски и параметры с фильтрами через |.
В карточке шаблона откройте «Тестовая генерация», заполните JSON, нажмите «Проверить JSON» и «Сформировать документ». Проверьте дату с часами, нулевую сумму, пустой контакт и задачу без трудозатрат. Затем повторите создание из реальной карточки по быстрому старту. Для запуска по событию используйте инструкцию «Автоматизация».
Выбор нумератора пока не присваивает следующий номер документу и не увеличивает счётчик Битрикс24. Если номер уже хранится в CRM, вставьте его поле через каталог и проверьте значение перед отправкой. Форматирование суммы или даты автоматическую нумерацию не включает.