В складских проводках есть ссылка на несуществующий лот.
X++:
// поиск складских проводок с кривыми ссылками на другие складские проводки
static void Edd_CheckInventTransId(Args _args)
{
InventTrans InventTrans;
InventTrans InventTrans2;
;
InventTrans.selectLocked(true);
InventTrans2.selectLocked(true);
while select InventTrans
where InventTrans.ValueOpen == InventTransOpen::Yes
&& InventTrans.InventTransIdReturn != ""
notexists join InventTrans2
where InventTrans2.InventTransId == InventTrans.InventTransIdReturn
{
info(strfmt("InventTransIdReturn %1", InventTrans.RecId));
}
while select InventTrans
where InventTrans.ValueOpen == InventTransOpen::Yes
&& InventTrans.InventTransIdFather != ""
notexists join InventTrans2
where InventTrans2.InventTransId == InventTrans.InventTransIdFather
{
info(strfmt("InventTransIdFather %1", InventTrans.RecId));
}
while select InventTrans
where InventTrans.ValueOpen == InventTransOpen::Yes
&& InventTrans.TransChildRefId != ""
notexists join InventTrans2
where InventTrans2.InventTransId == InventTrans.TransChildRefId
{
info(strfmt("TransChildRefId %1", InventTrans.RecId));
}
while select InventTrans
where InventTrans.ValueOpen == InventTransOpen::Yes
&& InventTrans.InventRefTransId != ""
&& InventTrans.StatusIssue <= StatusIssue::Deducted
&& InventTrans.StatusReceipt <= StatusReceipt::Received
notexists join InventTrans2
where InventTrans2.InventTransId == InventTrans.InventRefTransId
{
info(strfmt("InventRefTransId %1", InventTrans.RecId));
}
}