Блог

Лайфхаки бизнес-процессов

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]