Блог Горошко Андрея Bitrix24,PHP Добавить реквизит crm.requisite.add

Добавить реквизит crm.requisite.add

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Добавить реквизит crm.requisite.add». Вы узнаете экспертные методики работы с crm.requisite.add и научитесь избегать типичных ошибок начинающих разработчиков.

Добавить реквизит crm.requisite.add

> Scope: crm
>
> Кто может выполнять метод: любой пользователь

Метод добавляет новый реквизит.

Параметры метода

Название
тип
Описание
fields
object
Набор полей — объект вида {"поле": "значение"[, ...]} для добавления реквизита

Параметр fields

Название
тип
Описание
ENTITY_TYPE_ID
integer
Идентификатор типа родительской сущности.

Сейчас это может быть только:
— 3 — контакт
— 4 — компания

Идентификаторы всех типов сущностей CRM отдает метод crm.enum.ownertype

ENTITY_ID
integer
Идентификатор родительской сущности (контакта либо компании).

Идентификатор можно получить методом crm.company.list для компании и методом crm.contact.list для контакта

PRESET_ID
integer
Идентификатор шаблона реквизитов.

Идентификаторы шаблонов можно получить методом crm.requisite.preset.list

NAME*
string
Название реквизита
CODE
string
Символьный код реквизита
XML_ID
string
Внешний ключ, используется для операций обмена.

Идентификатор объекта внешней информационной базы.

Назначение поля может меняться конечным разработчиком

ORIGINATOR_ID
string
Идентификатор внешней информационной базы.

Назначение поля может меняться конечным разработчиком

ACTIVE
char
Признак активности.

Используются значения Y или N.

Сейчас поле фактически ни на что не влияет

ADDRESS_ONLY
char
Признак состояния, когда реквизит используется только для хранения адреса.

Используются значения Y или N. При значении Y реквизиты не показываются в карточке сущности, но отображается адрес

SORT
integer
Сортировка.

Порядок в списке реквизитов сущности, когда их несколько

RQ_NAME
string
ФИО
RQ_FIRST_NAME
string
Имя
RQ_LAST_NAME
string
Фамилия
RQ_SECOND_NAME
string
Отчество
RQ_COMPANY_ID
string
Идентификатор организации
RQ_COMPANY_NAME
string
Сокращенное наименование организации
RQ_COMPANY_FULL_NAME
string
Полное наименование организации
RQ_COMPANY_REG_DATE
string
Дата государственной регистрации
RQ_DIRECTOR
string
Генеральный директор
RQ_ACCOUNTANT
string
Главный бухгалтер
RQ_CEO_NAME
string
ФИО первого руководителя
RQ_CEO_WORK_POS
string
Должность первого руководителя
RQ_CONTACT
string
Контактное лицо
RQ_EMAIL
string
E-Mail
RQ_PHONE
string
Телефон
RQ_FAX
string
Факс
RQ_IDENT_TYPE
crm_status
Способ идентификации
RQ_IDENT_DOC
string
Вид документа
RQ_IDENT_DOC_SER
string
Серия
RQ_IDENT_DOC_NUM
string
Номер
RQ_IDENT_DOC_PERS_NUM
string
Личный номер
RQ_IDENT_DOC_DATE
string
Дата выдачи
RQ_IDENT_DOC_ISSUED_BY
string
Кем выдан
RQ_IDENT_DOC_DEP_CODE
string
Код подразделения
RQ_INN
string
ИНН
RQ_KPP
string
КПП
RQ_USRLE
string
Handelsregisternummer (для страны DE)
RQ_IFNS
string
ИФНС
RQ_OGRN
string
ОГРН
RQ_OGRNIP
string
ОГРНИП
RQ_OKPO
string
ОКПО
RQ_OKTMO
string
ОКТМО
RQ_OKVED
string
ОКВЭД
RQ_EDRPOU
string
ЄДРПОУ
RQ_DRFO
string
ДРФО
RQ_KBE
string
КБЕ
RQ_IIN
string
ИИН
RQ_BIN
string
БИН
RQ_ST_CERT_SER
string
Серия свидетельства о государственной регистрации
RQ_ST_CERT_NUM
string
Номер свидетельства о государственной регистрации
RQ_ST_CERT_DATE
string
Дата свидетельство о государственной регистрации
RQ_VAT_PAYER
char
Платник ПДВ (для страны UA).

Используются значения Y или N

RQ_VAT_ID
string
VAT ID (идентификационный номер (плательщика) НДС)
RQ_VAT_CERT_SER
string
Серия свидетельства по НДС
RQ_VAT_CERT_NUM
string
Номер свидетельства по НДС
RQ_VAT_CERT_DATE
string
Дата свидетельства по НДС
RQ_RESIDENCE_COUNTRY
string
Страна резидента
RQ_BASE_DOC
string
Основание действия
RQ_REGON
string
REGON (для страны PL)
RQ_KRS
string
KRS (для страны PL)
RQ_PESEL
string
PESEL (для страны PL)
RQ_LEGAL_FORM
string
Forme juridique (для страны FR)
RQ_SIRET
string
Numéro Siret (для страны FR)
RQ_SIREN
string
Numéro Siren (для страны FR)
RQ_CAPITAL
string
Capital social (для страны FR)
RQ_RCS
string
RCS (для страны FR)
RQ_CNPJ
string
CNPJ (для страны BR)
RQ_STATE_REG
string
Inscrição Estadual (IE) (для страны BR)
RQ_MNPL_REG
string
Inscrição Municipal (IM) (для страны BR)
RQ_CPF
string
CPF (для страны BR)
UF_CRM_…Пользовательские поля. Например, UF_CRM_1694526604.

У реквизитов может быть набор пользовательских полей с типами: string, boolean, double, datetime.

Добавить пользовательское поле реквизитов можно методом crm.requisite.userfield.add

При создании реквизита указываются только те поля с префиксом RQ_, которые есть в шаблоне реквизитов, привязанном к создаваемому реквизиту (смотрите поле PRESET_ID). Значения остальных полей будут сохранены, но не будут видны пользователю.

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"ENTITY_TYPE_ID":4,"ENTITY_ID":1,"PRESET_ID":1,"NAME":"Организация","ACTIVE":"Y","ADDRESS_ONLY":"N","SORT":500,"RQ_COMPANY_NAME":"ООО \"1С-БИТРИКС\"","RQ_COMPANY_FULL_NAME":"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"1С-БИТРИКС\"","RQ_COMPANY_REG_DATE":"06.04.2007","RQ_DIRECTOR":"РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ","RQ_INN":"7717586110","RQ_KPP":"770501001","RQ_OGRN":"5077746476209","UF_CRM_1707997209":"56","UF_CRM_1708012333":"Категория 1","XML_ID":"5e4641fd-1dd9-11e6-b2f2-005056c00008"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.requisite.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"ENTITY_TYPE_ID":4,"ENTITY_ID":1,"PRESET_ID":1,"NAME":"Организация","ACTIVE":"Y","ADDRESS_ONLY":"N","SORT":500,"RQ_COMPANY_NAME":"ООО \"1С-БИТРИКС\"","RQ_COMPANY_FULL_NAME":"ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"1С-БИТРИКС\"","RQ_COMPANY_REG_DATE":"06.04.2007","RQ_DIRECTOR":"РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ","RQ_INN":"7717586110","RQ_KPP":"770501001","RQ_OGRN":"5077746476209","UF_CRM_1707997209":"56","UF_CRM_1708012333":"Категория 1","XML_ID":"5e4641fd-1dd9-11e6-b2f2-005056c00008","auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.requisite.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"crm.requisite.add",
    		{
    			fields:
    			{
    				"ENTITY_TYPE_ID": 4,
    				"ENTITY_ID": 1,
    				"PRESET_ID": 1,
    				"NAME": "Организация",
    				"ACTIVE": "Y",
    				"ADDRESS_ONLY": "N",
    				"SORT": 500,
    				"RQ_COMPANY_NAME": "ООО \"1С-БИТРИКС\"",
    				"RQ_COMPANY_FULL_NAME": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"1С-БИТРИКС\"",
    				"RQ_COMPANY_REG_DATE": "06.04.2007",
    				"RQ_DIRECTOR": "РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ",
    				"RQ_INN": "7717586110",
    				"RQ_KPP": "770501001",
    				"RQ_OGRN": "5077746476209",
    				"UF_CRM_1707997209": "56",
    				"UF_CRM_1708012333": "Категория 1",
    				"XML_ID": "5e4641fd-1dd9-11e6-b2f2-005056c00008"
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info("Создан реквизит с ID " + result);
    }
    catch(error)
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.requisite.add',
                [
                    'fields' => [
                        'ENTITY_TYPE_ID'        => 4,
                        'ENTITY_ID'             => 1,
                        'PRESET_ID'             => 1,
                        'NAME'                  => 'Организация',
                        'ACTIVE'                => 'Y',
                        'ADDRESS_ONLY'          => 'N',
                        'SORT'                  => 500,
                        'RQ_COMPANY_NAME'       => 'ООО "1С-БИТРИКС"',
                        'RQ_COMPANY_FULL_NAME'  => 'ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "1С-БИТРИКС"',
                        'RQ_COMPANY_REG_DATE'   => '06.04.2007',
                        'RQ_DIRECTOR'           => 'РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ',
                        'RQ_INN'                => '7717586110',
                        'RQ_KPP'                => '770501001',
                        'RQ_OGRN'               => '5077746476209',
                        'UF_CRM_1707997209'     => '56',
                        'UF_CRM_1708012333'     => 'Категория 1',
                        'XML_ID'                => '5e4641fd-1dd9-11e6-b2f2-005056c00008',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Создан реквизит с ID ' . $result;
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error creating requisite: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "crm.requisite.add",
        {
            fields:
            {
                "ENTITY_TYPE_ID": 4,
                "ENTITY_ID": 1,
                "PRESET_ID": 1,
                "NAME": "Организация",
                "ACTIVE": "Y",
                "ADDRESS_ONLY": "N",
                "SORT": 500,
                "RQ_COMPANY_NAME": "ООО \"1С-БИТРИКС\"",
                "RQ_COMPANY_FULL_NAME": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"1С-БИТРИКС\"",
                "RQ_COMPANY_REG_DATE": "06.04.2007",
                "RQ_DIRECTOR": "РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ",
                "RQ_INN": "7717586110",
                "RQ_KPP": "770501001",
                "RQ_OGRN": "5077746476209",
                "UF_CRM_1707997209": "56",
                "UF_CRM_1708012333": "Категория 1",
                "XML_ID": "5e4641fd-1dd9-11e6-b2f2-005056c00008"
            }
        },
        function(result)
        {
            if(result.error())
                console.error(result.error());
            else
                console.info("Создан реквизит с ID " + result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.requisite.add',
        [
            'fields' => [
                "ENTITY_TYPE_ID" => 4,
                "ENTITY_ID" => 1,
                "PRESET_ID" => 1,
                "NAME" => "Организация",
                "ACTIVE" => "Y",
                "ADDRESS_ONLY" => "N",
                "SORT" => 500,
                "RQ_COMPANY_NAME" => "ООО \"1С-БИТРИКС\"",
                "RQ_COMPANY_FULL_NAME" => "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"1С-БИТРИКС\"",
                "RQ_COMPANY_REG_DATE" => "06.04.2007",
                "RQ_DIRECTOR" => "РЫЖИКОВ СЕРГЕЙ ВЛАДИМИРОВИЧ",
                "RQ_INN" => "7717586110",
                "RQ_KPP" => "770501001",
                "RQ_OGRN" => "5077746476209",
                "UF_CRM_1707997209" => "56",
                "UF_CRM_1708012333" => "Категория 1",
                "XML_ID" => "5e4641fd-1dd9-11e6-b2f2-005056c00008"
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Ответ в случае успеха

HTTP-статус: 200

{
    "result": 27,
    "time": {
        "start": 1716998748.040801,
        "finish": 1716998749.444508,
        "duration": 1.4037070274353027,
        "processing": 0.32904696464538574,
        "date_start": "2024-05-29T18:05:48+02:00",
        "date_finish": "2024-05-29T18:05:49+02:00",
        "operating": 0.32897305488586426
    }
}

Возвращаемые данные

Название
тип
Описание
result
integer
Идентификатор созданного реквизита
time
time
Информация о времени выполнения запроса

Ответ в случае ошибки

HTTP-статус: 400

{
    "error": "",
    "error_description": "ENTITY_TYPE_ID is not defined or invalid."
}

Возможные ошибки

КодТекст ошибкиОписание
Пустая строкаENTITY_TYPE_ID is not defined or invalid.Идентификатор типа родительской сущности не определён или имеет недопустимое значение
Пустая строкаENTITY_ID is not defined or invalid.Идентификатор родительской сущности не определён или имеет недопустимое значение
Пустая строкаPRESET_ID is not defined or invalid.Идентификатор шаблона реквизитов не определён или имеет недопустимое значение
Пустая строкаEntity not found.Не найдена сущность, для которой создаётся реквизит
Пустая строкаAccess denied.Недостаточно прав доступа для добавления реквизита
  • [](./index)
  • [](./crm-requisite-update)
  • [](./crm-requisite-get)
  • [](./crm-requisite-list)
  • [](./crm-requisite-delete)
  • [](./crm-requisite-fields)
  • [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-company-with-requisite)
  • [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-contact-with-requisite)
  • [](../../../../tutorials/crm/how-to-add-crm-objects/how-to-add-deal-with-choice-of-requisite)

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к crm.requisite.add, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Добавить реквизит crm.requisite.add».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить поля товара crm.product.fieldsПолучить поля товара crm.product.fields

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить поля товара crm.product.fields», проанализируем лучшие практики и

Как использовать CUser::Update() в 1С-Битрикс: пример кодаКак использовать CUser::Update() в 1С-Битрикс: пример кода

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать CUser::Update() в 1С-Битрикс: пример кода», проанализируем

Удалить группу свойств sale.propertygroup.deleteУдалить группу свойств sale.propertygroup.delete

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Удалить группу свойств sale.propertygroup.delete». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции. Удалить