Показать сообщение отдельно
Старый 22.08.2005, 20:22   #1  
NetBus is offline
NetBus
Участник
 
200 / 85 (3) ++++
Регистрация: 08.07.2005
Адрес: Москва
Ошибка в авансовых отчетах ...
При печати авансового отчета система выдала ошибку, — 'Итератор указывает на некорректный элемент.' При разборе полетов было обнаруженен, ИМХО, не совсем корректный код:
PHP код:
class EmplAdvanceReport_Settle_RU

protected boolean checkPrePayment(EmplTrans_RU _emplTrans,EmplAdvanceId_RU _advanceId)
{
    
EmplTrans_RU  emplTrans;
    
boolean       ret false;
    
Set           set = New Set(Types::Container);
    
SetEnumerator setEnumerator;
    ;
    while 
select checkSettle
       where 
(checkSettle.DebitRecId  == _emplTrans.RecId)
    {
        
emplTrans  EmplTrans_RU::findRecId(checkSettle.CreditRecId);
        if (
emplTrans.AdvanceId && emplTrans.TransDate >= _emplTrans.TransDate)
        {
            
set.add([emplTrans.TransDate,emplTrans.AdvanceId]);
        }
    }
  
        
setEnumerator set.getEnumerator();
        
setEnumerator.moveNext();

        if (
conpeek(setEnumerator.current(),1) == headerTransDate &&
            
conpeek(setEnumerator.current(),2) == _advanceId)
        {
            
ret true;
        }
    return 
ret;

получается, что контейнер, при некоторых условиях, может не заполниться, а при попытке считать из него данные получаем вышеуказанную ошибку. Поправте меня, если я не прав.
p. s. Axapta 3.0 sp3, трехзвенка .
За это сообщение автора поблагодарили: vandrey (0).