[ "CNT"], "filter" => [ '>SERVICE_TYPE' => 0 ], 'runtime' => [ new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)') ] ]); $topicData = $res->fetch(); $result["count"] = (int)$topicData['CNT']; } $filter = [ '>SERVICE_TYPE' => 0 ]; if ($result["lastId"] > 0) { $filter[" ["TOPIC_ID", "CNT"], "filter" => $filter, 'runtime' => [ new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)') ], "group" => ["TOPIC_ID"], "limit" => self::TOPIC_LIMIT, "order" => ["TOPIC_ID" => "DESC"] ]); while($topicData = $res->fetch()) { $topic = \Bitrix\Forum\EO_Topic::wakeUp($topicData["TOPIC_ID"]); $topic->setPostsService($topicData["CNT"]); $topic->save(); $lastId = $topicData["TOPIC_ID"]; } if ($lastId > 0) { $result["lastId"] = $lastId; } else { return self::finishExecution(); } return self::CONTINUE_EXECUTION; } protected static function finishExecution() { Main\Config\Option::delete("forum", ["name" => "TopicServiceCounterStepper"]); return self::FINISH_EXECUTION; } } ?>