Попробуй вместо con2str применить эту функцию:
X++:
/// returns the string representation of given argument
str toStr(AnyType _value)
{
Object o;
int i;
str ret;
;
if(typeOf(_value)==Types::AnyType && !_value)
return '<NoResult>';
if(typeOf(_value)==Types::Class)
{
o=_value;
return strFmt('%1', o.toString());
}
if(typeOf(_value)==Types::Container)
{
for(i=1;i<=conLen(_value);i++)
{
if(ret)
ret+=", ";
ret += this.toStr(conPeek(_value, i));
}
return "["+ret+"]";
}
if(typeOf(_value)==Types::String || typeOf(_value)==Types::VarString)
{
return strFmt("'%1'", _value);
}
return strFmt('%1', _value);
}