• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
  • Класс: CIBlockCMLExport
  • Вызов: CIBlockCMLExport::GetSectionXML_ID
function GetSectionXML_ID($IBLOCK_ID, $SECTION_ID, $XML_ID = false)
{
	if($XML_ID === false)
	{
		$rsSection = CIBlockSection::GetList(array(), array("IBLOCK_ID"=>$IBLOCK_ID, "ID"=>$SECTION_ID), false, array('ID', 'XML_ID'));
		if($arSection = $rsSection->Fetch())
		{
			$XML_ID = $arSection["XML_ID"];
		}
		unset($rsSection);
	}
	if($XML_ID == '')
	{
		$XML_ID = $SECTION_ID;
		$obSection = new CIBlockSection;
		$rsSection = $obSection->GetList(array(), array("IBLOCK_ID"=>$IBLOCK_ID, "EXTERNAL_ID"=>$XML_ID), false, array('ID'));
		while($rsSection->Fetch())
		{
			$XML_ID = md5(uniqid(mt_rand(), true));
			$rsSection = $obSection->GetList(array(), array("IBLOCK_ID"=>$IBLOCK_ID, "EXTERNAL_ID"=>$XML_ID), false, array('ID'));
		}
		$obSection->Update($SECTION_ID, array("XML_ID" => $XML_ID), false, false);
	}
	return $XML_ID;
}