• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/restservice.php
  • Класс: BitrixBizprocRestService
  • Вызов: RestService::upsertAppPlacement
static function upsertAppPlacement(int $appId, string $code,  string $handler)
{
	$filter = [
		'=APP_ID' => $appId,
		'=ADDITIONAL' => $code,
		'=PLACEMENT' => static::PLACEMENT_ACTIVITY_PROPERTIES_DIALOG,
	];

	$dbRes = PlacementTable::getList(array(
		'filter' => $filter
	));

	$placementHandler = $dbRes->fetch();

	if ($placementHandler)
	{
		$result = PlacementTable::update($placementHandler['ID'], ['PLACEMENT_HANDLER' => $handler]);
	}
	else
	{
		$placementBind = array(
			'APP_ID' => $appId,
			'ADDITIONAL' => $code,
			'PLACEMENT' => static::PLACEMENT_ACTIVITY_PROPERTIES_DIALOG,
			'PLACEMENT_HANDLER' => $handler,
		);

		$result = PlacementTable::add($placementBind);
	}

	if(!$result->isSuccess())
	{
		$errorMessage = $result->getErrorMessages();
		throw new RestException(
			'Unable to set placement handler: '.implode(', ', $errorMessage),
			RestException::ERROR_CORE
		);
	}
}