Спасибо!. Дополню тогда тему ответом от Тех. Поддержки:
Адреса компании это часть сущности реквизит, в данном случае необходимо использовать апи сущности реквизитов для его изменения
Получить данные адреса (например контакта, в примере 9) по его ID можно так:
| Код |
|---|
Bitrix\Main\Loader::includeModule('crm');
$CONT_ID = 9;
$qw = new \Bitrix\Crm\EntityAddress;
$qw = $qw->getList(['filter' => ['ANCHOR_ID' => $CONT_ID, 'ANCHOR_TYPE_ID' => 3]]);
while ($arRt = $qw->Fetch())
{
var_dump($arRt);
}
|
Обновить адрес можно таким способом, используя данные полученные предыдущим методом:
| Код |
|---|
\Bitrix\Crm\EntityAddress::register(
CCrmOwnerType::Contact,
$ID,
EntityAddressType::Primary,
[
'ADDRESS_1' => $arFields['ADDRESS'],
'ADDRESS_2' => $arFields['ADDRESS_2'],
'CITY' => $arFields['ADDRESS_CITY'],
'POSTAL_CODE' => $arFields['ADDRESS_POSTAL_CODE'],
'REGION' => $arFields['ADDRESS_REGION'],
'PROVINCE' => $arFields['ADDRESS_PROVINCE'],
'COUNTRY' => $arFields['ADDRESS_COUNTRY'],
'COUNTRY_CODE' => $arFields['ADDRESS_COUNTRY_CODE'],
],
);
|
php api не документировано столько подробно, как rest api - фактически все методы располагаются напрямую в коде модулей. Указанные методы их файла /bitrix/modules/crm/lib/entityaddress.php
Про телефоны и почту используется код мульти полей отдельный:
| Код |
|---|
CModule::IncludeModule('crm');
$ID = 848;
$arFields = array(
"PHONE" => Array(
"111" => Array(
"VALUE" => "123456",
"VALUE_TYPE" => "WORK",
),
"112" => Array(
"VALUE" => "654321",
"VALUE_TYPE" => "WORK",
)
)
);
$CCrmFieldMulti = new CCrmFieldMulti();
$CCrmFieldMulti->SetFields('LEAD', $ID, $arFields);
|
/bitrix/modules/crm/classes/general/crm_field_multi.php