증상
스페인어 버전의 Microsoft Dynamics 탐색 2009 년 KB3034441 를 설치 하면 고객 또는 공급 업체 원장 항목에서 정상 결제 및 자재를 적용 하는 경우 게시 된 G/L 항목을 참조 하십시오 모두 동일한 계정에 올바르지 않습니다. 이 문제를 해결 하려면 코드 변경 섹션의 단계를 따릅니다. 다음 제품에이 문제가 발생합니다.
-
스페인어 버전의 Microsoft Dynamics 탐색 2009 R2
-
스페인어 버전의 Microsoft Dynamics 탐색 2009 SP1
해결 방법
핫픽스 정보
지원 되는 핫픽스를 Microsoft에서 출시 되었습니다. 이 문서에 설명 되어 있는 문제를 해결 하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생 한 시스템에만 적용 됩니다. 이 핫픽스는 추가 테스트가 필요할 수 있습니다. 따라서이 문제의 영향이 심각 하지 다음 Microsoft Dynamics 탐색 2009 서비스 팩 또는이 핫픽스가 포함 된 다음 Microsoft Dynamics 탐색 버전까지 기다리는 것이 좋습니다.
참고: 특별 한 경우 일반적으로 호출 취소 될 수도 있습니다 경우 기술 지원 담당자는 Microsoft Dynamics 및 관련 된 제품에 대 한 지원에 따른 비용이 특정 업데이트로 문제를 해결할 수 있다고 결정 합니다. 추가 지원 질문과 특정 업데이트가 필요 하지 않은 문제에는 일반 지원 비용이 적용 됩니다.설치 정보
Microsoft는 모든 보증, 그림에 대 한 묵시적인 보증. 이 포함 되지만 상품성 또는 특정 목적에의 적합성의 묵시적된 보증에 국한 되지는 않습니다. 이 문서는 작성 하 고 프로시저를 디버깅할 데 사용 되는 도구 및 여기서 설명 하는 프로그래밍 언어에 익숙한 가정 합니다. Microsoft 지원 엔지니어는 특정 프로시저의 기능을 설명할 수 있습니다. 그러나이 예제에서는 추가 기능을 제공 하거나 특정 요구 사항에 맞도록 프로시저를 구성 하려면 수정 하지 않습니다.
참고: 이 핫픽스를 설치 하기 전에 모든 Microsoft Dynamics 탐색 클라이언트 사용자가 시스템 로그를 확인 하십시오. Microsoft Dynamics 탐색 응용 프로그램 서버 (NAS) 서비스가 포함 됩니다. 이 핫픽스를 구현할 때 로그온 되어 있는 사용자만 클라이언트 수 있습니다. 이 핫픽스를 구현 하려면 개발자 라이센스가 있어야 합니다. 것을 권장 합니다 Windows 로그인 창이 나 데이터베이스 로그인 창에서 사용자 계정 "SUPER" 역할 ID를 할당할 수 사용자 계정 "SUPER" 역할 ID를 할당할 수 없습니다, 사용자 계정에 다음 권한이 있는지 확인 해야 합니다.-
변경할 수 있는 개체에 대 한 수정 권한이 있습니다.
-
시스템 개체 ID 9015 및 시스템 개체 ID 5210 개체에 대 한 실행 권한
개체입니다.
참고: 데이터 복구를 수행 해야 할 경우가 아니면 데이터 저장소에 대 한 권한을 가질 필요가 없습니다.
코드 변경 사항
참고: 항상 테스트 코드 수정 제어 된 환경에 적용 하기 전에 프로덕션 컴퓨터에 수정 프로그램입니다.
이 문제를 해결하려면 다음과 같이 하십시오.-
PostDtldCustLedgEntries 함수에 Gen. Jnl. 코드 변경-다음과 같이 게시 줄 codeunit (12).
기존 코드 1...LOCAL PROCEDURE PostDtldCustLedgEntries@46(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;CustPostingGr@1002 : Record 92;GLSetup@1003 : Record 98;NextTransactionNo@1004 : Integer;CustLedgEntryInserted@1012 : Boolean);
VAR DtldCustLedgEntry@1005 : Record 379; Currency@1007 : Record 4; GenPostingSetup@1008 : Record 252; TotalAmountLCY@1009 : Decimal; TotalAmountAddCurr@1010 : Decimal; PaymentDiscAcc@1011 : Code[20]; DtldCustLedgEntryNoOffset@1006 : Integer; PaymentTolAcc@1013 : Code[20]; ...대체 코드 1
...LOCAL PROCEDURE PostDtldCustLedgEntries@46(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;CustPostingGr@1002 : Record 92;GLSetup@1003 : Record 98;NextTransactionNo@1004 : Integer;CustLedgEntryInserted@1012 : Boolean);
VAR DtldCustLedgEntry@1005 : Record 379; Currency@1007 : Record 4; GenPostingSetup@1008 : Record 252; // Add the following line. DtldCustLedgEntry3@1100044 : Record 379; // End of the added line. TotalAmountLCY@1009 : Decimal; TotalAmountAddCurr@1010 : Decimal; PaymentDiscAcc@1011 : Code[20]; DtldCustLedgEntryNoOffset@1006 : Integer; PaymentTolAcc@1013 : Code[20]; ...기존 코드 2
...ReceivableAccAmtLCY@1100001 : Decimal;
ReceivableAccAmtAddCurr@1100000 : Decimal; DtldCustLedgEntry2@1100003 : TEMPORARY Record 379; ExistDtldCVLedgEntryBuf@1000003 : Boolean; FindBill@1100004 : Boolean; BEGIN TotalAmountLCY := 0; TotalAmountAddCurr := 0; PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; ...대체 코드 2
...ReceivableAccAmtLCY@1100001 : Decimal;
ReceivableAccAmtAddCurr@1100000 : Decimal; DtldCustLedgEntry2@1100003 : TEMPORARY Record 379; ExistDtldCVLedgEntryBuf@1000003 : Boolean; FindBill@1100004 : Boolean; // Add the following line. EntryUnapplied@1100051 : Boolean; // End of the added line. BEGIN TotalAmountLCY := 0; TotalAmountAddCurr := 0; PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; ...기존 코드 3
... TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; NegativeLCYAppAmt := 0; NegativeACYAppAmt := 0; IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Customer THEN BEGIN IF DtldCustLedgEntry.FINDLAST THEN DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No." ELSE ...대체 코드 3
...TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; NegativeLCYAppAmt := 0; NegativeACYAppAmt := 0; // Add the following line. EntryUnapplied := FALSE; // End of the added line. IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Customer THEN BEGIN IF DtldCustLedgEntry.FINDLAST THEN DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No." ELSE ...기존 코드 4
... END;
InsertGLEntry(TRUE); GenJnlLine."Posting Date" := OriginalPostingDate; END; // Delete the following line. PostReceivableDocs(GenJnlLine); // End of the deleted line. IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN InitGLEntry(CustPostingGr."Receivables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE); InsertGLEntry(FALSE); InitGLEntry(CustPostingGr."Receivables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE); ...대체 코드 4
... END;
InsertGLEntry(TRUE); GenJnlLine."Posting Date" := OriginalPostingDate; END; // Add the following lines. WITH DtldCustLedgEntry3 DO BEGIN SETCURRENTKEY("Cust. Ledger Entry No."); SETRANGE("Cust. Ledger Entry No.",DtldCustLedgEntry."Cust. Ledger Entry No."); SETFILTER("Applies-to Bill No.",'<>%1',''); SETRANGE(Unapplied,TRUE); EntryUnapplied := NOT ISEMPTY; END; PostReceivableDocs(EntryUnapplied); // End of the added lines. IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN InitGLEntry(CustPostingGr."Receivables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE); InsertGLEntry(FALSE); InitGLEntry(CustPostingGr."Receivables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE); ... -
PostDtldVendLedgEntries 함수에 Gen. Jnl. 코드 변경-다음과 같이 게시 줄 codeunit (12).
기존 코드 1... PROCEDURE PostDtldVendLedgEntries@32(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;VendPostingGr@1002 : Record 93;NextTransactionNo@1003 : Integer;VendLedgEntryInserted@1011 : Boolean);
VAR DtldVendLedgEntry@1004 : Record 380; Currency@1006 : Record 4; GenPostingSetup@1007 : Record 252; TotalAmountLCY@1008 : Decimal; TotalAmountAddCurr@1009 : Decimal; PaymentDiscAcc@1010 : Code[20]; DtldVendLedgEntryNoOffset@1005 : Integer; PaymentTolAcc@1012 : Code[20]; ...대체 코드 1
...PROCEDURE PostDtldVendLedgEntries@32(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;VendPostingGr@1002 : Record 93;NextTransactionNo@1003 : Integer;VendLedgEntryInserted@1011 : Boolean);
VAR DtldVendLedgEntry@1004 : Record 380; Currency@1006 : Record 4; GenPostingSetup@1007 : Record 252; // Add the following line. DtldVendLedgEntry3@1100055 : Record 380; // End of the added line. TotalAmountLCY@1008 : Decimal; TotalAmountAddCurr@1009 : Decimal; PaymentDiscAcc@1010 : Code[20]; DtldVendLedgEntryNoOffset@1005 : Integer; PaymentTolAcc@1012 : Code[20]; ...기존 코드 2
...PayableAccAmtLCY@1100002 : Decimal;
PayableAccAmtAddCurr@1100010 : Decimal; DtldVendLedgEntry2@1100003 : Record 380; ExistDtldCVLedgEntryBuf@1100004 : Boolean; FindBill@1100005 : Boolean; BEGIN TotalAmountLCY := 0; TotalAmountAddCurr := 0; PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; ...대체 코드 2
...PayableAccAmtLCY@1100002 : Decimal;
PayableAccAmtAddCurr@1100010 : Decimal; DtldVendLedgEntry2@1100003 : Record 380; ExistDtldCVLedgEntryBuf@1100004 : Boolean; FindBill@1100005 : Boolean; // Add the following line. EntryUnapplied@1100051 : Boolean; // End of the added line. BEGIN TotalAmountLCY := 0; TotalAmountAddCurr := 0; PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; ...기존 코드 3
...TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; NegativeLCYAppAmt := 0; NegativeACYAppAmt := 0; IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN IF DtldVendLedgEntry.FINDLAST THEN DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No." ELSE ...대체 코드 3
...TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0; PositiveACYAppAmt := 0; NegativeLCYAppAmt := 0; NegativeACYAppAmt := 0; // Add the following line. EntryUnapplied := FALSE; // End of the added line. IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN IF DtldVendLedgEntry.FINDLAST THEN DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No." ELSE ...기존 코드 4
...END;
InsertGLEntry(TRUE); GenJnlLine."Posting Date" := OriginalPostingDate; END; // Delete the following line. PostPayableDocs(GenJnlLine); // End of the deleted line. IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN InitGLEntry(VendPostingGr."Payables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE); InsertGLEntry(FALSE); InitGLEntry(VendPostingGr."Payables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE); ...대체 코드 4
...END;
InsertGLEntry(TRUE); GenJnlLine."Posting Date" := OriginalPostingDate; END; // Add the following lines. WITH DtldVendLedgEntry3 DO BEGIN SETCURRENTKEY("Vendor Ledger Entry No."); SETRANGE("Vendor Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No."); SETFILTER("Applies-to Bill No.",'<>%1',''); SETRANGE(Unapplied,TRUE); EntryUnapplied := NOT ISEMPTY; END; PostPayableDocs(EntryUnapplied); // End of the added lines. IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN InitGLEntry(VendPostingGr."Payables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE); InsertGLEntry(FALSE); InitGLEntry(VendPostingGr."Payables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE); ... -
PostPayableDocs 함수에 Gen. Jnl. 코드 변경-다음과 같이 게시 줄 codeunit (12).
기존 코드 1...ELSE
VATEntry."Bill-to/Pay-to No." := GenJnlLine2."Account No."; END; END; // Delete the following line. LOCAL PROCEDURE PostPayableDocs@1100009(VAR GenJnlLine@1100000 : Record 81); // End of the deleted line. BEGIN IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN ...대체 코드 1
...ELSE
VATEntry."Bill-to/Pay-to No." := GenJnlLine2."Account No."; END; END; // Add the following line. LOCAL PROCEDURE PostPayableDocs@1100009(EntryUnapplied@1100001 : Boolean); // End of the added line. BEGIN IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN ...기존 코드 2
...BEGIN
IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN // Delete the following lines. // VSTF330588.begin //IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) THEN BEGIN IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" ") THEN BEGIN // VSTF330588.end // End of the deleted lines. VendPostingGr.TESTFIELD("Payables Account"); InitGLEntry(VendPostingGr."Payables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE); GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type"; GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No."; InsertGLEntry(TRUE); ...대체 코드 2
...BEGIN
IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN // Add the following lines. IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR EntryUnapplied THEN BEGIN // End of the added lines. VendPostingGr.TESTFIELD("Payables Account"); InitGLEntry(VendPostingGr."Payables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE); GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type"; GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No."; InsertGLEntry(TRUE); ... -
PostReceivableDocs 함수에 Gen. Jnl. 코드 변경-다음과 같이 게시 줄 codeunit (12).
기존 코드 1... GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
InsertGLEntry(TRUE); END; END; // Delete the following line. LOCAL PROCEDURE PostReceivableDocs@1100003(VAR GenJnlLine@1100000 : Record 81); // End of the deleted line. BEGIN IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; ...대체 코드 1
...GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";
InsertGLEntry(TRUE); END; END; // Add the following line. LOCAL PROCEDURE PostReceivableDocs@1100003(EntryUnapplied@1100001 : Boolean); // End of the added line. BEGIN IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; ...기존 코드 2
...IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR
(DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN // Delete the following lines. // VSTF330588.begin //IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) THEN BEGIN IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" ") THEN BEGIN // VSTF330588.end // End of the deleted lines. CustPostingGr.TESTFIELD("Receivables Account"); InitGLEntry(CustPostingGr."Receivables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE); GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type"; GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No."; InsertGLEntry(TRUE); ...대체 코드 2
...IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR
(DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN IF NextEntryNo2 = NextEntryNo THEN NextEntryNo := NextEntryNo - 1; IF DocAmountLCY <> 0 THEN BEGIN // Add the following lines. IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR EntryUnapplied THEN BEGIN // End of the added lines. CustPostingGr.TESTFIELD("Receivables Account"); InitGLEntry(CustPostingGr."Receivables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE); GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type"; GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No."; InsertGLEntry(TRUE); ...
전제 조건
이 핫픽스를 적용 하려면 설치한 다음 제품 중 하나가 있어야 합니다.
-
스페인어 버전의 Microsoft Dynamics 탐색 2009 R2
-
스페인어 버전의 Microsoft Dynamics 탐색 2009 SP1
KB3034441 가 설치 되어 있어야 합니다.
제거 정보
이 핫픽스를 제거할 수 없습니다.
상태
Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
참고: 이 문서는 Microsoft 지원 부서 내에서 직접 작성한 "빠른 게시" 문서입니다. 여기에 포함된 정보는 신흥 문제에 대한 응답으로 제공되었습니다. 신속히 사용할 수 있도록 작성되었으므로, 자료 입력 오류가 포함될 수 있으며 언제든지 예고없이 개정될 수 있습니다. 다른 고려 사항은 사용 약관을참조 하십시오.