• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recovery/entityrecoverydata.php
  • Класс: Bitrix\Crm\Recovery\EntityRecoveryData
  • Вызов: EntityRecoveryData::save
public function save()
{
	$data = serialize($this->data);
	$isCompressed = self::isCompressionEnabled();
	if($isCompressed)
	{
		$data = gzcompress($data);
	}

	$fields = array(
		'REGISTRATION_TIME' => $this->registrationTime,
		'ENTITY_ID' => $this->entityID,
		'ENTITY_TYPE_ID' => $this->entityTypeID,
		'CONTEXT_ID' => $this->contextID,
		'USER_ID' => $this->userID,
		'RESPONSIBLE_ID' => $this->responsibleID,
		'TITLE' => $this->title,
		'IS_COMPRESSED' => $isCompressed ? 'Y' : 'N',
		'DATA' => $data
	);

	if($this->ID > 0)
	{
		/** @var Main\Entity\UpdateResult $result **/
		$result = EntityRecoveryTable::update($this->ID, $fields);
		if(!$result->isSuccess())
		{
			throw new Main\SystemException("Could not update EntityRecoveryData.\n".implode("\n", $result->getErrorMessages()));
		}
	}
	else
	{
		/** @var Main\Entity\AddResult $result **/
		$result = EntityRecoveryTable::add($fields);
		if(!$result->isSuccess())
		{
			throw new Main\SystemException("Could not create EntityRecoveryData.\n".implode("\n", $result->getErrorMessages()));
		}

		$this->ID = $result->getId();
	}
}