powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Битрикс24
5 сообщений из 5, страница 1 из 1
Вопрос по Битрикс24
    #40002190
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся со странным поведением, а ТП тупит и не отвечает.
Возник такой вопрос.
Есть скрипт, который создает или обновляет в CRM список компаний.
У компании есть поле телефона. Данное поле является множественным.
Это поле я обновляю с помощью метода crm.company.update (или crm.company.add), передавая в параметре FIELDS следующую структуру (массив массивов):
Код: javascript
1.
"PHONE": [{"VALUE":$phone, "VALUE_TYPE":"WORK"}]


То есть в PHONE передается массив из одного элемента.
Я считал, что тем самым я перезаписываю данное множественное поле.
Однако получилось, что поле не перезаписывается, а дополняется, то есть старые номера не удаляются, только добавляются новые.
Видимо нужно вначале очистить множественное поле, а затем его заполнять. Но в документации REST API я не нашел, как это сделать.
Вопрос в ТП я задал, но вот уже второй день он остается без ответа (на коммерческом тарифе).
...
Рейтинг: 0 / 0
Вопрос по Битрикс24
    #40002196
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
название метода crm.company.add как бы намекает.
...
Рейтинг: 0 / 0
Вопрос по Битрикс24
    #40002199
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На что?
У меня вопрос не с компаниями, а с телефонами.
Например у компании также может быть множество контактов.
И есть отдельный метод crm.company.contact.items.delete, который очищает список контактов компании.
Но отдельного метода для очистки множественного поля я не нашел.
...
Рейтинг: 0 / 0
Вопрос по Битрикс24
    #40009104
Togglesun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где есть хорошие курсы по Битрикс?
...
Рейтинг: 0 / 0
Вопрос по Битрикс24
    #40010947
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кому пригодится.
Если в поле телефона указывать только VALUE, то номера будут всегда добавляться.
Чтобы изменить или удалить существующие номера, нужно дополнительно указать ID.
То есть PHONE это коллекция. Нужно считать всю коллекцию. для новых записей указать значения без ID, для изменяемых записей указать ID и значения, для удаляемых записей указать ID без значений.
Можно использовать такую вспомогательную функцию:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function make_field_contact($rec, $section, $value, $type)
{
        $res = [];
        $found = null;
        if (isset($rec) && array_key_exists($section, $rec) && is_array($rec[$section]))
        {
                foreach ($rec[$section] as $item)
                {
                        if (($item['VALUE'] == $value) && !$found) {
                                $res[] = ['ID'=>$item['ID'], 'VALUE'=>$value, 'VALUE_TYPE'=>$type];
                                $found = true;
                        } else {
                                $res[] = ['ID'=>$item['ID']];
                        }
                }
        }
        if (!$found) $res[] = ['VALUE'=>$value, 'VALUE_TYPE'=>$type];
        return $res;
}
...
$item['PHONE'] = make_field_contact($res['result'][0], 'PHONE', '79876543210', 'WORK');



Аналогично с EMAIL и прочими множественными полями.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Битрикс24
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]