• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/update/entity/lastactivityfields.php
  • Класс: Bitrix\Crm\Update\Entity\LastActivityFields
  • Вызов: LastActivityFields::getRowsToProcess
private function getRowsToProcess(Factory $factory, ?int $lastId): Collection
{
	$query = $factory->getDataClass()::query();

	$select = [
		Item::FIELD_NAME_ID,
		$factory->getEntityFieldNameByMap(Item::FIELD_NAME_CREATED_TIME),
		$factory->getEntityFieldNameByMap(Item::FIELD_NAME_CREATED_BY),
	];

	if ($factory->isFieldExists(Item::FIELD_NAME_LAST_ACTIVITY_TIME))
	{
		$select[] = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_LAST_ACTIVITY_TIME);
	}
	if ($factory->isFieldExists(Item::FIELD_NAME_LAST_ACTIVITY_BY))
	{
		$select[] = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_LAST_ACTIVITY_BY);
	}

	$query
		->setSelect($select)
		->setOrder([
			Item::FIELD_NAME_ID => 'ASC',
		])
		->setLimit(self::getSingleEntityStepLimit())
	;

	if (!is_null($lastId))
	{
		$query->where(Item::FIELD_NAME_ID, '>', $lastId);
	}

	return $query->exec()->fetchCollection();
}