• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/rest/restservice.php
  • Класс: BitrixListsRestRestService
  • Вызов: RestService::getElement
static function getElement(array $params, $n, CRestServer $server)
{
	$param = new Param($params);
	$params = $param->getParams();

	$iblock = new Iblock($param);
	if (!$iblock->isExist())
	{
		self::throwError($iblock->getErrors(), "Iblock not found", Iblock::ERROR_IBLOCK_NOT_FOUND);
	}

	global $USER;
	$rightParam = new RightParam($param);
	$rightParam->setUser($USER);
	$rightParam->setEntityId(Utils::getElementId($param->getParams()));

	if (!CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
	{
		throw new AccessException('Available only on extended plans');
	}

	$elementRight = new ElementRight($rightParam);
	$param->setParam(["CAN_FULL_EDIT" => ($elementRight->canFullEdit() ? "Y" : "N")]);

	$right = new Right($rightParam, $elementRight);
	$right->checkPermission(ElementRight::READ);
	if ($right->hasErrors())
	{
		self::throwError($right->getErrors());
	}

	$element = new Element($param);
	if (is_array($params["FILTER"]))
	{
		list($availableFields, $listCustomFields) = $element->getAvailableFields();
		$element->resultSanitizeFilter = self::getSanitizeFilter(
			$params["FILTER"], $availableFields, $listCustomFields);
	}
	list ($elements, $queryObject) = $element->get(self::getNavData($n));
	if ($elements)
	{
		return self::setNavData(array_values($elements), $queryObject);
	}
	else
	{
		return [];
	}
}