Здравствуйте. Пытаюсь с Битрикса получить затраченные часы на задачи, именно по дате записи времени, ибо задача может быть создана в прошлом месяце, а выполняют её теперь
Но не понимаю как в метод "task.elapseditem.getlist" передать фильтрацию по дате, ибо через &?filter выдает ошибку
Может кто-то сталкивался?
---
По внешнему виду: "?&Filter[>CREATED_DATE]=2020-05-05"
в https://bxapi.ru/src/?module_id=tasks&name=CTaskElapsedItem::getList
$filter = [] -это массив а вы передаете объект.
Возможно не прав, нужно дальше доку разбирать и тестировать.
---
"выдает ошибку" - уточните какую.
Если нужно что-то вытащить из битрикса, то использую свою наработку https://infostart.ru/1c/articles/1185983/. Разобраться в объектах Б24 и написать свой контроллер не сложно.
---
При таком запросе:
```1c
    https://*адрес*.bitrix24.ua/rest/1/*хук*/task.elapseditem.getlist?&Filter[>CREATED_DATE]=2020-05-05
```

Возвращается такая ошибка
```1c
    {"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"}
```

Просто не могу понять как правильно в этом методе передавать параметры, фильтры.
---
По внешнему виду: "?&Filter[>CREATED_DATE]=2020-05-05"
в https://bxapi.ru/src/?module_id=tasks&name=CTaskElapsedItem::getList
$filter = [] -это массив а вы передаете объект.
Возможно не прав, нужно дальше доку разбирать и тестировать.
---
подскажите как средствами 1С в HTML запросе передать этот массив параметров
---
Удалочь разобраться с методом?
---
Да, текст запроса выглядит примерно так:

```1c
    "rest/8/***/"+Метод+"ℴ[TASK_ID]=asc&filter[>CREATED_DATE]="+ДатаНачала+"&filter[<CREATED_DATE]="+ДатаОкончания + SELECT
```

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

ПараметрДатаСтрокой = СтрЗаменить(СтрЗаменить(Формат(ПараметрДата,"ДФ=yyyy-MM-dd") + "T" + Формат(ПараметрДата,"ДЛФ=T") + "+03:00",":","%3A"),"+","%2B");
---
круто! Спасибо, что написали. Многим будет полезным
---
ЗаписатьДатуJSON(ТекущаяДата(),ФорматДатыJSON.ISO)
и будет Вам счастье
---
я делал так: сначала запрос по задачам, начиная с -2 месяца от даты начала( метод tasklist), грузил их в ТЗ и потом уже время дописывал
---
Но Метод = "task.elapseditem.getlist" в качестве параметра TASK_ID может принимать только одно значение. В этом и вопрос. Можно как то сразу список затраченного времениполучить, не по полям фильтров (
ID - идентификатор комментария;
USER_ID - идентификатор пользователя, от имени которого была сделана запись о затраченном времени;
CREATED_DATE - дата создания записи;)
А по ID задачам. Их может быть и 2000. Спасибо
---
Нашел что все таки можно и по TASK_ID фильтровать. Главное большими буквами писать)
---
научились несколько задач в таск_ид передавать?
---
Да, странно что в документации даже этого нету. А еще очень важен регистр как оказывается
---
напишите пример запроса правильного, думаю, многим будет полезен. Спасибо
---
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");
---
Спасибо за пример с PARAMS[NAV_PARAMS] - сам думал как его сделать.
А как узнать сколько страниц выдает результат?
т.е. до какого числа можно гнать [iNumPage]=хх
---
Сам себе отвечаю:
Если Результат.Получить("next") = Неопределено Тогда
Прервать;
КонецЕсли;
---
можно м так, я делал через total
---
total возвращает общее количество записей. Какие вижу трудности:
1. Перед циклом этого значения еще нет - перед циклом надо отдельно вызывать метод для получения этого значения.
2. Необходимо делать пересчет на количество записей на странице, брать целое значение и прибавлять 1.
3. А если в total будет 0, то отдельное условие.
Может я чего намудрил и у вас все проще и красивее?