Здравствуйте. Ранее я пытался сделать обработку для получения списка задач с Битрикс24 через метод tasks.task.list. Столкнулся с проблемой, т.к. за раз можно получить только 50 задач, а чтобы получить все задачи надо передать как-то параметр "start" и его в цикле увеличивать. К сожалению, из-за неопытности ответ не понял и не нашел решение. Может кто-то поможет, как на моём примере получить все задачи, а не только 50?

Как параметром передать статус? Или ID клиента? Буду очень благодарен
УТП 8.3

Вот сам код:

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    ssl = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(),
    Новый СертификатыУдостоверяющихЦентровWindows());

    Соединение = Новый HTTPСоединение(
    "***.bitrix24.ua",
    , // порт
    "***", // пользователь
    "***", // пароль
    , // прокси
    60, // таймаут в секундах
    ssl // защищенное HTTPS соединение
    );

    Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list");

    Ответ = Соединение.ОтправитьДляОбработки(Запрос);

    РезСтр = Ответ.ПолучитьТелоКакСтроку();

    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(РезСтр);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();

    ЭлементыСправочника = Новый Массив();
    Номер = 0;
    Для каждого Элемент из Результат.result.tasks Цикл

    НоваяСтрока = Розшифровка.Добавить();
    НоваяСтрока.Задание = Результат.result.tasks[Номер].title;
    НоваяСтрока.Исполнитель = Результат.result.tasks[Номер].responsible.name;
    НоваяСтрока.КоличествоЧасов = Результат.result.tasks[Номер].timeSpentInLogs;
    НоваяСтрока.КоличествоЧасов = НоваяСтрока.КоличествоЧасов / 3600;

    Номер = Номер +1;
    КонецЦикла

    КонецПроцедуры
```
---
Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list&start=50"); //вывод следующих 50 записей,
Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list&start=100");//выводит еще 50 записей начиная с 100

в отладчике посмотрите на структуру ответа, там должен быть параметр next, по нему определяйте нужно еще 1 цикл делать, или уже получены все данные
---
Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list&start=50"); //вывод следующих 50 записей,
Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list&start=100");//выводит еще 50 записей начиная с 100

в отладчике посмотрите на структуру ответа, там должен быть параметр next, по нему определяйте нужно еще 1 цикл делать, или уже получены все данные
---
а у меня к примеру 450 записей, то как построить цикл, чтобы он когда 50, 100, 150... увеличивал start на 50 и снова запрос делал? Я просто сам запрос не знаю как построить
---
```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    ssl = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(),
    Новый СертификатыУдостоверяющихЦентровWindows());

    Соединение = Новый HTTPСоединение(
    "***.bitrix24.ua",
    , // порт
    "***", // пользователь
    "***", // пароль
    , // прокси
    60, // таймаут в секундах
    ssl // защищенное HTTPS соединение
    );

    врВсеПолучено = Ложь;
    start = 0;
    врСчБага = 0;

    Пока НЕ врВсеПолучено Цикл
    Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list&start="+СокрЛП(Формат(start, "ЧЦ=10; ЧГ=0")));

    Ответ = Соединение.ОтправитьДляОбработки(Запрос);

    РезСтр = Ответ.ПолучитьТелоКакСтроку();

    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(РезСтр);
    Результат = ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();

    ЭлементыСправочника = Новый Массив();
    Номер = 0;
    Для каждого Элемент из Результат.result.tasks Цикл

    НоваяСтрока = Розшифровка.Добавить();
    НоваяСтрока.Задание = Результат.result.tasks[Номер].title;
    НоваяСтрока.Исполнитель = Результат.result.tasks[Номер].responsible.name;
    НоваяСтрока.КоличествоЧасов = Результат.result.tasks[Номер].timeSpentInLogs;
    НоваяСтрока.КоличествоЧасов = НоваяСтрока.КоличествоЧасов / 3600;

    Номер = Номер +1;
    КонецЦикла

    start = start + 50;

    врСчБага = врСчБага + 1;

    Если врСчБага > 100 Тогда //Скорее всего баг !!!
    Сообщить("Баг!!!");
    Прервать;
    КонецЕсли;

    Если Ответ.Заголовки.Получить("Next") = Неопределено Тогда
    врВсеПолучено = Истина;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```

Примерно так, я не помню насчет Ответ.Заголовки.Получить("Next") = Неопределено, тут нужно через отладчик смотреть что возвращает АПИ, вроде параметр Next есть когда еще не закончен обход всех, этот вопрос нужно еще проработать, у меня сейчас нету возможности посмотреть.
---
```1c
    start= 0;
    Запрос = Новый HTTPЗапрос("rest/1/***/tasks.task.list" + "?start=" + start);
```

Параметр так передавать буду, не понимаю только как правильно его в цикле этом увеличивать, чтобы все задачи обойти
---
С АПИ Битрикса не работал, но по опыту работы с другими АПИ, а как правило это у всех одинаково, при первом вызове tasks.task.list в ответе сервера будет кол-во частей, нужно просто обычным циклом Для start = 0 По КоличествоЧастейССервера Цикл .... КонецЦикла; обойти все части сообщения.
---
в том то и беда моя, что не знаю как бы верно этот цикл написать, чтобы все элементы обойти.
---
```1c
    TITLE = ";
    DESCRIPTION = ";
    Если СтруктураПараметров.ТекущийЭтап = 1 Тогда
    TITLE = "Этап №" + Строка(ТекСтрока.НомерСтроки) + ". Отправить документы";
    DESCRIPTION = "Необходимо отвезти документы. " + Символы.ПС
    + "Номер договора: " + Строка(СтруктураПараметров.ДокументОбъект.Договор.НомерДоговора) + Символы.ПС
    + "Строховая компания: " + Строка(СтруктураПараметров.ДокументОбъект.СтраховаяКомпания);
    ИначеЕсли СтруктураПараметров.ТекущийЭтап = 2 Тогда
    TITLE = "Этап №" + Строка(ТекСтрока.НомерСтроки) + ". Отправить документы";
    DESCRIPTION = "Необходимо отвезти документы. " + Символы.ПС
    + "Номер договора: " + Строка(СтруктураПараметров.ДокументОбъект.Договор.НомерДоговора) + Символы.ПС
    + "Строховая компания: " + Строка(СтруктураПараметров.ДокументОбъект.СтраховаяКомпания);
    ИначеЕсли СтруктураПараметров.ТекущийЭтап = 3 Тогда
    TITLE = "Этап №" + Строка(ТекСтрока.НомерСтроки) + ". Провести экспертизу";
    DESCRIPTION = "ФИО: " + Строка(СтруктураПараметров.ДокументОбъект.Контрагент) + Символы.ПС
    + "Номер автомобиля: " + Строка(СтруктураПараметров.СтруктураДанных.ГосНомер) + Символы.ПС
    + "Дата ДТП: " + Строка(СтруктураПараметров.СтруктураДанных.ДатаДТП) + Символы.ПС
    + "Контакты: " + Строка(СтруктураПараметров.СтруктураДанных.СведенияОбКонтрагенте.Телефоны) + Символы.ПС
    + "Номер договора: " + Строка(СтруктураПараметров.ДокументОбъект.Договор.НомерДоговора) + Символы.ПС
    + "Строховая компания: " + Строка(СтруктураПараметров.ДокументОбъект.СтраховаяКомпания);
    ИначеЕсли СтруктураПараметров.ТекущийЭтап = 4 Тогда
    TITLE = "Этап №" + Строка(ТекСтрока.НомерСтроки) + ". Отправить документы";
    DESCRIPTION = "Необходимо отвезти документы. " + Символы.ПС
    + "Номер договора: " + Строка(СтруктураПараметров.ДокументОбъект.Договор.НомерДоговора) + Символы.ПС
    + "Строховая компания: " + Строка(СтруктураПараметров.ДокументОбъект.СтраховаяКомпания);
    ИначеЕсли СтруктураПараметров.ТекущийЭтап = 5 Тогда
    TITLE = "Этап №" + Строка(ТекСтрока.НомерСтроки) + ". Иск";
    DESCRIPTION = "ФИО: " + Строка(СтруктураПараметров.ДокументОбъект.Контрагент) + Символы.ПС
    + "Номер автомобиля: " + Строка(СтруктураПараметров.СтруктураДанных.ГосНомер) + Символы.ПС
    + "Дата ДТП: " + Строка(СтруктураПараметров.СтруктураДанных.ДатаДТП) + Символы.ПС
    + "Контакты: " + Строка(СтруктураПараметров.СтруктураДанных.СведенияОбКонтрагенте.Телефоны) + Символы.ПС
    + "Номер договора: " + Строка(СтруктураПараметров.ДокументОбъект.Договор.НомерДоговора) + Символы.ПС
    + "Строховая компания: " + Строка(СтруктураПараметров.ДокументОбъект.СтраховаяКомпания);
    КонецЕсли;

    Метод = "task.item.add";
    СимволПерехода = "/?";
    СимволПараметра = "&";
    Ответственный = "arNewTaskData[RESPONSIBLE_ID]=" + ID + ";
    Название = "arNewTaskData[TITLE]=" + TITLE;
    ОписаниеЗадачи = "arNewTaskData[DESCRIPTION]=" + DESCRIPTION;

    СтрокаСоединения = Метод + СимволПерехода + Ответственный + СимволПараметра + Название + СимволПараметра + ОписаниеЗадачи;

    СтрокаJSON = ВыполнитьЗапрос(ОсновныеПараметры, СтрокаСоединения);

    РаспарсенныеЗадачи = aspect_JSON.мПрочитатьJSON(СтрокаJSON);

    &НаСервере
    Функция ВыполнитьЗапрос(ОсновныеПараметры, Метод)

    Сайт = ОсновныеПараметры.АдресДоступаКСерверуБитрикс24;

    СтрокаСоединения = Сайт + Метод;

    WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2, "utf-8");
    WinHttp.Open("POST", СтрокаСоединения, 0);

    WinHttp.SetRequestHeader("Accept-Language" , "ru");
    WinHttp.SetRequestHeader("Accept-Charset" , "utf-8");
    WinHttp.setRequestHeader("Content-Language", "ru");
    WinHttp.setRequestHeader("Content-Charset" , "utf-8");
    WinHttp.setRequestHeader("Content-type" , "application/json; charset=utf-8");

    WinHttp.Send();

    ТекстОтвета = WinHttp.ResponseText();

    Возврат ТекстОтвета;

    КонецФункции
```