Битрикс

Битрикс24: API смарт-процессов

API смарт-процессов в Битрикс предоставляет разработчикам мощный инструментарий для управления смарт-процессами через программный интерфейс. Ниже приведены основные методы работы с смарт-процессами, позволяющие инициализировать, создавать, изменять, удалять элементы и получать списки.

Инициализация (создание экземпляра класса для работы со смарт-процессом)

Для инициализации смарт-процесса используется фабрика, которая позволяет создать экземпляр класса для работы с ним. Например:

use \Bitrix\Crm\Service\Container;
$factory = Container::getInstance()->getFactory($entityTypeId);
// $entityTypeId - id смарт-процесса

Создание элемента смарт-процесса

$context = new \Bitrix\Crm\Service\Context();
$context->setUserId($userId); // если добавление происходит в агенте, то надо установить пользователя $item = $factory->createItem($data); // $data - массив ['TITLE'=> 'Элемент1','UF_CRM_N_PROPERTY'] // UF_CRM_N_PROPERTY - UF_ заголовок для пользовательских полей, CRM_N - N-Порядковый номер созданного смерт-процесса, узнать можно при создании пользовательского свойства, PROPERTY - Код свойства
$fields = [ Bitrix\Crm\Item::FIELD_NAME_TITLE => 'Заголовок элемента', 'UF_CRM_FIELD' => 'some value', 'UF_CRM_FILE' => $newFile, ]; $item = $factory->createItem($fields); $addOperation = $factory->getAddOperation($item, $context); /* для поддержки кастомизации и отключения проверок в виде: $addOperation->disableCheckAccess() - отключение проверки доступа $addOperation->disableCheckFields() - отключение проверки обязательности полей */ $operationResult = $saveOperation->launch(); // Запуск добавления элемента. Если использовать $item->save() - будет пропущена вся логика при добавлении (бизнес-процессы, индексация элемента и прочее) /* ---- ИЛИ ---- */
$fields = [ 'UF_CRM_FIELD' => 'some value', 'UF_CRM_FILE' => $newFile ]; $item = $factory->createItem($fields); $addOperation = $factory->getAddOperation($item) ->disableCheckAccess() ->disableCheckFields(); $operation->launch();

Изменение элемента смарт-процесса

$item->set('UF_CRM_1_FIELD', $value);
$item->save();

/* или для нескольких полей */
$class = $factory->getDataClass();
$saveResult = $class::update($id, $arUpdate);

/* или с поддержкой кастомизации операции изменения */ 
$saveOperation = $factory ->getUpdateOperation($item, $context); 
$operationResult = $saveOperation->launch();

Удаление элемента смарт-процесса

Безопасное удаление
$saveOperation = $factory->getDeleteOperation($item, $context);
$operationResult = $saveOperation->launch();

Получение списка элементов

Получение списка элементов смарт-процесса

 $items = $factory->getItems([
    'filter' => [
        '@ID' => $ids,
        '=PARENT_ID_1' => $otherSmartElementId
    ],
    'select' => ['ID', 'UF_CRM_2_POLE', 'TITLE'],
    'order' => ['UF_CRM_2_POLE' => 'ASC'],
    'limit'=>1000,
    'offset' =>0
]);

Дополнительную информацию о доступных методах API смарт-процессов Битрикс можно найти в официальной документации.


Возврат к списку