• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/payableitem.php
  • Класс: BitrixSalePayableItem
  • Вызов: PayableItem::save
public function save()
{
	$result = new Result();

	if (!$this->isChanged())
	{
		return $result;
	}

	$id = $this->getId();

	if ($id > 0)
	{
		$fields = $this->getFields()->getChangedValues();

		$r = $this->updateInternal($id, $fields);
	}
	else
	{
		$payment = $this->getCollection()->getPayment();

		if ((int)$this->getField('ENTITY_ID') === 0)
		{
			$this->setFieldNoDemand('ENTITY_ID', $this->getEntityObject()->getId());
		}

		$this->setFieldNoDemand('DATE_INSERT', new MainTypeDateTime());
		$this->setFieldNoDemand('PAYMENT_ID', $payment->getId());

		$fields = $this->getFields()->getValues();
		$r = $this->addInternal($fields);
		if ($r->isSuccess())
		{
			$id = $r->getId();
			$this->setFieldNoDemand('ID', $id);
		}
	}

	if (!$r->isSuccess())
	{
		return $result->addErrors($r->getErrors());
	}

	$result->setId($id);

	return $result;
}