Имя: Пароль:
1C
1С v8
Вебхуки Битрикс и 1С
0 Скиурус
 
31.07.17
17:18
Всем привет, может кто-нибудь поделиться рабочим примером кода на 1С, который использует вебхук Bitrix24, в частности передает туда какие-нибудь параметры? С параметрами у меня затык. Делаю так:

Команда = "task.item.getdata";
Ресурс = "rest/" + Пользователь + "/" + Токен + "/" + Команда;
Запрос = Новый HTTPЗапрос(Строка);    
мПараметры = Новый Соответствие;
мПараметры.Вставить("TASKID", "1");
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, мПараметры);
ПараметрыСтрокой = ЗаписьJSON.Закрыть();
Ответ = мHTTPСоединение.ОтправитьДляОбработки(Запрос);


В ответ получаю:
{"error":"ERROR_CORE","error_description":"TASKS_ERROR_EXCEPTION_#256: Param #0 (taskId) for method ctaskitem::getdata() expected to be of type \u0022integer\u0022, but given something else.; 256\/TE\/WRONG_ARGUMENTS\u003Cbr\u003E"}

Запросы без параметров, например, task.item.list, отрабатывают нормально.
1 Cardee
 
31.07.17
17:35
Не силен в этом, но тут написано, что нужен integer. А вы даете строку.
2 Cardee
 
31.07.17
17:37
Скорее всего надо так написать:
мПараметры.Вставить("TASKID", 1);
3 Скиурус
 
01.08.17
09:41
Нет, увы, дело не в этом. На самом деле пробовал и с кавычками и без

Команда = "task.item.getdata";
Ресурс = "rest/" + Пользователь + "/" + Токен + "/" + Команда;
Запрос = Новый HTTPЗапрос(Строка);    
мПараметры = Новый Соответствие;
мПараметры.Вставить("TASKID", 1);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, мПараметры);
ПараметрыСтрокой = ЗаписьJSON.Закрыть();        Запрос.УстановитьТелоИзСтроки(ПараметрыСтрокой);
Ответ = мHTTPСоединение.ОтправитьДляОбработки(Запрос);


Та же самая ошибка
{"error":"ERROR_CORE","error_description":"TASKS_ERROR_EXCEPTION_#256; Param #0 (taskId) for method ctaskitem::getdata() expected to be of type \u0022integer\u0022, but given something else.; 256\/TE\/WRONG_ARGUMENTS\u003Cbr\u003E"}
4 Numerus Mikhail
 
01.08.17
09:46
(3) попробуй так:

Команда = "task.item.getdata/";
5 Скиурус
 
01.08.17
09:48
(4) То же самое :(

Вообще странно, неужели никто никогда из 1С это не делал
6 VS-1976
 
01.08.17
09:52
7 VS-1976
 
01.08.17
10:02
Судя по всему формат даты там такой:
2013-05-13T16:06:06+03:00
8 Юрий Лазаренко
 
01.08.17
10:10
taskId это ж массив вроде

мПараметры = Новый Соответствие;
Массив = Новый Массив;
Массив.Добавить(1);
мПараметры.Вставить("TASKID", Массив);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, мПараметры);
ПараметрыСтрокой = ЗаписьJSON.Закрыть();
9 Скиурус
 
01.08.17
11:56
В общем все оказалось сложнее. Документация битрикса нагло врет. Работает вот такой код:

Команда = "task.item.getdata";
Ресурс = "rest/" + Пользователь + "/" + Токен + "/" + Команда;
Запрос = Новый HTTPЗапрос(Строка);    
ПараметрыСтрокой = """0""=1";
Запрос.УстановитьТелоИзСтроки(ПараметрыСтрокой);
Ответ = мHTTPСоединение.ОтправитьДляОбработки(Запрос);


То есть это не JSON, параметры называются "0", "1" и т.д. (можно без кавычек и вообще любое название). Слеши в имени команды не обязательны. Работает и POST и GET.