@sevnet
Системный аналитик, бизнес-консультант

Как записать адрес Контакта Битрикс 24?

Пытаюсь контакту добавить только адрес в реквизиты, нашел класс "\Bitrix\Crm\EntityRequisite();", нашел метод "add", перечитал 1000 раз уже весь код этой функции класса, ни как не могу понять почему, у меня не добавляется адрес(((
Если использовать функцию "update", предварительно записав любое значение в реквизит и сослаться на его ID - всё прекрасно работает, тут же всегда возвращается "0", причем в самой функции класса "add" перед записью адреса в реквизит вызывается другая функция другого класса:
$result = RequisiteTable::add($fields);
        $id = $result->isSuccess() ? (int)$result->getId() : 0;
        if ($id > 0)
        {... //запись адреса в БД

Которая должна создавать сам инстанс реквизита, как я понимаю (но могу быть и неправ), а потом на ID этого реквизита дописывает адрес. А она мне всегда возвращает "0", и дальше ничего ен происходит(((
В классе "RequisiteTable", метода "add" - нету, но сам этот класс наследуется от "class RequisiteTable extends Entity\DataManager" другого класса.
Бьюсь уже неделю, перечитал все связанные классы ни как не могу понять чего не хватает(
CModule::IncludeModule("crm");
$arRQAddr['6'] = [ //1 - Физический адрес, 6 -Юридический адрес
        'ADDRESS_1' => 'ул. Семашко, д.1',
        'ADDRESS_2' => '',
        'POSTAL_CODE' => '355029',
        'PROVINCE' => 'Ставропольский край',
        'CITY' => 'город Ставрополь',
        'COUNTRY' => "Россия"
    ];
    $fields =
        [
	 'ENTITY_TYPE_ID' => '3',
	 'ENTITY_ID' => '144333',
         'ADDRESS_ONLY' => "Y",
         'RQ_ADDR' => $arRQAddr,
        ];

    $requisite = new \Bitrix\Crm\EntityRequisite();
    $res = $requisite->add($fields);
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@sevnet Автор вопроса
Системный аналитик, бизнес-консультант
Кароче, методом тыка разобрался, всё таки даже если надо добавить только адрес, всё равно надо передавать в массиве поле "NAME", как минимум, правда, если передать только его, потом в реквизиты не зайти, ругается, что не определён шаблон реквизитов, так что его тоже надо передавать, в итоге вот так заработало:

CModule::IncludeModule("crm");
$arRQAddr['6'] = [ //1 - Физический адрес, 6 -Юридический адрес
        'ADDRESS_1' => 'ул. Семашко, д.1',
        'ADDRESS_2' => '',
        'POSTAL_CODE' => '355029',
        'PROVINCE' => 'Ставропольский край',
        'CITY' => 'город Ставрополь',
        'COUNTRY' => "Россия"
    ];
    $fields =
        [
            'PRESET_ID' => 1,
            'NAME' => 'Организация',
            'ACTIVE' => 'Y',
            'ENTITY_TYPE_ID' => '3',
            'ENTITY_ID' => '144333',
            'ADDRESS_ONLY' => "Y",
            'RQ_ADDR' => $arRQAddr,
        ];

    $requisite = new \Bitrix\Crm\EntityRequisite();
    $res = $requisite->add($fields);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы