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

	$provider = $this->getCrmOwnerTypeProvidersMap()[$item->getEntityTypeId()] ?? null;
	if (!$provider)
	{
		return $result;
	}

	$documents = DocumentTable::getList([
		'select' => ['ID', 'TITLE', 'VALUES'],
		'order' => [
			'UPDATE_TIME' => 'DESC',
		],
		'filter' => [
			'=PROVIDER' => mb_strtolower($provider),
			'VALUE' => $item->getEntityId(),
		],
	]);
	while ($document = $documents->fetch())
	{
		$values = $document['VALUES'];
		if ($paymentId > 0)
		{
			if (!isset($values[static::VALUE_PAYMENT_ID]) || (int)$values[static::VALUE_PAYMENT_ID] !== $paymentId)
			{
				continue;
			}
		}
		$withStamps = $values[\Bitrix\DocumentGenerator\Document::STAMPS_ENABLED_PLACEHOLDER] ?? false;
		$result[] =
			(new DocumentGenerator\Document)
				->setId($document['ID'])
				->setTitle($document['TITLE'])
				->setDetailUrl($this->getDocumentDetailUrl(
					$item->getEntityTypeId(),
					$item->getEntityId(),
					$document['ID']
				))
				->setIsWithStamps($withStamps)
		;
	}

	return $result;
}