Перейти к основному контенту

Для разработчиков: Генерация сертификатов

В данной статье описан процесс разработки генерации сертификатов. Про работу с шаблонами можно почитать в отдельной статье.

Для генерации сертификата необходимо создать событие, которое мы обычно называем "Генерация сертификата".

Ответственные за сертификаты должны будут проконтролировать весь процесс генерации сертификатов на тот случай, если возможны какие-либо дефекты. В связи с этим, не стоит добавлять автоматическую смену события сразу после генерации сертификата, лучше будет, если ответственные проверят качество сгенерированных сертификатов, а уже затем самостоятельно перенесут карточки на необходимые события.

Редактирование шаблона бизнес-процесса.

Для созданного нами события нужно настроить шаблон бизнес-процесса.

Для начала стоит продумать генерацию ФИО участника. Есть два способа это реализовать.

Первый - самый простой. Достаточно в шаблоне указать ключевые слова: {ContactFormattedName}. Тогда ФИО будет автоматически сгенерирован в сертификате и не нужно создавать дополнительные сегменты в шаблоне бизнес-процесса.

Если такой способ генерации ФИО не устраивает по той или иной причине и есть необходимость сделать по-своему, то для этого есть второй способ, но он не прост в реализации. Для начала нужно создать сегмент "Выбор данных CRM". Благодаря ему мы получим доступ к контактным данным пользователя, в том числе и к ФИО. К сожалению, из-за какого-то бага просто использовать полученные данные в генерации сертификата не достаточно. Необходимо присвоить эти данные к переменным. Для того, чтобы создать переменные, нужно нажать на пункт в меню "Параметры шаблона" и перейти к пункту "Переменные".

image-1701157660720.png

Чтобы не возникло путаницы, стоит указывать одинаковые названия и идентификаторы для переменных.

Чтобы присвоить данные к переменным, придется использовать сегмент "PHP код". Вот пример присвоения ФИО в отдельные переменные:

$str = '{=A72930_27475_91333_16056:NAME}';
$firstName = mb_strtoupper($str);
$this->setVariable('firstName', $firstName);
$str = '{=A72930_27475_91333_16056:SECOND_NAME}';
$secondName = mb_strtoupper($str);
$this->setVariable('secondName', $secondName);
$str = '{=A72930_27475_91333_16056:LAST_NAME}';
$lastName = mb_strtoupper($str);
$this->setVariable('lastName', $lastName);

В данном случае была необходимость привести ФИО к верхнему регистру. В $str помещаются данные, которые мы получили при помощи сегмента "Выбор данных CRM". При помощи mb_strtoupper() мы приводим текст к верхнему регистру. Помещаем результат в созданные ранее переменные. 

Данные, которые мы получаем при помощи сегмента "Выбор данных CRM" мы присваиваем при помощи меню "Вставка значения", в которой нужно выбрать пункт "Дополнительные результаты". Самостоятельно вводить конструкции по типу {=A72930_27475_91333_16056:NAME} не стоит!

image-1701160377992.png

Перейдем к сегменту, который отвечает за сам процесс генерации сертификата. Он называется "Создать документ".

В нем нужно выбрать шаблон, который будет генерироваться и данные, которые в этом шаблоне должны быть сгенерированы. Остальные настройки делайте по вашему усмотрению.

В шаблоне должны быть указаны ключевые слова, вместо которых будут подставляться данные. Чтобы указать какие данные будут использоваться на месте ключевых слов, нужно в подменю "Поля документа" выбрать ключевые слова, которые битрикс автоматически определит, и указать поля, которые содержат необходимые данные. Если данные содержаться в переменных, то нужно добавлять их по такому методу:

image-1701159019018.png

Переменные нужно указывать при помощи меню "Вставка значения" в пункте "Переменные"

image-1701159348250.png

Вероятнее всего, после того, как сертификат будет сгенерирован, его нужно будет отправить по почте. Поэтому стоит заблаговременно его сохранить в файловом поле "Генерация сертификата". Для этого стоит создать сегмент "Изменить элемент смарт-процесса". В нем нужно указать смарт-процесс, в котором ведется работа. В качестве фильтра указать ID равно {{ID}}, ну и ниже указать необходимое файловое поле, в котором сохраним сертификат.

image-1701160656991.png

Сам сертификат можно найти в меню "Вставка значения" в пункте "Дополнительные результаты."

image-1701161214880.png

Отправка сертификата

Чтобы отправить сертификат по почте, нужно его прикрепить к письму. Для этого в сегменте "Отправить письмо клиенту" используется настройка "Вложения", в которой нужно указать поле, в котором мы сохранили сертификат.

image-1701159913167.png