"Tapahtumaa ei voi suorittaa loppuun, koska se aiheuttaa epäjohdonmukaisuuksia G/L Entry -taulukossa" -virhesanoma, kun käytät MAKSU-maksua FCY-laskuihin Kassakuittauspäiväkirjassa Microsoft Dynamics NAV 5:n Pohjois-Amerikan versiossa....

Nopeasti julkaistut artikkelit antavat tietoja suoraan Microsoftin tukiorganisaatiosta. Tässä esitetyt tiedot luodaan vastauksena uusiin tai yksilöllisiä aiheita varten, tai ne on tarkoitettu täydentämään muita Knowledge Base -tietoja.

Tämä artikkeli koskee Microsoft Dynamics NAV -ohjelmaa seuraavissa maissa ja kielialueilla.

  • englanti (Kanada) (en-ca)
  • englanti (Yhdysvallat) (en-us)
  • espanja (Meksiko) (es-mx)
  • ranska (Kanada) (fr-ca)

Oletetaan, että käytät Cronus Mexico S.A. Companya Microsoft Dynamics NAV 5.0 Service Pack 1:n Pohjois-Amerikan versiossa. Kun käytät paikallisen valuutan (LCY) maksua usean ulkomaan valuutan (FCY) laskuihin kassakuittauspäiväkirjassa, saat seuraavan virhesanoman:

Huomautus

Tapahtumaa ei voi suorittaa loppuun, koska se aiheuttaa epäyhtenäisyyksiä KP-tapahtumataulukossa.
Tarkista virheen syy tarkistamalla, missä ja miten TAPAHTUMA-funktiota käytetään.
Ota yhteyttä järjestelmänvalvojaan.
Taulukot voivat olla epäyhtenäisiä kattavan tehtävän aikana, kuten kirjaus. Tämä estää tietojen virheellisen päivittämisen.

Ongelman ilmenemistapa

Tämä ongelma ilmenee, koska kirjanpitomerkinnät ja veromerkinnät ovat virheellisiä, jos seuraavat ehdot täyttyvät:

  • Kirjaat kassakuittauspäiväkirjan käyttämällä paikallisessa valuutassa olevaa maksua ulkomaan valuuttana olevia laskuja vastaan.
  • Meksikon toteutumatonta arvonlisäveroa (ALV) käytetään.

Syy

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 tämä ongelma ei siis vakavasti vaikuta sinuun, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV 5.0 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.

Ratkaisu

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:

  1. Muuta Koodia KäytäKustLedgEntry-funktiossa Gen-funktiossa. Jnl.-Post Line codeunit (12) seuraavasti:
    Aiemmin luotu koodi

    ...
      CalcCurrencyUnrealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,OldRemainingAmtBeforeAppln);
      CalcCurrencyRealizedGainLoss(
        NewCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,RealizedGainLossLCY);
      VATRealizedGainLossLCY := RealizedGainLossLCY;
    
      CalcCurrencyRealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,-OldAppliedAmount,-AppliedAmountLCY,RealizedGainLossLCY);
    
      CalcApplication(
        NewCVLedgEntryBuf,OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,OldAppliedAmount,
        NewCVLedgEntryBuf2,OldCVLedgEntryBuf3);
    ...
    
    

    Korvaava koodi

    ...
      CalcCurrencyUnrealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,OldRemainingAmtBeforeAppln);
      CalcCurrencyRealizedGainLoss(
        NewCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,RealizedGainLossLCY);
      VATRealizedGainLossLCY := RealizedGainLossLCY;
    
      CalcCurrencyRealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,GenJnlLine,-OldAppliedAmount,-AppliedAmountLCY,RealizedGainLossLCY);
    
    // Add the following line.
      VATRealizedGainLossLCY := RealizedGainLossLCY;  
    
      CalcApplication(
        NewCVLedgEntryBuf,OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,OldAppliedAmount,
        NewCVLedgEntryBuf2,OldCVLedgEntryBuf3);
    ...
    
    
  2. Muuta gen-funktion CustUnrealizedVAT-funktion koodia. Jnl.-Post Line codeunit (12) seuraavasti:
    Aiemmin luotu koodi

    ...
              //what is LCY value of VAT and VAT Base at posting date (cash basis)
              IF (VATPostingSetup."Unrealized VAT Type" = VATPostingSetup."Unrealized VAT Type"::"Cash Basis") AND
                 (GainLossLCY <> 0) THEN BEGIN
                VATBaseFCY := ROUND(
                  CurrExchRate.ExchangeAmtLCYToFCY(
                    PostingDate,CustLedgEntry2."Currency Code",VATBase,CustLedgEntry2."Original Currency Factor"));
    ...
    
    

    Korvaava koodi

    ...
              //what is LCY value of VAT and VAT Base at posting date (cash basis)
              IF (VATPostingSetup."Unrealized VAT Type" = VATPostingSetup."Unrealized VAT Type"::"Cash Basis") AND
                 (GainLossLCY <> 0) THEN BEGIN
    
    // Add the following line.
                CurrencyFactor := CurrExchRate.ExchangeRate(PostingDate,CustLedgEntry2."Currency Code"); 
    
                VATBaseFCY := ROUND(
                  CurrExchRate.ExchangeAmtLCYToFCY(
                    PostingDate,CustLedgEntry2."Currency Code",VATBase,CustLedgEntry2."Original Currency Factor"));
    ...
    
    
  3. Muuta koodia ApplyVendLedgEntry-funktiossa Gen-funktiossa. Jnl.-Post Line codeunit (12) seuraavasti:
    Aiemmin luotu koodi

    ...
      CalcCurrencyUnrealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,OldRemainingAmtBeforeAppln);
      CalcCurrencyRealizedGainLoss(
        NewCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,RealizedGainLossLCY);
      VATRealizedGainLossLCY := RealizedGainLossLCY;
      CalcCurrencyRealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,-AppliedAmountLCY,RealizedGainLossLCY);
    
      CalcApplication(
        NewCVLedgEntryBuf,OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,OldAppliedAmount,
        NewCVLedgEntryBuf2,OldCVLedgEntryBuf3);
    ...
    
    

    Korvaava koodi

    ...
      CalcCurrencyUnrealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,OldRemainingAmtBeforeAppln);
      CalcCurrencyRealizedGainLoss(
        NewCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,RealizedGainLossLCY);
      VATRealizedGainLossLCY := RealizedGainLossLCY;
      CalcCurrencyRealizedGainLoss(
        OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,-OldAppliedAmount,-AppliedAmountLCY,RealizedGainLossLCY);
    
    // Add the following line.
      VATRealizedGainLossLCY := RealizedGainLossLCY; 
    
      CalcApplication(
        NewCVLedgEntryBuf,OldCVLedgEntryBuf,DtldCVLedgEntryBuf,
        GenJnlLine,AppliedAmount,AppliedAmountLCY,OldAppliedAmount,
        NewCVLedgEntryBuf2,OldCVLedgEntryBuf3);
    ...
    
    
  4. Muuta Gen-funktion VendUnrealizedVAT-funktion koodia. Jnl.-Post Line codeunit (12) seuraavasti:
    Aiemmin luotu koodi

    ...
              //what is LCY value of VAT and VAT Base at posting date (cash basis)
              IF (VATPostingSetup."Unrealized VAT Type" = VATPostingSetup."Unrealized VAT Type"::"Cash Basis") AND
                 (GainLossLCY <> 0) THEN BEGIN
                VATBaseFCY := ROUND(
                  CurrExchRate.ExchangeAmtLCYToFCY(
                    PostingDate,VendLedgEntry2."Currency Code",VATBase,VendLedgEntry2."Original Currency Factor"));
    ...
    
    

    Korvaava koodi

    ...
              //what is LCY value of VAT and VAT Base at posting date (cash basis)
              IF (VATPostingSetup."Unrealized VAT Type" = VATPostingSetup."Unrealized VAT Type"::"Cash Basis") AND
                 (GainLossLCY <> 0) THEN BEGIN
    
    // Add the following line.
                CurrencyFactor := CurrExchRate.ExchangeRate(PostingDate,VendLedgEntry2."Currency Code"); 
    
                VATBaseFCY := ROUND(
                  CurrExchRate.ExchangeAmtLCYToFCY(
                    PostingDate,VendLedgEntry2."Currency Code",VATBase,VendLedgEntry2."Original Currency Factor"));
    ...
    
    

Edellytykset

Sinulla on oltava asennettuna Microsoft Dynamics NAV 5.0 Service Pack 1:n pohjoisamerikkalainen versio, jotta voit käyttää tätä hotfix-korjausta.

Poistotiedot

Et voi poistaa tätä hotfix-korjausta.

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Tila

MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT TEE MITÄÄN ESITYKSIÄ TAI TAKUITA ASIAKIRJOJEN JA TÄSSÄ SIVUSTOSSA JULKAISTUJEN AIHEESEEN LIITTYVIEN KUVIEN ("MATERIAALIT") SOVELTUVUUDESTA, LUOTETTAVUUDESTA TAI OIKEELLISUUDESTA.

MATERIAALIT VOIVAT SISÄLTÄÄ TEKNISIÄ EPÄTARKKUUKSIA TAI TYPOGRAFISIA VIRHEITÄ, JA NIITÄ VOIDAAN MUUTTAA MILLOIN TAHANSA ILMAN ENNAKKOILMOITUSTA. SOVELLETTAVAN LAIN SALLIMISSA MÄÄRIN MICROSOFT JA/TAI SEN TOIMITTAJAT EIVÄT HYVÄKSY KAIKKIA ESITYKSIÄ, TAKUITA JA EHTOJA RIIPPUMATTA SIITÄ, OVATKO NE NIMENOMAISIA, EPÄSUORIA TAI LAKISÄÄTEISIÄ, MUKAAN LUKIEN MUTTA EI RAJOITTUEN MATERIAALEIHIN LIITTYVÄT KUVAUKSET, TAKUUT TAI OMISTUSEHDOT, RIKKOMATTA JÄTTÄMINEN, TYYDYTTÄVÄ EHTO TAI LAATU, SOVELTUVUUS KAUPANKÄYNNIN KOHTEEKSI JA SOVELTUVUUS TIETTYYN TARKOITUKSEEN.