• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/documentservice.php
  • Класс: CBPDocumentService
  • Вызов: CBPDocumentService::getFieldInputValue
public function getFieldInputValue($parameterDocumentType, $fieldType, $fieldName, $arRequest, &$arErrors)
{
	[$moduleId, $entity, $documentType] = CBPHelper::ParseDocumentId($parameterDocumentType);

	if ($moduleId)
	{
		CModule::IncludeModule($moduleId);
	}

	$arFieldType = FieldType::normalizeProperty($fieldType);
	if ((string) $arFieldType["Type"] == "")
		return "";

	if (is_array($fieldName))
	{
		$arFieldName = array("Form" => null, "Field" => null);
		foreach ($fieldName as $key => $val)
		{
			switch(mb_strtoupper($key))
			{
				case "FORM":
				case "0":
					$arFieldName["Form"] = $val;
					break;
				case "FIELD":
				case "1":
					$arFieldName["Field"] = $val;
					break;
			}
		}
	}
	else
	{
		$arFieldName = array("Form" => null, "Field" => $fieldName);
	}
	if ((string) $arFieldName["Field"] == "" || preg_match("#[^a-z0-9_[]]#i", $arFieldName["Field"]))
		return "";
	if ((string) $arFieldName["Form"] != "" && preg_match("#[^a-z0-9_]#i", $arFieldName["Form"]))
		return "";

	$fieldTypeObject = $this->getFieldTypeObject($parameterDocumentType, $arFieldType);
	if ($fieldTypeObject)
	{
		return $fieldTypeObject->extractValue($arFieldName, $arRequest, $arErrors);
	}

	if (class_exists($entity))
	{
		if (method_exists($entity, "GetFieldInputValue"))
			return call_user_func_array(array($entity, "GetFieldInputValue"), array($documentType, $arFieldType, $arFieldName, $arRequest, &$arErrors));

		if (method_exists($entity, "SetGUIFieldEdit"))
			return call_user_func_array(array($entity, "SetGUIFieldEdit"), array($documentType, $arFieldName["Field"], $arRequest, &$arErrors, $arFieldType));
	}

	return CBPHelper::GetFieldInputValue($parameterDocumentType, $arFieldType, $arFieldName, $arRequest, $arErrors);
}