@sos1mple

Почему не обновляются значения списка в битрикс через REST API?

Добрый день.
Пытаюсь обновить значение UF списка. Надо вначале удалить все существующие значения, а потом добавить новые.
Код на python. Используется библиотека fastbitrix. Код віполняется без ошибок. Но значения списков в интерфейсе не меняются.
res = bx24.call('crm.deal.userfield.get', {'id': '223'})
elems = []
for elem in res['LIST']:
   elems.append({'ID': elem['ID'], 'DEL': 'Y'})
res = bx24.call('crm.deal.userfield.get', {'id': '223', 'LIST': elems})
cur.execute("""SELECT * from docs""")
rows = cur.fetchall()
elems = []
for r in rows:
    doc = r[0]
    elems.append({'VALUE': r[0]})
print(elems)    
res = bx24.call('crm.deal.userfield.update', {'id': '223', 'LIST': elems})

res = bx24.call('crm.deal.userfield.get', {'id': '225'})
elems = []
for elem in res['LIST']:
   elems.append({'ID': elem['ID'], 'DEL': 'Y'})
res = bx24.call('crm.deal.userfield.get', {'id': '225', 'LIST': elems})
cur.execute("""SELECT * from docs""")
rows = cur.fetchall()
elems = []
for r in rows:
    doc = r[0]
    elems.append({'VALUE': r[0]})

res = bx24.call('crm.deal.userfield.update', {'id': '225', 'LIST': elems})
  • Вопрос задан
  • 2857 просмотров
Решения вопроса 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
Вот и ошибка.

В поле `LIST` автор пытается отправить json структуру, в то время как битрикс ожидает HTTP параметры.
Таким образом его исходный запрос:
https://domain.bitrix24.ua/rest/321/apicode/crm.deal.userfield.update.json?ID=223&LIST=[{"id": "49", "DEL": "Y"}]


Должен выглядеть следующим образом:
https://domain.bitrix24.ua/rest/321/apicode/crm.deal.userfield.update.json?id=223&LIST[0][ID]=49&LIST[0][DEL]=Y


Либо, установить заголовок отправляемой информации в javascript и отравить json:
{
	"id": 223,
	"LIST": [{"id": "49", "DEL": "Y"}]
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BerLena
Андрей Николаев
Подскажите пожалуйта как через http запрос добавить пользовательское поле с типом "Список" и возможностью множественного выбора.
При отправке:
crm.lead.userfield.add?fields[FIELD_NAME]=ORIGIN&fields[ENTITY_ID]=CRM_LEAD&fields[EDIT_FORM_LABEL]=Новое поле&fields[LIST_COLUMN_LABEL]=Новое поле&fields[USER_TYPE_ID]=enumeration&fields[XML_ID]=ORIGIN&fields[SHOW_IN_LIST]=Y&fields[MULTIPLE]=Y&fields[EDIT_IN_LIST]=Y&fields[SHOW_FILTER]=E&fields[MANDATORY]=N&fields[SETTINGS][0][DISPLAY]=UI&fields[SETTINGS][0][LIST_HEIGHT]=1&fields[SETTINGS][0][SHOW_NO_VALUE]=Y&fields[LIST][0][VALUE]=Вариант1&fields[LIST][1][VALUE]=Вариант2


создаётся поле c "DISPLAY": "LIST" а не "DISPLAY": "UI". В чем может быть ошибка?
"result": {
        "ID": "272",
        "ENTITY_ID": "CRM_LEAD",
        "FIELD_NAME": "UF_CRM_ORIGIN",
        "USER_TYPE_ID": "enumeration",
        "XML_ID": "ORIGIN",
        "SORT": "100",
        "MULTIPLE": "Y",
        "MANDATORY": "N",
        "SHOW_FILTER": "N",
        "SHOW_IN_LIST": "Y",
        "EDIT_IN_LIST": "Y",
        "IS_SEARCHABLE": "N",
        "SETTINGS": {
            "DISPLAY": "LIST",
            "LIST_HEIGHT": 1,
            "CAPTION_NO_VALUE": "",
            "SHOW_NO_VALUE": "Y"
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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