• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/shipment.php
  • Класс: BitrixSaleShipment
  • Вызов: Shipment::createClone
public function createClone(SplObjectStorage $cloneEntity)
{
	if ($this->isClone() && $cloneEntity->contains($this))
	{
		return $cloneEntity[$this];
	}

	/** @var Shipment $shipmentClone */
	$shipmentClone = parent::createClone($cloneEntity);

	/** @var ShipmentItemCollection $shipmentItemCollection */
	if ($shipmentItemCollection = $this->getShipmentItemCollection())
	{
		if (!$cloneEntity->contains($shipmentItemCollection))
		{
			$cloneEntity[$shipmentItemCollection] = $shipmentItemCollection->createClone($cloneEntity);
		}

		if ($cloneEntity->contains($shipmentItemCollection))
		{
			$shipmentClone->shipmentItemCollection = $cloneEntity[$shipmentItemCollection];
		}
	}

	/** @var DeliveryServicesBase $service */
	if ($service = $this->getDelivery())
	{
		if (!$cloneEntity->contains($service))
		{
			$cloneEntity[$service] = $service->createClone($cloneEntity);
		}

		if ($cloneEntity->contains($service))
		{
			$shipmentClone->service = $cloneEntity[$service];
		}
	}

	return $shipmentClone;
}