Если Вашим кодом, то например так...
X++:
while(queryRun.next())
{
jour = queryRun.get(tablenum(JourListTrans));
list = queryRun.get(tablenum(JourListTrans));
invoice = queryRun.get(tablenum(InvoiceInvent));
invent = queryRun.get(tablenum(InvoiceInvent));
listKey = list.InternalSp + "#" + list.ItemId+"#"+tablenum(VendSpListTrans);
invoiceKey = invoice.InternalSp + "#" + invoice.ItemId+"#"+tablenum(VendInvoiceTrans);
//check in vendSpListTrans
if(SharedMap.exists(listKey))
{
listCon = SharedMap.lookup(listKey);
listCon = conpoke(listCon,7,conpeek(listCon,7)+list.SumOfSpQty);
SharedMap.insert(listKey,listCon);
}
else
{
SharedMap.insert(listKey,[jour.IDSp, jour.SpDate, jour.RContractAccount,list.InternalSp, list.ItemId, list.SpUnit, list.SumOfSpQty]);
}
//check in VendInvoiceTrans
if(SharedMap.exists(invoiceKey))
{
invoiceCon = SharedMap.lookup(invoiceKey);
invoiceCon = conpoke(invoiceCon,3,conpeek(invoiceCon,3)+invoice.SumOfQty);
SharedMap.insert(invoiceKey,invoiceCon);
}
else
{
SharedMap.insert(invoiceKey,[invoice.ItemId, invoice.PurchUnit, invoice.SumOfQty, invoice.InternalSp, invent.UnitId]);
}
}
Поскольку ключ таблицы позаботится об уникальности ключа между таблицами, а чтобы вытаскивать данные, можно хоть контейнером ключ сделать, можно в ключь впереди вписать хоть 1 (L) или 2 (I) (сортирует их и доставай сначала одни данные, потом другие), выделять из ключа номер таблицы.