- Модуль: 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();
}
}