Имя: Пароль:
1C
 
Заголовок в HTTP запросе (amoCRM)
0 Kirich1983
 
13.03.19
19:50
Здравствуйте. Нужно из amoCRM получить все сделки которые изменены позже определенной даты.
На сайте https://www.amocrm.ru/developers/content/api/leads смотрю пример:
/* Вы также можете передать дополнительный HTTP-заголовок IF-MODIFIED-SINCE, в котором указывается дата в формате D, d M Y
H:i:s. При передаче этого заголовка будут возвращены сделки, изменённые позже этой даты. */

curl_setopt($curl,CURLOPT_HTTPHEADER,array('IF-MODIFIED-SINCE: Mon, 01 Aug 2013 07:07:23'));

Делаю в 1с:
Заголовки = Новый Соответствие;                                
ЗначениеЗаголовка = "Fri, 01 Mar 2019 12:00:00";
Заголовки.Вставить("IF-MODIFIED-SINCE", ЗначениеЗаголовка);
HTTPЗапрос = Новый HTTPЗапрос("/private/api/v2/json/leads/list?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);

Запрос возвращает все сделки которые есть.

Подскажите.
1 Сияющий в темноте
 
13.03.19
20:44
Я бы поднял на php временный сервак и посмотрел бы,что шлет курл и что шлет 1с.
2 Kirich1983
 
13.03.19
20:52
(1) В этом я не селен.
3 Сияющий в темноте
 
13.03.19
21:11
тогда в тестовой базе подними http сервис и на нем смотри.
насколько я помню,1с любит перекодировки символов делать,как ей хочется.
4 Fram
 
13.03.19
21:22
Формат даты просто пи..ц! Они разработчиков на помойках находят что ли?
5 Ёпрст
 
13.03.19
22:24
(0) там в примере время еще UTC:

curl_setopt($curl,CURLOPT_HTTPHEADER,array('IF-MODIFIED-SINCE: Mon, 01 Aug 2017 07:07:23 UTC'));
6 Ёпрст
 
13.03.19
22:25
+зы Заголовок должен быть передан в часовом поясе UTC.
7 Kirich1983
 
13.03.19
22:28
(6) Если смотреть ниже код пример, то там без UTC. Пробовал и так и сяк
https://ibb.co/X2zz4sz
8 Ёпрст
 
13.03.19
22:37
(7) самим курлом работает ?
Если да, то скачай Fiddler и посмотри, чего летит при курле и чего летит из 1с-ины.
9 Ёпрст
 
13.03.19
22:38
в плане самого запроса и заголовка
10 Fram
 
14.03.19
07:49
(7) попробуй просто ради прикола более классические форматы даты вроде yyyy-mm-dd без времени или со временем.
11 Сергиус
 
14.03.19
08:23
(0)'IF-MODIFIED-SINCE: Mon, 01 Aug 2013 07:07:23'

Спасибо, что не кирилицей прописью задавать надо..)

P.s. Может какое-то XML представление задавать надо?
12 MM
 
14.03.19
09:14
13 Ёпрст
 
14.03.19
10:56
(12) а че там ? Автор тоже самое и устанавливает в заголовок
14 Ёпрст
 
14.03.19
10:58
во, вот видать в чем собака порылась:
If-Modified-Since can only be used with a GET or HEAD.
автор ты потом как свой запрос посылаешь ? как post поди ?
15 Ёпрст
 
14.03.19
10:59
хотя не..
надо филлером сымотреть
16 Kirich1983
 
14.03.19
11:00
(14) GET Запрос
17 Ёпрст
 
14.03.19
11:19
(16) филлером смотрел хоть ?
18 Kirich1983
 
14.03.19
11:33
(17) Я не знаю как это делать)
19 ДенисЧ
 
14.03.19
11:46
(18) гугле фидлер не пробовал смотреть? Там не сложно...
20 Kirich1983
 
14.03.19
12:01
(19) Попробую.
21 Kirich1983
 
14.03.19
12:02
(17) филллер в поиске только уколы нашел))
22 ДенисЧ
 
14.03.19
12:06
(21) https://www.telerik.com/fiddler
Наслаждайся
23 trad
 
14.03.19
12:13
(0) в документации нигде /list нету
24 Kirich1983
 
14.03.19
12:34
(23) Так тоже самое
HTTPЗапрос = Новый HTTPЗапрос("/api/v2/leads?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);
25 Сияющий в темноте
 
14.03.19
13:05
(4) формат даты стандартный для web,просто,люди привыкли,что дата пишется красиво,а тут кака то хрень.

возможно,что 1с не знает такого заголовка и ставит перед ним или решетку или что то еще.

автор бы версию платформы написал,можно было бы глянуть.
(есть подозрение,что 1с не анализируя строку заворачивает ее в utf7)
26 Kirich1983
 
14.03.19
13:26
(25) 1С:Предприятие 8.3 (8.3.14.1565)
27 Fram
 
14.03.19
17:58
(25) такой формат даты приемлем в качестве вывода информации, но требоват ьтакой формат для ввода это за гранью добра и зла. тем более, что оно не работает, если верит ТС
28 Fram
 
14.03.19
18:00
(26) ты (10) попробовал?
29 Fram
 
14.03.19
18:07
А вообще, если прочитать инструкцию у метода есть параметры для задачи ТС

filter/date_create/     Выбрать сделки по дате создания (нужно передавать массив с параметрами from, to)
filter/date_modify/     Выбрать сделки по дате изменения (нужно передавать массив с параметрами from, to)

Правда инструкция через одно место написано, как всегда. Что, бл.., значит "массив с параметрами"?!!
30 Fram
 
14.03.19
18:10
(29) ни примера, ни описания формата даты.. лучше вообще не писать инструкции, чем вот так вот
31 Kirich1983
 
14.03.19
18:17
(29) В этом примере нужно указать дату начала и дату окончания и тогда Сделки у которых дата изменения входит в данный интервал попадут в выборку.
32 Fram
 
14.03.19
18:19
(31) и?.. то есть задача "изменены позже определенной даты" не решаема с помощью них по твоему?
33 Kirich1983
 
14.03.19
18:22
(32) Думаю решаема, если Дата изменения сделки меняется при любом изменении, а не по какому-либо условию.
34 Fram
 
14.03.19
18:24
(33) ???
35 Вафель
 
14.03.19
18:27
формально код на 1с корректный
36 Вафель
 
14.03.19
18:27
а если керл запустить то отрабатывает?
37 Kirich1983
 
14.03.19
18:28
(34) Попробую с этими параметрами.
38 Fram
 
14.03.19
18:29
(37) Только пример у тех поддержки попроси сначала. Хотя, если нравится в гадалку играть, то можно не спрашивать
39 Kirich1983
 
15.03.19
10:47
Всем спасибо за помощь, я был не прав и невнимателен! Когда я получал массив данных за два дня, в этом массиве было 500 сущностей. Я предположил, что это возвращаются все Сделки. Сегодня товарищ сказал, что у  этой канторы за два дня может поменять 2000 сделок. Проверил период за несколько часов действительно вернул 77 сущностей. Вот рабочий код:

Заголовки = Новый Соответствие;
Заголовки.Вставить("IF-MODIFIED-SINCE", "Fri, 15 Mar 2019 01:00:00 UTC");
HTTPЗапрос = Новый HTTPЗапрос("/private/api/v2/json/leads/list?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);
40 Fram
 
16.03.19
00:10
(29) То есть отправив запрос из (0) ты ожидал получить всего несколько записей. А когда получил очень много, не разбираясь в датах  возвращённых записей, ты решил что фильтр по дате не сработал?.. бедный заказчик! Ещё и нам мозг вынес
41 Сергиус
 
16.03.19
00:51
(40)Бывает)