Документация для разработчиков
Темная тема

Основные методы работы

Несколько базовых примеров работы. Примеры даны для лидов, но по аналогии можно работать с другими сущностями CRM.


Добавление лида.

if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	$entity = new CCrmLead; 
	$fields = array( 
		'TITLE' => 'Test' 
	); 
	echo $entity->add($fields); 
}

Изменение, удаление лида

<?php 
if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	$entity = new CCrmLead(true);//true - проверять права на доступ
	$fields = array( 
		'TITLE' => 'Test' 
	); 
	$entity->update(1, $fields); 

	$entity->delete(1); 
}

Операции выборки. Принципы работы практически аналогичны выборке в инфоблоках.

<?php 
if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	CCrmLead::GetListEx( 
		$arOrder = array(),  
		$arFilter = array(),  
		$arGroupBy = false,  
		$arNavStartParams = false,  
		$arSelectFields = array()); 
}

По умолчанию при выборке проверяются права. Чтобы отменить проверку в фильтре надо передать CHECK_PERMISSIONS => 'N'.


Добавление простого товара. Простой товар - это товар, привязанный к сущности в обход каталога товаров. Он не будет сохранён отдельно в базе.

<?php 
if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	$rows = array(); 
	$rows[] = array( 
		'PRODUCT_NAME' => 'Страховка', 'QUANTITY' => 2,   'PRICE' => 300, 
		'MEASURE_CODE' => 796 
	); 
	$rows[] = array( 
		'PRODUCT_NAME' => 'Выезд менеджера', 'QUANTITY' => 1,  'PRICE' => 100, 
		'MEASURE_CODE' => 796 
	); 
	CCrmProductRow::SaveRows('D', 10, $rows);//привязываем к сделке 
	CCrmProductRow::SaveRows('L', 8, $rows);//к лиду 
	CCrmProductRow::SaveRows('Q', 1, $rows);//к предложению 
	//для счетов несколько иначе - при обновлении или добавлении  указываем отдельным полем 
	CCrmInvoice::add(array( 
		'ORDER_TOPIC' => 'Новый счет', 
		'PRODUCT_ROWS' => $rows 
	)); 
}

Добавление товара в каталог

<?php 
if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	$pid = CCrmProduct::add(array( 
		'NAME' => 'Товар в базе', 
		'QUANTITY' => 1, 
		'PRICE' => 100, 
		'MEASURE_CODE' => 796, 
		'CURRENCY_ID' => 'RUB', 
	)); 
	if ($pid) 
	{ 
		$rows = array(); 
		$rows[] = array( 
			'PRODUCT_ID' => $pid, 
			'QUANTITY' => 1, 
		); 
		CCrmProductRow::SaveRows('D', 10, $rows); 
	} 
}

Получение CODE измерения.

<?php 
if (\Bitrix\Main\Loader::includeModule('crm')) 
{ 
	//получение списка измерений 
	\Bitrix\Crm\Measure::getMeasures(); 
	//получение одного измерения по умолчанию 
	\Bitrix\Crm\Measure::getDefaultMeasure(); 
	//вернется массив массивов вида: 
	/* 
		[ID] => 1 
		[CODE] => 6 
		[IS_DEFAULT] =>  
		[SYMBOL] => м 
	*/ 
}

Получение кодов справочных сущностей справочника

<?php 
if (\Bitrix\Main\Loader::includeModule('crm'))  { 
	$fields = array( 
		'TYPE_ID' => CCrmActivityType::Call, //тип самого дела, может быть: Meeting, Call, Task, Email (константы класса)
		'OWNER_TYPE_ID' => CCrmOwnerType::Deal, //тип основной сущности, к которой привязывается дело, 
                                                //может быть Deal, Lead, Contact, Company (константы класса)
		'OWNER_ID' => 10, //ID основной сущности
		'SUBJECT' => 'Телефонный разговор исходящий', 
		'START_TIME' => $date, 
		'END_TIME' => $date, 
		'COMPLETED' => 'Y', //флаг завершенности дела
		'RESPONSIBLE_ID' => 1, //ответственный
		'PRIORITY' => CCrmActivityPriority::Medium, //приоритет, может быть None, Low, Medium, High (константы класса)
		'DESCRIPTION' => 'Описание', 
		'DIRECTION' => CCrmActivityDirection::Outgoing, //актуально для типов дел, где может быть направление 
			//(входящий или исходящий - телефон или email), 
			//может быть Outgoing, Incoming (константы класса)
		'BINDINGS' => array( 
			array( 
				'OWNER_TYPE_ID' => CCrmOwnerType::Deal, 
				'OWNER_ID' => 666 
			) 
		), //массив дополнительных связей - например, звонок привязан к сделке (основная привязка),
		// но еще относится к контакту - с КЕМ звонок.

		'ORIGIN_ID' => 'XYZ_1' //некий внешний идентификатор, опционально
	); 
     
	CCrmActivity::Add($fields, true); 
} 

© «Битрикс», 2001-2024, «1С-Битрикс», 2024