Rest API Битрикс24. Получение даты потраченных часов на задачу

1. Tailor_Made 07.10.20 23:14 Сейчас в теме
Здравствуйте. Пытаюсь с Битрикса получить затраченные часы на задачи, именно по дате записи времени, ибо задача может быть создана в прошлом месяце, а выполняют её теперь
Но не понимаю как в метод "task.elapseditem.getlist" передать фильтрацию по дате, ибо через &?filter выдает ошибку
Может кто-то сталкивался?
Найденные решения
4. malikov_pro 1323 08.10.20 13:23 Сейчас в теме
(3)
По внешнему виду: "?&Filter[>CREATED_DATE]=2020-05-05"
в https://bxapi.ru/src/?module_id=tasks&name=CTaskElapsedItem::getList
$filter = [] -это массив а вы передаете объект.
Возможно не прав, нужно дальше доку разбирать и тестировать.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. malikov_pro 1323 08.10.20 00:19 Сейчас в теме
"выдает ошибку" - уточните какую.
Если нужно что-то вытащить из битрикса, то использую свою наработку https://infostart.ru/1c/articles/1185983/. Разобраться в объектах Б24 и написать свой контроллер не сложно.
3. Tailor_Made 08.10.20 09:24 Сейчас в теме
(2)
При таком запросе:
https://*адрес*.bitrix24.ua/rest/1/*хук*/task.elapseditem.getlist?&Filter[>CREATED_DATE]=2020-05-05


Возвращается такая ошибка
{"error":"ERROR_CORE","error_description":"TASKS_ERROR_EXCEPTION_#256; 5f7eb0291a1e88.77357165: Param #1 (order) for method ctaskelapseditem::getlist() must not contain key \u0022\u003ECREATED_DATE\u0022.; 256\/TE\/WRONG_ARGUMENTS\u003Cbr\u003E"}

Просто не могу понять как правильно в этом методе передавать параметры, фильтры.
4. malikov_pro 1323 08.10.20 13:23 Сейчас в теме
(3)
По внешнему виду: "?&Filter[>CREATED_DATE]=2020-05-05"
в https://bxapi.ru/src/?module_id=tasks&name=CTaskElapsedItem::getList
$filter = [] -это массив а вы передаете объект.
Возможно не прав, нужно дальше доку разбирать и тестировать.
5. Tailor_Made 08.10.20 14:17 Сейчас в теме
(4)подскажите как средствами 1С в HTML запросе передать этот массив параметров
6. Aspire1C 866 16.11.20 09:38 Сейчас в теме
(5) Удалочь разобраться с методом?
7. Tailor_Made 16.11.20 10:50 Сейчас в теме
(6)Да, текст запроса выглядит примерно так:
"rest/8/***/"+Метод+"&order[TASK_ID]=asc&filter[>CREATED_DATE]="+ДатаНачала+"&filter[<CREATED_DATE]="+ДатаОкончания + SELECT


Метод = "task.elapseditem.getlist?";
SELECT= "&SELECT[]=CREATED_DATE&SELECT[]=ID&SELECT[]=TASK_ID&SELECT[]=USER_ID&SELECT[]=MINUTES";
8. Aspire1C 866 16.11.20 16:15 Сейчас в теме
(7) Спасибо, а можно ли как то по нескольким TASK_ID получить временные затраты? Именно по задачам.
16. Aspire1C 866 19.11.20 13:00 Сейчас в теме
(7) А можете написать полный формат даты со временем, чтоб нормально отрабатывало. А то у меня пока только по дате такого вида получается: Дата,"ДФ=dd.MM.yyyy"
17. Aspire1C 866 19.11.20 13:39 Сейчас в теме
(16) ТОже сам разобрался и работает так:
Нужный формат даты: 2018-08-01T00:00:00+03:00
И так как знаки ":" и "+" надо тоже заменить на %3A и %2B, то получается такой код:

ПараметрДатаСтрокой = СтрЗаменить(СтрЗаменить(Формат(ПараметрДата,"ДФ=yyyy-MM-dd") + "T" + Формат(ПараметрДата,"ДЛФ=T") + "+03:00",":","%3A"),"+","%2B");
anri99; Tailor_Made; +2 Ответить
18. Tailor_Made 19.11.20 15:20 Сейчас в теме
(17)круто! Спасибо, что написали. Многим будет полезным
23. novatrade 13.10.21 20:14 Сейчас в теме
(18)ЗаписатьДатуJSON(ТекущаяДата(),ФорматДатыJSON.ISO)
и будет Вам счастье
anri99; Tailor_Made; +2 Ответить
9. Tailor_Made 16.11.20 18:57 Сейчас в теме
(8)я делал так: сначала запрос по задачам, начиная с -2 месяца от даты начала( метод tasklist), грузил их в ТЗ и потом уже время дописывал
10. Aspire1C 866 17.11.20 09:12 Сейчас в теме
(9) Но Метод = "task.elapseditem.getlist" в качестве параметра TASK_ID может принимать только одно значение. В этом и вопрос. Можно как то сразу список затраченного времениполучить, не по полям фильтров (
ID - идентификатор комментария;
USER_ID - идентификатор пользователя, от имени которого была сделана запись о затраченном времени;
CREATED_DATE - дата создания записи;)
А по ID задачам. Их может быть и 2000. Спасибо
11. Aspire1C 866 18.11.20 16:36 Сейчас в теме
Нашел что все таки можно и по TASK_ID фильтровать. Главное большими буквами писать)
12. Tailor_Made 18.11.20 23:19 Сейчас в теме
(11)научились несколько задач в таск_ид передавать?
13. Aspire1C 866 18.11.20 23:47 Сейчас в теме
(12) Да, странно что в документации даже этого нету. А еще очень важен регистр как оказывается
14. Tailor_Made 18.11.20 23:48 Сейчас в теме
(13)напишите пример запроса правильного, думаю, многим будет полезен. Спасибо
15. Aspire1C 866 18.11.20 23:57 Сейчас в теме
(14) ORDER[ID]=asc&FILTER[TASK_ID][0]=359607&FILTER[TASK_ID][1]=359677&FILTER[TASK_ID][2]=359713&FILTER[TASK_ID][3]=359829&SELECT[0]=TASK_ID&SELECT[1]=USER_ID&SELECT[2]=CREATED_DATE&SELECT[3]=SECONDS&PARAMS[NAV_PARAMS][iNumPage]=1

Привел все параметры метода task.elapseditem.getlist
Регистр важен, как и порядок параметров.
Так же, если есть сравнения >= или <= знак "=" неоходимо заменить на %3D и тогда всё отлично отрабатывает, пример
Условие = СтрЗаменить(Условие, "=", "%3D");
nickstrelets; user1107052; Stas-ch; Tailor_Made; +4 Ответить
19. Stas-ch 35 24.12.20 00:49 Сейчас в теме
Спасибо за пример с PARAMS[NAV_PARAMS] - сам думал как его сделать.
А как узнать сколько страниц выдает результат?
т.е. до какого числа можно гнать [iNumPage]=хх
20. Stas-ch 35 24.12.20 01:37 Сейчас в теме
Сам себе отвечаю:
Если Результат.Получить("next") = Неопределено Тогда
Прервать;
КонецЕсли;
21. Tailor_Made 24.12.20 07:54 Сейчас в теме
(20)можно м так, я делал через total
22. Stas-ch 35 25.12.20 01:08 Сейчас в теме
(21) total возвращает общее количество записей. Какие вижу трудности:
1. Перед циклом этого значения еще нет - перед циклом надо отдельно вызывать метод для получения этого значения.
2. Необходимо делать пересчет на количество записей на странице, брать целое значение и прибавлять 1.
3. А если в total будет 0, то отдельное условие.
Может я чего намудрил и у вас все проще и красивее?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот