Tämä artikkeli koskee Microsoft Dynamics NAV -ohjelmaa kaikilla kielialueilla.
Ongelman ilmenemistapa
Oletetaan, että käytät ALV-merkintään maksualennuksen oikaisua ja Microsoft Dynamics NAV -ohjelman maksutoleranssia. Kun myyntimaksua ei käytetä myyntilaskussa maksualennuksen ja käytetyn maksutoleranssin kanssa, huomaat, että kirjanpitomerkinnän ALV-summa on virheellinen. Tämä ongelma ilmenee myös Osto-puolella.
Tämä ongelma ilmenee seuraavissa tuotteissa:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009 R2
Ratkaisu
Hotfix-tiedot
Tuettu hotfix-korjaus on nyt saatavilla Microsoftilta. Sen tarkoituksena on kuitenkin korjata vain tässä artikkelissa kuvattu ongelma. Käytä sitä vain järjestelmissä, joissa on tämä ongelma. Tämä hotfix-korjaus voi saada lisätestejä. Jos ongelma ei siis vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV 2009 Service Pack -pakettia tai seuraavaa Microsoft Dynamics NAV -versiota, joka sisältää tämän hotfix-korjauksen.
Huomautus Erityistapauksissa tukipuheluista tavallisesti aiheutuvat maksut voidaan peruuttaa, jos Microsoft Dynamicsin ja siihen liittyvien tuotteiden teknisen tuen asiantuntija määrittää, että tietty päivitys ratkaisee ongelmasi. Tavanomaiset tukikustannukset koskevat muita tukikysymyksiä ja -ongelmia, jotka eivät ole oikeutettuja kyseiseen päivitykseen.
Asennustiedot
Microsoft tarjoaa ohjelmointiesimerkkejä vain havainnollistamista varten ilman ilmaistua tai oletettua takuuta. Tämä sisältää muun muassa oletetut takuut soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että tunnet ohjelmointikielen, jota esitellään, sekä työkalut, joita käytetään toimintosarjojen luomiseen ja virheenkorjaukseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä niin, että ne tarjoaisivat lisätoimintoja tai laativat menetelmiä erityisvaatimusten täyttämiseksi.
Huomautus Varmista ennen tämän hotfix-korjauksen asentamista, että kaikki Microsoft Navision -asiakasohjelman käyttäjät ovat kirjautuneet ulos järjestelmästä. Tämä koskee myös Microsoft Navision Application Services (NAS) -asiakaskäyttäjiä. Sinun pitäisi olla ainoa asiakaskäyttäjä, joka on kirjautunut sisään, kun otat tämän hotfix-korjauksen käyttöön.
Jotta voit ottaa tämän hotfix-korjauksen käyttöön, sinulla on oltava kehittäjän käyttöoikeus.
Suosittelemme, että käyttäjätilille, joka on Windowsin kirjautumisikkunassa tai Tietokannan kirjautumiset -ikkunassa, määritetään "SUPER"-roolitunnus. Jos käyttäjätilille ei voi määrittää "SUPER"-roolitunnusta, sinun on varmistettava, että käyttäjätilillä on seuraavat käyttöoikeudet:
- Muutettavan objektin Muokkaa-käyttöoikeus.
- System Object ID 5210 -objektin ja System Object ID 9015 -objektin Suoritus-oikeus.
Huomautus Sinulla ei tarvitse olla oikeuksia tietosäilöihin, ellei sinun tarvitse korjata tietoja.
Koodin muutokset
Huomautus Testaa koodikorjaukset aina valvotussa ympäristössä, ennen kuin otat korjaukset käyttöön tuotantotietokoneissasi.
Voit ratkaista tämän ongelman seuraavasti:
Muuta Gen-funktion AutoEntrForDtldCustLedgEntries-funktion koodia. Jnl.-Post Line codeunit (12) seuraavasti:
Aiemmin luotu koodi... DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)": BEGIN DtldCVLedgEntryBuf.TESTFIELD("Gen. Prod. Posting Group"); GenPostingSetup.GET( DtldCVLedgEntryBuf."Gen. Bus. Posting Group", DtldCVLedgEntryBuf."Gen. Prod. Posting Group"); CASE GLSetup."Payment Tolerance Posting" OF GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts": IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Debit Acc."); AccNo := GenPostingSetup."Sales Pmt. Tol. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Credit Acc."); AccNo := GenPostingSetup."Sales Pmt. Tol. Credit Acc."; END; GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts": IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Debit Acc."); AccNo := GenPostingSetup."Sales Pmt. Disc. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Credit Acc."); AccNo := GenPostingSetup."Sales Pmt. Disc. Credit Acc."; END; END; InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE); GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount"; GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Sale; GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group"; GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group"; GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group"; GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group"; GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code"; GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable"; GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code"; GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax"; InsertGLEntry(TRUE); END; ...Korvaava koodi
... DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)": BEGIN DtldCVLedgEntryBuf.TESTFIELD("Gen. Prod. Posting Group"); GenPostingSetup.GET( DtldCVLedgEntryBuf."Gen. Bus. Posting Group", DtldCVLedgEntryBuf."Gen. Prod. Posting Group"); CASE GLSetup."Payment Tolerance Posting" OF GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts": IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Debit Acc."); AccNo := GenPostingSetup."Sales Pmt. Tol. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Tol. Credit Acc."); AccNo := GenPostingSetup."Sales Pmt. Tol. Credit Acc."; END; GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts": IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Debit Acc."); AccNo := GenPostingSetup."Sales Pmt. Disc. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Sales Pmt. Disc. Credit Acc."); AccNo := GenPostingSetup."Sales Pmt. Disc. Credit Acc."; END; END; InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE); GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount"; // Add the following line. GLEntry."VAT Amount" := -DtldCVLedgEntryBuf."VAT Amount (LCY)"; // End of the added line. GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Sale; GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group"; GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group"; GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group"; GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group"; GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code"; GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable"; GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code"; GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax"; InsertGLEntry(TRUE); END; ...Muuta Gen-funktion AutoEntrForDtldVendLedgEntries-funktion koodia. Jnl.-Post Line codeunit (12) seuraavasti:
Aiemmin luotu koodi... DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)": BEGIN GenPostingSetup.GET( DtldCVLedgEntryBuf."Gen. Bus. Posting Group", DtldCVLedgEntryBuf."Gen. Prod. Posting Group"); CASE GLSetup."Payment Tolerance Posting" OF GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts": BEGIN IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Debit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Tol. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Credit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Tol. Credit Acc."; END; END; GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts": BEGIN IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Debit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Disc. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Credit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Disc. Credit Acc."; END; END; END; InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE); GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount"; GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Purchase; GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group"; GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group"; GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group"; GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group"; GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code"; GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable"; GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code"; GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax"; InsertGLEntry(TRUE); InsertVatEntriesFromTemp(DtldCVLedgEntryBuf); END; ...Korvaava koodi
... DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)": BEGIN GenPostingSetup.GET( DtldCVLedgEntryBuf."Gen. Bus. Posting Group", DtldCVLedgEntryBuf."Gen. Prod. Posting Group"); CASE GLSetup."Payment Tolerance Posting" OF GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts": BEGIN IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Debit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Tol. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Tol. Credit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Tol. Credit Acc."; END; END; GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts": BEGIN IF DtldCVLedgEntryBuf."Amount (LCY)" > 0 THEN BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Debit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Disc. Debit Acc."; END ELSE BEGIN GenPostingSetup.TESTFIELD("Purch. Pmt. Disc. Credit Acc."); AccNo := GenPostingSetup."Purch. Pmt. Disc. Credit Acc."; END; END; END; InitGLEntry(AccNo,-DtldCVLedgEntryBuf."Amount (LCY)",0,FALSE,TRUE); GLEntry."Additional-Currency Amount" := -DtldCVLedgEntryBuf."Additional-Currency Amount"; // Add the following line. GLEntry."VAT Amount" := -DtldCVLedgEntryBuf."VAT Amount (LCY)"; // End of the added line. GLEntry."Gen. Posting Type" := GLEntry."Gen. Posting Type"::Purchase; GLEntry."Gen. Bus. Posting Group" := DtldCVLedgEntryBuf."Gen. Bus. Posting Group"; GLEntry."Gen. Prod. Posting Group" := DtldCVLedgEntryBuf."Gen. Prod. Posting Group"; GLEntry."VAT Bus. Posting Group" := DtldCVLedgEntryBuf."VAT Bus. Posting Group"; GLEntry."VAT Prod. Posting Group" := DtldCVLedgEntryBuf."VAT Prod. Posting Group"; GLEntry."Tax Area Code" := DtldCVLedgEntryBuf."Tax Area Code"; GLEntry."Tax Liable" := DtldCVLedgEntryBuf."Tax Liable"; GLEntry."Tax Group Code" := DtldCVLedgEntryBuf."Tax Group Code"; GLEntry."Use Tax" := DtldCVLedgEntryBuf."Use Tax"; InsertGLEntry(TRUE); InsertVatEntriesFromTemp(DtldCVLedgEntryBuf); END; ...
Edellytykset
Sinulla on oltava asennettuna jokin seuraavista tuotteista, jotta voit käyttää tätä hotfix-korjausta:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009 R2
Poistotiedot
Et voi poistaa tätä hotfix-korjausta.
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Viitteet
VSTF DynamicsNAV SE: 278603; 283382
Huomautus Tämä on FAST PUBLISH -artikkeli, joka on luotu suoraan Microsoftin tukiorganisaatiosta. Tässä annetut tiedot annetaan sellaisenaan vastauksena uusiin ongelmiin. Koska materiaalit ovat nopeasti käytettävissä, ne voivat sisältää typografisia virheitä, ja niitä voidaan muuttaa milloin tahansa ilman ennakkoilmoitusta. Lisätietoja on ohjeaiheessa Käyttöehdot .