diadocsdk-csharp
diadocsdk-csharp copied to clipboard
Проблема с получением полного списка контрагентов по одной из организаций
Здравствуйте.
По какой-то неведомой причине с одной из организаций возникает проблема - не получается выгрузить полный список контрагентов. Общее их число >100, а выгружаются только 99 (даже не 100). Причем с другими организациями такой проблемы нет.
Код на всякий случай :
string cAfterIndexKey = ""; List<Diadoc.Api.Proto.Counteragent> calist = new List<Diadoc.Api.Proto.Counteragent>(); while (cacounter < 20000) { var cagents = diadocApi.GetCounteragents(Token.Value, orgid, "", cAfterIndexKey).Counteragents;
calist.AddRange(cagents);
if (cagents.Count == 100)
{
cAfterIndexKey = cagents[99].IndexKey;
cacounter += 100;
}
else
{
cacounter += cagents.Count;
break;
}
}
Добрый день! По какой конкретно организации воспроизводится ошибка? Уточните boxid, пожалуйста.
Рекомендуем использовать 2 версию метода. Также уточните, указываете ли вы в запросе afterIndexKey? Попробуйте убрать этот параметр. Без него по данной организации выгружаются первые 100 контрагентов из общего числа.
Где в C# SDK вторая версия метода? GetCounteragents там один. Убрать параметр afterIndexKey нельзя, он обязательный. Тем более в первой итерации значение у cAfterIndexKey - пустая строка.
Такая ситуация может происходить в случае, если в списке контрагентов присутствует удаленная организация. Фактически она присутствует, но информация по ней не возвращается.