• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/document.php
  • Класс: BitrixDocumentGeneratorDocument
  • Вызов: Document::getValue
public function getValue($name)
{
	if(isset($this->values[$name]))
	{
		$value = $this->values[$name];
	}
	elseif(isset($this->fields[$name]['VALUE']))
	{
		$value = $this->fields[$name]['VALUE'];
	}
	else
	{
		$value = $this->getProviderValue($name);
	}

	$value = $this->resolveValue($value);

	if($value && !empty($this->fields[$name]['PROVIDER']) && isset($this->fields[$name]['PROVIDER_NAME']))
	{
		/** @var DataProvider $dataProvider */
		$dataProvider = DataProviderManager::getInstance()->createDataProvider($this->fields[$name], $value);
		if($dataProvider && $dataProvider->isLoaded())
		{
			if($this->isCheckAccess && !DataProviderManager::getInstance()->checkDataProviderAccess($dataProvider))
			{
				$value = null;
			}
			else
			{
				$value = $dataProvider->getValue($this->fields[$name]['PROVIDER_NAME']);
			}
		}
	}

	// save found calculated value.
	$this->values[$name] = $value;

	// if this value has been overwritten - use it.
	$externalValues = $this->getExternalValues();
	if(
		isset($externalValues[$name]) &&
		$externalValues[$name] != $this->values[$name] &&
		(
			!is_array($this->values[$name]) && $externalValues[$name] != htmlspecialcharsbx($this->values[$name])
		)
	)
	{
		$value = $externalValues[$name];
		$value = $this->resolveValue($value);
		$value = DataProviderManager::getInstance()->prepareValue($value, $this->fields[$name] ?? []);
	}

	return $value;
}