|
|
#8 |
|
Участник
|
Посмотрите, как работает отмена покупки, метод PurchCancel\updatePurchTable()
X++: if (!purchTable.selectForUpdate()) { purchTable = PurchTable::findRecId(purchTable.RecId, true); } if (purchTable.ChangeRequestRequired && purchTable.DocumentState >= VersioningDocumentState::Approved) { VersioningPurchaseOrder::newPurchaseOrder(purchTable).createChangeRequest(); } else if (!VersioningPurchaseOrder::newPurchaseOrder(purchTable).isLastVersionArchived() && purchTable.DocumentState == VersioningDocumentState::Confirmed) { // Force archiving to avoid it during line cancellation as that would lead to update conflicts. purchTable.update(); } Без версионности - после того как вы покупку подтвердили - в коробке фиксируются какие-то параметры (не только в самой строке покупки) и если вы хотите изменить уже подтвержденную покупку - то вам тоже надо сделать какой то "сброс" и затем подтвердить эту покупку повторно. В целом если использовать активацию обновления покупки как например сделано в purchCancel\updatePurchTable(), то дальше спокойно можно обновлять строки в цикле по update, без дополнительных reread
__________________
Sergey Nefedov |
|
|
|
|
|