Answer the question
In order to leave comments, you need to log in
Bitrix CRM Get contact ID?
What is the method in the boxed version
of
Bitrix 24 to get the contact ID or how to filter from the general list of contacts if its full name is known in the
system
: ]=>
string(20) "Patronymic name"
["CONTACT_LAST_NAME"]=>
string(16) "Last name"
["CONTACT_FULL_NAME"]=>
string(29) "Full name"
["CONTACT_POST"]=>
string(0) ""
["CONTACT_ADDRESS"]=>
string(78) "Address"
Answer the question
In order to leave comments, you need to log in
There are at least 2 options (without direct queries to the database) how to do this:
1) High-level (always works). Backwards compatible method: CCrmContact::GetList ( bxapi.ru/src/?id=183244)
Application (based on the code described by Artem ):
/* @var array Список контактов */
$arContacts = array();
if ( \Bitrix\Main\Loader::IncludeModule('crm') )
{
/* @var array Сортировка полученного списка контактов */
$arOrder = array('ID' => 'DESC');
/* @var array Условия получаемого списка контактов */
$arFilter = array(
"NAME" => "Имя",
"LAST_NAME" => "Фамилия",
'CHECK_PERMISSIONS' => 'N' // Данный ключ необходим для того чтобы получить всех пользоватей,
// иначе, будет найден только если ответственным за него является тот,
// под кем запускается скрипт в битриксе
);
/* @var array Получаемые поля для списка контактов */
$arSelect = array(
'ID'
);
// NOTE: Запрашивайте только необходимые поля
$res = CCrmContact::GetList( $arOrder, $arFilter, $arSelect );
while( $arContact = $res->fetch() )
{
$arContacts[ $arContact['ID'] ] = $arContact['ID'];
}
}
// Тут в $arContacts либо пустой массив, либо массив с ID контактами, которые соответствуют условию поиска
use \Bitrix\Main\Loader;
use \Bitrix\Crm;
/* @var array Список контактов */
$arContacts = array();
if ( Loader::IncludeModule('crm') )
{
$resContacts = Crm\ContactTable::getList(array(
'select' => array('ID'),
'filter' => array(
"NAME" => "Имя",
"LAST_NAME" => "Фамилия",
),
'order' => array('ID' => 'DESC')
));
while( $arContact = $resContacts->fetch() )
{
$arContacts[ $arContact['ID'] ] = $arContact['ID'];
}
/*
Начиная с 17 версии (вроде бы), можно делать так:
foreach( $resContacts as $arContact)
{
$arContacts[ $arContact['ID'] ] = $arContact['ID'];
}
вместо while цикла
*/
}
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question