Показать сообщение отдельно
Старый 02.11.2012, 16:59   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если Вы перекрываете pack/unpack у класса наследника runBaseReport, то обязательно надо добавлять вызов super(), поскольку эти методы перекрыты в самом классе runBaseReport.

В простейшем случае, это будет выглядеть примерно так

X++:
public container pack()
{
    return [#CurrentVersion, #CurrentList] + [super()];
}

public boolean unpack(container _packedClass)
{
    container   base;
    boolean     ret;
    int         version     = conPeek(_packedClass,1);
    ;
    switch (version)
    {
        case #CurrentVersion:
            [version, #CurrentList, base] = _packedClass;
            ret = super(base);
            break;
        default :
            ret = false;
    }

    return ret;
}

Собственно, если есть отличия в работе при вызове "первый раз" и "последующие", то это однозначно проблема кеширования. А это контролирует pack/unpack
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: dech (1).