Работа механизма

В настоящий момент поддержка универсального API не включена для всех сущностей.

Новый API полностью поддерживается для:

  • смарт-процессов,
  • счетов,
  • коммерческих предложений,
  • документов (подсистема подписи).

Опциональная поддержка (зависит от настроек):

  • лиды,
  • сделки,
  • контакты,
  • компании.

Команда Битрикс24 надеется что переход пройдет незаметно. Весь существующий код должен продолжать работать без изменений. Пожалуйста, если вы обнаружили какую-то несовместимость в работе старого и нового API, свяжитесь с технической поддержкой.

Как узнать включено ли?

Проверить, включено ли новое API, можно только через php-код. Для проверки можно использовать как через специальные классы настроек:

use \Bitrix\Crm\Settings;
use \Bitrix\Main\Loader;

Loader::requireModule('crm');

var_dump([
    'deal' => Settings\DealSettings::getCurrent()->isFactoryEnabled(),
    'lead' => Settings\LeadSettings::getCurrent()->isFactoryEnabled(),
    'contact' => Settings\ContactSettings::getCurrent()->isFactoryEnabled(),
    'company => Settings\CompanySettings::getCurrent()->isFactoryEnabled(),
]);

Так и через объекты сущностей:

use \Bitrix\Main\Loader;

Loader::requireModule('crm');

var_dump([
    'deal' => ( new \CCrmDeal() )->isUseOperation(),
    'lead' => ( new \CCrmLead() )->isUseOperation(),
    'contact' => ( new \CCrmContact() )->isUseOperation(),
    'company' => ( new \CCrmCompany() )->isUseOperation(),
]);

Пример результата (когда использование выключено):

array(4) {
  ["deal"] => bool(false)
  ["lead"] => bool(false)
  ["contact"] => bool(false)
  ["company"] => bool(false)
}

Как включить?

Включить механизм можно так же двумя способами: через код и через браузер.

Для включения через код, необходимо через механизм настроек перевести флаг в положение true:

\Bitrix\Main\Loader::requireModule('crm');

\Bitrix\Crm\Settings\DealSettings::getCurrent()->setFactoryEnabled(true);

Аналогично можно сделать для других сущностей - достаточно вместо DealSettings использовать LeadSettings, ContactSettings и CompanySettings соответственно.

Для включения через браузер достаточно просто перейти в раздел CRM и добавить ?enableFactory=Y.

ВАЖНО! Включить новую настройку может любой пользователь с правами на доступ в CRM!

Отключение

Отключение механизма производится аналогичным подключением, с единственной разницей - необходимо передавать false в php-коде и N (вместо Y) в адресной строке.

Если вы отменяете переход на универсальное API из-за ошибок связанных с отказом в работоспособности ваших обработчиков или другого кода - обязательно свяжитесь с технической поддержкой для описания произошедшего!