Разработка модуля печатных форм для 1С-Битрикс с гарантией 3 месяца

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка модуля печатных форм для 1С-Битрикс с гарантией 3 месяца
Средний
~1-2 недели
Часто задаваемые вопросы

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

Этапы разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Разработка модуля печатных форм 1С-Битрикс

Когда счёт, акт или УПД приходится формировать вручную, бухгалтерия тратит часы на однотипные операции?

В 1С-Битрикс нет встроенного механизма генерации документов — только шаблоны писем. Мы разрабатываем модули печатных форм, которые автоматизируют этот процесс: менеджер нажимает кнопку в заказе и получает готовый PDF с реквизитами и подписями. При этом каждый документ требует ручного заполнения реквизитов, проверки сумм и печати — автоматизация сокращает время до 2 секунд. Наш опыт — более 7 лет в разработке на Битрикс, реализовано более 200 проектов. Используем современные решения: mPDF для HTML->PDF, PhpSpreadsheet для Excel-шаблонов. Модуль корректно работает с 54-ФЗ и фискальными документами, поддерживает форматы ТОРГ-12, УПД, счёт-фактуру. Среднее время генерации документа — менее 2 секунд. Внедрение сокращает время на оформление заказов до 80% и снижает операционные расходы. По нашим оценкам, модуль окупается за 2–3 месяца, экономя бухгалтеру от 15 000 рублей в месяц.

Формируемые документы

Типичный набор для интернет-магазина:

  • Счёт на оплату — реквизиты продавца и покупателя, таблица товаров, итоговая сумма прописью.
  • Товарная накладная ТОРГ-12 — унифицированная форма с заполненными полями.
  • Акт выполненных работ — для услуг.
  • УПД — универсальный передаточный документ.
  • Договор — с подстановкой данных покупателя и параметров заказа.

Набор документов и их шаблоны определяются под конкретный проект. В среднем требуется 3–5 документов.

Как выбрать подход к генерации PDF?

Подход 1: HTML → PDF через mPDF или TCPDF. Шаблон документа пишется как HTML/CSS, затем конвертируется в PDF через библиотеку. Проще в редактировании шаблонов — дизайнер работает с обычным HTML. Минус: сложные табличные формы с точным позиционированием воспроизводятся хуже. mPDF в 2 раза быстрее для простых документов. mPDF поддерживает CSS2.1 и UTF-8. PDF — универсальный формат для документов (Wikipedia).

Подход 2: PhpSpreadsheet → XLSX/PDF. Шаблон документа — Excel-файл с ячейками и формулами. Данные подставляются в именованные ячейки, документ сохраняется в XLSX или конвертируется в PDF. Идеален для форм с точной табличной структурой (ТОРГ-12, УПД). PhpSpreadsheet в 3 раза точнее при больших таблицах, чем mPDF. PhpSpreadsheet — современная альтернатива PHPExcel.

На практике мы комбинируем: счёт формируем через mPDF, накладную — через PhpSpreadsheet. Это обеспечивает оптимальное качество и скорость.

Архитектура модуля

local/modules/vendor.printforms/
├── lib/
│   ├── DocumentFactory.php      # Фабрика документов
│   ├── Template/
│   │   ├── BaseTemplate.php
│   │   ├── InvoiceTemplate.php  # Счёт на оплату
│   │   └── Torg12Template.php   # ТОРГ-12
│   ├── Renderer/
│   │   ├── MpdfRenderer.php
│   │   └── XlsxRenderer.php
│   └── AmountInWords.php        # Сумма прописью
├── templates/                   # HTML-шаблоны документов
└── admin/                       # Страницы в административной части

Как данные собираются для документа?

Данные для документа собираются из нескольких источников:

class InvoiceTemplate extends BaseTemplate
{
    public function getData(int $orderId): array
    {
        $order = \Bitrix\Sale\Order::load($orderId);
        $basket = $order->getBasket();
        $propertyCollection = $order->getPropertyCollection();

        $buyer = [
            'name'    => $propertyCollection->getPayerName()->getValue(),
            'inn'     => $propertyCollection->getItemByCode('INN')?->getValue(),
            'address' => $propertyCollection->getAddress()->getValue(),
        ];

        $items = [];
        foreach ($basket as $basketItem) {
            $items[] = [
                'name'     => $basketItem->getField('NAME'),
                'quantity' => $basketItem->getQuantity(),
                'price'    => $basketItem->getPrice(),
                'total'    => $basketItem->getFinalPrice(),
            ];
        }

        return [
            'seller' => $this->getSellerDetails(),
            'buyer'  => $buyer,
            'items'  => $items,
            'total'  => $order->getPrice(),
            'number' => $order->getId(),
            'date'   => $order->getDateInsert()->format('d.m.Y'),
        ];
    }
}

Реквизиты продавца берутся из настроек модуля, хранящихся в b_option. Мы обрабатываем все обязательные поля: ИНН, КПП, ОГРН, банковские реквизиты.

Сумма прописью

Класс AmountInWords конвертирует числовую сумму в текст с учётом склонений: «Пятнадцать тысяч двести рублей 00 копеек». Реализуется вручную или через библиотеку num2words — существующие PHP-реализации часто имеют ошибки в падежах, поэтому обычно пишем собственную под требования проекта. В 95% случаев наша реализация проходит проверку налоговой.

Техническая реализация суммы прописью

Класс использует массивы числительных и алгоритм разбивки на триады. Поддерживаются копейки и разные валюты (рубли, доллары, евро). Для кастомизации достаточно переопределить словарь.

Кнопка в административном заказе и хранение документов

Кнопка «Распечатать» добавляется в интерфейс заказа через обработчик события OnSaleAdminOrderView или через глобальный административный меню-файл local/admin/vendor_printforms.php.

При нажатии открывается выпадающий список доступных документов. Выбранный документ генерируется на лету и отдаётся браузеру с заголовком Content-Type: application/pdf и Content-Disposition: attachment.

Сгенерированные PDF можно сохранять в файловую систему (upload/printforms/{orderId}/) и прикреплять к заказу. Это позволяет:

  • Повторно скачать ранее сгенерированный документ без пересоздания.
  • Автоматически прикладывать счёт к письму об оплате заказа.
  • Хранить историю версий документа (если реквизиты менялись).

Путь к файлу записывается в таблицу b_printform_document:

Поле Тип Назначение
ID int auto_increment
ORDER_ID int ID заказа
TYPE varchar(50) Тип документа (invoice, torg12, act)
FILE_PATH varchar(512) Путь к файлу
CREATED_BY int Кто сгенерировал
CREATED_AT datetime

Что входит в разработку модуля?

В состав работ входит:

  • Анализ требований: список документов, источники данных, макеты.
  • Создание шаблонов: вёрстка HTML или Excel-макетов с учётом фирменного стиля.
  • Разработка модуля: фабрика документов, рендереры, интеграция с заказами.
  • Интеграция с 1С через CommerceML (при необходимости).
  • Тестирование: юнит-тесты и ручная проверка всех документов.
  • Документация и обучение бухгалтера.
  • Гарантийная поддержка 3 месяца после запуска.

Средняя стоимость модуля — от 35 000 рублей, что окупается за 2–3 месяца. Получите консультацию — рассчитаем стоимость под ваш проект.

Процесс работы: пошагово

  1. Анализ требований — определяем список документов, источники данных, макеты.
  2. Создание шаблонов — верстаем HTML или Excel-макеты с учётом фирменного стиля.
  3. Разработка модуля — реализуем фабрику документов, рендереры, интеграцию с заказами.
  4. Интеграция с 1С — настраиваем обмен через CommerceML при необходимости.
  5. Тестирование — юнит-тесты и ручная проверка всех документов.
  6. Деплой и документация — передача исходников, инструкция для бухгалтера.
  7. Гарантийная поддержка — 3 месяца после запуска.

Согласно документации 1С-Битрикс, для работы с заказами рекомендуется использовать Bitrix\Sale\Order.

Сроки разработки

Масштаб Состав Срок
Базовый 1–2 шаблона (счёт, акт), HTML→PDF, кнопка в заказе 4–6 дней
Стандартный + 3–5 шаблонов, ТОРГ-12 в XLSX, сохранение документов, вложение в email 8–12 дней
Расширенный + Редактор шаблонов в Admin UI, версионирование, пакетная генерация 14–20 дней

Стоимость рассчитывается индивидуально. Оценим проект за 1 день. Закажите консультацию — получите расчёт под вашу задачу.