Есть задача работать с элементами смарт-процессов через API в коробке
Документация вроде имеется, но все как-то по кускам
Полдня копался в описании нового ядра и в самом этом ядре, набросал основные методы для себя
Возможно, кому-то сэкономит время
Документация вроде имеется, но все как-то по кускам
Полдня копался в описании нового ядра и в самом этом ядре, набросал основные методы для себя
Возможно, кому-то сэкономит время
Код |
---|
//---------------Общие действия для всех запросов--------------- //подключение пролога require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); //подключение классов / модулей use Bitrix\Main\Loader; use Bitrix\Crm\Service; use Bitrix\Crm\Item; Loader::includeModule("crm"); $entityTypeId = 181; //задаем id нужного смарт-процесса $container = Service\Container::getInstance(); $factory = $container->getFactory($entityTypeId); //---------------Действия с элементами--------------- //получение списка элементов по фильтру $parameters = array( 'select' => array(), // имена полей, которые необходимо получить в результате 'filter' => array('<ID' => 100), // описание фильтра для WHERE и HAVING 'group' => array(), // явное указание полей, по которым нужно группировать результат 'order' => array(), // параметры сортировки 'limit' => 0, // количество записей 'offset' => 0, // смещение для limit 'runtime' => array(), // динамически определенные поля ); $allItems = $factory->getItems($parameters); $rows = array(); foreach ($allItems as $item) { $rows[] = $item->getCompatibleData(\Bitrix\Main\ORM\Objectify\Values::ALL); //getData - для вида полей "нового API" } echo '<pre>'; print_r($rows); echo '</pre>'; //добавление элемента $data = array( 'TITLE' => 'Новый элемент', 'CATEGORY_ID' => 1, 'STAGE_ID' => 'DT181_1:NEW', 'COMPANY_ID' => 130, 'CONTACT_ID' => 80, 'UF_CRM_1_TEST' => 'testString', //пользовательское поле ); $item = $factory->createItem($data); $item->save(); echo $item['id']; //изменение элемента $item_id = 7; //id элемента $data = array( 'TITLE' => 'Измененный элемент', 'STAGE_ID' => 'DT181_1:PREPARATION', 'CONTACT_ID' => 139, 'UF_CRM_1_TEST' => 'updatedString', ); $item = $factory->getItem($item_id); $item->setFromCompatibleData($data); $item->save(); //удаление элемента $item_id = 7; //id элемента $item = $factory->getItem($item_id); $item->delete(); |