Доработка генератора документов Битрикс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
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

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

25.07.2022
Настройка вычисляемых и зависимых полей в Salesforce и Битрикс24 Вычисляемые поля в CRM CRM в коммерческом отделе — инструмент, упрощающий работу в компании. Но, как и все инструменты, его также можно и нужно настраивать. ...
14.07.2022
Типы записей Процесса продаж в Salesforce и Направления сделок при переходе на Битрикс24 Редко компании делают что-то одно. Как правило, услуг несколько и этапы в них разные. При этом все эти услуги одновременно или поочередно реализуются одному кл...
07.07.2022
Кейс: Экономия 300 часов HR-службы с помощью Модуля Адаптации сотрудников для Битрикс24Статья о том, как разработка программы для адаптации сотрудников помогла производителю моторных масел и антифризов навести порядок в HR-процессах и добиться эко...
22.06.2022
Salesforce и Битрикс24: сбор и конвертация лидовИмпортозамещение важно для российских компаний, которым нужно заменить иностранное программное обеспечение и сервисы на российские аналоги. В сегменте CRM-сист...
13.05.2022
Обновление модуля ограничения доступа к полям CRM: ограничение доступа в канбане ИНТЕРВОЛГА выпускает готовые решения для Битрикс24, которые расширяют возможности портала за разумные деньги. Сегодня поговорим об обновлении Модуля ограни...
04.02.2022
Кейс: Внутренний портал крупной фармацевтической компании «Цифровой HR» Люди в компаниях не только очень важны, но и очень дороги. В прямом смысле. Дело даже не в заработных платах. Компания со штатом 1-3 тысячи человек тра...

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

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

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

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

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

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

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

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