Разработка шаблонов печатных форм 1С-Битрикс
Менеджер нажимает «Распечатать заказ» в административной панели Битрикс, открывается страница с данными заказа — без логотипа, без реквизитов, с системными полями вместо читаемых названий. Это нужно отправить клиенту или взять на склад. Печатается на A4, обрезается по краям, шапки нет. Такое происходит на большинстве установок Битрикс с настройками по умолчанию.
Разработка шаблонов печатных форм 1С-Битрикс
Где живут печатные формы в Битрикс
Битрикс под термином «печатные формы» обычно подразумевает несколько разных сущностей, которые часто путают:
Печатная версия заказа — формируется через компонент bitrix:sale.order.detail или напрямую из административного раздела заказов. Шаблон печати находится в файлах модуля sale.
Печатные формы модуля sale — настраиваются в разделе Магазин → Печатные формы. Битрикс поддерживает несколько типов: накладная, счёт, квитанция. Каждая форма — это PHP-шаблон с доступом к объекту заказа.
Кастомные печатные формы — реализуются через обработчики событий или отдельные PHP-страницы с CSS @media print.
Разработка печатной формы
Печатная форма — это HTML-страница, оптимизированная для печати через CSS @media print:
@media print {
body { margin: 0; font-size: 11pt; }
.no-print { display: none; }
@page { size: A4; margin: 15mm 10mm; }
}
Структура типичной печатной формы заказа:
- Шапка: логотип компании, реквизиты, дата, номер документа
- Данные получателя: ФИО, адрес доставки, контакт
- Таблица позиций: наименование, артикул, количество, цена, сумма
- Итоги: стоимость товаров, доставка, скидка, итого
- Подписи и печать: поле для подписи, место для печати (если нужно)
Данные получаем через API модуля sale: CSaleOrder::GetByID(), CSaleBasket::GetList(), CSaleDelivery::GetByID(), реквизиты через CSaleOrderPropsValue::GetList().
Интеграция в административную панель
Для добавления кнопки «Печать» в карточку заказа используют обработчик события OnBuildGlobalMenu или кастомную страницу в /local/admin/. Страница получает ORDER_ID из GET-параметра, загружает данные заказа, рендерит HTML и вызывает window.print() при открытии.
Более удобный подход — PDF-генерация через библиотеки mPDF или TCPDF, подключаемые как Composer-пакеты. Пользователь нажимает «Скачать PDF» — получает готовый документ без зависимости от браузерного драйвера печати.
Кейс: накладная для склада
Оптовая компания, заказы комплектуют на складе. Нужна накладная А4 с таблицей позиций (артикул, наименование, единица измерения, количество, ячейка хранения), штрихкодом заказа и подписью кладовщика.
Разработали отдельную страницу в /local/admin/sale_print_warehouse.php. Данные: позиции из CSaleBasket, ячейка хранения — из кастомного свойства товара. Штрихкод — библиотека picqer/php-barcode-generator через Composer, рендерится в SVG. Печать — через браузер с CSS @media print. Кнопка «Накладная склада» добавлена в список заказов через OnBuildGlobalMenu. Работа заняла 3 дня.
Сроки
| Задача | Сроки |
|---|---|
| Кастомизация существующей печатной формы (стили, реквизиты) | 4–8 часов |
| Разработка новой печатной формы (HTML + CSS print) | 1–2 дня |
| Печатная форма с PDF-генерацией и кнопкой в админке | 2–4 дня |







