diadocsdk-csharp icon indicating copy to clipboard operation
diadocsdk-csharp copied to clipboard

Проблема с получением полного списка контрагентов по одной из организаций

Open usr653345 opened this issue 3 years ago • 5 comments

Здравствуйте.

По какой-то неведомой причине с одной из организаций возникает проблема - не получается выгрузить полный список контрагентов. Общее их число >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;
}

}

usr653345 avatar Dec 09 '21 11:12 usr653345

Добрый день! По какой конкретно организации воспроизводится ошибка? Уточните boxid, пожалуйста.

i-am-bad-bull avatar Dec 15 '21 21:12 i-am-bad-bull

Рекомендуем использовать 2 версию метода. Также уточните, указываете ли вы в запросе afterIndexKey? Попробуйте убрать этот параметр. Без него по данной организации выгружаются первые 100 контрагентов из общего числа.

i-am-bad-bull avatar Dec 16 '21 18:12 i-am-bad-bull

Где в C# SDK вторая версия метода? GetCounteragents там один. Убрать параметр afterIndexKey нельзя, он обязательный. Тем более в первой итерации значение у cAfterIndexKey - пустая строка.

usr653345 avatar Dec 16 '21 18:12 usr653345

Такая ситуация может происходить в случае, если в списке контрагентов присутствует удаленная организация. Фактически она присутствует, но информация по ней не возвращается.

i-am-bad-bull avatar Dec 28 '21 23:12 i-am-bad-bull