• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/model/messageindex.php
  • Класс: BitrixImModelMessageIndexTable
  • Вызов: MessageIndexTable::merge
static function merge(array $data)
{
	$result = new EntityAddResult();

	$helper = Application::getConnection()->getSqlHelper();
	$insertData = $data;
	$updateData = $data;
	$mergeFields = static::getMergeFields();

	foreach ($mergeFields as $field)
	{
		unset($updateData[$field]);
	}

	$merge = $helper->prepareMerge(
		static::getTableName(),
		static::getMergeFields(),
		$insertData,
		$updateData
	);

	if ($merge[0] != "")
	{
		Application::getConnection()->query($merge[0]);
		$id = Application::getConnection()->getInsertedId();
		$result->setId($id);
		$result->setData($data);
	}
	else
	{
		$result->addError(new Error('Error constructing query'));
	}

	return $result;
}