А вот на этот код, идущий до updateTransactions(), Вы не обратили внимания?
X++:
if (! tmpDebitTrans.RecId)
{
tmpRecId++;
tmpDebitTrans.RecId = tmpRecId;
}
if (! tmpCreditTrans.RecId)
{
tmpRecId++;
tmpCreditTrans.RecId = tmpRecId;
}
По идее, не должно возникнуть неуникальности.