Gejala

Dalam versi bahasa Spanyol Microsoft Dynamics NAV 2009, menganggap bahwa Anda memiliki dua faktur individu berbeda (Pelanggan yang sama atau vendor atau berbeda). Masing-masing dua faktur menggunakan hanya satu baris tapi berbeda % PPN (satu faktur 21% dan 10% sebagai contoh). Anda mengirim faktur ini dengan mengirimkan dokumen Cartera (tagihan atau faktur untuk Cartera) dan menambahkan faktur individu tersebut dua ke dalam urutan grup atau pembayaran tagihan. Jika Anda puas dengan hanya satu baris satu per satu, pembayaran diekspor sebagai "Z" pada Deklarasi 340. Namun, setelah Anda menyelesaikan kedua dokumen, dua pembayaran diekspor sebagai "2", yang merupakan salah, karena faktur awal jenis "C" (jalur yang berbeda dengan berbeda % VAT), tetapi individu yang (operasi Normal ditetapkan ke "Kosong"). Ikuti langkah-langkah di bagian perubahan kode untuk memecahkan masalah ini. Masalah ini terjadi di dalam produk berikut ini:

  • Versi bahasa Spanyol Microsoft Dynamics NAV 2009 R2

  • Versi bahasa Spanyol Microsoft Dynamics NAV 2009 SP1

Pemecahan masalah

Informasi Hotfix

Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, hanya ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan Anda menunggu paket layanan Microsoft Dynamics NAV 2009 atau versi Microsoft Dynamics NAV berikutnya yang berisi perbaikan terbaru ini.Catatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan mungkin dibatalkan apabila profesional dukungan teknis untuk Microsoft Dynamics dan produk-produk terkait dukungan menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.

Informasi penginstalan

Microsoft menyediakan contoh pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat. Ini mencakup, namun tidak terbatas pada, garansi yang tersirat dapat diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini menganggap bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan terbiasa dengan alat-alat yang digunakan untuk membuat dan prosedur debug. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu. Namun, mereka tidak akan mengubah contoh tersebut untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.Catatan Sebelum Anda menginstal perbaikan terbaru ini, verifikasi bahwa semua pengguna klien Microsoft Dynamics NAV log off sistem. Ini termasuk layanan Microsoft Dynamics NAV aplikasi Server (NAS). Anda harus klien hanya pengguna yang masuk saat Anda menerapkan perbaikan terbaru ini.Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.Kami menyarankan bahwa akun pengguna di jendela login Windows atau jendela login Database ditetapkan id peran "SUPER" Jika account pengguna tidak dapat menetapkan ID peran "SUPER", Anda harus memverifikasi bahwa account pengguna yang memiliki izin berikut ini:

  • Ubah izin untuk objek yang Anda akan berubah.

  • Izin eksekusi untuk objek sistem objek ID 5210 dan sistem objek ID 9015objek.

Catatan Anda tidak harus memiliki hak untuk penyimpanan data kecuali jika Anda harus melakukan perbaikan data.

Perubahan kode

Catatan Selalu menguji kode perbaikan di lingkungan yang dikontrol sebelum menerapkan perbaikan untuk komputer produksi.Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:

  1. Ubah kode di properti dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ...IF FORM.RUNMODAL(10744,TempDeclarationLines) = ACTION::LookupOK THEN BEGIN                       TempDeclarationLines.SETRANGE("Operation Code",'R');                       TempDeclarationLines.SETRANGE("Property Location",TempDeclarationLines."Property Location"::" ");// Delete the following lines.// VSTf307397.beginTempDeclarationLines.SETRANGE(Type,TempDeclarationLines.Type::Sale);// VSTF307397.endIF NOT TempDeclarationLines.ISEMPTY THENEXIT;TempDeclarationLines.RESET;CreateFileHeader;WriteDeclarationLinesToText(TempDeclarationLines);END ELSEEXIT;// End of the deleted lines.                   END;                   WriteAppliedPaymentsToText;                   IF FileHeaderCreated THEN BEGIN...

    Penggantian kode

    ... IF FORM.RUNMODAL(10744,TempDeclarationLines) = ACTION::LookupOK THEN BEGIN                       TempDeclarationLines.SETRANGE("Operation Code",'R');                       TempDeclarationLines.SETRANGE("Property Location",TempDeclarationLines."Property Location"::" ");// Add the following lines.TempDeclarationLines.SETRANGE(Type,TempDeclarationLines.Type::Sale);IF NOT TempDeclarationLines.ISEMPTY THENEXIT;TempDeclarationLines.RESET;CreateFileHeader;WriteDeclarationLinesToText(TempDeclarationLines);END ELSEEXIT;// End of the added lines.                   END;                   WriteAppliedPaymentsToText;                   IF FileHeaderCreated THEN BEGIN...
  2. Ubah kode di membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ... VATEntry."Document Type"::Refund:                                  BEGIN                                    IF VATEntry."Unrealized VAT Entry No." <> 0 THEN BEGIN// Delete the following lines.UnrealizedVATEntry.GET(VATEntry."Unrealized VAT Entry No.");VendorDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);// End of the deleted lines.                                    END;                                    EXIT;                                  END;...

    Penggantian kode

    ...VATEntry."Document Type"::Refund:                                  BEGIN                                    IF VATEntry."Unrealized VAT Entry No." <> 0 THEN BEGIN// Add the following lines.IF FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") <> '' THENVendorDocumentNo := VATEntry."Document No."ELSE BEGINUnrealizedVATEntry.GET(VATEntry."Unrealized VAT Entry No.");VendorDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);END;// End of the added lines.                                    END;                                    EXIT;                                  END;...
  3. Ubah kode di CheckVATType fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ...  IF VATEntries.FINDFIRST THEN        REPEAT          IF (VATEntries."VAT %" <> VATEntryRec."VAT %") OR// Delete the following lines.(VATEntries."EC %" <> VATEntryRec."EC %") THENEXIT(TRUE);// End of the deleted lines.        UNTIL VATEntries.NEXT = 0;    END;...

    Penggantian kode

    ... IF VATEntries.FINDFIRST THEN        REPEAT          IF (VATEntries."VAT %" <> VATEntryRec."VAT %") OR// Add the following lines.(VATEntries."EC %" <> VATEntryRec."EC %")THEN BEGINIF VATEntryRec."Unrealized VAT Entry No." <> 0 THENEXIT(CheckVATOnUnrealVATEntries(VATEntryRec));EXIT(TRUE);END;// End of the added lines.        UNTIL VATEntries.NEXT = 0;    END;...
  4. Ubah kode di CheckVATOnUnrealVATEntries fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ...UNTIL VATEntries.NEXT = 0;    END;    PROCEDURE CalcECAmount@1100002(VATEntryRec@1100000 : Record 254;VAR VATBuffer3@1100001 : TEMPORARY Record 10704);    VAR      Currency@1100004 : Record 4;...

    Penggantian kode

    ...UNTIL VATEntries.NEXT = 0;    END;// Add the following lines.LOCAL PROCEDURE CheckVATOnUnrealVATEntries@1100044(VATEntryRec@1100000 : Record 254) : Boolean;VARUnrealVATEntry@1100001 : Record 254;BEGINUnrealVATEntry.GET(VATEntryRec."Unrealized VAT Entry No.");UnrealVATEntry.SETCURRENTKEY("Transaction No.");UnrealVATEntry.SETRANGE("Transaction No.",UnrealVATEntry."Transaction No.");IF UnrealVATEntry.FINDSET THENREPEATIF (UnrealVATEntry."VAT %" <> VATEntryRec."VAT %") OR(UnrealVATEntry."EC %" <> VATEntryRec."EC %")THENEXIT(TRUE);UNTIL UnrealVATEntry.NEXT = 0;EXIT(FALSE);END;// End of the added lines.PROCEDURE CalcECAmount@1100002(VATEntryRec@1100000 : Record 254;VAR VATBuffer3@1100001 : TEMPORARY Record 10704);    VAR      Currency@1100004 : Record 4;...
  5. Ubah kode di FindPmtOrderBillGrBankAcc fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ...EXIT(FormatNumber(NoOfRegs,2));    END;    PROCEDURE RecordTypeSale@1100009();    VAR      UnrealizedVATEntry@1100001 : Record 254;...

    Penggantian kode

    ...EXIT(FormatNumber(NoOfRegs,2));    END;// Add the following lines.LOCAL PROCEDURE FindPmtOrderBillGrBankAcc@1100058(Type@1100005 : Option;DocumentNo@1100000 : Code[20]) : Code[20];VARClosedBillGroup@1100003 : Record 7000007;ClosedPmtOrder@1100002 : Record 7000022;PostedBillGroup@1100004 : Record 7000006;PostedPmtOrder@1100001 : Record 7000021;BEGINCASE Type OFVATEntry.Type::Sale:BEGINIF PostedBillGroup.GET(DocumentNo) THENEXIT(PostedBillGroup."Bank Account No.");IF ClosedBillGroup.GET(DocumentNo) THENEXIT(ClosedBillGroup."Bank Account No.");END;VATEntry.Type::Purchase:BEGINIF PostedPmtOrder.GET(DocumentNo) THENEXIT(PostedPmtOrder."Bank Account No.");IF ClosedPmtOrder.GET(DocumentNo) THENEXIT(ClosedPmtOrder."Bank Account No.");END;END;EXIT('');END;// End of the added lines.PROCEDURE RecordTypeSale@1100009();    VAR      UnrealizedVATEntry@1100001 : Record 254;...
  6. Ubah kode di RecordTypeSale fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada 1

    ...END ELSE          OperationDateText := FormatDate(VATEntry."Posting Date");      IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";...

    Penggantian kode 1

    ... END ELSE          OperationDateText := FormatDate(VATEntry."Posting Date");// Add the following lines.AppliedToDocumentNo := VATEntry."Document No.";UnrealizedVATEntryNo := 0;// End of the added lines.      IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";...

    Kode yang ada 2

    ...IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";// Delete the following line.IF UnrealizedVATEntryNo <> 0 THEN BEGIN// End of the deleted line.          UnrealizedVATEntry.GET(UnrealizedVATEntryNo);          AppliedToDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);          OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");...

    Penggantian kode 2

    ...IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";// Add the following lines.IF (UnrealizedVATEntryNo <> 0) AND(FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") = '')THEN BEGIN// End of the added lines.          UnrealizedVATEntry.GET(UnrealizedVATEntryNo);          AppliedToDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);          OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");...

    Kode yang ada 3

    ... OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");          DocumentDate := UnrealizedVATEntry."Document Date";        END;// Delete the following lines.END ELSE BEGINAppliedToDocumentNo := VATEntry."Document No.";UnrealizedVATEntryNo := 0;// End of the deleted lines.      END;      CreateTempDeclarationLines(PADSTR(CustVATNumber,9,' '),Customer."No.",Customer.Name,DocumentDate,...

    Penggantian kode 3

    ...OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");          DocumentDate := UnrealizedVATEntry."Document Date";        END;      END;      CreateTempDeclarationLines(PADSTR(CustVATNumber,9,' '),Customer."No.",Customer.Name,DocumentDate,...
  7. Ubah kode di AddCollectionBankAcc fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada 1

    ...VATEntryForPmnt@1100008 : Record 254;      BankAccLE@1100002 : Record 271;      CheckLE@1100004 : Record 272;// Delete the following line.BankAcc@1100006 : Record 270;// End of the deleted line.      CollectionPaymentMethodUsed@1100005 : Text[1];      BankAccountOrPaymentMethodUsed@1100003 : Text[34];      InsertPosition@1100007 : Integer;...

    Penggantian kode 1

    ...VATEntryForPmnt@1100008 : Record 254;      BankAccLE@1100002 : Record 271;      CheckLE@1100004 : Record 272;// Add the following line.BankAccNo@1100009 : Code[20];// End of the added line.      CollectionPaymentMethodUsed@1100005 : Text[1];      BankAccountOrPaymentMethodUsed@1100003 : Text[34];      InsertPosition@1100007 : Integer;...

    Kode yang ada 2

    ... IF CheckLE.FINDFIRST THEN BEGIN          BankAccountOrPaymentMethodUsed := CheckLE."Check No.";          CollectionPaymentMethodUsed := 'T';// Delete the following lines.END ELSEIF BankAccLE.GET(DeclarationLine."Bank Account Ledger Entry No.") THEN BEGINCollectionPaymentMethodUsed := 'C';BankAcc.GET(BankAccLE."Bank Account No.");BankAccountOrPaymentMethodUsed := BankAcc."CCC No.";IF BankAccountOrPaymentMethodUsed = '' THENBankAccountOrPaymentMethodUsed := BankAcc."Bank Account No.";IF BankAccountOrPaymentMethodUsed = '' THENBankAccountOrPaymentMethodUsed :=COPYSTR(BankAcc.IBAN,1,MAXSTRLEN(BankAccountOrPaymentMethodUsed));END;// End of the deleted lines.IF BankAccountOrPaymentMethodUsed = '' THEN BEGIN          CollectionPaymentMethodUsed := 'O';          IF DeclarationLine.Type = DeclarationLine.Type::Sale THEN...

    Penggantian kode 2

    ...IF CheckLE.FINDFIRST THEN BEGIN          BankAccountOrPaymentMethodUsed := CheckLE."Check No.";          CollectionPaymentMethodUsed := 'T';// Add the following lines.END ELSE BEGINIF BankAccLE.GET(DeclarationLine."Bank Account Ledger Entry No.") THENBankAccNo := BankAccLE."Bank Account No."ELSEBankAccNo := FindPmtOrderBillGrBankAcc(DeclarationLine.Type,DeclarationLine."Document No.");BankAccountOrPaymentMethodUsed := GetBankAccountUsed(BankAccNo);IF BankAccountOrPaymentMethodUsed <> '' THENCollectionPaymentMethodUsed := 'C';END;// End of the added lines.        IF BankAccountOrPaymentMethodUsed = '' THEN BEGIN          CollectionPaymentMethodUsed := 'O';          IF DeclarationLine.Type = DeclarationLine.Type::Sale THEN...
  8. Ubah kode di GetBankAccountUsed fungsi dalam membuat 340 Deklarasi laporan (10743) sebagai berikut:Kode yang ada

    ...  txt := InsertTextWithReplace(txt,BankAccountOrPaymentMethodUsed,InsertPosition);    END;    LOCAL PROCEDURE AreDatesInSamePeriod@1100035(Date1@1100000 : Date;Date2@1100001 : Date) : Boolean;    BEGIN      EXIT(CALCDATE('<CM>',Date1) = CALCDATE('<CM>',Date2));...

    Penggantian kode

    ...txt := InsertTextWithReplace(txt,BankAccountOrPaymentMethodUsed,InsertPosition);    END;// Add the following lines.LOCAL PROCEDURE GetBankAccountUsed@1100059(BankAccNo@1100001 : Code[20]) BankAccountUsed : Text[34];VARBankAccount@1100000 : Record 270;BEGINWITH BankAccount DOIF GET(BankAccNo) THEN BEGINBankAccountUsed := "CCC No.";IF BankAccountUsed = '' THENBankAccountUsed := "Bank Account No.";IF BankAccountUsed = '' THENBankAccountUsed := COPYSTR(IBAN,1,MAXSTRLEN(BankAccountUsed));END;END;// End of the added lines.LOCAL PROCEDURE AreDatesInSamePeriod@1100035(Date1@1100000 : Date;Date2@1100001 : Date) : Boolean;    BEGIN      EXIT(CALCDATE('<CM>',Date1) = CALCDATE('<CM>',Date2));...

Prasyarat

Anda harus memiliki salah satu produk berikut ini diinstal untuk menerapkan perbaikan terbaru ini:

  • Versi bahasa Spanyol Microsoft Dynamics NAV 2009 R2

  • Versi bahasa Spanyol Microsoft Dynamics NAV 2009 SP1

Informasi penghapusan

Anda tidak dapat menghapus hotfix ini.

Status

Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".

Catatan Ini adalah artikel "Penerbitan cepat" dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang terkandung di dalamnya disediakan sebagai tanggapan masalah yang muncul. Sebagai akibat dari kecepatan untuk menjadikannya tersedia, materi dapat mengandung kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Ketentuanuntuk pertimbangan lainnya.

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.