Показать сообщение отдельно
Старый 30.10.2014, 17:22   #15  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А как повторить то?
на рабочем проекте я получил ситуацию, когда флажок "цена найдена" был взведён, а переданный буфер оказался пустым. повторять конкретно на том классе сейчас у меня времени нет, но суть примерно такова:

X++:
static void tmxTestCustTable(Args _args)
{
    PriceDiscTable   priceTable;
    PriceDiscTable   foundPriceTable;
    PriceDiscTable   foundPriceTableData;
    int         maxCust = 5;
    int         i = 1;
    
    while select priceTable
    {
        info(strFmt("in loop %1: %2", i, priceTable.RecId));
        if(i == 2)
        {
            foundPriceTable = priceTable;
            foundPriceTableData = priceTable.data();
            info("<-- let's say this is what we were looking for...");
        }
        
        if(i>maxCust)
        {
            break;
        }
        else
        {
            i++;
        }
    }
    info("---------------------------------------");
    info(strFmt("priceTable buffer after %1", priceTable.RecId));
    info(strFmt("found reference after %1", foundPriceTable.RecId));
    info(strFmt("found buffer after %1", foundPriceTableData.RecId));
}
результат

X++:
Message (10:19:22 am)
in loop 1: 5637351352
in loop 2: 5637349038
<-- let's say this is what we were looking for...
in loop 3: 5637349039
in loop 4: 5637344655
in loop 5: 5637339598
in loop 6: 5637331591
---------------------------------------
priceTable buffer after 5637331591
found reference after 5637331591
found buffer after 5637349038
соответственно, если буфер по дороге где-то обнуляется, то искомые данные митькой звали.
__________________
Felix nihil admirari