Обмен с Редмайн

1. ghostrid3r 26.03.20 11:02 Сейчас в теме
Добрый день, подскажите пож-та, может кто сталкивался, при получении списка заявок из редмайн через HTTPСоединение, назад в 1С возвращзается массив, только с 25 элементами, ровно столько отображается на одной странице, можно убрать это ограничение?
Найденные решения
3. cprit 880 26.03.20 12:04 Сейчас в теме
Добрый день!
При передаче запросов к API в редмайне есть параметры

offset: смещение первого выбираемого объекта
limit: сколько записей за раз он вернет. от 25 до 100. Больше 100 поставить нельзя

И дальше в ответе вам возвращаются в шапке JSON параметры
GET /issues.json

{ "issues":[...], "total_count":2595, "limit":25, "offset":0 }

total_count- сколько всего записей

Расчетным путем вычисляем сколько страниц и запускаем цикл

НомерПервого=0;
РазмерВыборки=100;
ВсегоЗаписей=2595;//эту штуку надо получить либо из первой страницы или предварительно

КоличествоСтраниц=Цел(ВсегоЗаписей/РазмерВыборки);
Если КоличествоСтраниц<>(ВсегоЗаписей/РазмерВыборки) Тогда
КоличествоСтраниц=КоличествоСтраниц+1;
КонецЕсли;

//Цикл по страницам
Для НомерСтраницы =1 По КоличествоСтраниц Цикл
Запрос= "/issues.JSON?offset="+Формат(НомерПервого,"ЧГ=0")+"&limit="+РазмерВыборки;

....Обработка результата

НомерПервого=НомерПервого+РазмерВыборки;
КонецЦикла;

Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ghostrid3r 26.03.20 11:03 Сейчас в теме
либо обойти эти страницы поочередно, может есть какой способ?
3. cprit 880 26.03.20 12:04 Сейчас в теме
Добрый день!
При передаче запросов к API в редмайне есть параметры

offset: смещение первого выбираемого объекта
limit: сколько записей за раз он вернет. от 25 до 100. Больше 100 поставить нельзя

И дальше в ответе вам возвращаются в шапке JSON параметры
GET /issues.json

{ "issues":[...], "total_count":2595, "limit":25, "offset":0 }

total_count- сколько всего записей

Расчетным путем вычисляем сколько страниц и запускаем цикл

НомерПервого=0;
РазмерВыборки=100;
ВсегоЗаписей=2595;//эту штуку надо получить либо из первой страницы или предварительно

КоличествоСтраниц=Цел(ВсегоЗаписей/РазмерВыборки);
Если КоличествоСтраниц<>(ВсегоЗаписей/РазмерВыборки) Тогда
КоличествоСтраниц=КоличествоСтраниц+1;
КонецЕсли;

//Цикл по страницам
Для НомерСтраницы =1 По КоличествоСтраниц Цикл
Запрос= "/issues.JSON?offset="+Формат(НомерПервого,"ЧГ=0")+"&limit="+РазмерВыборки;

....Обработка результата

НомерПервого=НомерПервого+РазмерВыборки;
КонецЦикла;

Показать
4. ghostrid3r 26.03.20 12:37 Сейчас в теме
(3)
спс будем пробовать, а возможно ли список заявок подкинуть для выборки информации или только перебором каждой?
6. cprit 880 26.03.20 13:50 Сейчас в теме
(4) Инфу из них можно вытаскивать с помощью параметра запроса include

include: fetch associated data (optional, use comma to fetch multiple associations). Some possible values (for full list see below):
attachments - Since 3.4.0
relations
journals
children

Фильтр по id можно множественный сделать

Например.
GET /issues.xml?issue_id=1,2
5. ghostrid3r 26.03.20 13:19 Сейчас в теме
и еще вопрос, есть такое поле как status_id одни заявки с одним номером, другие с другим, если не добавлять конструкцию &status_id= тогда вытягиваются данные, только с определенным статусом, можно ли выбор сразу по нескольким статус осуществлять?
7. cprit 880 26.03.20 13:52 Сейчас в теме
(5) Если фильтр по статусу не указан, то он отдает только открытые заявки

Если нужны все подряд заявки, нужно указывать фильтр по статусу = *
GET /issues.xml?status_id=*
8. ghostrid3r 26.03.20 15:25 Сейчас в теме
Оставьте свое сообщение

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