• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/queuemanager.php
  • Класс: BitrixImOpenLinesQueueManager
  • Вызов: QueueManager::getStructureDepartments
static function getStructureDepartments(): array
{
	if(
		empty(self::$structureDepartments) &&
		Loader::includeModule('iblock')
	)
	{
		$departmentIblockId = self::getIdIblockStructure();

		if($departmentIblockId > 0)
		{
			$raw = CIBlockSection::GetList(
				['left_margin'=>'asc', 'SORT'=>'ASC'],
				['ACTIVE'=>'Y', 'IBLOCK_ID'=>$departmentIblockId],
				false,
				['ID', 'NAME', 'DEPTH_LEVEL', 'UF_HEAD', 'IBLOCK_SECTION_ID']
			);

			while($row = $raw->GetNext(true, false))
			{
				self::$structureDepartments[$row['ID']] = [
					'id' => (int)$row['ID'],
					'name' => (string)$row['NAME'],
					'depthLevel' => (int)$row['DEPTH_LEVEL'],
					'headUserId' => (int)$row['UF_HEAD'],
					'parent' => (int)$row['IBLOCK_SECTION_ID'],
				];
			}
		}
	}

	return self::$structureDepartments;
}