再振り出し手形の現金の支払は、元の請求書の年の宣言し、347 宣言のスペイン語版の Microsoft Dynamics NAV 2009 年の内で再振り出し手形の年に基づいていないする必要があります。この問題は、次の製品で発生します。
-
Microsoft Dynamics NAV 2009 の R2 のスペイン語版
-
スペイン語版の Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)
原因
再振り出し手形が発生した場合の 347 宣言をエクスポートから不正な日付が取得されているためこの問題が発生します。
解決策
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。
注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
インストール情報
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能について説明することができます。ただし、お客様固有の要件を満たすために、追加機能の提供またはプロシージャの作成のために、これらの例に変更を加えたりはしません。
注: この修正プログラムをインストールする前に、Microsoft Dynamics NAV のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Dynamics NAV アプリケーション サーバー (NAS) のサービスが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。
この修正プログラムを実装するには、開発者用のライセンスが必要です。
ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
実行のアクセス許可、システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015
オブジェクトです。
注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注常にテスト コードの修正プログラムの制御された環境で、運用コンピューターに修正プログラムを適用する前にします。変更を適用するには、前に SEPA のすべての更新プログラムをインポートしてください。
この問題を解決するには、次の手順を実行します。
-
347 宣言を行うレポート (10707) 内のIdentifyCashPayments関数内のコードを次のように変更します。
既存のコード 1...LOCAL PROCEDURE IdentifyCashPayments@1100010(CustomerNo@1100000 : Code[20];VATRegistrationNo@1100002 : Text[20]);
VAR
CustLedgerEntry@1100001 : Record 21;
BEGIN
// es0020.begin
CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment);
...置換用コード 1
...LOCAL PROCEDURE IdentifyCashPayments@1100010(CustomerNo@1100000 : Code[20];VATRegistrationNo@1100002 : Text[20]);
VAR
CustLedgerEntry@1100001 : Record 21;
// Add the following line.
DocumentPostingDate@1170000000 : Date;
BEGIN
// es0020.begin
CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment);
...既存のコード 2
...CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment);
CustLedgerEntry.SETRANGE("Customer No.",CustomerNo);
// Delete the following lines.
CustLedgerEntry.SETRANGE("Posting Date",FromDate,ToDate);
IF CustLedgerEntry.FINDSET THEN
REPEAT
IF (CustLedgerEntry."Bal. Account Type" = CustLedgerEntry."Bal. Account Type"::"G/L Account") AND
(CustLedgerEntry."Bal. Account No." <> '')
THEN BEGIN
IF IsCashAccount(CustLedgerEntry."Bal. Account No.") THEN
CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo);
END ELSE
IF ((CustLedgerEntry."Bal. Account No." = '') OR
(CustLedgerEntry."Bal. Account Type" <> CustLedgerEntry."Bal. Account Type"::"G/L Account"))
THEN BEGIN
IF IdentifyCashPaymentsFromGL(CustLedgerEntry) THEN
CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo);
END;
// End of the deleted lines.
UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end
END;
...置換用コード 2
...CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code");
CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment);
CustLedgerEntry.SETRANGE("Customer No.",CustomerNo);
// Add the following lines.
// we need payments made in future.
// CustLedgerEntry.SETRANGE("Posting Date",FromDate,ToDate);
IF CustLedgerEntry.FINDSET THEN
REPEAT
DocumentPostingDate := GetPaymentDocumentPostingDate(CustLedgerEntry);
IF (CheckCashTotalsPossibility(CustLedgerEntry,DocumentPostingDate)) THEN
CreateCashTotals(CustLedgerEntry."Entry No.",VATRegistrationNo,DocumentPostingDate);
// End of the added lines.
UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end
END;
... -
347 宣言を行うレポート (10707) 内のCreateCashTotals関数内のコードを次のように変更します。
既存のコード 1...UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end
END;
// Delete the following line.
LOCAL PROCEDURE CreateCashTotals@2(CustLedgerEntryNo@1100000 : Integer;VATRegistrationNo@1100001 : Text[20]) : Boolean;
VAR
CustLedgerEntry@1100091 : Record 21;
DtldCustLedgEntry@1100094 : Record 379;
DtldCustLedgEntry2@1100095 : Record 379;
...置換用コード 1
...UNTIL CustLedgerEntry.NEXT = 0;
// es0020.end
END;
// Add the following line.
LOCAL PROCEDURE CreateCashTotals@2(CustLedgerEntryNo@1100000 : Integer;VATRegistrationNo@1100001 : Text[20];DocumentPostingDate@1170000000 : Date) : Boolean;
VAR
CustLedgerEntry@1100091 : Record 21;
DtldCustLedgEntry@1100094 : Record 379;
DtldCustLedgEntry2@1100095 : Record 379;
...既存のコード 2
...THEN BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN
UpdateCustomerCashBuffer(VATRegistrationNo,
// Delete the following line.
DATE2DMY(CustLedgerEntry."Posting Date",3),-(DtldCustLedgEntry2."Amount (LCY)"));
END;
UNTIL DtldCustLedgEntry2.NEXT = 0;
END ELSE BEGIN
...置換用コード 2
...THEN BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN
UpdateCustomerCashBuffer(VATRegistrationNo,
// Add the following line.
DATE2DMY(DocumentPostingDate,3),-(DtldCustLedgEntry2."Amount (LCY)"));
END;
UNTIL DtldCustLedgEntry2.NEXT = 0;
END ELSE BEGIN
...既存のコード 3
...END ELSE BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN
UpdateCustomerCashBuffer(VATRegistrationNo,
// Delete the following line.
DATE2DMY(CustLedgerEntry."Posting Date",3),DtldCustLedgEntry."Amount (LCY)");
END;
UNTIL DtldCustLedgEntry.NEXT = 0;
// es0020.end
...置換用コード 3
...END ELSE BEGIN
IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN
UpdateCustomerCashBuffer(VATRegistrationNo,
// Add the following line.
DATE2DMY(DocumentPostingDate,3),DtldCustLedgEntry."Amount (LCY)");
END;
UNTIL DtldCustLedgEntry.NEXT = 0;
// es0020.end
... -
347 宣言を行うレポート (10707) 内のGetPaymentDocumentPostingDate関数内のコードを次のように変更します。
既存のコード...IF Vendor."Country/Region Code" = CountryCode THEN
FromJournal := TRUE;
END;
...置換用コード
...IF Vendor."Country/Region Code" = CountryCode THEN
FromJournal := TRUE;
END;
// Add the following lines.
LOCAL PROCEDURE GetPaymentDocumentPostingDate@1170000000(CustLedgerEntry@1170000000 : Record 21) PostingDate : Date;
VAR
CustLedgerEntryRelated@1170000001 : Record 21;
BEGIN
WITH CustLedgerEntry DO BEGIN;
TESTFIELD("Document Type","Document Type"::Payment);
PostingDate := "Posting Date";
END;
// If payment for Bill then we need get Posting Date of the Document related to the Bill
WITH CustLedgerEntryRelated DO BEGIN
SETRANGE("Closed by Entry No.",CustLedgerEntry."Entry No.");
SETRANGE("Document Type","Document Type"::Bill);
IF FINDFIRST THEN BEGIN
RESET;
SETRANGE("Document No.","Document No.");
SETFILTER("Document Type",'%1|%2',"Document Type"::Invoice,"Document Type"::"Credit Memo");
FINDFIRST;
PostingDate := "Posting Date";
END
END;
EXIT(PostingDate);
END;
PROCEDURE CheckCashTotalsPossibility@1170000008(CustLedgerEntry@1170000000 : Record 21;DocumentPostingDate@1170000001 : Date) : Boolean;
BEGIN
IF (DocumentPostingDate < FromDate) OR (DocumentPostingDate > ToDate) THEN
EXIT(FALSE);
WITH CustLedgerEntry DO
IF ("Bal. Account Type" = "Bal. Account Type"::"G/L Account") AND ("Bal. Account No." <> '') THEN BEGIN
IF IsCashAccount("Bal. Account No.") THEN
EXIT(TRUE);
END ELSE
IF ("Bal. Account No." = '') OR ("Bal. Account Type" <> "Bal. Account Type"::"G/L Account") THEN
IF IdentifyCashPaymentsFromGL(CustLedgerEntry) THEN
EXIT(TRUE);
EXIT(FALSE);
END;
// End of the added lines.
...
必要条件
この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
-
Microsoft Dynamics NAV 2009 の R2 のスペイン語版
-
Microsoft Dynamics NAV 2009 の SP1 のスペイン語版
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。