Счёт на оплату, товарная накладная, акт — документы, которые клиенты B2B и бухгалтерия запрашивают регулярно. Разберём, как устроены печатные формы заказа в 1С-Битрикс и как их настроить или доработать под конкретные требования документооборота.
Штатная печатная форма заказа
Базовая печатная форма счёта доступна прямо из карточки заказа в административной панели — кнопка формирования документа собирает данные заказа (товары, суммы, реквизиты плательщика) в готовый для печати или сохранения в PDF вид. Для большинства несложных сценариев штатной формы достаточно без какой-либо кастомизации.
Настройка реквизитов компании-продавца
Реквизиты, которые появляются в шапке печатной формы (название организации, ИНН, банковские реквизиты), задаются в настройках профиля плательщика — раздел, отвечающий за реквизиты, привязанные к типу плательщика (юридическое лицо, ИП). Их стоит заполнить внимательно один раз при первоначальной настройке магазина — ошибка в реквизитах на печатной форме счёта, ушедшего клиенту, выглядит непрофессионально и создаёт реальные проблемы для оплаты.
Нужна помощь с Битрикс?
Кастомизация шаблона печатной формы
Для проектов с нестандартными требованиями к оформлению документа (собственный фирменный стиль, дополнительные поля, отсутствующие в стандартной форме) шаблон печатной формы можно переопределить — файл шаблона компонента, отвечающего за печатную форму, копируется в локальный шаблон и правится под нужный вид, не затрагивая оригинальный файл в ядре.
<?php
// пример добавления кастомного поля в шаблон печатной формы
if ($order->getField('UF_CUSTOM_CONTRACT_NUMBER')) {
echo 'Номер договора: ' . htmlspecialcharsbx($order->getField('UF_CUSTOM_CONTRACT_NUMBER'));
}
Программная генерация документа для внешней системы
Если печатная форма нужна не для показа человеку, а для передачи во внешнюю систему документооборота (например, автоматическая генерация счёта при интеграции с 1С:Бухгалтерия), логичнее формировать данные документа программно через API заказа, а не парсить HTML готовой печатной формы, — прямая работа с полями заказа даёт структурированные данные без риска, что изменение вёрстки шаблона сломает парсинг.
Экспорт в PDF
Штатное сохранение печатной формы в PDF обычно опирается на встроенную функцию печати браузера ("Сохранить как PDF") — для автоматической генерации PDF без участия пользователя (например, для вложения в письмо с подтверждением заказа) требуется отдельная библиотека генерации PDF на стороне сервера, поскольку штатный механизм рассчитан на интерактивное использование человеком, а не на серверную автоматизацию.
Многостраничные документы для крупных заказов
Заказ с большим числом позиций может не помещаться на одну страницу печатной формы — стоит проверить, что шаблон корректно переносит таблицу товаров на следующую страницу с повторением шапки таблицы, а не обрезает или искажает вывод при печати документов с десятками позиций, что нередко упускается при тестировании только на заказах с несколькими товарами.
Права доступа к формированию документов
Не каждый сотрудник должен иметь возможность формировать и распечатывать финансовые документы по любому заказу — для проектов с разделением ролей стоит ограничить доступ к печатным формам соответствующими правами группы пользователей, а не оставлять эту возможность доступной всем, кто имеет доступ к разделу заказов вообще.
Частые ошибки
- Реквизиты компании не проверены при первичной настройке. Ошибка на печатной форме, отправленной реальному клиенту.
- Парсинг HTML печатной формы вместо работы с API заказа. Хрупкая интеграция, ломающаяся при любом изменении вёрстки шаблона.
- Многостраничный вывод не протестирован на крупных заказах. Обрезанная или искажённая таблица товаров на документах с большим числом позиций.
Итог
Штатная печатная форма заказа закрывает базовый сценарий счёта для клиента без дополнительной настройки, а кастомизация шаблона через локальное переопределение позволяет адаптировать документ под фирменный стиль и дополнительные поля. Для интеграции с внешними системами документооборота правильнее работать со структурированными данными заказа через API, а не парсить готовую HTML-форму, предназначенную для отображения человеку.
