Показать сообщение отдельно
Старый 02.07.2007, 12:09   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Не совсем так.
Обрабатывать временную таблицу, заполненную на клиенте, на сервере можно (мда, коряво звучит).
Сергей, обрати внимание, речь идет не о передаче таблицы (т.е. самих данных) на серверную сторону, а о передаче табличной переменной, которая вполне может быть обработана на сервере (т.е. можно вызвать селект и получить данные на вызывающей стороне). Я ничего не говорю о трафике при этом

А ошибка такая возникает при "вложенном" селекте по временной таблице. Таблица может заполняться как на клиенте, так и на сервере. Затем, на стороне, где она заполнялась, идет селект. Далее, табличная переменная передается в метод на другую сторону, где по этой же переменной делается выборка. При возврате из метода при попытке вызова next или при следущем шаге итерации и возникает ошибка.
Вот небольшой пример, приводящий к ошибке
X++:
InventTable it;
;
it.SetTmp();
...
// it каким-либо образом заполняем на клиенте
while select from it //на втором шаге итерации возникнет ошибка
{
    info(it.itemId);
    classX::staticServerMethod(it);
}
X++:
static server void classX::staticServerMethod(InventTable _it)
{
    ;
    while select _it
    {
        info(_it.itemId);
    }
}
__________________
Axapta v.3.0 sp5 kr2