Для разработчиков: Генерация сертификатов
В данной статье описан процесс разработки генерации сертификатов. Про работу с шаблонами можно почитать в отдельной статье.
Для генерации сертификата необходимо создать событие, которое мы обычно называем "Генерация сертификата".
Ответственные за сертификаты должны будут проконтролировать весь процесс генерации сертификатов на тот случай, если возможны какие-либо дефекты. В связи с этим, не стоит добавлять автоматическую смену события сразу после генерации сертификата, лучше будет, если ответственные проверят качество сгенерированных сертификатов, а уже затем самостоятельно перенесут карточки на необходимые события.
Редактирование шаблона бизнес-процесса.
Для созданного нами события нужно настроить шаблон бизнес-процесса.
Для начала стоит продумать генерацию ФИО участника. Есть два способа это реализовать.
Первый - самый простой. Достаточно в шаблоне указать ключевые слова: {ContactFormattedName}. Тогда ФИО будет автоматически сгенерирован в сертификате и не нужно создавать дополнительные сегменты в шаблоне бизнес-процесса.
Если такой способ генерации ФИО не устраивает по той или иной причине и есть необходимость сделать по-своему, то для этого есть второй способ, но он не прост в реализации. Для начала нужно создать сегмент "Выбор данных CRM". Благодаря ему мы получим доступ к контактным данным пользователя, в том числе и к ФИО. К сожалению, из-за какого-то бага просто использовать полученные данные в генерации сертификата не достаточно. Необходимо присвоить эти данные к переменным. Для того, чтобы создать переменные, нужно нажать на пункт в меню "Параметры шаблона" и перейти к пункту "Переменные".
Чтобы не возникло путаницы, стоит указывать одинаковые названия и идентификаторы для переменных.
Чтобы присвоить данные к переменным, придется использовать сегмент "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} не стоит!
Перейдем к сегменту, который отвечает за сам процесс генерации сертификата. Он называется "Создать документ".
В нем нужно выбрать шаблон, который будет генерироваться и данные, которые в этом шаблоне должны быть сгенерированы. Остальные настройки делайте по вашему усмотрению.
В шаблоне должны быть указаны ключевые слова, вместо которых будут подставляться данные. Чтобы указать какие данные будут использоваться на месте ключевых слов, нужно в подменю "Поля документа" выбрать ключевые слова, которые битрикс автоматически определит, и указать поля, которые содержат необходимые данные. Если данные содержаться в переменных, то нужно добавлять их по такому методу:
Переменные нужно указывать при помощи меню "Вставка значения" в пункте "Переменные"
Вероятнее всего, после того, как сертификат будет сгенерирован, его нужно будет отправить по почте. Поэтому стоит заблаговременно его сохранить в файловом поле "Генерация сертификата". Для этого стоит создать сегмент "Изменить элемент смарт-процесса". В нем нужно указать смарт-процесс, в котором ведется работа. В качестве фильтра указать ID равно {{ID}}, ну и ниже указать необходимое файловое поле, в котором сохраним сертификат.
Сам сертификат можно найти в меню "Вставка значения" в пункте "Дополнительные результаты."
Отправка сертификата
Чтобы отправить сертификат по почте, нужно его прикрепить к письму. Для этого в сегменте "Отправить письмо клиенту" используется настройка "Вложения", в которой нужно указать поле, в котором мы сохранили сертификат.






