• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/crmentitydataprovider.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\CrmEntityDataProvider
  • Вызов: CrmEntityDataProvider::onPublicView
public function onPublicView(Document $document, bool $isFirstTime = false)
{
	//call automation trigger
	$template = $document->getTemplate();

	DocumentViewTrigger::execute(
		[
			['OWNER_TYPE_ID' => $this->getCrmOwnerType(), 'OWNER_ID' => $this->source]
		],
		['TEMPLATE_ID' => $template->ID]
	);

	if($isFirstTime)
	{
		$timelineIdentifier = $this->getTimelineItemIdentifier();
		$entityTypeId = $timelineIdentifier ? $timelineIdentifier->getEntityTypeId() : $this->getCrmOwnerType();
		$entityId = $timelineIdentifier ? $timelineIdentifier->getEntityId() : $this->source;
		$text = Loc::getMessage('CRM_DOCGEN_CRMENTITYDATAPROVIDER_PULIC_LINK_VIEWED', ['#TITLE#' => htmlspecialcharsbx($document->getTitle())]);
		$entryId = DocumentEntry::create([
			'TEXT' => $text,
			'BINDINGS' => [
				[
					'ENTITY_TYPE_ID' => $entityTypeId,
					'ENTITY_ID' => $entityId,
				],
			],
			'TYPE_CATEGORY_ID' => TimelineType::MODIFICATION,
			'AUTHOR_ID' => DocumentEntry::getDocumentCreatedEntryAuthorId($document->ID),
		], $document->ID);

		if($entryId > 0)
		{
			DocumentController::getInstance()->sendPullEventOnAdd(
				new ItemIdentifier($entityTypeId, $entityId),
				$entryId
			);
		}
	}
}