• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgeneratormanager.php
  • Класс: Bitrix\Crm\Integration\DocumentGeneratorManager
  • Вызов: DocumentGeneratorManager::createDocumentForItem
public function createDocumentForItem(ItemIdentifier $identifier, int $templateId, int $paymentId = null): Result
{
	$result = new Result();

	$provider = $this->getCrmOwnerTypeProvidersMap()[$identifier->getEntityTypeId()] ?? null;
	if (!$provider)
	{
		return $result->addError(new Error('Provider for entityTypeId ' . $identifier->getEntityTypeId() . ' is not found'));
	}
	$template = \Bitrix\DocumentGenerator\Template::loadById($templateId);
	if (!$template)
	{
		return $result->addError(new Error('Template ' . $templateId . ' not found'));
	}
	$template->setSourceType($provider);
	$document = \Bitrix\DocumentGenerator\Document::createByTemplate($template, $identifier->getEntityId());
	if (!$document)
	{
		return $result->addError(new Error('Could not create document'));
	}
	CreationMethod::markDocumentAsCreatedByPublic($document);
	if ($paymentId > 0)
	{
		$document->setValues([
			static::VALUE_PAYMENT_ID => $paymentId,
		]);
	}

	return $document->getFile(true, true);
}