Можно и код. У нас он работает нормально, но как было сказано выше, в дальнейшем могут возникнуть проблемы с коррекцией себестоимости. Правда суть этих проблем пока не ясна, мы тоже еще не столкнулись:
5802 кю.
1) Заводим глобальную переменную bSalesCrMemoCorrection - boolean
2) Заводим ф-цию SetCrMemoCorrection
//AN_050220+
bSalesCrMemoCorrection := TRUE;
3) В ф-ции PostInvtPostBuf нужно добавить то, что внутри коммент.
IF AdjustmentCorrection THEN BEGIN
GenJnlLine.Correction := TRUE;
IF NotAdjustmentCorrectionACY THEN
GenJnlLine."Not Add.-Currency Correction" := TRUE;
END;
//AN_050220+{
IF bSalesCrMemoCorrection THEN
GenJnlLine.Correction := TRUE;
//AN_050220+}
IF OnlyAdjustmentCorrectionACY THEN
GenJnlLine."Only Add.-Currency Correction" := TRUE;
InsertJnlLineDim(GenJnlLine,TempJnlLineDim,"Dimension Entry No.");
22 кю. Ф-ция PostInventoryToGL с изменениями выглядит так:
WITH ValueEntry DO BEGIN
IF (NOT "Expected Cost") AND ("Entry Type" = "Entry Type"::"Direct Cost") AND
("Item Charge No." = '')
THEN
BalanceInterimPostToGL("Posting Date","Item Ledger Entry No.");
IF InvtPost.BufferInvtPosting(ValueEntry) THEN BEGIN
WithPost := TRUE;
//AN_050220+{
lGLSetup.GET;
IF lGLSetup."Mark Cr. Memos as Corrections" THEN
IF ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Sale THEN BEGIN
IF lILE.GET(ValueEntry."Item Ledger Entry No.") THEN
IF lILE.Positive THEN
IF NOT lILE.Correction THEN
InvtPost.SetCrMemoCorrection;
END;
//AN_050220+}
InvtPost.PostInvtPostBufPerEntry("Posting Date",ValueEntry,WithPost);
END;
END;
|