• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/Tools/Connectors/Notifications.php
  • Класс: BitrixImConnectorToolsConnectorsNotifications
  • Вызов: Notifications::addToLine
static function addToLine(int $lineId, string $scenarioCode): Result
{
	$result = new Result();

	$connectorOutput = new Output(Library::ID_NOTIFICATIONS_CONNECTOR, $lineId);
	$resultRegister = $connectorOutput->register([
		'LINE_ID' => $lineId,
		'SKIP_TOS' => true,
	]);
	$status = Status::getInstance(Library::ID_NOTIFICATIONS_CONNECTOR, $lineId);
	if (!$resultRegister->isSuccess())
	{
		return $result->addErrors($resultRegister->getErrors());
	}
	$scenarioEnableResult = Settings::setScenarioStatus($scenarioCode, true);
	if (!$scenarioEnableResult->isSuccess())
	{
		$connectorOutput->delete();
		return $result->addErrors($scenarioEnableResult->getErrors());
	}

	$status
		->setActive(true)
		->setConnection(true)
		->setRegister(true)
		->setData($resultRegister->getResult())
		->save()
	;

	Status::deleteLinesExcept(Library::ID_NOTIFICATIONS_CONNECTOR, $lineId);

	BitrixImConnectorInfoConnectors::updateInfoConnectors($lineId);
	if (Loader::includeModule('crm') && method_exists(BitrixCrmSiteButtonManager::class, 'updateScriptCacheWithLineId'))
	{
		BitrixCrmSiteButtonManager::updateScriptCacheWithLineId($lineId, true);
	}

	return $result;
}