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

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

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

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

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

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

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

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

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

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

image-1701157660720.png

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

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

//В данном примере была необходимость привести ФИО к верхнему регистру.
$str = '{=A72930_27475_91333_16056:NAME}'; //В $str помещаются данные, которые мы получили при помощи активити "Выбор данных CRM".
$firstName = mb_strtoupper($str); //При помощи mb_strtoupper() мы приводим текст к верхнему регистру.
$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);

Данные, которые мы получаем при помощи активити "Выбор данных 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