← К документации

CRM

Реквизиты CRM

Владелец реквизита, шаблон полей и создание через REST.

REST подходит для облака и коробки с доступным API. PHP-классы CRM относятся только к коробке.

Компания и реквизит — разные записи

У реквизита свой ID. В полях ENTITY_TYPE_ID и ENTITY_ID указаны тип и ID владельца — компании или контакта. PRESET_ID выбирает шаблон реквизитов; число 2 не является универсальным шаблоном для всех порталов.

Нужный шаблон найдите через crm.requisite.preset.list. Состав полей зависит от страны и шаблона. Банковские данные хранятся отдельно и ссылаются уже на ID реквизита.

Добавление реквизита компании

Пример для приложения с подключённым BX24.js. Замените 123 на ID компании, 7 — на ID её шаблона реквизитов. В примере создаётся запись без вымышленных налоговых номеров.

BX24.init(function () {
    BX24.callMethod('crm.requisite.add', {
        fields: {
            ENTITY_TYPE_ID: 4,
            ENTITY_ID: 123,
            PRESET_ID: 7,
            NAME: 'Основные реквизиты',
            ACTIVE: 'Y'
        }
    }, function (result) {
        if (result.error()) {
            console.error(result.error());
            return;
        }
        console.log('ID реквизита:', result.data());
    });
});

Поля RQ_* сопоставляйте с выбранным шаблоном. Сохранённое поле, отсутствующее в шаблоне, может не отображаться в форме.

Изменение и удаление

Для изменения используется crm.requisite.update с ID самого реквизита и массивом fields. Удаление выполняет crm.requisite.delete. Перед ним проверьте, не используется ли запись в документах и платёжных данных; совпадение названия не делает две записи взаимозаменяемыми.

В коробке есть класс EntityRequisite. Успех его изменяющего метода нельзя проверять приведением объекта к bool, а ID — приведением результата к int. Проверяйте контракт метода своей версии и его ошибки. REST-пример выше не требует обращения к внутренним PHP-классам.

Поиск организации по ИНН

Заполнение реквизитов по ИНН — обращение к отдельному сервису, а не свойство таблицы реквизитов. Доступность зависит от страны, сервиса и условий портала. Нельзя обещать такой поиск для любой коробки только по наличию класса Socialservices\Properties\Client.

Источники