Six days and no answer at all... good support
It because of VirtueMartModelUserfields::prepareFieldDataSave :
prior to version 16 it's looks like
public function prepareFieldDataSave($fieldType, $fieldName, $value, &$post,$params)
now it's:
public function prepareFieldDataSave($field, &$data)
I do not know VirtueMart and VM Invoice inside, so I fixed like this:
$JOOMLA_HOME/administrator/components/com_vminvoice/tables/vm2orderuserinfo.php
string 76
$data[$requestPrefix.$varname] = VirtueMartModelUserfields::prepareFieldDataSave($userfieldType,$requestPrefix.$varname,$data[$requestPrefix.$varname],$data,$params);}
replaced with this two lines:
$val = array("$requestPrefix.$varname" => $data[$requestPrefix.$varname]);
$data[$requestPrefix.$varname] = VirtueMartModelUserfields::prepareFieldDataSave((object)array("type" => $userfieldType, "name" => $requestPrefix.$varname, "params" => $params), $val );}