Найти тему
Битрикс24 изнутри

How-to: Создаем задачу по шаблону через API

Оглавление

Рассмотрим задачу: у нас есть некоторый шаблон задачи и нам нужно по определенному действию из внешней системы создавать задачу по шаблону.

Для общения с внешней системой метод мы уже сделали, а как из шаблона поставить задачу? Конечно можно получить данные шаблона и создать задачу, но зачем нужно писать много лишнего кода, если разработчики сделали все за вас?

Дано

Некоторый шаблон ID которого мы уже знаем ($templateId) и ID пользователя ($userId) кто является владельцем шаблона (или имеет доступ).

Приступим к решению

Для начала нам нужно подготовиться к работе:

  • прописать use-директивы
  • обьявить переменные (которые мы заранее знаем).

В реальности у вас будет намного больше подготовки (нужно же получить эти переменные).

Подготовились к работе
Подготовились к работе

Всю нашу работу мы будем производить в try-catch блоке.

На мой субъективный взгляд код становится чище и понятнее, за счет того что не образует "лесенку" при проверки условий

Весь интересующий нас код находится в namespace \Bitrix\Tasks\Util\Replicator, но для удобства любезный битрикс предоставил нам готовый класс \Bitrix\Tasks\Util\Replicator\Task\FromTemplate

А что конкретно нам нужно сделать?

  1. Инициировать обьект репликации (именно он сделает за нас всю грязную работу)
  2. Вызвать метод produce для создания задачи.
-2

Как вы могли заметить что в методе produce можно изменять поля шаблона (передавая ассоциативный массив в OVERRIDE_DATA), что мы и сделали с полем DATE_CREATE.

P.S. Полный листинг можно взять в gist-репозитории