Bitrix24 API NAV_PARAMS `task.elapseditem.getlist`
столкнулся со странной проблемой при работе с API Bitrix24 task.elapseditem.getlist:
import Bitrix from '@2bad/bitrix';
const bitrix = Bitrix(WEB_HOOK);
const {result: bitrixLimitTimes}: any = await bitrix.call('task.elapseditem.getlist' as any,
[
{'ID': 'desc'},
{
'>=CREATED_DATE': (new Date()).toDateString(),
},
{
NAV_PARAMS: { // постраничка
nPageSize: 2, // по 2 элемента на странице.
iNumPage: 2, // страница номер 2
},
},
] as any,
);
При запросе лимитированного количества данных через NAV_PARAMS {nPageSize: 2, iNumPage: 1}. Получаю 400 ошибку. В документации удалось найти следующий код от другого метода:
BX24.callMethod(
'task.item.list',
[
{ID : 'desc'}, // Сортировка по ID — по убыванию.
{ID: [1,2,3,4,5,6]}, // Фильтр
{
NAV_PARAMS: { // постраничка
nPageSize : 2, // по 2 элемента на странице.
iNumPage : 2 // страница номер 2
}
}
],
function(result)
{
console.info(result.data());
console.log(result);
}
);
Без пагинации всё работает.
Ответы (1 шт):
Оказывается, что при отправлении запроса в bitrix24 важна не просто последовательность, а также и полное наличие всех параметров, что странно при условии, что поддерживается передача параметров в виде JSON и при этом тот же параметр filter не являются обязательным, как и параметр select, но при этом при использовании params их нужно обязательно указать, особенно это странно на фоне того, что параметр TASKID, тоже является необязательным и без него всё работает отлично.
const {result: bitrixLimitTimes}: any = await bitrix.call('task.elapseditem.getlist' as any,
{
order: {
'ID': 'desc',
},
filter: (isSyncCurrentDay) ? {
'>=CREATED_DATE': (new Date()).toDateString(),
} : {'>ID': 1},
select: ['ID', 'TASK_ID', 'SECONDS', 'CREATED_DATE'],
params: {
NAV_PARAMS: { // постраничка
nPageSize: 2, // по 2 элемента на странице.
iNumPage: 2, // страница номер 2
},
},
},
);
Надеюсь, что ребята из Bitrix поправят свой "великолепный" API и выделят денег на архитектора.
