Разработка системы шаблонов договоров Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка системы шаблонов договоров Битрикс24
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка системы шаблонов договоров Битрикс24

Подготовка договора вручную — это 30–60 минут копипасты данных из CRM в Word, правки реквизитов, пересохранения и пересылки. Умноженное на 50 договоров в месяц — это полная ставка сотрудника. Система шаблонов договоров в Битрикс24 сокращает генерацию договора до 2 минут.

Встроенная функциональность: генератор документов CRM

Битрикс24 имеет встроенный модуль CRM → Документы с генерацией документов из шаблонов. Шаблоны создаются в формате DOCX с метками-переменными, которые заменяются данными из карточки CRM.

Встроенные переменные для сделки:

{=Document.TITLE}           - Название сделки
{=Document.OPPORTUNITY}     - Сумма сделки
{=Document.CONTACT.NAME}    - Имя контакта
{=Document.COMPANY.TITLE}   - Название компании
{=Document.UF_CRM_XXXXX}    - Пользовательское поле

Ограничения встроенного модуля: нет условного форматирования (разный текст в зависимости от типа договора), нет циклов по товарным позициям, нет сложных вычислений.

Расширенная система через внешний генератор

Для серьёзных требований к договорам (несколько типов, условные блоки, спецификации) нужен внешний генератор — PHP-скрипт или сервис, который формирует DOCX/PDF по шаблону с расширенной логикой.

Стек для генерации DOCX: PhpWord (открытая библиотека) + кастомный препроцессор шаблонов.

use PhpOffice\PhpWord\TemplateProcessor;

function generateContract($dealId, $templatePath) {
    // Получаем данные сделки из Битрикс24
    $deal = CRest::call('crm.deal.get', ['id' => $dealId])['result'];
    $contact = CRest::call('crm.contact.get',
        ['id' => $deal['CONTACT_ID']])['result'];
    $company = CRest::call('crm.company.get',
        ['id' => $deal['COMPANY_ID']])['result'];

    $template = new TemplateProcessor($templatePath);

    // Подстановка данных
    $template->setValue('CONTRACT_NUMBER', generateContractNumber($dealId));
    $template->setValue('CONTRACT_DATE', date('d.m.Y'));
    $template->setValue('CLIENT_NAME', $company['TITLE']);
    $template->setValue('CLIENT_INN', $company['UF_CRM_INN']);
    $template->setValue('AMOUNT', number_format($deal['OPPORTUNITY'], 2, '.', ' '));
    $template->setValue('AMOUNT_WORDS', amountToWords($deal['OPPORTUNITY']));

    // Условный блок: НДС или без НДС
    if ($deal['UF_CRM_VAT'] === 'Y') {
        $template->setValue('VAT_BLOCK', 'в том числе НДС 20%: ' .
            number_format($deal['OPPORTUNITY'] * 0.2, 2));
    } else {
        $template->setValue('VAT_BLOCK', 'НДС не облагается');
    }

    $outputPath = '/tmp/contract_' . $dealId . '.docx';
    $template->saveAs($outputPath);

    return $outputPath;
}

Интеграция с карточкой CRM

Кнопка «Сформировать договор» в карточке сделки — через placement-приложение:

// JS SDK Битрикс24 в placement CRM_DEAL_TOOLBAR
BX24.callMethod('crm.deal.get', {id: currentDealId}, function(result) {
    const deal = result.data();
    // Вызов вашего endpoint генерации
    fetch('/api/generate-contract', {
        method: 'POST',
        body: JSON.stringify({dealId: deal.ID, templateId: selectedTemplate})
    })
    .then(r => r.blob())
    .then(blob => {
        // Сохраняем готовый документ обратно в сделку
        uploadFileToDeal(blob, deal.ID);
    });
});

После генерации файл прикрепляется к сделке через crm.deal.update с полем UF_CRM_FILES и одновременно создаётся активность «Договор сформирован» в таймлайне.

Электронная подпись и согласование

Следующий шаг после генерации — процесс согласования и подписания. Два варианта:

Внутреннее согласование через бизнес-процесс: юрист → финансовый директор → гендиректор. Запускается автоматически при смене статуса договора в CRM.

Электронная подпись через интеграцию с СБИС, Контур.Подпись или DocuSign. Договор отправляется клиенту на подпись, статус (подписан/отклонён) синхронизируется обратно в CRM.

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