Странно, по идее edit-метод salesQty, существующий на том же InventSum, уже должен был создать запись. Версию Аксапты напишите, пожалуйста.
В любом случае, вот так должно работать:
X++:
edit NoYes setQtyAvail_UTX(boolean _set, InventSum _inventSum, NoYes _value)
{
select tmpFrmVirtual
where tmpFrmVirtual.tableNum == _inventSum.tableId &&
tmpFrmVirtual.itemId == _inventSum.itemId &&
tmpFrmVirtual.inventDimId == _inventSum.inventDimId;
if (!tmpFrmVirtual)
{
tmpFrmVirtual.tableNum = _inventSum.tableId;
tmpFrmVirtual.itemId = _inventSum.itemId;
tmpFrmVirtual.inventDimId = _inventSum.inventDimId;
tmpFrmVirtual.write();
}
if (_set)
{
if (_value)
{
InventSum_ds.salesQty(true, _inventSum, _inventSum.AvailPhysical);
}
else
{
InventSum_ds.salesQty(true, _inventSum, 0);
}
InventTable_ds.refresh();
tmpFrmVirtual.NoYes= _value;
tmpFrmVirtual.update();
}
return tmpFrmVirtual.NoYes;
}