Microsoft Dynamics NAV'daki Genel Muhasebe Kurulumu iletişim kutusunda Ödeme Toleransı Uyarısı onay kutusu seçildiğinde, ödeme toleransları için yanlış bir genel muhasebe hesabı kullanılıyor

Uygulandığı Öğe
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1 Microsoft Dynamics NAV 5.0

Bu makale, tüm ülkelerde ve tüm dil yerel ayarlarında Microsoft Dynamics NAV için geçerlidir.

Belirtiler

Microsoft Dynamics NAV'daki Genel Muhasebe Kurulumu iletişim kutusunda Ödeme Toleransı Uyarısı onay kutusunu seçmek için tıkladığınızı varsayalım. Ödeme iskontosu toleransı ve ödeme toleransı olan bir müşteri ödeme günlüğünü veya satıcı ödeme günlüğünü deftere naklettiğinizde, ödeme toleransı ve ödeme iskontoları için borç hesabı veya alacak hesabı, genel muhasebe girişlerinde yanlış kullanılır. Bazı senaryolarda, alacak hesabının genel muhasebe girişlerinde kullanılması gerekse bile, ödeme tolerans tutarı borç hesabına kaydedilir.
Bu sorun aşağıdaki ürünlerde oluşur:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Hizmet Paketi 1 (SP1)
  • Microsoft Dynamics NAV 5.0

      

Çözüm

Düzeltme bilgileri

Artık Microsoft, desteklenen bir düzeltme sunmaktadır. Ancak, yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bunu yalnızca bu özel sorunun yaşandığı sistemlere uygulayın. Bu düzeltme için ek sınamalar gerekebilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bir sonraki Microsoft Dynamics NAV hizmet paketini veya bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümünü beklemenizi öneririz.

Not Özel durumlarda, Microsoft Dynamics ve ilgili ürünler için bir Teknik Destek Uzmanı belirli bir güncelleştirmenin sorunu çözeceğini belirlerse, normalde destek aramaları için yapılan ücretler iptal edilebilir. Ek destek soruları ve söz konusu güncelleştirme için uygun olmayan sorunlara normal destek ücretleri uygulanır.

            
          

Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

Not Bu düzeltmeyi yüklemeden önce, tüm Microsoft Navision istemcisi kullanıcılarının sistem oturumunu kapattığını doğrulayın. Bu, Microsoft Navision Application Services (NAS) istemci kullanıcılarını içerir. Bu düzeltmeyi uyguladığınızda oturum açan tek istemci kullanıcı siz olmalısınız.

Bu düzeltmeyi uygulamak için bir geliştirici lisansınız olmalıdır.

Windows Oturum Açma veya Veritabanı Oturum Açma penceresindeki kullanıcı hesabına "SUPER" rol kimliğinin atanmasını öneririz. Kullanıcı hesabına "SUPER" rol kimliği atanamıyorsa, kullanıcı hesabının aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:

  • Değiştireceğiniz nesnenin Değiştirme izni.
  • Sistem Nesne Kimliği 5210 nesnesi ve Sistem Nesne Kimliği 9015 nesnesi için Yürütme izni.

                
Not: Veri onarımı gerçekleştirmeniz gerekmediği sürece, veri depoları üzerinde haklarınız olması gerekmez.

Kod değişiklikleri

Not: Kod düzeltmelerini üretim bilgisayarlarınıza uygulamadan önce her zaman denetimli bir ortamda sınayın.
Bu sorunu gidermek için aşağıdaki adımları izleyin:

  1. Gen'deki PostDtldVendLedgEntries işlevindeki kodu değiştirin. Jnl.-Posta Hattı kod birimi (12) aşağıdaki gibidir:
    Mevcut kod 1

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Discount Tolerance":
      BEGIN
        IF GLSetup."Pmt. Disc. Tolerance Posting" =
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Tolerance Accounts"
        THEN BEGIN
          IF (DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Credit Acc.";
          END;
        END ELSE IF GLSetup."Pmt. Disc. Tolerance Posting" =
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Discount Accounts"
        THEN BEGIN
          IF (DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Değiştirme kodu 1

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Discount Tolerance":
      BEGIN
        IF GLSetup."Pmt. Disc. Tolerance Posting" =
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Tolerance Accounts"
        THEN BEGIN
          IF (-DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Credit Acc.";
          END;
        END ELSE IF GLSetup."Pmt. Disc. Tolerance Posting" =
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Discount Accounts"
        THEN BEGIN
          IF (-DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Mevcut kod 2

    … 
    DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance":
      BEGIN
        IF GLSetup."Payment Tolerance Posting" =
          GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts"
        THEN BEGIN
          IF (DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Credit Acc.";
          END;
        END ELSE IF GLSetup."Payment Tolerance Posting" =
          GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts"
        THEN BEGIN
          IF (DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Değiştirme kodu 2

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance":
      BEGIN
        IF GLSetup."Payment Tolerance Posting" =
          GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts"
        THEN BEGIN
          IF (-DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Tolerance Credit Acc.";
          END;
        END ELSE IF GLSetup."Payment Tolerance Posting" =
          GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts"
        THEN BEGIN
          IF (-DtldCVLedgEntryBuf."Amount (LCY)" >= 0) THEN BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Debit Acc.";
          END ELSE BEGIN
            VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
            PaymentTolAcc := VendPostingGr."Payment Disc. Credit Acc.";
    …
    
  2. Gen'deki AutoEntrForDtldVendLedgEntries işlevindeki kodu değiştirin. Jnl.-Posta Hattı kod birimi (12) aşağıdaki gibidir:
    Mevcut kod 1

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Discount Tolerance":
      BEGIN
        CASE GLSetup."Pmt. Disc. Tolerance Posting" OF
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Tolerance Accounts":
            BEGIN
              IF DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Credit Acc.";
              END;
            END;
          GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Discount Accounts":
            BEGIN
              IF DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
                AccNo := VendPostingGr."Payment Disc. Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
                AccNo := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Değiştirme kodu 1

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Discount Tolerance":
      BEGIN
        CASE GLSetup."Pmt. Disc. Tolerance Posting" OF
            GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Tolerance Accounts":
              BEGIN
                IF -DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                  VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
                  AccNo := VendPostingGr."Payment Tolerance Debit Acc.";
                END ELSE BEGIN
                  VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
                  AccNo := VendPostingGr."Payment Tolerance Credit Acc.";
                END;
              END;
            GLSetup."Pmt. Disc. Tolerance Posting"::"Payment Discount Accounts":
              BEGIN
                IF -DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                  VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
                  AccNo := VendPostingGr."Payment Disc. Debit Acc.";
                END ELSE BEGIN
                  VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
                  AccNo := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Mevcut kod 2

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance":
      BEGIN
        CASE GLSetup."Payment Tolerance Posting" OF
          GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
            BEGIN
              IF DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Credit Acc.";
              END;
            END;
          GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
            BEGIN
              IF DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
                AccNo := VendPostingGr."Payment Disc. Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
                AccNo := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

    Değiştirme kodu 2

    …
    DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance":
      BEGIN
        CASE GLSetup."Payment Tolerance Posting" OF
          GLSetup."Payment Tolerance Posting"::"Payment Tolerance Accounts":
            BEGIN
              IF -DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Debit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Tolerance Credit Acc.");
                AccNo := VendPostingGr."Payment Tolerance Credit Acc.";
              END;
            END;
          GLSetup."Payment Tolerance Posting"::"Payment Discount Accounts":
            BEGIN
              IF -DtldCVLedgEntryBuf."Amount (LCY)" < 0 THEN BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Debit Acc.");
                AccNo := VendPostingGr."Payment Disc. Debit Acc.";
              END ELSE BEGIN
                VendPostingGr.TESTFIELD("Payment Disc. Credit Acc.");
                AccNo := VendPostingGr."Payment Disc. Credit Acc.";
    …
    

Önkoşullar

Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birini yüklemiş olmanız gerekir:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Hizmet Paketi 1 (SP1)
  • Microsoft Dynamics NAV 5.0

                
              

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

981697 Microsoft Dynamics NAV 2009'daki "Genel Muhasebe Kurulumu" formunda "Ödeme İndirimi için Düzelt" ayarı etkinleştirilmişse "Tam KDV" seçeneğinin kullanıldığı bir faturayı uygulamak üzere ödeme yaptığınızda yanlış defteri kebir hesabı kullanılır

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Not: Bu, doğrudan Microsoft destek kuruluşu tarafından hazırlanmış bir "HIZLI YAYIMLAMA" makalesidir. Burada yer alan bilgiler acil sorunlar karşısında bu şekliyle verilir. Kullanıma sunma hızının bir sonucu olarak, materyaller yazım hataları içerebilir ve herhangi bir zamanda önceden haber verilmeksizin revize edilebilir. Göz önünde bulundurulması gereken diğer hususlar için Kullanım Koşulları'na bakın.