Цитата:
Сообщение от
someOne
Иногда (может быть в результате сбоя при разноске накладной по закупке) там "зависают" накладные. Как эту функцию отключить - не понял.
Чтобы накладные не "зависали", вставил перед разноской накладной по закупке такое:
X++:
delete_from VendInvoiceInfoTable
where VendInvoiceInfoTable.PurchId == _purchId;
Это, конечно, радикально. Но лучшего решения не нашел.
Проблема с зависанием накладных таким образом была решена.
Я сделал след. образом. В методе PurchFormLetter_Invoice.endUpdate(), есть место где удаляются PurchParm для накладных, у которых произошли ошибки в процессе разноски (purchParmTable.ParmJobStatus == ParmJobStatus::ContainErrors). Добавил туда же удаление семейства соответствующих VendInvoiceInfo*.
X++:
...
// Delete the PurchParm data for any invoices that were on hold or that failed to post
// These invoices were saved as pending invoices and should not remain in PurchParmTable
//+ kav OK001940 19.12.2011 OK
/*delete_from purchParmTable
where purchParmTable.ParmId == purchParmUpdate.ParmId
&&(purchParmTable.Hold == NoYes::Yes
|| purchParmTable.ParmJobStatus == ParmJobStatus::ContainErrors);*/
while select forupdate purchParmTable
where purchParmTable.ParmId == purchParmUpdate.ParmId
&&(purchParmTable.Hold == NoYes::Yes
|| purchParmTable.ParmJobStatus == ParmJobStatus::ContainErrors)
{
VendInvoiceInfoTable::deleteTableRefId(purchParmTable.TableRefId);
purchParmTable.delete();
}
//- kav OK001940 19.12.2011 OK
...