• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/rest.php
  • Класс: Bitrix\Crm\WebForm\Rest
  • Вызов: Rest::addFormResult
static function addFormResult($query, $nav = 0, \CRestServer $server)
{
	$formId = empty($query['FORM_ID']) ? null : $query['FORM_ID'];
	if (!$formId)
	{
		self::printErrors(["Parameter `FORM_ID` required."]);
	}
	if (!isset($query['FIELDS']) || !is_array($query['FIELDS']))
	{
		self::printErrors(["Wrong parameter `FIELDS`."]);
	}

	$form = new Form();
	if (!$form->load($formId))
	{
		self::printErrors(["Form not found."]);
	}
	if (!$form->isActive())
	{
		self::printErrors(["Form is not active."]);
	}

	$resultParameters = new ResultParameters($form);
	$resultParameters->addCallback(
		$resultParameters::EVENT_FIELDS_FILE,
		function ()
		{
			self::printErrors(['Field with type `file` in parameter `FIELDS` not implemented.'], RestException::ERROR_ARGUMENT);
		}
	);

	$resultParameters->setFields($query['FIELDS'])
		->setPresets((empty($query['PRESETS']) || !is_array($query['PRESETS'])) ? [] : $query['PRESETS'])
		->setFromUrl(empty($query['FROM_URL']) ? null : $query['FROM_URL']);

	if($form->hasErrors())
	{
		self::printErrors($form->getErrors());
	}

	$result = $form->addResult($resultParameters->getFieldsMap(), $resultParameters->toArray());
	if($result->hasErrors())
	{
		self::printErrors($result->getErrors());
	}

	return $result->getId();
}