Applies ToDynamics NAV 2009

Причини

Основи і обсяг неправильно групи же ПДВ, відсоток і періоду 340 Декларація готівкою ПДВ, що беруть участь у Microsoft Dynamics NAV, 2009 іспанською мовою.Той самий сценарій зі звичайного ПДВ, працює належним чином, відокремлюючи кожного рахунку, незалежно від наявності одного відсоток ПДВ. Виконайте дії, описані в розділі зміни коду , щоб вирішити цю проблему. Ця проблема виникає в таких продуктів:

  • Іспанська версії Microsoft Dynamics NAV 2009-R2

  • Іспанська версії Microsoft Dynamics NAV 2009 пакетом оновлень 1

Вирішення

Відомості про виправлення

Корпорація Майкрософт випустила підтримуване виправлення доступна. Однак, застосовувати лише для вирішення проблеми, описаної в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми. Те, що це виправлення може потребувати додаткового тестування. Таким чином, якщо ви не завдає значної, рекомендовано почекати до виходу чергового пакета оновлень Microsoft Dynamics NAV, 2009 або наступної версії Microsoft Dynamics NAV, що містить це виправлення.Примітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки професійного для Microsoft Dynamics і пов'язані продукти визначає телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.

Відомості про інсталяцію

Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації, без гарантій – прямих або інших. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури. Проте вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що всіх користувачів Microsoft Dynamics NAV-клієнт відключився системи. Це стосується, служби Microsoft Dynamics NAV Application Server (NAS). Ви повинні тільки клієнт користувача, який увійшов до системи, під час виконання цього виправлення.Щоб застосувати це виправлення, потрібно мати ліцензію для розробників.Корпорація Майкрософт рекомендує, що обліковий запис користувача Windows, вхід вікна або у вікні бази даних вхід призначити "Супер" роль ID. Якщо обліковий запис користувача не призначено роль ID "Супер", необхідно переконатися, що обліковий запис користувача, має такі дозволи:

  • Змінити дозвіл об'єкт, який буде змінити.

  • Права для виконання системи об'єкт з Ідентифікатором 5210 об'єкт і, код 9015 системи-об'єктоб'єкт.

Примітка. Маєте відповідних прав у сховища даних, якщо не потрібно виконати дані відновлення не потрібно.

Зміни коду

Примітка. Завжди тест код вирішення в середовищі контрольовані перед інсталяцією розглянутого виправлення виробництва комп'ютерів.Щоб вирішити цю проблему, виконайте такі дії.

  1. Змінити код у звіті про зробити-340-Декларація (10743), наступним чином:Наявний код 1

    ...   END;                      END;// Delete the following line.OnAfterGetRecord=BEGIN// End of the deleted line.                           OperationCode := GetOperationCode(VATEntry2);                           VATBuffer."VAT %" := "VAT %";...

    Код на заміну 1

    ... END;                      END;// Add the following lines.OnAfterGetRecord=VARVendLedgEntryAppl@1100000 : Record 25;NewEntry@1100001 : Boolean;BEGIN// End of the added lines.                           OperationCode := GetOperationCode(VATEntry2);                           VATBuffer."VAT %" := "VAT %";...

    Наявний код 2

    ... VATBuffer.Amount := Amount;                             END;                             VATBuffer.INSERT;// Delete the following lines.IF Type = VATEntry.Type::Purchase THEN BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;END;// End of the deleted lines.                         END;        TotalFields=Base,Amount;...

    Код на заміну 2

    ...VATBuffer.Amount := Amount;                             END;                             VATBuffer.INSERT;// Add the following lines.END;IF Type = VATEntry.Type::Purchase THENIF HasBeenRealized("Entry No.") OR ("Unrealized VAT Entry No." <> 0) THEN BEGINNewEntry := CheckVLEApplication(VATEntry2);VATEntryTemporary.SETRANGE("Posting Date","Posting Date");VATEntryTemporary.SETRANGE("Document No.","Document No.");VATEntryTemporary.SETRANGE("Document Type","Document Type");VATEntryTemporary.SETRANGE(Type,Type);VATEntryTemporary.SETRANGE("VAT %","VAT %");VATEntryTemporary.SETRANGE("Transaction No.","Transaction No.");IF VATEntryTemporary.FINDFIRST AND NOT NewEntry THEN BEGINVATEntryTemporary.Base += Base;VATEntryTemporary.Amount += Amount;VATEntryTemporary.MODIFY;END ELSE BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;END ELSE BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;// End of the added lines.                         END;        TotalFields=Base,Amount;...

    Наявний код 3

    ...  DataItemVarName=<Integer2>;        OnPreDataItem=BEGIN                        VATBuffer.FIND('-');                       VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");                        IF VATEntryTemporary.FINDFIRST THEN;                        CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount);                        Fin := FALSE;...

    Код на заміну 3

    ...  DataItemVarName=<Integer2>;        OnPreDataItem=BEGIN                        VATBuffer.FIND('-');// Delete the following line.VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");// End of the deleted line.                        IF VATEntryTemporary.FINDFIRST THEN;                        CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount);                        Fin := FALSE;...

    Наявний код 4

    ...IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN                             VATEntryTemporary.Amount :=  VATBuffer.Amount;                             VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary);// Delete the following lines.VATEntryTemporary.NEXT;RecordTypePurchase(VATEntry2);// End of the deleted lines.                           END;                           Fin := VATBuffer.NEXT = 0;                         END;...

    Заміна з кодом 4

    ... IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN                             VATEntryTemporary.Amount :=  VATBuffer.Amount;                             VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary);// Add the following lines.VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");VATEntryTemporary.SETRANGE("VAT %",VATBuffer."VAT %");VATEntryTemporary.SETRANGE("EC %",VATBuffer."EC %");VATEntryTemporary.FINDSET;REPEATRecordTypePurchase(VATEntryTemporary);UNTIL VATEntryTemporary.NEXT = 0;// End of the added lines.                           END;                           Fin := VATBuffer.NEXT = 0;                         END;...
  2. Змінити код глобальних параметрів у звіті про зробити-340-Декларація (10743), наступним чином:Наявний код

    ...VATEntryTemporary@1100078 : TEMPORARY Record 254;      TempDeclarationLines@1100149 : TEMPORARY Record 10744;      TempVATEntry@1100007 : TEMPORARY Record 254;      CommonDialogMgt@1100015 : Codeunit 412;      OutFile@1100016 : File;      DeclarationNum@1100017 : Text[4];...

    Заміна код

    ...  VATEntryTemporary@1100078 : TEMPORARY Record 254;      TempDeclarationLines@1100149 : TEMPORARY Record 10744;      TempVATEntry@1100007 : TEMPORARY Record 254;// Add the following line.TempDtldVendLedgerEntry@1100115 : TEMPORARY Record 380;// End of the added line.      CommonDialogMgt@1100015 : Codeunit 412;      OutFile@1100016 : File;      DeclarationNum@1100017 : Text[4];...
  3. Змінити код RecordTypePurchase функції у звіті про зробити-340-Декларація (10743), наступним чином:Наявний код

    ... END ELSE        OperationDateText := FormatDate(VATEntryRec."Posting Date");// Delete the following lines.IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGINUnrealizedVATEntryNo := VATEntryRec."Unrealized VAT Entry No.";DocumentDate := VATEntryRec."Posting Date";IF UnrealizedVATEntryNo <> 0 THEN BEGINUnrealizedVATEntry.GET(UnrealizedVATEntryNo);OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");DocumentDate := UnrealizedVATEntry."Document Date";// End of the deleted lines.        END;      END ELSE        UnrealizedVATEntryNo := 0;...

    Заміна код

    ... END ELSE        OperationDateText := FormatDate(VATEntryRec."Posting Date");// Add the following lines.VATBuffer2.Base := VATBuffer.Base;VATBuffer2.Amount := VATBuffer.Amount;IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGINUnrealizedVATEntryNo := VATEntryTemporary."Unrealized VAT Entry No.";DocumentDate := VATEntryTemporary."Posting Date";IF UnrealizedVATEntryNo <> 0 THEN BEGINUnrealizedVATEntry.GET(UnrealizedVATEntryNo);OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");DocumentDate := UnrealizedVATEntry."Document Date";IF FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") = '' THEN BEGINVendorDocumentNo := UnrealizedVATEntry."External Document No.";VATBuffer2.Base := VATEntryTemporary.Base;VATBuffer2.Amount := VATEntryTemporary.Amount;END;// End of the added lines.        END;      END ELSE        UnrealizedVATEntryNo := 0;...
  4. Змінити код CheckVLEApplication функції у звіті про зробити-340-Декларація (10743), наступним чином:Наявний код

    ...  PrevDeclarationNumEnable := ReplaceDeclaration;    END;    BEGIN    END.  }...

    Заміна код

    ...PrevDeclarationNumEnable := ReplaceDeclaration;    END;// Add the following lines.LOCAL PROCEDURE CheckVLEApplication@1100074(VATEntry@1100000 : Record 254) : Boolean;VARVendorLedgerEntry@1100001 : Record 25;DtldVendLedgEntry@1100002 : Record 380;CheckVendLedgEntry@1100003 : Record 25;UnrealizedVendLedgEntry@1100004 : Integer;BEGINFilterVendLedgerEntryByVATEntry(VendorLedgerEntry,VATEntry);UnrealizedVendLedgEntry := GetUnrealizedInvoiceVLENo(VATEntry."Unrealized VAT Entry No.");IF VendorLedgerEntry.FINDSET THENREPEATDtldVendLedgEntry.RESET;DtldVendLedgEntry.SETRANGE(Unapplied,FALSE);DtldVendLedgEntry.SETRANGE("Entry Type",DtldVendLedgEntry."Entry Type"::Application);DtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",VendorLedgerEntry."Entry No.");IF UnrealizedVendLedgEntry <> 0 THENDtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",UnrealizedVendLedgEntry);IF DtldVendLedgEntry.FINDSET THENREPEATIF (DtldVendLedgEntry."Vendor Ledger Entry No." <> DtldVendLedgEntry."Applied Vend. Ledger Entry No.") ANDCheckVendLedgEntry.GET(DtldVendLedgEntry."Vendor Ledger Entry No.")THEN BEGINIF ExistDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THENEXIT(FALSE);InsertTempDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No.");EXIT(TRUE);END;UNTIL DtldVendLedgEntry.NEXT = 0ELSE BEGINDtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.");DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendorLedgerEntry."Entry No.");IF UnrealizedVendLedgEntry <> 0 THENDtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",UnrealizedVendLedgEntry);IF DtldVendLedgEntry.FINDSET THENREPEATIF CheckVendLedgEntry.GET(DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THEN BEGINIF ExistDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.") THENEXIT(FALSE);InsertTempDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.");EXIT(TRUE);END;UNTIL DtldVendLedgEntry.NEXT = 0;END;UNTIL VendorLedgerEntry.NEXT = 0;EXIT(TRUE);END;LOCAL PROCEDURE GetUnrealizedInvoiceVLENo@1100075(VATEntryNo@1100000 : Integer) : Integer;VARVATEntry@1100002 : Record 254;VendLedgEntry@1100001 : Record 25;BEGINIF NOT VATEntry.GET(VATEntryNo) THENEXIT(0);FilterVendLedgerEntryByVATEntry(VendLedgEntry,VATEntry);IF VendLedgEntry.FINDFIRST THENEXIT(VendLedgEntry."Entry No.");EXIT(0);END;LOCAL PROCEDURE FilterVendLedgerEntryByVATEntry@1100087(VAR VendLedgEntry@1100001 : Record 25;VATEntry@1100000 : Record 254);BEGINVendLedgEntry.SETRANGE("Vendor No.",VATEntry."Bill-to/Pay-to No.");VendLedgEntry.SETRANGE("Posting Date",VATEntry."Posting Date");VendLedgEntry.SETRANGE("Document Type",VATEntry."Document Type");VendLedgEntry.SETRANGE("Document No.",VATEntry."Document No.");VendLedgEntry.SETRANGE("Transaction No.",VATEntry."Transaction No.");END;LOCAL PROCEDURE HasBeenRealized@1100064(VATEntryNo@1100000 : Integer) : Boolean;VARUnrealizedVATEntry@1100001 : Record 254;BEGINUnrealizedVATEntry.SETRANGE("Unrealized VAT Entry No.",VATEntryNo);EXIT(NOT UnrealizedVATEntry.ISEMPTY);END;LOCAL PROCEDURE ExistDtldVLE@1100195(VLENo@1100001 : Integer;AppliedVLENo@1100000 : Integer) : Boolean;BEGINTempDtldVendLedgerEntry.SETRANGE("Vendor Ledger Entry No.",VLENo);TempDtldVendLedgerEntry.SETRANGE("Applied Vend. Ledger Entry No.",AppliedVLENo);EXIT(NOT TempDtldVendLedgerEntry.ISEMPTY);END;LOCAL PROCEDURE InsertTempDtldVLE@1100191(VLENo@1100000 : Integer;AppliedVLENo@1100001 : Integer);BEGINTempDtldVendLedgerEntry.INIT;IF TempDtldVendLedgerEntry.FINDLAST THEN;TempDtldVendLedgerEntry."Entry No." += 1;TempDtldVendLedgerEntry."Vendor Ledger Entry No." := VLENo;TempDtldVendLedgerEntry."Applied Vend. Ledger Entry No." := AppliedVLENo;TempDtldVendLedgerEntry.INSERT;END;// End of the added lines.BEGIN    END.  }...

Попередні вимоги

Ви повинні мати одну з таких продуктів, щоб застосувати це виправлення:

  • Іспанська версії Microsoft Dynamics NAV 2009-R2

  • Іспанська версії Microsoft Dynamics NAV 2009 пакетом оновлень 1

Відомості про видалення

Це виправлення не можна видалити.

Стан

Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".

Примітка. Це "Швидка публікація" статті, надана службою підтримки корпорації Майкрософт. Відомості в цій статті надано без змін у відповідь на повідомлення про проблеми. З огляду на швидкість публікації матеріали можуть містити орфографічні помилки. Їх може бути змінено в будь-який час без повідомлення. Див. Умови використанняінші міркування.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.