Заметки
Почему limit=100 не увеличивает страницу crm.deal.list
У crm.deal.list размер страницы — 50 записей. Добавление limit=100 в URL его не увеличивает: такого параметра у метода нет.
При прямых HTTP-запросах передавайте в start значение next из предыдущего ответа. Не вычисляйте следующий шаг по количеству полученных элементов. Когда next отсутствует, обход закончен.
В браузерном приложении с уже инициализированным BX24.js страницы можно обойти так:
BX24.callMethod('crm.deal.list', {
order: { ID: 'ASC' },
select: ['ID', 'TITLE']
}, function (result) {
if (result.error()) {
console.error(result.error());
return;
}
for (const deal of result.data()) {
console.log(deal.ID, deal.TITLE);
}
if (result.more()) {
result.next();
}
}); В примере записи обрабатываются по мере получения. Если нужен один массив, есть пример накопления результата в Promise. Использовать собранный массив нужно после последней страницы.
start: -1 в поддерживающих его методах отключает подсчёт общего количества. Он не превращает ответ в неограниченный список. Для выгрузки по растущему ID это отдельный алгоритм: сортировка по ID, фильтр больше последнего обработанного ID и последовательные запросы.
Развитие crm.deal.list остановлено; для новой интеграции используйте crm.item.list с entityTypeId: 2. У него также есть постраничная выдача.
Документация: crm.deal.list; Выгрузка больших объёмов.