• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/update/entity/lastactivityfields.php
  • Класс: Bitrix\Crm\Update\Entity\LastActivityFields
  • Вызов: LastActivityFields::processRow
private function processRow(Factory $factory, EntityObject $row): void
{
	$identifier = new ItemIdentifier($factory->getEntityTypeId(), $row->getId());
	[$lastActivityTime, $lastActivityBy] = $this->monitor->calculateLastActivityInfo($identifier);

	$lastActivityTime ??= $row->get($factory->getEntityFieldNameByMap(Item::FIELD_NAME_CREATED_TIME));
	$lastActivityBy ??= $row->get($factory->getEntityFieldNameByMap(Item::FIELD_NAME_CREATED_BY));

	if ($factory->isFieldExists(Item::FIELD_NAME_LAST_ACTIVITY_TIME))
	{
		$row->set(
			$factory->getEntityFieldNameByMap(Item::FIELD_NAME_LAST_ACTIVITY_TIME),
			$lastActivityTime,
		);
	}

	if ($factory->isFieldExists(Item::FIELD_NAME_LAST_ACTIVITY_BY))
	{
		$row->set(
			$factory->getEntityFieldNameByMap(Item::FIELD_NAME_LAST_ACTIVITY_BY),
			$lastActivityBy,
		);
	}

	$row->save();
}