CCrmStatus::GetEntityTypes() - нужна таблица

Рейтинг: 2.6924  
Внедрено
Предложил Alexey Andreev 10.05.2012 11:20:15

CCrmStatus::GetEntityTypes() - нужна таблица

Метод возвращает массив $arEntityType = Array();, который нет возможности дополнить
Почему типы справочников в массиве, а их значения в таблице?
Рейтинг: 0  
Ответил Шеленков Евгений 11.05.2012 17:11:38
Алексей, вы верно подметили. Данный метод проектировался в таком виде, что бы в будущем заменить этот статический массив, на надстраиваемую таблицу в БД.
Но спрос на данный функционал слишком мал, и мы решили отложить эту задачу.

В следующем обновлении CRM 11.5.0, которое запланировано в этом месяце выйдет следующее решение.

Вы можете повесить свой обработчик на событие "crm", "OnGetEntityTypes" который расширит список своими значениями.

Приведу пример:

В файле: /bitrix/php_interface/init.php
вставляете следующий код:
function OnGetEntityTypes($ar) 
{ 
  $ar['TEST'] = Array('ID' => 'TEST', 'NAME' => 'NAME');

  return $ar;
} 
AddEventHandler("crm", "OnGetEntityTypes", "OnGetEntityTypes"); 
теперь при отработке функции CCrmStatus::GetEntityTypes()
Cmodule::IncludeModule("crm");
$ar = CCrmStatus::GetEntityTypes();
echo '<pre>'.print_r($ar,1).'</pre>';
Список справочников будет расширен.

Подробнее о событиях: https://dev.1c-bitrix.ru/api_help/main/functions/module/addeventhandler.php