Показать сообщение отдельно
Старый 21.11.2012, 09:34   #3  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 108 (4) +++++
Регистрация: 06.03.2012
Адрес: Moscow/Ukraine/Malta
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Наверное будет полезно в тексте ошибки вывести значение и ключ из мапа. Возможно это как-то поможет прояснить ситуацию.
Да смотрел все это дело. Он до этого собирает мапу так:
X++:
protected void addCheckBalance(LedgerTrans _ledgerTrans, Sign _sign = 1)
{
    void addKey(TransDate _transDate, CurrencyCode _currencyCode, Amount _amount)
    {
        str key = strfmt("@SYS76785", _transDate, _currencyCode);

        if (balanceMap.exists(key))
        {
            balanceMap.insert(key, balanceMap.lookup(key) + _amount);
        }
        else
        {
            balanceMap.insert(key, _amount);
        }
    }

    if (! balanceMap)
    {
        balanceMap    = new Map(Types::String, Types::Real);
    }

    addKey(_ledgerTrans.TransDate, _ledgerTrans.CurrencyCode, _ledgerTrans.AmountCur * _sign);
    addKey(_ledgerTrans.TransDate, mstCode, _ledgerTrans.AmountMST * _sign);
    addKey(_ledgerTrans.TransDate, mstSecondCode, _ledgerTrans.AmountMSTSecond * _sign);
}
Плюсует суммы по одинаковым ключам. Ключи имеют вид [Дата - Валюта].