Du får feilmeldingen "Du kan ikke fakturere mer enn 0 enheter" når du kjører verktøyet for mva-endring i sveitsisk versjon av Microsoft Dynamics NAV 2009


Denne artikkelen gjelder for Microsoft Dynamics NAV for følgende land og språkinnstillingene.
  • Fransk (Sveits) (fr-ch)
  • Tysk (Sveits) (gr-ch)
  • Italiensk (Sveits) (it-ch)

Symptomer


Anta at du har en salgsordre som inneholder en negative linje i den sveitsiske versjonen av Microsoft Dynamics NAV 2009. Du levere delvis negativ salgslinje. Når du kjører verktøyet for mva-endring i denne situasjonen får du følgende feilmelding:
Du kan fakturere mer enn 0 enheter.
Dette problemet oppstår i følgende produkter:
  • Sveitsisk versjon av Microsoft Dynamics NAV 2009 R2
  • Sveitsisk versjon av Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Oppløsning


Informasjon om hurtigreparasjon

En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.

Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.


Installasjonsinformasjon

Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.

Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukere av Microsoft Navision-klienten er logget av systemet. Dette inkluderer Microsoft Navision Application tjenester (NAS) client-brukere. Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.

Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.

Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:
  • Endre-tillatelse for objektet du vil endre.
  • Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015 -objekt.


Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.

Kodeendringer

Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.
Hvis du vil løse dette problemet, gjør du følgende:
  1. Endre koden i AddNewSalesLine -funksjonen i rapporten utføre mva-endre verktøyet konv.avrund.linjer (26102) som følger:
    Eksisterende kode 1
    ...CASE SalesLine."Document Type" OF
    SalesLine."Document Type"::"Return Order": BEGIN

    // Delete the following line.
    IF SalesLine."Qty. to Invoice" > (SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced") THEN

    NewSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice" -
    (SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced"))
    ELSE
    NewSalesLine.VALIDATE("Qty. to Invoice",0);
    END ELSE BEGIN

    // Delete the following line.
    IF SalesLine."Qty. to Invoice" > (SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced") THEN

    NewSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice" -
    (SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced"))
    ...
    Ny kode 1
    ...CASE SalesLine."Document Type" OF
    SalesLine."Document Type"::"Return Order": BEGIN

    // Add the following line.
    IF ABS(SalesLine."Qty. to Invoice") > ABS(SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced") THEN

    NewSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice" -
    (SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced"))
    ELSE
    NewSalesLine.VALIDATE("Qty. to Invoice",0);
    END ELSE BEGIN

    // Add the following line.
    IF ABS(SalesLine."Qty. to Invoice") > ABS(SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced") THEN

    NewSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice" -
    (SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced"))
    ...
    Eksisterende kode 2
    ....CASE SalesLine."Document Type" OF
    SalesLine."Document Type"::"Return Order": BEGIN

    // Delete the following line.
    IF SalesLine."Qty. to Invoice" > (SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced") THEN

    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced")
    ELSE
    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice");
    END ELSE BEGIN

    // Delete the following line.
    IF SalesLine."Qty. to Invoice" > (SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced") THEN

    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced")
    ELSE
    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice");
    ...
    Ny kode 2
    ...CASE SalesLine."Document Type" OF
    SalesLine."Document Type"::"Return Order": BEGIN

    // Add the following line.
    IF ABS(SalesLine."Qty. to Invoice") > ABS(SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced") THEN

    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Return Qty. Received" - SalesLine."Quantity Invoiced")
    ELSE
    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice");
    END ELSE BEGIN

    // Add the following line.
    IF ABS(SalesLine."Qty. to Invoice") > ABS(SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced") THEN

    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Quantity Shipped" - SalesLine."Quantity Invoiced")
    ELSE
    OldSalesLine.VALIDATE("Qty. to Invoice",SalesLine."Qty. to Invoice");
    ...
  2. Endre koden i AddNewPurchaseLine -funksjonen i rapporten utføre mva-endre verktøyet konv.avrund.linjer (26102) som følger:
    Eksisterende kode 1
    ...CASE PurchaseLine."Document Type" OF
    PurchaseLine."Document Type"::"Return Order" : BEGIN

    // Delete the following line.
    IF PurchaseLine."Qty. to Invoice" > (PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced") THEN

    NewPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice" -
    (PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced"))
    ELSE
    NewPurchaseLine.VALIDATE("Qty. to Invoice",0);
    END ELSE BEGIN

    // Delete the following line.
    IF PurchaseLine."Qty. to Invoice" > (PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced") THEN

    NewPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice" -
    (PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced"))
    ELSE
    NewPurchaseLine.VALIDATE("Qty. to Invoice",0);
    ...
    Ny kode 1
    ...CASE PurchaseLine."Document Type" OF
    PurchaseLine."Document Type"::"Return Order" : BEGIN

    // Add the following line.
    IF ABS(PurchaseLine."Qty. to Invoice") > ABS(PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced") THEN

    NewPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice" -
    (PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced"))
    ELSE
    NewPurchaseLine.VALIDATE("Qty. to Invoice",0);
    END ELSE BEGIN

    // Add the following line.
    IF ABS(PurchaseLine."Qty. to Invoice") > ABS(PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced") THEN

    NewPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice" -
    (PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced"))
    ELSE
    NewPurchaseLine.VALIDATE("Qty. to Invoice",0);
    ...
    Eksisterende kode 2
    ...CASE PurchaseLine."Document Type" OF
    PurchaseLine."Document Type"::"Return Order": BEGIN

    // Delete the following line.
    IF PurchaseLine."Qty. to Invoice" > (PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced") THEN

    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced")
    ELSE
    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice");
    END ELSE BEGIN

    // Delete the following line.
    IF PurchaseLine."Qty. to Invoice" > (PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced") THEN

    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced")
    ELSE
    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice");
    ...
    Ny kode 2
    ...CASE PurchaseLine."Document Type" OF
    PurchaseLine."Document Type"::"Return Order": BEGIN

    // Add the following line.
    IF ABS(PurchaseLine."Qty. to Invoice") > ABS(PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced") THEN

    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Return Qty. Shipped" - PurchaseLine."Quantity Invoiced")
    ELSE
    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice");
    END ELSE BEGIN

    // Add the following line.
    IF ABS(PurchaseLine."Qty. to Invoice") > ABS(PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced") THEN

    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Quantity Received" - PurchaseLine."Quantity Invoiced")
    ELSE
    OldPurchaseLine.VALIDATE("Qty. to Invoice",PurchaseLine."Qty. to Invoice");
    ...

Forutsetninger

Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:
  • Sveitsisk versjon av Microsoft Dynamics NAV 2009 R2
  • Sveitsisk versjon av Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Status


Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Bruk for andre hensyn.