← К заметкам

Заметки

Как получить элементы смарт-процесса PHP-кодом без REST

В коробке элементы смарт-процесса доступны через CRM-фабрику. Пример для административной выборки:

use Bitrix\Main\Loader;
use Bitrix\Crm\Service\Container;

if (!Loader::includeModule('crm')) {
    throw new RuntimeException('Модуль CRM недоступен');
}
$factory = Container::getInstance()->getFactory(178);
if (!$factory) {
    throw new RuntimeException('Тип CRM не найден');
}
$items = $factory->getItems([
    'select' => ['ID', 'TITLE', 'ASSIGNED_BY_ID'],
    'filter' => ['=ASSIGNED_BY_ID' => 15],
    'order' => ['ID' => 'DESC'],
    'limit' => 50
]);
foreach ($items as $item) {
    echo $item->getId() . PHP_EOL;
}

Ядро должно быть подключено до выполнения этого кода. 178 — entityTypeId, а не ID записи типа.

getItems() нельзя считать автоматическим фильтром прав посетителя. Для пользовательского интерфейса нужна выборка с предусмотренной CRM проверкой прав. Здесь также возвращаются только первые 50 элементов: выгрузка всего набора требует последовательного чтения порций.