Запись на экскурсию Покажем свой настроенный Битрикс24
Лайфхаки бизнес-процессов Битрикс24

Эта статья содержит полезные Факты, приемы и  шаблоны для проектирования бизнес-процессов в битрикс24,


1. id и id элемента crm

В окне "Вставка значения" при настройке бизнес-процесса существуют два варианта вставки ID: просто "ID" и "ID элемента CRM". Чем они отличаются? Разница в том, как значения выглядят на выходе. Например если ID сделки 1337, то результаты будут следующими:

"ID" выведет 1337

"ID элемента CRM" же покажет D_1337 (где D означает тип сущности "Сделка")

Это формат необходим полям типа "Привязка к элементам CRM" у которых допустимы несколько типов сущностей или в случае, когда при создании задачи нужно указать элементы CRM.


2. Дополнение переменной в итераторе

При изменении переменной сперва добавьте ссылку на значение это переменной, а после неё впишите новую информацию. Таким образом при каждой итерации в этой переменной будет накапливаться информация без перезаписи.

3. Дополнение множественных полей и переменных, вместо перезаписи

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


4. Получить информацию об элементе CRM: смарт-процесс

Чтобы действие "Получить информацию об элементе CRM" возвращало значение, необходимо включить в настройках смарт-процессах следующие настройки:

  • Использовать в смарт-процессе роботы и триггеры;
  • Использовать в смарт-процессе дизайнер бизнес-процессов.

5. Системные данные и функции

При настройки параметров действия, в случае, если ввести символ =, то отобразится всплывающее окно в котором можно будет быстро вставить системные данные или функции

Системные:

  • {=Workflow:ID} Идентификатор процесса
  • {=Template:TargetUser} Пользователь, запустивший процесс
  • {=User:ID} Текущий пользователь
  • {=System:Now} Текущая дата и время сервера
  • {=System:NowLocal} Текущая дата и время локальное
  • {=System:Date} Текущая дата
  • {=System:Eol} Символ конца строки


Функции:

  • abs вычисление модуля числа
  • dateadd добавление указанного значения к дате
  • datediff вычисление разницы между датами
  • date форматирует вывод даты/времени
  • workdateadd добавляет дни, часы, минуты к указанной дате
  • addworkdays добавляет N рабочих дней к указанной дате
  • isworkday проверяет является ли дата рабочим днем
  • isworktime проверяет является ли дата/время рабочим временем
  • touserdate приводит серверное время к времени пользователя
  • getuserdateoffset возвращает смещение времени пользователя относительно сервера, в секундах
  • if условный оператор
  • intval возвращает целое число
  • floatval возвращает число
  • numberformat форматирует число с разделение групп
  • min возвращает наименьшее число
  • max возвращает наибольшее число
  • rand возвращает случайное число
  • round округляет число
  • ceil округляет дробь в большую сторону
  • floor округляет дробь в меньшую сторону
  • substr возвращает подстроку
  • strpos возвращает позицию первого вхождения подстроки
  • strlen возвращает длину строки
  • implode объединяет множественные значения в строку
  • explode разбивает строку с помощью разделителя
  • randstring возвращает случайную строку
  • merge объединение множественных значений
  • urlencode url-кодирование строки
  • strtolower преобразует строку в нижний регистр
  • strtoupper преобразует строку в верхний регистр
  • ucwords преобразует в верхний регистр первый символ каждого слова в строке
  • ucfirst преобразует первый символ строки в верхний регистр
  • strtotime преобразует текстовое написание даты на английском языке во внутренний формат даты
  • locdate меняет язык вывода даты/ времени на текущий язык портала
  • shuffle перемешивает значения множественного поля
  • firstvalue возвращает первое значение множественного поля
  • swirl перемещает первое значение пользовательского поля в конец


6. Ссылки в уведомлениях и заданиях

Для того, чтобы ссылка стала кликабельной, нужно обрамить ёё в соответствующий тег: [url=ссылка]текст ссылки[/url]

Пример:
Ссылка на просмотр существующего документа crm в слайдере: /bitrix/components/bitrix/crm.document.view/slider.php?documentId=[ID]&IFRAME=Y&IFRAME_TYPE= SIDE_SLIDER

Ссылка на папку
: /bitrix/tools/disk/focus.php?folderId={=A52715_49501_92679_43337: ObjectId}& action=openFolderList&ncc=1

Ссылка на страницу с заданием текущего бизнес-процесса: /company/personal/bizproc/{=Workflow:ID}/

Ссылка на пользователя: /company/personal/user/{{=substr({{Ответственный}}, 5)}}/

Ссылка на задачу: /company/personal/user/{{=substr({{Ответственный}}, 5)}}/tasks/task/view/{=A57030_97500_98792_73159:TaskId}

Ссылка на сделку: /crm/deal/details/{{ID}}/

Сделать ссылку можно для любой сущности. К примеру, если вам необходимо сделать ссылку на сделку, то просто перейдите в любую из них и скопируйте url из адресной строке, после чего вместо ID сделки подставьте нужную переменную.

Текст выделенный синим заменяется на нужный вам. Адрес портала из ссылок можно удалить

7. Форматирование текста

В бизнес-процессах есть возможность отформатировать текст, используя теги. Форматирование доступно в комментариях к сущностям, в задачах, в заданиях и в уведомлениях.

Теги:
<b>Жирный</b>
<i>Курсив</i>
<u>Подчеркивание</u>
[color=blue]Цвет[/color] (цвет можно указывать либо названием, либо кодом, например, #ff0000)

8. Привязка к спискам документа в запросе дополнительной информации

Во время создания полей для задания "Запрос дополнительной информации" можно использовать тип поля "Привязка к спискам документа". Так их можно будет присваивать полям документа без сопоставления.

Также используя действие "Изменение переменных" можно редактировать эту переменную. К примеру при повторных согласованиях можно вставлять предыдущие значения.

9. Уведомление на задачу, завершения которой ждет бизнес-процесс

Если в настройках действия "Задача" установить "ожидание до завершения задачи", то для того, чтобы, к примеру, отправить уведомление, нам пригодится действие "Параллельное выполнение". Для того, чтобы сперва создавалась задача необходимо поместить это действие в левую ветвь, а действие с уведомление установить справа. В таком случае нам будет доступен ID созданной задачи и его можно будет вставить в ссылку в уведомлении.

Например: 
Вам поставлена [url=/company/personal/user/{=User: ID}/tasks/task/view/ {=A24388_98030_17242_51455: TaskId}/] новая задача[/url].

Где {=A24388_98030_17242_51455:TaskId} — ID задачи из вставки значения дополнительных результатов.

10. Связка заданий и задач

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

Всего необходимо сделать два шага:

  1. В описание задачи добавить ссылку на задание и примечание о том, что задача завершится автоматически после завершения задания.
  2. В После задания необходимо установить либо rest-действие (в маркете есть) с завершением задачи, либо WebHook с завершением задачи.



Описание задачи:

Ознакомиться с документами по сделке [url=/crm/deal/details/{{ID}}/]{{Название}}[/url].

[b]Перейдите в [url=/company/personal/bizproc/ {=A94232_72478_73372_10926:TaskId}/] задание[/url][/b]

[b][color=red]После выполнения задания задача завершится автоматически.[/color][/b]

В этом примере приведена ссылка на сделку и ссылка на задание. В примечании тег [b][/b] – жирный шрифт, [color=red][/color] – красный цвет шрифта.

11. Вставка значения. Модификация типов данных

Порой данные полученные с помощью "Вставки значения" в задачах и уведомлениях отображаются неожиданным образом. К примеру, пользователь добавляет ID, а не только имя. Чтобы это исправить пригодится модификатор friendly..

Пример: {=A68803_4825_89283_91750:InfoUser > friendly}.

Или, в случае, если сумма или списочное значение выводится не в том формате , то на помощь придет модификатор printable.


Больше модификаторов в справке Битрикса.

12. Добавление элементов CRM в задачу из бизнес-процесса

В настройках действия "Задача" в дизайнере бизнес-процессов недостаточно указать в поле "Элементы CRM" поле с нужным вам элементом, так оно не привяжется к задаче.

Вся проблема в том, что эти поля содержат лишь ID сущности, но не содержат её тип. Чтобы это исправить необходимо указать нужный тип самостоятельно:

  • Лид ‘L_’&{{ID}}
  • Контакт ‘C_’&{{ID}}
  • Сделка ‘D_’&{{ID}}
  • Компания ‘CO_’&{{ID}}
  • Счет (на смартах) ‘SI_’&{{ID}}

Пример добавления Компании и Сделки к Задаче:

= ‘CO_’&{{Компания}}, ‘D_’&{=A89102_36331_72702_3654:DealId}

Для смарт-процессов такого варианта еще нет, но существует решение:

Нужен ID смарт-процесса, в нашем случае 185

Конвертируем с помощью любого сервиса данное число в шестнадцатеричную систему. В случае с ID=185 получаем значение B9.

К началу полученного значения добавляем “T” и получаем – TB9.

Данный код используем в привязке. В нашем примере:

=’TB9_’&{{ID}}

Помимо этого код можно получить с помощью Входящего вебхука и метода crm.enum.ownertype

Сохраните вебхук, нажмите Выполнить. В результатах найдите нужный смарт-процесс. Нам нужен [SYMBOL_CODE_SHORT]