Александр Мерзляков,CCrmContact::GetByID, ровно как и GetList не возвращают множественные поля, такие как вебсайт, email и телефон. Это можно сделать только через CCrmFieldMulti.
Если он не возвращает результата, то есть 3 варианта:
1) У контакта нет поля с таким типом (например у него есть мобильный, но нет рабочего номера, который вы пытаетесь достать)
2) У Вас PHP ниже 5.4
3) Вы неправильно скопировали код
Повторюсь: Специально для Вас, Я еще раз протестировал код.
У меня есть контакт с ID:1 и у него есть заполненная рабочая почта.
Вот код (он отличается только статичным ID контакта и выводом на экран):
Код |
---|
$iContact = 1;
if ( \Bitrix\Main\Loader::IncludeModule('crm') && !empty($iContact) )
{
$arFilter = [
'ENTITY_ID' => 'CONTACT',
'ELEMENT_ID' => $iContact,
'TYPE_ID' => 'EMAIL',
'VALUE_TYPE' => 'WORK',
];
$arPhone = \CCrmFieldMulti::GetListEx([],$arFilter,false,['nTopCount'=>1],['VALUE'])->fetch();
if ( !empty($arPhone) )
{
var_dump($arPhone['VALUE']);
}
} |