Работа механизма
Table of Contents
В настоящий момент поддержка универсального 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 из-за ошибок связанных с отказом в работоспособности ваших обработчиков или другого кода - обязательно свяжитесь с технической поддержкой для описания произошедшего!