• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/observer/entity/observertable.php
  • Класс: Bitrix\Crm\Observer\Entity\ObserverTable
  • Вызов: ObserverTable::upsert
static function upsert(array $data)
{
	$entityTypeID = isset($data['ENTITY_TYPE_ID']) ? (int)$data['ENTITY_TYPE_ID'] : \CCrmOwnerType::Undefined;
	$entityID = isset($data['ENTITY_ID']) ? (int)$data['ENTITY_ID'] : 0;
	$userID = isset($data['USER_ID']) ? (int)$data['USER_ID'] : 0;
	$sort = isset($data['SORT']) ? (int)$data['SORT'] : 0;

	$now = new Main\Type\DateTime();

	$connection = Main\Application::getConnection();
	$queries = $connection->getSqlHelper()->prepareMerge(
		'b_crm_observer',
		array('ENTITY_TYPE_ID', 'ENTITY_ID', 'USER_ID'),
		array(
			'ENTITY_TYPE_ID' => $entityTypeID,
			'ENTITY_ID' => $entityID,
			'USER_ID' => $userID,
			'SORT' => $sort,
			'CREATED_TIME' => $now,
			'LAST_UPDATED_TIME' => $now
		),
		array('SORT' => $sort, 'LAST_UPDATED_TIME' => $now)
	);

	foreach($queries as $query)
	{
		$connection->queryExecute($query);
	}
}