Как настроить автоматическое создание задачи в Битрикс 24 при изменении определенного поля?

Как настроить отслеживание изменений в определенных полях сделки в Битрикс24 и автоматически назначать задачи определенным сотрудникам при изменении этих полей? Как реализовать процесс, при котором задачи будут устанавливаться только в случае изменения определенных полей сделки, таких как сумма сделки, клиент (компания, контакт), товарные позиции, ответственный и тип сделки (пользовательское поле)? Как использовать PHP в бизнес-процессе для решения этой задачи в коробочной версии Битрикс24?
  • 11 февраля 2024 г. 9:48
Ответы на вопрос 2
Для автоматизации подобных задач в Битрикс24 можно использовать механизм бизнес-процессов, триггеров или обработчиков событий. В коробке эти инструменты позволяют настроить различные автоматизации без прямого использования PHP, так как Bitrix24 предоставляет визуальный конструктор бизнес-процессов и автоматизаций.

### Использование бизнес-процессов

1. **Создание бизнес-процесса:**
   Откройте сделку, перейдите во вкладку "Бизнес-процессы" и создайте новый бизнес-процесс с помощью визуального конструктора.

2. **Условие изменения поля:**
   Используйте блок "Условие" и настройте его таким образом, чтобы он проверял изменение определенного поля. Возможно, вам придется использовать дополнительные шаблоны, которые позволят отслеживать предыдущее значение поля и его изменение.

3. **Создание задачи:**
   Если условие изменения поля истинно, используйте блок "Создание задачи" для назначения задачи определенному сотруднику. В параметрах блока вы сможете указать описание задачи, ответственного, сроки выполнения и прочие необходимые данные.

4. **Опубликовать бизнес-процесс:**
   После настройки всех блоков сохраните и опубликуйте бизнес-процесс.

### Использование триггеров (для автоматизации сделок)

1. **Настройка триггеров:**
   В разделе автоматизации сделок настройте триггер на изменение конкретного поля.

2. **Создание автоматических действий:**
   После срабатывания триггера настройте автоматизацию таким образом, чтобы создавалась задача для сотрудника.

### Использование обработчиков событий с PHP

Для прямого использования PHP кода для такой автоматизации в коробочной версии Битрикс24, будет необходимо использовать серверные механизмы — обработчики событий (event handlers).

```php
AddEventHandler('crm', 'OnBeforeCrmDealUpdate', 'OnBeforeCrmDealUpdateHandler');

function OnBeforeCrmDealUpdateHandler(&$fields)
{
    if (isset($fields['CHANGED_FIELDS']) && in_array('YOUR_FIELD_CODE', $fields['CHANGED_FIELDS'])) {
        // Создать задачу с помощью CTaskItem class или CTask::Add
        $taskData = array(
            // Настройте массив с данными для задачи
        );
        $task = new CTaskItem;
        $taskId = $task->Add($taskData);
        // Если нужно, здесь же можно добавить код для назначения задачи сотруднику
    }
}
```

Данная подписка на событие `OnBeforeCrmDealUpdate` будет проверять, изменилось ли указанное поле в сделке, и если да, то запускать код создания задачи в CRM.

Важно понимать, что серверный код требует глубоких знаний работы с API Битрикс и языка PHP, а также доступ к серверу для разработчиков. Интеграция такого кода может потребовать вмешательства в код коробочной версии, что может привести к проблемам при обновлении систем
для того чтобы поставить задачу при изменениях в сделке подойдет бизнес-процесс, у которого в параметрах шаблона включен чекбокс "Автоматически запускать: При изменении" 
для того чтобы отследить изменения полей при помощи этого же процесса можно всякий раз сравнивать предварительно сохраненное в техническое поле прошлое значение поля с его текущим и ставить задачу если они не совпадают.
Похожие вопросы