Показать сообщение отдельно
Старый 15.09.2011, 10:45   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Может быть объекты на разных сторонах клиент-сервера и какое-то из полей структуры содержит объект, по которому нет методов интерфейса SysPackable?
А разве при использовании parmObject происходит копирование объекта? Я думал что передаётся лишь ссылка на объект. Нужно проверить.

X++:
//Class_TestParmObject
public server static void main(Args _args)
{
    Struct Struct = _args.parmObject();
    ;

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
    Struct.valueIndex(1, "new value");
    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
}
X++:
static void Job_TestParmObject(Args _args)
{
    Args args = new Args();
    Struct Struct = new Struct(Types::String, "Field1");
    ;

    Struct.value("Field1", "test");
    args.parmObject(Struct);

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));

//    Class_TestParmObject::main(args);
    new MenuFunction(menuItemActionStr(MenuItem_TestParmObject), MenuItemType::Action).run(args);

    info(strfmt("%1: %2", enum2str(xGlobal::clientKind()), Struct.valueIndex(1)));
}
Результат:
Цитата:
Client: test
Server: test
Server: new value
Client: new value

Последний раз редактировалось S.Kuskov; 15.09.2011 в 11:04.