Logige sisse Microsofti kontoga
Logige sisse või looge konto.
Tere!
Valige mõni muu konto.
Teil on mitu kontot
Valige konto, millega soovite sisse logida.

Käesolev artikkel kehtib Microsoft Dynamics NAV Portugali (pt) keele locale.

Sümptomid

Raha saamise töölehe arve ja Hülga arve sisestamisel Portugali versioonis Microsoft Dynamics nav-i 2009 samal ajal sisestatud pearaamatu kanded sisestatakse tagasi lükata arved konto abil. Siiski nõuded konto võib kasutada arve ja tagasi lükatud arved konto tuleks kasutada tagasilükatud dokumendi. See probleem ilmneb järgmiste toodetega:

  • Portugali versioonis Microsoft Dynamics nav-i 2009 R2

  • Portugali versioonis Microsoft Dynamics nav-i 2009 Service Pack 1

Lahendus

Kiirparanduse teave

Lasknud välja toetatava käigultparanduse on nüüd Microsoftilt saadaval. Kuid see on ette nähtud ainult selles artiklis kirjeldatud probleemi kõrvaldamiseks. Rakendage seda ainult süsteemides, kus ilmneb see konkreetne probleem. Seda käigultparandust võidakse täiendavalt testida. Seega, kui probleem teie tööd tõsiselt ei kahjusta, soovitame oodata järgmist hoolduspaketti Microsoft Dynamics nav-i 2009 või järgmise Microsoft Dynamics nav-i versiooni, mis sisaldab seda kiirparandust.

Märkus. Erijuhtudel kulud, mis tekivad teatud palub tühistada saab kui tehniline toetus Professional Microsoft Dynamics ja nendega seotud toodete leiab, et mõni konkreetne värskendus lahendab teie probleemi. Tavaline tugiteenuste kohaldatakse täiendavat tugiteenust vajavatele küsimustele ning probleemidele, mis pole lahendatavad konkreetse värskenduse installimisega.


Installiteave

Microsoft pakub programmeerimisnäiteid ainult artikli illustreerimiseks ilma igasuguse otsese või kaudse garantiita. See hõlmab, kuid ei piirdu kaudseid garantiisid turustatavuse või kindlaks otstarbeks sobivusega. See artikkel eeldab, et olete demonstreeritava programmeerimiskeelega programmeerimise keel ning luua protseduuride ja silumiseks kasutatavate tööriistadega tuttav. Microsofti tugitehnikud võivad aidata mõne konkreetse protseduuri talitlust selgitada. Siiski ei muuda nad neid näiteid lisafunktsioonide pakkumiseks ega Koosta vastavaid protseduure teie konkreetsetele nõuetele.

Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Navision kliendi kasutajat sisse loginud süsteem välja. See hõlmab Microsoft Navision Application teenused (NAS) kliendi kasutajatele. Peaks olema ainult kliendi kasutaja on sisse logitud, kui otsustate seda käigultparandust.

Selle kiirparanduse rakendamiseks peab teil olema arendaja litsentsi.

Soovitame Windowsi sisselogimise aken või aken andmebaasi logimine kasutajakonto määrata "SUPER" rolli ID. Kui "SUPER" rolli ID-d ei saa määratud kasutajakonto, peate veenduma, et kasutaja konto on järgmised õigused:

  • Sa muutuvad objekti Muuda õigusi.

  • Käivita luba süsteemi objekti ID 5210 objekti ja süsteemi objekti ID 9015 objekti.



Märkus. Teil pole õigust andmeid talletab enne, kui olete andmete parandamiseks.

Koodi muudatusi

Märkus. Alati test koodi lahendab kontrollitavas keskkonnas enne rakendamist tootmine arvutite parandused.
Probleemi lahendamiseks muutke kood on kindral žurnaali.-Post LineCodeunit (12). Selleks toimige järgmiselt.

  1. Lisage järgmist globaalmuutujat.

    TempRejCustLedgEntry@1100047 : TEMPORARY Record 21;
  2. Muuda koodi PostCust funktsioon järgmiselt:
    Kood 1

    ...          DiscRiskFactAmountLCY := 0;
    DiscUnriskFactAmountLCY := 0;
    CollFactAmountLCY := 0;
    //--------

    IF Cust."No." <> "Account No." THEN
    Cust.GET("Account No.");
    Cust.CheckBlockedCustOnJnls(Cust,"Document Type",TRUE);

    IF "Posting Group" = '' THEN BEGIN
    ...

    Kood 1

    ...          DiscRiskFactAmountLCY := 0;
    DiscUnriskFactAmountLCY := 0;
    CollFactAmountLCY := 0;
    //--------

    // Add the following lines.
    TempRejCustLedgEntry.RESET;
    TempRejCustLedgEntry.DELETEALL;
    // End of the lines.

    IF Cust."No." <> "Account No." THEN
    Cust.GET("Account No.");
    Cust.CheckBlockedCustOnJnls(Cust,"Document Type",TRUE);

    IF "Posting Group" = '' THEN BEGIN
    ...

    Kood 2

    ...            END;

    // Post the application
    ApplyCustLedgEntry(
    CVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,GLSetup."Appln. Rounding Precision");

    // Delete the following lines.
    IF GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" " THEN
    GenJnlLine."Applies-to Doc. Type" := AppliesToDocType;
    // End of the lines.

    IF AppManagement.AccessToCartera AND NOT GenJnlLine.Prepayment THEN BEGIN
    IF "Document Type" = "Document Type"::Bill THEN BEGIN
    DocPost.CreateReceivableDoc(GenJnlLine,CVLedgEntryBuf);
    CustLedgEntry."Document Situation" := CustLedgEntry."Document Situation"::Cartera;
    ...

    Asendamine kood 2

    ...            END;

    // Post the application
    ApplyCustLedgEntry(
    CVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,GLSetup."Appln. Rounding Precision");

    // Add the following lines.
    IF ("Applies-to ID" = '') AND ("Applies-to Doc. Type" = "Applies-to Doc. Type"::" ") THEN
    "Applies-to Doc. Type" := AppliesToDocType;
    // End of the lines.

    IF AppManagement.AccessToCartera AND NOT GenJnlLine.Prepayment THEN BEGIN
    IF "Document Type" = "Document Type"::Bill THEN BEGIN
    DocPost.CreateReceivableDoc(GenJnlLine,CVLedgEntryBuf);
    CustLedgEntry."Document Situation" := CustLedgEntry."Document Situation"::Cartera;
    ...

  3. Muuda koodi PostVend funktsioon järgmiselt:
    Kood

    ...          // Post the application
    ApplyVendLedgEntry(
    CVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,
    GLSetup."Appln. Rounding Precision");

    // Delete the following lines.
    IF GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" " THEN
    GenJnlLine."Applies-to Doc. Type" := AppliesToDocType;
    // End of the lines.

    IF AppManagement.AccessToCartera AND NOT GenJnlLine.Prepayment THEN BEGIN
    IF "Document Type" = "Document Type"::Bill THEN BEGIN
    DocPost.CreatePayableDoc(GenJnlLine,CVLedgEntryBuf);
    VendLedgEntry."Document Situation" := VendLedgEntry."Document Situation"::Cartera;
    ...

    Eemaldamise teave

    ...          // Post the application
    ApplyVendLedgEntry(
    CVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,
    GLSetup."Appln. Rounding Precision");

    // Add the following lines.
    IF ("Applies-to ID" = '') AND ("Applies-to Doc. Type" = "Applies-to Doc. Type"::" ") THEN
    "Applies-to Doc. Type" := AppliesToDocType;
    // End of the lines.

    IF AppManagement.AccessToCartera AND NOT GenJnlLine.Prepayment THEN BEGIN
    IF "Document Type" = "Document Type"::Bill THEN BEGIN
    DocPost.CreatePayableDoc(GenJnlLine,CVLedgEntryBuf);
    VendLedgEntry."Document Situation" := VendLedgEntry."Document Situation"::Cartera;
    ...

  4. Muuda koodi ApplyCustLedgEntry funktsioon järgmiselt:
    Kood

    ...                OldCustLedgEntry."Document Situation"::"Closed Documents",
    OldCustLedgEntry."Document Situation"::"Closed BG/PO"]) THEN
    FromClosedDoc := TRUE
    ELSE
    FromClosedDoc := FALSE;
    DocPost.UpdateReceivableDoc(
    OldCustLedgEntry,GenJnlLine,AppliedAmountLCY + DeltaUnrealAmount + DeltaAmountLCY,
    DocAmountLCY,RejDocAmountLCY,DiscDocAmountLCY,CollDocAmountLCY,
    DiscRiskFactAmountLCY,DiscUnriskFactAmountLCY,CollFactAmountLCY);
    END;
    ...

    Eemaldamise teave

    ...                OldCustLedgEntry."Document Situation"::"Closed Documents",
    OldCustLedgEntry."Document Situation"::"Closed BG/PO"]) THEN
    FromClosedDoc := TRUE
    ELSE
    FromClosedDoc := FALSE;

    // Add the following lines.
    IF OldCustLedgEntry."Document Status" = OldCustLedgEntry."Document Status"::Rejected THEN BEGIN
    TempRejCustLedgEntry := OldCustLedgEntry;
    TempRejCustLedgEntry."Remaining Amount (LCY) stats." := AppliedAmountLCY + DeltaUnrealAmount + DeltaAmountLCY;
    TempRejCustLedgEntry.INSERT;
    END;
    // End of the lines.

    DocPost.UpdateReceivableDoc(
    OldCustLedgEntry,GenJnlLine,AppliedAmountLCY + DeltaUnrealAmount + DeltaAmountLCY,
    DocAmountLCY,RejDocAmountLCY,DiscDocAmountLCY,CollDocAmountLCY,
    DiscRiskFactAmountLCY,DiscUnriskFactAmountLCY,CollFactAmountLCY);
    END;
    ...

  5. Muuda koodi PostDtldCustLedgEntries funktsioon järgmiselt:
    Kood

    ...              AccNo := CustPostingGr."Bills Account";
    END ELSE BEGIN
    CustPostingGr.TESTFIELD("Receivables Account");
    AccNo := CustPostingGr."Receivables Account";
    END;

    // Delete the following lines.
    IF DiscDocAmountLCY <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Discted. Bills Acc.");
    AccNo := CustPostingGr."Discted. Bills Acc.";
    END;
    IF CollDocAmountLCY <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Bills on Collection Acc.");
    AccNo := CustPostingGr."Bills on Collection Acc.";
    END;
    IF RejDocAmountLCY <> 0 THEN BEGIN
    CASE GenJnlLine."Applies-to Doc. Type" OF
    GenJnlLine."Applies-to Doc. Type"::Bill:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Bills Acc.");
    AccNo := CustPostingGr."Rejected Bills Acc.";
    END;
    GenJnlLine."Applies-to Doc. Type"::Invoice:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Factoring Acc.");
    AccNo := CustPostingGr."Rejected Factoring Acc.";
    END;
    ELSE
    IF (GenJnlLine."Document Type" IN [GenJnlLine."Document Type"::"Credit Memo",GenJnlLine."Document Type"::Payment]) AND
    (OldCVLedgEntryBuf4."Applies-to ID" <> '') THEN BEGIN
    CASE OldCVLedgEntryBuf4."Document Type" OF
    OldCVLedgEntryBuf4."Document Type"::Bill:
    BEGIN
    CustPostingGr.TESTFIELD("Receivables Account");
    AccNo := CustPostingGr."Receivables Account";
    END;
    OldCVLedgEntryBuf4."Document Type"::Invoice:
    BEGIN
    CustPostingGr.TESTFIELD("Receivables Account");
    AccNo := CustPostingGr."Receivables Account";
    END;
    END;
    END;
    END;
    END;
    IF (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) THEN BEGIN
    CustPostingGr.TESTFIELD("Factoring for Discount Acc.");
    AccNo := CustPostingGr."Factoring for Discount Acc.";
    END;
    IF CollFactAmountLCY <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Factoring for Collection Acc.");
    AccNo := CustPostingGr."Factoring for Collection Acc.";
    END;
    // End of the lines.

    ReceivableAccAmtLCY :=
    TotalAmountLCY -
    (DocAmountLCY + DiscDocAmountLCY +
    CollDocAmountLCY + RejDocAmountLCY + DiscRiskFactAmountLCY +
    ...

    Eemaldamise teave

    ...              AccNo := CustPostingGr."Bills Account";
    END ELSE BEGIN
    CustPostingGr.TESTFIELD("Receivables Account");
    AccNo := CustPostingGr."Receivables Account";
    END;

    ReceivableAccAmtLCY :=
    TotalAmountLCY -
    (DocAmountLCY + DiscDocAmountLCY +
    CollDocAmountLCY + RejDocAmountLCY + DiscRiskFactAmountLCY +
    ...

  6. Muuda koodi PostReceivableDocs funktsioon järgmiselt:
    Kood

    ...          GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    IF RejDocAmountLCY <> 0 THEN BEGIN

    // Delete the following lines.
    CASE GenJnlLine."Applies-to Doc. Type" OF
    GenJnlLine."Applies-to Doc. Type"::Bill:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Bills Acc.");
    InitGLEntry(CustPostingGr."Rejected Bills Acc.",RejDocAmountLCY,DocAmtCalcAddCurrency(RejDocAmountLCY),TRUE,TRUE);
    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    GenJnlLine."Applies-to Doc. Type"::Invoice:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Factoring Acc.");
    InitGLEntry(CustPostingGr."Rejected Factoring Acc.",RejDocAmountLCY,DocAmtCalcAddCurrency(RejDocAmountLCY),TRUE,TRUE);
    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    ELSE
    IF (GenJnlLine."Document Type" IN [GenJnlLine."Document Type"::"Credit Memo",GenJnlLine."Document Type"::Payment]) AND
    (OldCVLedgEntryBuf4."Applies-to ID" <> '') THEN BEGIN
    CASE OldCVLedgEntryBuf4."Document Type" OF
    OldCVLedgEntryBuf4."Document Type"::Bill:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Bills Acc.");
    InitGLEntry(CustPostingGr."Rejected Bills Acc.",RejDocAmountLCY,DocAmtCalcAddCurrency(RejDocAmountLCY),TRUE,TRUE);
    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    OldCVLedgEntryBuf4."Document Type"::Invoice:
    BEGIN
    CustPostingGr.TESTFIELD("Rejected Factoring Acc.");
    InitGLEntry(CustPostingGr."Rejected Factoring Acc.",RejDocAmountLCY,DocAmtCalcAddCurrency(RejDocAmountLCY),TRUE,TRUE
    );

    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    END;
    END;
    // End of the lines.

    END;
    END;
    IF DiscRiskFactAmountLCY <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Factoring for Discount Acc.");
    InitGLEntry(CustPostingGr."Factoring for Discount Acc.",
    ...

    Eemaldamise teave

    ...          GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    IF RejDocAmountLCY <> 0 THEN BEGIN

    // Add the following lines.
    WITH TempRejCustLedgEntry DO BEGIN
    RESET;
    SETCURRENTKEY("Customer No.","Document Type","Document Situation","Document Status");
    SETRANGE("Document Type","Document Type"::Bill);
    CALCSUMS("Remaining Amount (LCY) stats.");
    IF "Remaining Amount (LCY) stats." <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Rejected Bills Acc.");
    InitGLEntry(
    CustPostingGr."Rejected Bills Acc.","Remaining Amount (LCY) stats.",
    DocAmtCalcAddCurrency("Remaining Amount (LCY) stats."),TRUE,TRUE);
    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    SETRANGE("Document Type","Document Type"::Invoice);
    CALCSUMS("Remaining Amount (LCY) stats.");
    IF "Remaining Amount (LCY) stats." <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Rejected Factoring Acc.");
    InitGLEntry(
    CustPostingGr."Rejected Factoring Acc.","Remaining Amount (LCY) stats.",
    DocAmtCalcAddCurrency("Remaining Amount (LCY) stats."),TRUE,TRUE);
    GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";
    GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
    InsertGLEntry(TRUE);
    END;
    // End of the lines.

    END;
    END;
    IF DiscRiskFactAmountLCY <> 0 THEN BEGIN
    CustPostingGr.TESTFIELD("Factoring for Discount Acc.");
    InitGLEntry(CustPostingGr."Factoring for Discount Acc.",
    ...

Eeltingimused

Teil peab olema üks selle kiirparanduse installinud järgmisi tooteid:

  • Portugali versioonis Microsoft Dynamics nav-i 2009 R2

  • Portugali versioonis Microsoft Dynamics nav-i 2009 Service Pack 1

Eemaldamise teave

See käigultparandus ei saa eemaldada.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.

Märkus. See on "Kiire avaldamise" artikli loonud otse Microsofti tugiteenuse pakkujalt. Siintoodud teave on esitatud lähtudes-olemasoleval kujul vastusena ilmnenud probleemidele. Kiire avaldamise materjalides esineda trükivigu ja võidakse muuta ette teatamata. Vaadake Kasutustingimused muid kaalutlusi.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?
Kui klõpsate nuppu Edasta, kasutatakse teie tagasisidet Microsofti toodete ja teenuste täiustamiseks. IT-administraator saab neid andmeid koguda. Privaatsusavaldus.

Täname tagasiside eest!

×