Показать сообщение отдельно
Старый 05.03.2011, 17:51   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Кто автор этого "гениального" кода?
\Data Dictionary\Maps\CustVendTable\Methods\balanceAllCurrency()

X++:
//BP Deviation Documented
display AmountCur balanceAllCurrency(CurrencyCode _currencyCode = this.Currency)
{
...
    switch (custVendTrans.TableId)
    {
        case tablenum(CustTrans) :
            hasAccess = hasFieldAccess(tablenum(CustTrans), fieldnum(CustTrans, AmountCur), AccessType::View);
            hasAccess = hasAccess && hasFieldAccess(tablenum(CustTrans), fieldnum(CustTrans, AmountMST), AccessType::View);
            hasAccess = hasAccess && hasFieldAccess(tablenum(CustTrans), fieldnum(CustTrans, ExchAdjustment), AccessType::View);
            break;

        case tablenum(VendTrans) :
            hasAccess = hasFieldAccess(tablenum(VendTrans), fieldnum(VendTrans, AmountCur), AccessType::View);
            hasAccess = hasAccess && hasFieldAccess(tablenum(VendTrans), fieldnum(VendTrans, AmountMST), AccessType::View);
            hasAccess = hasAccess && hasFieldAccess(tablenum(VendTrans), fieldnum(VendTrans, ExchAdjustment), AccessType::View);
            break;
    }

    if (!hasAccess)
        throw error("@SYS57330");
...
Нельзя в display-методе "0.00" вернуть, если нет доступа, вместо выброса исключения? Я уж молчу про информативность сообщения "Нет доступа".
__________________
С уважением,
glibs®