Розробка шаблонів друкованих форм 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» — отримує готовий документ без залежності від браузерного драйвера друку.
Кейс: накладна для складу
Оптова компанія, замовлення комплектують на складі. Потрібна накладна A4 з таблицею позицій (артикул, найменування, одиниця виміру, кількість, осередок зберігання), штрихкодом замовлення та підписом комірника.
Розробили окрему сторінку у /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 дні |







