Как получить реквизиты/адрес в CRM в Битрикс24

Сегодня я расскажу как работать с реквизитами компании в CRM Битрикс24.

В 16.х версии Битрикса24 в модуле CRM адреса компании и контактов начали храниться в реквизитах.

Bitrix
Блок с адресом в Битрикс24

Предания гласят, что в ранних версиях Битрикса24 <16.х адреса хранились в карточке компании: фактический и юридические адреса. Их можно было легко вывести с помощью метода CCrmCompany::GetByID($companyId), который возвращал такой массив

Сейчас адреса перенесены в реквизиты и методом CCrmCompany::GetByID($companyId) уже нельзя делать выборку адресов. Как видите в массиве все по нулям.

Как же получить реквизиты компании?

Для этого нужен класс \Bitrix\Crm\EntityRequisite().

Пример для компании:

Создаем экземпляр обьекта и через метод getList делаем выборку. Про фильтрацию поговорим подробнее.

  • «ENTITY_ID» — ид сущности. В нашем случае ид компании, который равен 1. Сущности могут быть разными. Какими?
  • За это отвечает ENTITY_TYPE_ID. Откуда взялась цифра 4? Это означает, что мы ищем тип «Компания». Со всеми типами можно познаскомиться в классе

     

То есть предыдущий пример мы могли записать как

Такая запись более читабельна и предпочтительней. Идем дальше…


Запись $reqData = $rs->fetchAll(); может вернуть не одну строку, так как в компанию могут быть добавлены разные виды реквизитов. Например, «Организация», «ИП», «Физ лицо» и свои собственные. Эти шаблоны вы можете редактировать в настройках→шаблоны реквизитов.

Шаблоны реквизитов в Битрикс24

Например, вы хотите получить реквизиты «ИП» определенной компании. Для этот в фильтр нужно добавить параметр «PRESET_ID».

«PRESET_ID» вы можете посмотреть при редактировании шаблонов реквизитов:

Битрикс

или в таблице b_crm_preset. Для «ИП» оно равно 2.

Так реквизиты  мы получили, но массиве ($row) нет адреса(ов). Чтобы получить адрес:

Метод Bitrix\Crm\EntityRequisite::getAddresses принимает ИД реквизита, на выходе отдает массив с адресами.

Как видите каждый тип адреса хранится под своим номером. 1 — Фактический, 4 — адрес регистрации 6 — юридический, 9 — Адрес бенефициара

Я пока не нашел почему фактическому адресу отдается цифра 1, а юридическому 6. Если у кого то есть информация по этому поводу, поделитесь в комментариях.

UPD: Посмотреть константы адресов можно в классе \Bitrix\Crm\EntityAddress

Ну что ж, сегодня мы приоткрыли завесу в мир реквизитов Битрикс24. Пойду дальше копать картошку ядро…. 🙂