• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/cml2.php
  • Класс: CUserCMLImport
  • Вызов: CUserCMLImport::GetPropertyByXML_ID
function GetPropertyByXML_ID($XML_ID, $arData = null)
{
	if (!$this->arPropertiesCache[$XML_ID])
	{
		$dbRes = CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'USER', 'XML_ID' => $XML_ID));
		while ($arRes = $dbRes->Fetch())
		{
			$this->arPropertiesCache[$arRes['XML_ID']] = $arRes['FIELD_NAME'];
		}
	}

	if (null != $arData)
	{
		if (!$this->arPropertiesCache[$XML_ID])
		{
			$bAdd = true;
			$arFields = array(
				'ENTITY_ID' => 'USER',
				'FIELD_NAME' => $this->CalcPropertyFieldName($XML_ID),
				'USER_TYPE_ID' => 'string',
				'XML_ID' => $XML_ID,
				'MULTIPLE' => 'N',
				'MANDATORY' => 'N',
				'SHOW_FILTER' => 'I',
				'SHOW_IN_LIST' => 'Y',
				'EDIT_IN_LIST' => 'Y',
				'IS_SEARCHABLE' => 'Y',
				'SETTINGS' => array('ROWS' => 1),
			);
		}
		else
		{
			$bAdd = false;
			$arFields = array();
		}

		$arFields['EDIT_FORM_LABEL'] = $arFields['LIST_COLUMN_LABEL'] = $arFields['LIST_FILTER_LABEL'] = array('ru' => $arData['NAME']);

		$ob = new CUserTypeEntity();

		if ($bAdd)
		{
			$this->arPropertiesCache[$XML_ID] = $ob->Add($arFields);
		}
		else
		{
			$ob->Update($this->arPropertiesCache[$XML_ID], $arFields);
		}
	}

	return $this->arPropertiesCache[$XML_ID];
}