• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/fields/manager.php
  • Класс: BitrixSalesCenterFieldsManager
  • Вызов: Manager::getUrlWithParameters
public function getUrlWithParameters(Page $page, array $additionalParams = []): string
{
	$urlParameters = [];
	$parameters = $page->getParams();
	if (!empty($this->ids) && !empty($parameters))
	{
		foreach($parameters as $parameter)
		{
			$value = $this->getValue($parameter['FIELD']);
			if ($value)
			{
				$urlParameters[mb_strtolower($parameter['FIELD'])] = $value;
			}
		}
	}

	// add properties for webform link to handle it on openlines side
	if (
		isset($additionalParams['USER_CODE'], $additionalParams['EVENT_POSTFIX'])
		&& $page->isWebform()
		&& class_exists('BitrixCrmWebFormEmbedSign')
	)
	{
		$sign = new Sign();
		$sign->setProperty('eventNamePostfix', $additionalParams['EVENT_POSTFIX']);
		$sign->setProperty('openlinesCode', $additionalParams['USER_CODE']);
		foreach ($this->ids as $entityName => $entityId)
		{
			$entityType = CCrmOwnerType::ResolveID($entityName);
			$entityId = (int)$entityId;
			if ($entityId > 0 && $entityType > 0)
			{
				$sign->addEntity($entityType, $entityId);
			}
		}
		$urlParameters[$sign::uriDataParameterName] = $sign->pack();
	}

	$uri = new Uri($page->getUrl());
	$uri->addParams($urlParameters);

	return $uri->getLocator();
}