0 0,00 

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

+7 923 192-46-05

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

23.12.2021
9
Задачи в БП

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

Содержание

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

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

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

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

  • Крайний срок – здесь можно воспользоваться функциями:
    • 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}}

  • Чек-лист – с помощью этого пункта можно добавить чек-лист в задачу, для добавления дополнительного пункта нажмите кнопку Добавить.
Задача 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 2 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
9 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Степан

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

Виталий

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

Виталий

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

Денис

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

IT-Comrade

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

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