Если вышеупомянутый джоб переписать с использованием макроса по обработке исключений, то упомянутых расхождений InventSum и InventTrans не возникнет.
X++:
// GRD_R4453_InventSumInventTrans_pkoz, Разъехались остатки в InventSum и проводки в InventTrans., pkoz, 04.11.2011
static void Job791_16(Args _args)
{
#define.recIdTrans(5637151827)
InventTrans InventTrans;
InventSum InventSum;
;
try
{
ttsBegin;
try
{
InventTrans = InventTrans::findRecId(#recIdTrans, true);
InventTrans.Qty += 1.0;
InventTrans.Update();
breakpoint;
}
#catch_DangerousException
catch
{
info("поймали внутрений catch");
}
ttsCommit;
}
#catch_DangerousException
catch
{
info("поймали внешний catch");
}
info(strFMT("InventTrans.RowCount() = %1, InventTrans.Qty = %2, InventSum : %3 ",
InventTrans.RowCount(),
InventTrans.Qty,
con2str(Global::buf2Con(InventSum::find(InventTrans.ItemId, InventTrans.inventDimId)), "; ")
));
}