|
12.01.2009, 10:53 | #1 |
Участник
|
Клиент-серверные заморочки JournalErrorTransList
Как известно системный журнал (журнал ошибок) складских (и не только) журналов хранится в таблице JournalError и взаимодействие с ним происходит через класс JournalErrorList и его наследников JournalErrorTransList и JournalErrorVoucherList.
В этих классах инициализация происходит в методе initDb, суть которой - заполнение кэша таблицы JournalError соответствующего журнала в виде RecordSortedList. Вопрос собственно в реализации этого метода. Возьмём для примера JournalErrorTransList (в JournalErrorVoucherList тоже самое). X++: void initDb() { if (xGlobal::clientKind() == ClientType::Client) { this.unPack(JournalErrorTransList::packInitDb(journalTableData.journalTable())); this.selectDbCalled(true); } else this.selectDb(journalTableData.journalTable(),false); } Выигрыш в скорости? Да неоткуда ему вроде взяться, наоборот лишние шаги. Уменьшить объем данных, передаваемых между клиентом и сервером? Так всё равно контейнер передастся. Необходимость создания какого-либо объекта только на серверной стороне? Нет - итоговый результат одинаков. Аксапта 3 СП4. Что там в более новых версиях возможности посмотреть у меня нет. |
|