tinkyyy
@tinkyyy
Study

Как удалить элемент множественного поля Email в Bitrix24?

Есть задача: Написать скрипт, который будет удалять определëнную почту в поле Email у контакта.

Все email'ы можно получить через класс FieldMultiTable. Если вызвать у него метод delete, то Email удалится, но если позже вбить email, который удалили в поиск контакта, то этот контакт будет показываться, хотя email уже был удалён.

Как удалить элемент правильно, чтобы он не показывался через поиск?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Работать с таблицей значений мультиполей для записи/изменения или удаления напрямую нельзя.

Используйте методы CCrmLead или CCrmContact.

Например для контакта (взято отсюда):
$contactFields = [
    "FM"       => [
        "PHONE" => [
            // Телефон с ID 3567 будет изменен
            "3567" => [
                "VALUE"      => '+78889996644',
                "VALUE_TYPE" => "WORK",
            ],
            // Телефон в ID 1234 будет удален
            "1234" => [
                "VALUE"      => '',
                "VALUE_TYPE" => "HOME",
            ]
        ],
    ],
];

$contactEntity = new \CCrmContact(false);

$isUpdateSuccess = $contactEntity->Update($contactId);


А вот как раз 3567 и 1234 вы можете получить либо через GetList той же сущности, либо через FieldMultiTable.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы