0 0,00 

Есть вопрос? Звоните!

+7 923 192-46-05

Задачи в бизнес-процессах

23.12.2021
2685
Задачи в БП

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

Содержание

Создание задачи из бизнес-процесса

Задача в бизнес-процессе создается одноименным действием. На какие же параметры стоит обратить внимание?

  • Остановить процесс на время выполнения задачи – Да/Нет. Если установить значение Да, то процесс не пойдет дальше пока задача не будет закрыта. Когда она закроется процесс “запомнит” дату завершения и пользователя, закрывшего задачу, и начнет выполнять следующие действия. При установке значения Нет процесс не станет дожидаться закрытия задачи, а сразу приступит к выполнению последующих действий. Важно отметить, что при таком развитии событий, в процессе не останется информации о завершении задачи.

Если вам нужно поменять стадию сделки по завершению задачи, то выставьте в создаваемой задаче параметр Остановить процесс на время выполнения задачи, а после установите действие по смене статуса.

  • Крайний срок – здесь можно воспользоваться функциями:
    • dateadd добавление указанного значения к дате
    • workdateadd добавляет рабочие дни, часы, минуты к указанной дате
    • addworkdays добавляет N рабочих дней к указанной дате

Например, добавим 3 рабочих дня к текущей дате (дате на момент создания задачи). 

{{=workdateadd({=System:Now}, ‘3d’)}}

  • Описание задачи – здесь необходимо внести описание задачи. Можно пользоваться различными тегами, чтобы форматировать текст на свое усмотрение. Например, выделить цветом текст в задаче или написать курсивом.

 

    • Цвет текста: [color=green] текст [/color] – зеленый цвет шрифта, можно подставить любой;
    • Жирность: [b] текст [/b];
    • Курсив: [i] текст [/i];
 
Задача
  • Разрешить ответственному менять крайний срок – Да/Нет. Если в бизнес-процессе сроки имеют значение, то стоит ограничить Ответственного в варьировании дат;
  • Включить учет времени по задаче – Да/Нет. Если ваша компания пользуется учетом рабочего времени, то установите Да, в ином случае лучше поставить Нет, дабы не запутать сотрудников лишними кнопками.
  • Проконтролировать задачу после завершения – Да/Нет. При установке Да когда Ответственный завершит задачу, она не закроется, пока Постановщик не примет ее. Загвоздка в том, что в сделке такая задача “на контроле” выглядит как завершенная и сотрудники могут не понимать почему процесс не движется дальше. А процесс ждет пока задача будет полностью завершена, если стоит параметр Остановить процесс на время выполнения задачи.
Задача 2
  • Привязать к текущей сущности CRM – Да/Нет. Этот параметр нужен, если вы хотите видеть эту задачу в сделке или другой сущности, из которой создаете задачу;
  • Элементы CRM – здесь можно указать конкретные сущности, а также элементы из текущего бизнес-процесса.
    • Лид ‘L_’&{{ID}}
    • Контакт  ‘C_’&{{ID}}
    • Сделка ‘D_’&{{ID}}
    • Компания ‘CO_’&{{ID}}

Пример добавления Компании к Задаче: = ‘CO_’&{{Компания}}

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

      1. Берем ID смарт-процесса, на моем примере 185
ID смарт-процесса
      1. Конвертируем с помощью любого сервиса данное число в шестнадцатеричную систему. В случае с ID=185 получаем значение B9.
Перевод
      1. К полученному значению дописываем “T” в начале. То есть получаем – TB9.

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

=’TB9_’&{{ID}}

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

Входящий вебхук

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

Выполнение вебхука
  • Чек-лист – с помощью этого пункта можно добавить чек-лист в задачу, для добавления дополнительного пункта нажмите кнопку Добавить.
Задача 3

Уведомление на задачу

Если в действии Задача мы устанавливаем Остановить процесс на время выполнения задачи, то уведомление со ссылкой после задачи не сработает, т.к. она уже завершится, когда придет уведомление. Перед задачей тоже смысла нет, т.к. мы еще не знаем ID задачи и не можем указать ссылку на нее.

Поэтому сделаем Задачу и Уведомление параллельно. Важно, чтобы сначала создавалась Задача, а потом уже Уведомление, поэтому Задачу размещаем слева.

Уведомление к задаче

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

 

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

Уведомление

Проверка статуса задачи

Проверить статус задачи можно с помощью дополнительных результатов.

Действие Задача вернет данные по пользователю, завершившему задачу, и по дате завершения только в том случае, если в настройках действия Задача у Вас активен параметр Остановить процесс на время выполнения задачи

Дополнительные результаты

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

В коробочной версии мы можем воспользоваться действием PHP код.

				
					$rootActivity = $this->GetRootActivity();
\CModule::IncludeModule('tasks'); 
$taskId = intval({=A29483_97156_51749_92339:TaskId}); 
if ($taskId > 0)
{
 $obTask = new \Bitrix\Tasks\Item\Task($taskId, 66);
 $taskInfo = $obTask->getData();
}
else
{
 $taskInfo['STATUS'] = 'error';
}
$rootActivity->SetVariable('TaskStatus', $taskInfo['STATUS']);
				
			
  • {=A29483_97156_51749_92339: TaskId} – ID задачи, взятой из дополнительных результатов после создания задачи в бизнес-процессе;
  • TaskStatus – переменная типа строка, заранее созданная в бизнес-процессе; 
  • [STATUS] – поле статус в задаче (можно получать и другие поля);
    • TITLE – название задачи;
    • DATE_START – дата старта;
    • DEADLINE – крайний срок;
    • PRIORITY – приоритет;
    • MARK – оценка;
    • CREATED_BY – постановщик; 
    • RESPONSIBLE_ID – ответственный; 
    • GROUP_ID – рабочая группа.

В результате в переменную TaskStatus запишется цифра, обозначающая один из возможных статусов:

 

  • Ждет выполнения = 2;
  • В работе = 3;
  • Ждет контроля = 4;
  • Завершена = 5;
  • Отложена = 6;

 

Далее с помощью конструкции Условие мы можем проверить закрыта задача или нет, а именно равен ли статус 5.

Статус задачи
Не завершена

В Битриксе появилось действие Чтение полей задачи, с помощью него также теперь можно проверить статус и получить другие поля.

Чтение полей задачи

Добавление тега к задаче

Действие PHP код после создания задачи, либо параллельно, если процесс ждет завершения задачи.

 

Например, добавим к созданной задаче тег ТКП.

Тег к задаче
				
					$rootActivity = $this->GetRootActivity();
\CModule::IncludeModule('tasks'); // подключаем модуль задач 
$arFields = Array(
        "TASK_ID" => {=A51937_98794_83473_67621:TaskId},  // Ид нашей задачи
        "USER_ID" => substr('{{Константы глобальные: Коммерческий директор}}', 5), // $id юзера, от которого изменяем
        "NAME" => "ТКП",
    );

    $obTaskTags = new CTaskTags;
    $ID = $obTaskTags->Add($arFields);
				
			

Закрытие задачи

Закрыть Задачу также не получится стандартными средствами, поэтому опять же воспользуемся действием PHP код.

				
					$rootActivity = $this->GetRootActivity();
\CModule::IncludeModule('tasks');  // подключаем модуль задач 
$taskId = intval({=A29483_97156_51749_92339:TaskId}); // Ид нашей задачи
$userId = substr('{{Ответственный}}', 5); // $id юзера, от которого закрываем
if ($taskId > 0)
{
 $oTaskItem = CTaskItem::getInstance($taskId, $userId);
 $oTaskItem->complete(); // закрываем задачу
}
else
{
 $taskInfo['STATUS'] = 'error';
}
$rootActivity->SetVariable('TaskStatus', $taskInfo['STATUS']);
				
			
  • {=A29483_97156_51749_92339: TaskId} – ID задачи, взятой из дополнительных результатов после создания задачи в бизнес-процессе;
  • {{Ответственный}} – можно подставить любого пользователя, от которого хотите закрыть задачу. Обратите внимание, что здесь также действуют права на задачи. Т.е. задачу может закрыть Постановщик, Ответственный, Соисполнитель или Администратор. Если вы создаете задачу из сделки, то Ответственный по сделке не всегда равен Ответственному по задаче, смотрите эти поля в действии создания задачи.

Завершить задачу, созданную на определенной стадии

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

Завершить задачу на стадии

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

Возобновление задачи

Действие PHP код.

				
					$rootActivity = $this->GetRootActivity();
\CModule::IncludeModule('tasks');  // подключаем модуль задач 
$taskId = intval({=A51937_98794_83473_67621:TaskId}); // Ид нашей задачи
$userId = substr('{{Константы глобальные: Коммерческий директор}}', 5); // $id юзера, от которого возобновляем задачу
if ($taskId > 0)
{
 $oTaskItem = CTaskItem::getInstance($taskId, $userId);
 $oTaskItem->startExecution(); // возобновляем задачу
}
else
{
 $taskInfo['STATUS'] = 'error';
}
$rootActivity->SetVariable('TaskStatus', $taskInfo['STATUS']);
				
			
5 3 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
29 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Даниил

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

Иван

Вера, добрый день! Скажите, пожалуйста, как можно выбирать проект при постановке задачи? Делаю БП, который по заполнению обязательных полей пользователем формирует задачу. А вот как выбрать проект, не понимаю. ps Спасибо за действительно полезные статьи.

Иван

Спасибо за ответ! Поясню чуть подробнее. Пользователь из ленты запускает процесс, вводит в поля необходимые значения, как итог – формируется задача, описание которой содержит введенные в полях данные. И проект, как раз, нужно либо иметь возможность явно указать во время заполнения полей, либо БП должен подставлять нужный, основываясь на введенных данных. В настройках поля подобного не вижу, нужно как-то в действиях самого БП подставлять. Все это из-за отсутствия в Б24 (облаке) обязательных полей в шаблонах задач (общие для всего портала не подходят).

Поле Б24.png
Алена

Добрый день! Скажите, пожалуйста, что нужно сделать, чтобы добавить подпункты в чек-лист задачи, создаваемой из конструктора бизнес-процесса?

Алена

Добрый день! Вера, спасибо, но я не совсем об этом, я хотела спросить как выстроить структуру чек листа:
1. Пункт
1.1 Подпункт
1.2 Подпункт
2. Пункт
Этот функционал очень удобен в задачах – когда выполняются подпункты чек-листа основной пункт автоматически становиться выполненным
Но реализовать такой многоуровневый чек-лист в задачах из конструктора бизнес-процесса не получается

Алексей

Добрый день, я создал шаблон задачи и хочу его добавить в конструкторе бизнес-процессов, как это сделать?

Алексей

это понятно, просто не хватает инструментов чтоб настроить чек-листы в стандартном решении

Алексей

Да, один чек лист только, а задумка с несколькими чек-листами)

Александр

Приветствую
необходимо настроить уведомление при просроченной задаче
Как правильно считать ее статус?

Борис

Вера, добрый день! Можно ли из коробки или доработать, чтобы из csv импортировать подзадачу в иерархию Проект-задача-подзадача? При выгрузке просто три пробела перед подзадачей выставляются. А как подзадачу в нужно место загрузить?

Степан

Вера, здравствуйте! Пытаюсь настроить задачу и уведомление. Получается, что в таком варианте уведомление всегда идет ответственному за сделку, а если задача поставлена не ему, можно как-то сделать так, чтобы уведомление шло исполнителю задачи?

Виталий

Добрый день! Что нужно прописать в строках “Начало” и “Крайний срок” что бы задача началась через N количество дней в 9:00 и крайний срок в этот же день был в 18:00 ?

Виталий

Спасибо большое!

Денис

Уточните пожалуйста, а как правильно в БП на создании задачи прикрепить файл из поля в сделке?

IT-Comrade

Добрый день!
Что можно сделать, в случае, когда нужно выполнить действия в момент начала выполнения задачи.
То есть как подписаться на старт выполнения задачи.

29
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
0
    0
    Корзина
    Корзина пустаВернуться в магазин