• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/storedocument.php
  • Класс: Bitrix\Crm\Activity\Provider\StoreDocument
  • Вызов: StoreDocument::internalAdd
static function internalAdd(int $dealId, $fields): ?int
{
	$deal = \CCrmDeal::GetByID($dealId, false);
	if (!$deal)
	{
		return null;
	}

	$authorId = $responsibleId = self::getResponsibleId($deal);
	$ownerTypeId = \CCrmOwnerType::Deal;
	$ownerId = $dealId;

	$startTime = new Type\DateTime();
	$endTime = $deadlineTime = self::getDeadlineTime();

	$fields =
		[
			'TYPE_ID' => \CCrmActivityType::Provider,
			'PROVIDER_ID' => self::PROVIDER_TYPE_DEFAULT,
			'IS_HANDLEABLE' => 'Y',
			'COMPLETED' => 'N',
			'STATUS' => \CCrmActivityStatus::Waiting,
			'RESPONSIBLE_ID' => $responsibleId,
			'PRIORITY' => \CCrmActivityPriority::Medium,
			'AUTHOR_ID' => $authorId,
			'START_TIME' => $startTime,
			'END_TIME' => $endTime,
			'DEADLINE' => $deadlineTime,
			'OWNER_ID' => $ownerId,
			'OWNER_TYPE_ID' => $ownerTypeId,
			'ASSOCIATED_ENTITY_ID' => $dealId,
		]
		+ $fields
	;

	$activityId = (int)\CCrmActivity::add($fields, false);
	return $activityId > 0 ? $activityId : null;
}