• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/document/valuecollection/base.php
  • Класс: Bitrix\Crm\Integration\BizProc\Document\ValueCollection\Base
  • Вызов: Base::loadFmValues
protected function loadFmValues(): void
{
	$multiFields = $this->getDocumentFieldMulti();
	foreach ($multiFields as $ar)
	{
		if (!isset($this->document[$ar['TYPE_ID']]))
		{
			$this->document[$ar['TYPE_ID']] = [];
		}
		$this->document[$ar['TYPE_ID']]['n0' . $ar['ID']] = [
			'VALUE' => $ar['VALUE'],
			'VALUE_TYPE' => $ar['VALUE_TYPE']
		];

		if (!isset($this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE']]))
		{
			$this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE']] = [];
		}
		$this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE']][] = $ar['VALUE'];

		if (!isset($this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE'] . "_PRINTABLE"]))
		{
			$this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE'] . "_PRINTABLE"] = "";
		}
		$this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE'] . "_PRINTABLE"] .=
			($this->document[$ar['TYPE_ID'] . "_" . $ar['VALUE_TYPE'] . "_PRINTABLE"] ? ", " : "") . $ar['VALUE']
		;

		if (!isset($this->document[$ar['TYPE_ID'] . "_PRINTABLE"]))
		{
			$this->document[$ar['TYPE_ID'] . "_PRINTABLE"] = "";
		}
		$this->document[$ar['TYPE_ID'] . "_PRINTABLE"] .=
			($this->document[$ar['TYPE_ID'] . "_PRINTABLE"] ? ", " : "") . $ar['VALUE']
		;
	}

	$multiFieldTypes = \CCrmFieldMulti::GetEntityTypeList();
	foreach ($multiFieldTypes as $typeId => $arFields)
	{
		if (!isset($this->document[$typeId]))
		{
			$this->document[$typeId] = [];
		}

		$printableFieldName = $typeId . '_PRINTABLE';
		if (!isset($this->document[$printableFieldName]))
		{
			$this->document[$printableFieldName] = '';
		}

		foreach ($arFields as $valueType => $valueName)
		{
			$fieldName = $typeId . '_' . $valueType;
			if (!isset($this->document[$fieldName]))
			{
				$this->document[$fieldName] = [''];
			}

			$printableFieldName = $fieldName . '_PRINTABLE';
			if (!isset($this->document[$printableFieldName]))
			{
				$this->document[$printableFieldName] = '';
			}
		}
	}
}