• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/trackedobjectmanager.php
  • Класс: BitrixDiskTrackedObjectManager
  • Вызов: TrackedObjectManager::processPush
protected function processPush($user, File $object, AttachedObject $attachedObject = null): bool
{
	$userId = User::resolveUserId($user);
	if (!$userId)
	{
		return false;
	}

	if (!DiskDocumentDocumentHandler::isEditable($object->getExtension()))
	{
		return false;
	}

	$alreadyExists = DiskInternalsTrackedObjectTable::query()
		->setSelect(['ID'])
		->where('USER_ID', $userId)
		->where('REAL_OBJECT_ID', $object->getRealObjectId())
		->fetch()
	;

	if (!empty($alreadyExists['ID']))
	{
		$this->refresh($object);
	}
	else
	{
		DiskInternalsTrackedObjectTable::add([
				'USER_ID' => $userId,
				'OBJECT_ID' => $object->getId(),
				'REAL_OBJECT_ID' => $object->getRealObjectId(),
				'ATTACHED_OBJECT_ID' => $attachedObject? $attachedObject->getId() : null,
		]);
	}

	return true;
}