Настройка генерации и печати этикеток из 1С-Битрикс

Представьте склад, обрабатывающий 300 заказов в день. Каждую этикетку менеджер печатает вручную из Word-шаблона: копирует адрес, название товара, вес. На одну уходит 2–3 секунды. В масштабе дня — это более 2 часов монотонной работы плюс неизбежные ошибки (около 5% заказов с неверным адресом). При ув
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка генерации и печати этикеток из 1С-Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    805
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Представьте склад, обрабатывающий 300 заказов в день. Каждую этикетку менеджер печатает вручную из Word-шаблона: копирует адрес, название товара, вес. На одну уходит 2–3 секунды. В масштабе дня — это более 2 часов монотонной работы плюс неизбежные ошибки (около 5% заказов с неверным адресом). При увеличении объёмов до 500 заказов ручное этикетирование становится критическим узким местом: сотрудники отвлекаются, растёт процент возвратов из-за неправильных адресов. Настройка генерации и печати этикеток из 1С-Битрикс позволяет автоматизировать этот процесс: генерация нажатием одной кнопки из карточки заказа или пакетно из списка. Опыт наших инженеров — более 10 лет в Битрикс-разработке, поэтому решаем задачу «под ключ» с учётом вашего оборудования.

Поддерживаемые форматы: PDF и ZPL

Этикетки генерируются в двух основных форматах: PDF — для термопечати и стандартных принтеров — используем библиотеку mPDF (лучше всего справляется с кириллицей и CSS-стилизацией); ZPL (Zebra Programming Language) — для промышленных принтеров Zebra, TSC, Honeywell. Отправляем ZPL-команды напрямую на принтер по TCP/IP без генерации PDF — максимальная скорость печати (до 4 этикеток в секунду). Выбор формата зависит от имеющегося оборудования: для офисных принтеров подойдёт PDF, для конвейерной печати — ZPL.

Установка mPDF и генератора штрихкодов через Composer:

composer require mpdf/mpdf composer require picqer/php-barcode-generator 

Сравнение форматов:

Параметр PDF ZPL
Совместимость Любые принтеры Zebra, TSC, Honeywell
Скорость Средняя (преобразование HTML→PDF) Максимальная (прямая отправка)
Кастомизация Через HTML/CSS Через ZPL-команды
Штрихкоды Встраиваются как PNG Генерируются командами ^BC

Шаблоны этикеток

Этикетка — это HTML-шаблон с подстановкой данных. Хранится в /local/templates/.default/labels/:

<!-- shipping_label.html --> <div class="label" style="width:100mm; height:150mm; font-family: Arial;"> <div class="sender"> <strong>ООО Магазин</strong><br> г. Москва, ул. Ленина, 1 </div> <div class="barcode"> <img src="barcode_{ORDER_ID}.png" width="200"> </div> <div class="recipient"> <strong>{RECIPIENT_NAME}</strong><br> {RECIPIENT_ADDRESS}<br> {RECIPIENT_PHONE} </div> <div class="order-info"> Заказ #{ORDER_ID} | {ORDER_DATE}<br> Вес: {WEIGHT} кг | Мест: {ITEMS_COUNT} </div> </div> 

Генератор этикеток

Код генератора (нажмите, чтобы развернуть)
namespace Custom\Warehouse; class LabelGenerator { public function generateShippingLabel(int $orderId): string { $order = \Bitrix\Sale\Order::load($orderId); if (!$order) throw new \Exception("Order $orderId not found"); $shipment = $this->getMainShipment($order); $propertyCollection = $order->getPropertyCollection(); $data = [ '{ORDER_ID}' => $order->getId(), '{ORDER_DATE}' => $order->getDateInsert()->format('d.m.Y'), '{RECIPIENT_NAME}' => $propertyCollection->getPayerName()->getValue(), '{RECIPIENT_PHONE}' => $propertyCollection->getPhone()->getValue(), '{RECIPIENT_ADDRESS}' => $this->buildAddress($propertyCollection), '{WEIGHT}' => $this->calculateWeight($order), '{ITEMS_COUNT}' => $order->getBasket()->count(), ]; $template = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/local/templates/.default/labels/shipping_label.html'); $html = str_replace(array_keys($data), array_values($data), $template); // Generate barcode $this->generateBarcode($orderId); return $this->htmlToPdf($html, $orderId); } private function generateBarcode(int $orderId): void { $generator = new \Picqer\Barcode\BarcodeGeneratorPNG(); $barcode = $generator->getBarcode((string)$orderId, $generator::TYPE_CODE_128); file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/upload/labels/barcode_' . $orderId . '.png', $barcode); } private function htmlToPdf(string $html, int $orderId): string { $mpdf = new \Mpdf\Mpdf([ 'mode' => 'utf-8', 'format' => [100, 150], // 100mm x 150mm 'margin_top' => 5, 'margin_bottom' => 5, 'margin_left' => 5, 'margin_right' => 5, ]); $mpdf->WriteHTML($html); $outputPath = '/upload/labels/label-' . $orderId . '.pdf'; $mpdf->Output($_SERVER['DOCUMENT_ROOT'] . $outputPath, 'F'); return $outputPath; } } 

Как добавить кнопку печати в админку Битрикс?

Кнопка «Печать этикетки» добавляется в карточку заказа через обработчик OnAdminContextMenuShow или через кастомный action в sale/order_detail.php. При нажатии генерируется PDF и открывается в новой вкладке браузера.

Для пакетной печати (несколько заказов из списка) — action «Распечатать этикетки» через checkbox-selection в sale/order_list.php. Генерируется один многостраничный PDF. Пример кода для добавления action:

// событие OnAdminSaleOrderListMenu function addPrintLabelsAction(\Bitrix\Main\Event $event) { $items = &$event->getParameter('items'); $items[] = [ 'TEXT' => 'Распечатать этикетки', 'ACTION' => 'printLabels()', 'ICON' => 'adm-btn-print', ]; } 

Прямая печать без PDF (ZPL)

Для Zebra-принтеров этикетка формируется в ZPL и отправляется напрямую:

function printZebraLabel(int $orderId, string $printerIp, int $printerPort = 9100): void { $zpl = "^XA\n^FO50,50^A0N,30,30^FD Заказ #$orderId ^FS\n^XZ"; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $printerIp, $printerPort); socket_send($socket, $zpl, strlen($zpl), 0); socket_close($socket); } 

Как генерируется штрихкод?

Штрихкод генерируется на основе идентификатора заказа с помощью библиотеки picqer/php-barcode-generator. Поддерживаются форматы Code 128, QR и другие. PNG-файл сохраняется в /upload/labels/ и подставляется в HTML-шаблон. В случае ZPL штрихкод формируется командами ^BC, что не требует генерации изображений.

Почему автоматизация печати экономит деньги?

Ошибки при ручном заполнении этикеток обходятся дорого: неправильный адрес — возврат товара, потерянного клиента, повторная отправка. Наш кейс: интернет-магазин с 300 заказами в день до автоматизации тратил 2 часа на этикетирование и имел 5% брака. После внедрения время сократилось до 5 минут, ошибки — до 0.5%. Экономия на логистике составила 18% за счёт снижения возвратов. Средняя стоимость возврата (логистика + упущенная выручка) составляла значительные суммы — после внедрения эта сумма упала в разы. Автоматизация печати окупается в среднем за 2 месяца.

Пошаговая настройка для вашего проекта

  1. Собираем требования: объём заказов, типы принтеров, формат этикетки, необходимость штрихкодов.
  2. Разрабатываем HTML-шаблон этикетки под ваш дизайн (требуется макет или пример).
  3. Внедряем генератор PDF и/или ZPL, интегрируем с вашими принтерами.
  4. Добавляем кнопку печати в карточку заказа и/или пакетную печать.
  5. Тестируем на 50-100 заказах, обучаем сотрудников.

Сроки выполнения

Объём работ Срок
HTML-шаблон + PDF-генерация + кнопка в заказе 1–2 дня
Штрихкоды + пакетная печать +1 день
ZPL для Zebra + сетевая печать +1 день
Интеграция с транспортными ярлыками СДЭК/Почты отдельная задача

Что входит в работу

  • Разработка HTML-шаблона этикетки под ваш дизайн
  • Генерация PDF и/или ZPL
  • Штрихкоды (Code 128, QR)
  • Кнопка печати в карточке заказа
  • Пакетная печать из списка заказов
  • Интеграция с сетевыми принтерами (Zebra, TSC и др.)
  • Документация по настройке и поддержке
  • Обучение сотрудников (удалённо или на месте)

Гарантируем стабильную работу решения после внедрения. Финализируем проект в течение 3–5 дней в зависимости от сложности. Свяжитесь с нами для оценки вашего проекта — подберём оптимальное решение под ваш склад. Закажите консультацию, и мы пришлём коммерческое предложение в течение 24 часов.