Доработка генератора документов Битрикс24. Внедряем собственный контент при экспорте в PDF

Анатолий Ерофеев
Артём Ш.

В июле 2019 года к нам обратилась музыкальная студия из Германии за доработкой коробочного Битрикс24. Клиенту требовалось произвольно менять описание товара в PDF-счетах. 

Предстояло вмешаться в создание PDF, механизм связывания CRM-сущностей (сделки и лида, сделки и счета, счета и товаров и т.д.) и все это на немецком языке. Как говорится, wölfen бояться — в wald не ходить!

Самостоятельная попытка клиента

Команда заказчика уже пыталась решить эту задачу самостоятельно. Они попробовали изменить шаблон списка товаров. Но добавление HTML-разметки испортило отображение товара в остальных местах сайта:

Кроме того, при последующем обновлении Битрикса24 доработка слетала.

План действий

Мы предложили другой подход, не ломающий вывод товаров в CRM и сохраняющий обновления:

  • добавить новый тип свойства для карточки CRM: визуальный редактор;

  • создать в CRM Счете множественное поле «Описание товара»;

  • при создании Счета (или добавлении в существующий новых товаров) копировать в это поле оригинальное описание товара;

  • при генерации PDF заменять оригинальное описание описанием из поля в CRM Счете;

  • повторить логику для CRM Сделок, Лидов и Предложений, учесть конвертацию сущностей.

Вели обсуждение и писали ТЗ сразу на английском, у нас и команды заказчика с этим не было проблем. 

HTML-поле

Несмотря на всю мощь Битрикс24, в нем иногда не хватает простых вещей. Мы добавили свойство «HTML-текст». 

Кастомное поле корректно отображается на отдельной странице и в выдвижной карточке Сделки/Лида. Пришлось решать множество конфликтов javascript визуального редактора и карточки CRM. Хотя оба компонента стандартные, мы потратили 10 часов, прежде чем удалось их “подружить”.

Изначально мы выводили описания для товаров в том-же порядке что и товары в списке. Это работало, пока мы не столкнулись с самопроизвольным переставлением товаров в счете (сюрприз Битрикс24). Чтобы предотвратить ошибки пользователя, перед каждым описанием вывели подсказку — название товара.

Наследование описаний из CRM карточки товара

Для наследования описаний товаров мы использовали частично документированные события сущностей Лид, Сделка, Предложение, Счет:

  • OnAfterCrm...Update

  • OnAfterCrm...ProductRowsSave

При конвертации сущностей (лид->компания) и выставлении (сделка ->счет) кастомизированные описания товаров сохраняются.

Кастомизация генератора PDF

Самая сложная часть работы. 

Общая схема работы модуля Битрикс24 «Генератор документов»:

Нам пригодилось событие onBeforeProcessDocument, которое испускается сразу после работы встроенного провайдера данных. Обработчик получает список товаров, заменяет оригинальные описания кастомными и возвращает обратно в генератор. Но и тут не обошлось без проблем. Событие подходит для подмены простых полей (адрес, телефон, ИНН...), а у нас поле было множественное. Разработчики Битрикс24 знают о проблеме и планируют ее решить, но без точных сроков.

Итоговая схема работы генератора документов:

Заключение

Мы получили опыт сразу в немецком, английском и узнали больше о внутренней кухне генератора документов. Задача выполнена в срок и перенесена на бой без инцидентов. 

Данная доработка — небольшая, штучная, но интересная. Мы готовы помочь вам в решении нетиповых проблем с коробочным Битрикс24.



Оцените статью
17.12.2019
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

24.03.2023
Как мы заново написали модуль учета рабочего времени сотрудников в среде Битрикс24 для инжинирингового холдинга Задача учета времени работы сотрудников всегда актуальна. Для этой цели разработано много инструментов. Если вы пользуетесь Битрикс24, то наверняка знаете ...
10.02.2023
Импортозамещение наоборот или как мы сделали и продаем Обратный SMS-шлюз для Twilio + Bitrix24 Мы сделали приложение для глобального рынка, научились его продвигать и продавать и вышли на $1000+ дохода в месяц (самим немного смешно, но на оплату Goog...
10.02.2023
Экономим время HRa и нервы ИТ-дира, внедряя HR-платформу в Битрикс24 Меня зовут Антон Колодницкий, в компании ИНТЕРВОЛГА я руковожу разработкой HR-платформы для Битрикс24. Сегодня расскажу, как мы помогли улучшить процесс ад...
10.01.2023
Как мы CRM Битрикс24 с кучей всего интегрировали У нас был сложный сайт с личным кабинетом клиентов, устаревшая, переписанная 1С-ка, десяток маркетинговых сервисов, и телефония на Asterisk. Единств...
03.11.2022
Тюнинг HR процессов в компании Брайт Вэй Компания Брайт Вэй - динамично развивающаяся группа компаний, стратегия которой включает реализацию многих значимых проектов в фармацевтической отрасли Рос...
25.07.2022
Настройка вычисляемых и зависимых полей в Salesforce и Битрикс24 Вычисляемые поля в CRM CRM в коммерческом отделе — инструмент, упрощающий работу в компании. Но, как и все инструменты, его также можно и нужно настраивать. ...

Мы работаем по одному из двух форматов:

  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).

ИНТЕРВОЛГА предоставляет:

  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.

Для доработок и развития мы предлагаем формат 100 часов в месяц. Что можно сделать за это время:

  • новые нетиповые страницы или раздел;
  • 2 отчета с индивидуальными настройками;
  • 3-5 веб-сервисов интеграции;
  • замудренный калькулятор и т.п.

Поддержка «чтобы все работало как часы» стоит 45 тысяч рублей в месяц и описана тут.

Хочешь получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишись на рассылку — спамить не будем