|
Работа с bitrix rest api | ☑ | ||
---|---|---|---|---|
0
Nyarlathotep
30.01.19
✎
14:39
|
Всем привет!
Никто не работал случайно с Битрикс rest api? Нужно из 1с http запросом получить список сделок из Битрикс 24. Использую вот этот метод - https://dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_list.php. Нужно получить список сделок с определенным значением поля "DATE_MODIFY". В их статье пример для их фреймворка на js, там все понятно. Но как задать этот фильтр, если я делаю прямой http запрос? В каком формате передать дату? Сделал вот так - "rest/crm.deal.list?auth=МойAccessToken&"DATE_MODIFY">=28.01.2019 0:00:00&"DATE_MODIFY"<=28.01.2019 23:59:59". Нифига, все равно возвращает мне сделки с датой модификации за 29-е число. Техподдрержка их молчит уже второй день, и инфы такой нигде нету. |
|||
1
PR
30.01.19
✎
14:52
|
(0) Гражданин, какое еще >=?
И зачем врать про нигде нету? https://wonderland.v8.1c.ru/search/index.php?tags=OData |
|||
2
Nyarlathotep
30.01.19
✎
14:56
|
(1) Ты хоть тему то читал, чудо в перьях?
|
|||
3
Nyarlathotep
30.01.19
✎
15:05
|
(0) Посмотревши, что возвращает мне Битрикс, отправил ему дату в том же формате, в котором он возвращает, вот так
rest/crm.deal.list?auth=МойAccessToken&"DATE_MODIFY">=2019-01-28Т00:00:00&"DATE_MODIFY"<=2019-01-28Т23:59:59, тоже самое... |
|||
4
PR
30.01.19
✎
15:10
|
А, Битрикс же, тогда пардоньте
|
|||
5
Nyarlathotep
30.01.19
✎
15:11
|
(4) Пардоним.
|
|||
6
Маша с уралмаша
30.01.19
✎
15:12
|
(4) в этот раз совсем уж жидко
|
|||
7
PR
30.01.19
✎
15:17
|
(6) Что, Миша, неудачно сходил по нужде и тут же решил сообщить об этом на форуме да еще в тематической ветке?
Совсем ты не бережешь ники |
|||
8
PR
30.01.19
✎
15:23
|
(5) Может все-таки попробовать тогда нативные рестовские сравнения, ну то есть Lt Le Gt Ge Eq Ne
|
|||
9
Nyarlathotep
30.01.19
✎
15:27
|
(8) Сделал вот так, не помогло
rest/crm.deal.list?auth=МойAccessToken&filter[]={">=DATE_MODIFY":"2019-01-28"}&filter[]={"<=DATE_MODIFY":"2019-01-29"} |
|||
10
Garikk
30.01.19
✎
15:31
|
не сталкивался с битриксом, но вообще это точно не так делается как вы пробуете
(хотя от битрикса что угодно ожидать можно |
|||
11
PR
30.01.19
✎
15:33
|
(9) И где у тебя Lt Le Gt Ge Eq Ne?
И для начала попробуй с чем-нить попроще, с реквизитом типа число или строка, там точно не будет проблем с форматом даты |
|||
12
Nyarlathotep
30.01.19
✎
15:33
|
(10) А как по вашему? Можете какой-нибудь пример привести, любой?
|
|||
13
Garikk
30.01.19
✎
15:33
|
(10) нельзя использовать "><=" в get параметрах, {">=DATE_MODIFY":"2019-01-28"} -- это вообще дичь какаято честно говоря
|
|||
14
Garikk
30.01.19
✎
15:35
|
обычно постфиксы к параметрам добавляют типа eq вместо ==, ge вместо <
типа DATE_MODIFY_ge=2019-01-28 --- дата больше чем == не фак что это так в вашем случае, но на правду больше похоже |
|||
15
PR
30.01.19
✎
15:36
|
(13) Это видимо Битрикс потом заменяет на всякие Lt Le Gt Ge Eq Ne
|
|||
16
eklmn
гуру
30.01.19
✎
15:39
|
(11) зачем гадать, когда есть документация? Чел просто не знает основ работы битрикса и что-то хочет получить. непонятно что ему понятно, если даже в доке надо передавать массив параметров
|
|||
17
Nyarlathotep
30.01.19
✎
15:39
|
(14) Ну, если посмотреть вот сюда http://catalog.mista.ru/public/574117/, тут товарищ пишет просто равно, в строке
СтрПараметров = "fields[NAME]=" + Имя + "&fields[SECOND_NAME]=" + Отчество + "&fields[LAST_NAME]=" + Фамилия + ... |
|||
18
Nyarlathotep
30.01.19
✎
15:39
|
(16) Ты тоже тему не читал?
|
|||
19
eklmn
гуру
30.01.19
✎
15:39
|
(13)(15) вам как 1снэгам пример с 1са
http://catalog.mista.ru/public/574117/ |
|||
20
Nyarlathotep
30.01.19
✎
15:40
|
(19) Без комментариев...
|
|||
21
yfylhjkjy
30.01.19
✎
15:42
|
crm.invoice.list
order[ID]=ASC&filter[>DATE_UPDATE]=2016-01-23T9:31:54&filter[<DATE_UPDATE]=2018-01-23T9:31:54 |
|||
22
eklmn
гуру
30.01.19
✎
15:49
|
(20) что без комментариев? ты код не в состоянии прочитать?
|
|||
23
Nyarlathotep
30.01.19
✎
15:56
|
(21) Сделал вот так filter[>DATE_MODIFY]=2019-01-29Т00:00:00&filter[<DATE_MODIFY]=2019-01-29Т23:59:59
В ответ вот это: {"result":[],"total":0,"time":{"start":1548852819.7938,"finish":1548852819.8978,"duration":0.10399103164673,"processing":0.053222894668579,"date_start":"2019-01-30T15:53:39+03:00","date_finish":"2019-01-30T15:53:39+03:00"}} Я так понимаю, оно ничего не нашло, но данные с такой датой модификации 2019-01-29 там есть... Что я сделал не правильно? |
|||
24
Nyarlathotep
30.01.19
✎
15:57
|
(21) Такой полный запрос получился rest/crm.deal.list?auth=МойAccessToken&filter[>DATE_MODIFY]=2019-01-29Т00:00:00&filter[<DATE_MODIFY]=2019-01-29Т23:59:59
|
|||
25
Nyarlathotep
30.01.19
✎
16:45
|
(21) filter[>DATE_MODIFY]=2019-01-30&filter[<DATE_MODIFY]=2019-01-31
А вот так фильтрует правильно, если без времени. Выходит, у меня какой-то косяк с заданием времени? Что не так? |
|||
26
Nyarlathotep
30.01.19
✎
17:15
|
(25) Попробовал двоеточия передать urlecode, вот так filter[>DATE_MODIFY]=2019-01-30Т00%3A00%3A00&filter[<DATE_MODIFY]=2019-01-31Т23%3A59%3A59
Тоже не работает. |
|||
27
Nyarlathotep
30.01.19
✎
17:16
|
(25) Без времени конечно тоже норм, мне нужно за 1 день, но хотелось все же разобраться...
|
|||
28
Nyarlathotep
31.01.19
✎
12:47
|
ап.
|
|||
29
eklmn
гуру
31.01.19
✎
14:16
|
[<DATE_MODIFY]=2019-01-29 23:59:59
|
|||
30
Nyarlathotep
31.01.19
✎
17:33
|
(29) Нет, братишка, так фильтр вообще не работает.
|
|||
31
VS-1976
31.01.19
✎
18:02
|
OData это формат M$... битрикс или не битрикс всё должно быть одинаково. Смотри как составить запрос в OData
|
|||
32
Nyarlathotep
31.01.19
✎
18:03
|
(21) Видимо, я вчера где-то ошибся с написанием запроса, сегодня сделал еще раз - все работает, как ты написал. Спасибо, братишка, ты просто GOD, реально затащил.
вот такой рабочий фильтр получился, с датой и временем filter[>DATE_MODIFY]=2019-01-31T14:00:00&filter[<DATE_MODIFY]=2019-01-31T17:59:59 |
|||
33
Nyarlathotep
19.02.19
✎
17:13
|
В продолжении темы:
Как передать для фильтра массив значений? Предположим, я делаю запрос на crm.deal.list с таким фильтром для получения одной сделки, у которой ID = 1: filter[ID]=1 но мне нужно получить сделки с ID 1, 2 и 3. Как мне передать этот массив значений в параметре? |
|||
34
Nyarlathotep
19.02.19
✎
18:04
|
(33)
Оказывается, вот так: filter[ID][0]=1493&filter[ID][1]=1447 Сам спросил, сам ответил, называется... |
|||
35
Nyarlathotep
21.02.19
✎
17:00
|
Следующий раунд:
Теперь нужно получить все возможные значения пользовательского поля. Предположим, у меня есть пользовательское поле Подразделение, у него есть несколько предопределенных значений для выбора. Мне нужно все эти значения получить (ID и Value)? Документацию смотрел, там про это ничего нет. Это возможно вообще? |
|||
36
Woold
21.02.19
✎
17:37
|
(35) касательно начального запроса (мб на будущее пригодится) - когда я тянул таблички из битрикс для написание запроса использовал метод php http_build_query - простенький код в любом онлайн компиляторе, по типу для параметров auth ORDER FILTER PARAMS запрос будет следующим
"<?php // Пример для работы с php // Получение GET-запроса на выборку данных. $appParams = array( "auth" => '92006f4ae0c55d400f1e6e09428af64a', "ORDER" => array("DEADLINE" => "desc"), "FILTER" => array(">ID" => 1), "PARAMS" => array('NAV_PARAMS' => array("nPageSize" => 2, 'iNumPage' => 2)), ); print(http_build_query($appParams));; ?>" результатом работы будет строка параметров "auth=92006f4ae0c55d400f1e6e09428af64a&ORDER%5BDEADLINE%5D=desc&FILTER%5B%3EID%5D=1&PARAMS%5BNAV_PARAMS%5D%5BnPageSize%5D=2&PARAMS%5BNAV_PARAMS%5D%5BiNumPage%5D=2", которая прекрасно кушается битриксом ну а с подразделением возможны варианты - если используются только предопределенные значения и их мало - проще захардкодить (вернет идшник вроде) - в любом случае, посмотрите в отладке, можно разобрать самостоятельно, если их много - то попробовал бы вытащить через функцию GetList |
|||
37
Nyarlathotep
22.02.19
✎
14:38
|
(36) вот так сделал
crm.deal.userfield.get, ID для этого метода можно получить через crm.deal.userfield.list с фильтром по имени поля. |
|||
38
Nyarlathotep
01.03.19
✎
12:31
|
Следующий раунд:
В Битрикс 24 у компании и контакта есть поле Реквизиты, где можно указать паспортные данные, банковские реквизиты, адресные сведения и т.п. (см. скриншот https://drive.google.com/file/d/1BjoVXCWEHy-blXDlezaBAKdc-ecTBSLw/view?usp=sharing). Как можно получить значения этих полей для конкретного контакта или компании, например, по ID, с помощью rest api? Смотрел официальную документацию от Битрикс тут https://training.bitrix24.com/rest_help/, ничего про это не нашел. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |