Как заполнить пользовательское поле в завершенных задачах автоматически (Битрикс Коробка)?

Для автоматического заполнения пользовательского поля в завершенных задачах в Битрикс24 (Коробка) можно использовать следующий подход:

1. Необходимо создать пользовательское поле для задачи. Для этого перейдите в раздел "Настройки" - "Инструменты CRM" - "Типы полей" и выберите нужный модуль (например, CRM). Затем выберите сущность, для которой будет создано пользовательское поле (например, Задачи), и нажмите на кнопку "Добавить поле". Задайте имя поля, тип данных и другие параметры, и сохраните настройки.

2. Далее, необходимо создать делегата для события, которое будет вызываться при завершении задачи. Для этого понадобится кастомизировать файл /bitrix/php_interface/init.php. Если этого файла нет, то его нужно создать. В этом файле можно добавить обработчик события OnTaskAdd, который будет вызываться при завершении задачи.

Пример кода:

AddEventHandler("tasks", "OnTaskAdd", "OnTaskComplete");

function OnTaskComplete($taskId, &$arFields)
{
    // Проверяем, что задача завершена
    if ($arFields['REAL_STATUS'] == CTasks::STATE_COMPLETED)
    {
        // Получаем значение пользовательского поля по ID задачи
        $value = CTaskItem::getInstance($taskId)->getData()['UF_CUSTOM_FIELD'];

        // Делаем необходимые действия с полученным значением (например, обновляем другое поле)
        // ...

        // Сохраняем изменения
        CTaskItem::getInstance($taskId)->save();
    }
}

3. В функции OnTaskComplete можно получить значение пользовательского поля для завершенной задачи с помощью функции CTaskItem::getInstance($taskId)->getData()['UF_CUSTOM_FIELD'], где UF_CUSTOM_FIELD - символьный код созданного вами пользовательского поля.

4. После получения значения пользовательского поля, вы можете выполнить необходимые действия с этим значением, например обновить другое поле или выполнить какие-либо расчеты.

5. Не забудьте сохранить изменения после выполнения нужных действий с помощью функции CTaskItem::getInstance($taskId)->save().

Обратите внимание, что код приведен в примере написан на языке PHP и предназначен для использования внутри Битрикс24 (Коробка).