Коли ви усвідомлюєте, що відкладений ПДВ, у діалоговому вікні ПДВ застосування аркуша Польська версії Microsoft Dynamics NAV 2009-R2 відображається повідомлення про помилку "Не може впоратися ПДВ, перенесено на продаж кредит приміток тут"


У цій статті стосуються Microsoft Dynamics NAV у мовних параметрах в польську (pl).

Причини


Припустімо, що відправляти продажу кредитних приміток, який містить відкладений податок на додану вартість (ПДВ) у версії Microsoft Dynamics NAV 2009-R2 Польська. Під час спроби зрозуміти ПДВ, у діалоговому вікні ПДВ застосунку аркуша , з'являється таке повідомлення про помилку:
Ви не може обробити ПДВ, відкладена для продажу кредит приміток тут.

Вирішення


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

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

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


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

Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації, без гарантій – прямих або інших. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури, але вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів.

Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що всі користувачі Microsoft Navision-клієнт відключився системи. Пакет оновлень містить Microsoft Navision застосунок служби (NAS) клієнта користувачів. Ви повинні тільки клієнт користувача, який увійшов до системи, під час виконання цього виправлення.

Щоб застосувати це виправлення, потрібно мати ліцензію для розробників.

Корпорація Майкрософт рекомендує, що обліковий запис користувача Windows, вхід вікна або у вікні бази даних входи призначити "Супер" роль ID. Якщо обліковий запис користувача не призначено роль ID "Супер", необхідно переконатися, що обліковий запис користувача, має такі дозволи:
  • Змінити дозвіл об'єкт, який буде змінити.
  • Права для виконання системи об'єкт з Ідентифікатором 5210 об'єкт а також системи об'єкт з Ідентифікатором 9015 об'єкта.


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

Зміни коду

Примітка. Завжди тест код вирішення в середовищі контрольовані перед інсталяцією розглянутого виправлення виробництва комп'ютерів.
Щоб вирішити цю проблему, виконайте такі дії.
  1. Видаліть такі параметри RealizePostponedVAT функції в полі генералом Jnl.-повідомлення рядка, codeunit (12):
    • TransactionNo
    • VATEntryNo
    • VAR TempJnlLineDim2
  2. Додати новий параметр RealizePostponedVAT функції в полі генералом Jnl.-повідомлення рядка, codeunit (12) і вкажіть параметр наступним чином:
    • Ім'я: VATEntry
    • Тип даних: запис
    • Підтип: ПДВ запис (254)
  3. Змінити код RealizePostponedVAT функції в полі генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    Наявний код 1
    ...GenJnlLine.COPY(GenJnlLine2);

    // Delete the following lines.
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim);
    // End of the lines.

    GLSetup.GET;
    SourceCodeSetup.GET;
    ...
    Код на заміну 1
    ...GenJnlLine.COPY(GenJnlLine2);

    // Add the following line.
    PreparePostponedVATDim(VATEntry,TempJnlLineDim);

    GLSetup.GET;
    SourceCodeSetup.GET;
    ...
    Наявний код 2
    ...InitCodeUnit;

    // Delete the following lines.
    VATEntryNoToRealize := VATEntryNo;
    IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN
    CustLedgEntry."Transaction No." := TransactionNo;
    // End of the lines.

    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    ...
    Код на заміну 2
    ...InitCodeUnit;

    // Add the following lines.
    VATEntryNoToRealize := VATEntry."Entry No.";
    IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN
    CustLedgEntry."Transaction No." := VATEntry."Transaction No.";
    //End of the lines.

    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    ...
    Наявний код 3
    ...CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN

    // Delete the following line.
    VendLedgEntry."Transaction No." := TransactionNo;

    VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount);
    END;
    VATEntryNoToRealize := 0;
    ...
    Код на заміну 3
    ...CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN

    // Add the following line.
    VendLedgEntry."Transaction No." := VATEntry."Transaction No.";

    VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount);
    END;
    VATEntryNoToRealize := 0;
    ...
  4. Видаліть такі параметри функції ReversePostponedVAT в полі генералом Jnl.-повідомлення рядка, codeunit (12):
    • TransactionNo
    • VATEntryNo
    • VAR TempJnlLineDim2.
  5. Додати новий параметр ReversePostponedVAT функції в полі генералом Jnl.-повідомлення рядка, codeunit (12) і вкажіть параметр наступним чином:
    • Ім'я: PostponedVATEntry
    • Тип даних: запис
    • Підтип: ПДВ запис (254)
  6. Змін у функції ReversePostponedVAT в полі генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    Наявний код 1
    ...GenJnlLine.COPY(GenJnlLine2);

    // Delete the following lines.
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim);
    // End of the lines.

    SourceCodeSetup.GET;
    GenJnlLine."Source Code" := SourceCodeSetup.Reversal;
    ...
    Код на заміну 1
    ...GenJnlLine.COPY(GenJnlLine2);

    // Add the following lines.
    PreparePostponedVATDim(PostponedVATEntry,TempJnlLineDim);
    //End of the lines.

    SourceCodeSetup.GET;
    GenJnlLine."Source Code" := SourceCodeSetup.Reversal;
    ...
    Наявний код 2
    ...VATEntry.LOCKTABLE;
    UnrealVATEntry.SETCURRENTKEY("Transaction No.");

    // Delete the following lines.
    IF VATEntryNo <> 0 THEN
    UnrealVATEntry.SETRANGE("Entry No.",VATEntryNo)
    ELSE
    UnrealVATEntry.SETRANGE("Transaction No.",TransactionNo);
    // End of the lines.

    IF UnrealVATEntry.FINDSET(TRUE) THEN
    REPEAT
    VATEntry.SETCURRENTKEY("Unrealized VAT Entry No.");
    ...
    Код на заміну 2
    ...VATEntry.LOCKTABLE;
    UnrealVATEntry.SETCURRENTKEY("Transaction No.");

    // Add the following lines.
    IF PostponedVATEntry."Entry No." <> 0 THEN
    UnrealVATEntry.SETRANGE("Entry No.",PostponedVATEntry."Entry No.")
    ELSE
    UnrealVATEntry.SETRANGE("Transaction No.",PostponedVATEntry."Transaction No.");
    //End of the lines.

    IF UnrealVATEntry.FINDSET(TRUE) THEN
    REPEAT
    VATEntry.SETCURRENTKEY("Unrealized VAT Entry No.");
    ...
  7. Створіть нову функцію PreparePostponedVATDim в на генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    LOCAL PROCEDURE PreparePostponedVATDim@1170010(VATEntry@1170003 : Record 254;VAR TempJnlLineDim@1170000 : Record 356);VAR
    GLEntryVATEntryLink@1170002 : Record 253;
    LedgEntryDim@1170001 : Record 355;
    BEGIN
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    IF VATEntry.GetCVLedgEntryNo(TempJnlLineDim) = 0 THEN BEGIN
    GLEntryVATEntryLink.SETRANGE("VAT Entry No.",VATEntry."Entry No.");
    IF GLEntryVATEntryLink.FINDFIRST THEN BEGIN
    LedgEntryDim.SETRANGE("Table ID",DATABASE::"G/L Entry");
    LedgEntryDim.SETRANGE("Entry No.",GLEntryVATEntryLink."G/L Entry No.");
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);
    END;
    END;
    END;
  8. Змін у VATManagement-codeunit (12376), функція PostponeVATEntry наступним чином:
    Наявний код
    ...VATEntry.TESTFIELD("Postponed VAT",FALSE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND

    // Delete the following lines.
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo")
    // End of the lines.

    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    Заміна код
    ...VATEntry.TESTFIELD("Postponed VAT",FALSE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND

    // Add the following line.
    IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.")

    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
  9. Змін в VATManagement-codeunit (12376), функція RealizeVATEntry наступним чином:
    Наявний код
    ...VATEntry.TESTFIELD("Postponed VAT",TRUE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND

    // Delete the following lines.
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo")
    // End of the lines.

    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    Заміна код
    ...VATEntry.TESTFIELD("Postponed VAT",TRUE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND

    // Add the following line.
    IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.")

    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
  10. Видалення таких змінних локального у функції PostUnrealVAT в VATManagement-codeunit (12376).
    • TempJnlLineDim
    • EntryNo
  11. Змін у VATManagement-codeunit (12376), функція PostUnrealVAT наступним чином:
    Наявний код
    ...ERROR(Text011,
    VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date",
    VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No.");

    // Delete the following lines.
    EntryNo := VATEntry.GetCVLedgEntryNo(TempJnlLineDim);
    IF EntryNo <> 0 THEN BEGIN
    GenJnlLine."Document Type" := VATEntry."Document Type";
    GenJnlLine."Document No." := VATEntry."Document No.";
    GenJnlLine."Postponed VAT" := TRUE;
    GenJnlLine."VAT Date" := VATDate;
    GenJnlLine."Posting Date" := VATDate;
    IF VATEntry."Postponed VAT" THEN
    GenJnlLine.Description := Text008
    ELSE
    GenJnlLine.Description := Text009;
    GenJnlLine.Description :=
    COPYSTR(
    STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."),
    1,MAXSTRLEN(GenJnlLine.Description));
    GenJnlLine."System-Created Entry" := TRUE;
    CASE VATEntry.Type OF
    VATEntry.Type::Sale:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer;
    VATEntry.Type::Purchase:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor;
    END;
    IF Type = Type::Realize THEN
    PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim)
    ELSE // Reverse
    PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim);
    END;
    // End of the lines.
    ...
    Заміна код
    ...ERROR(Text011,
    VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date",
    VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No.");

    // Add the following lines.
    GenJnlLine."Document Type" := VATEntry."Document Type";
    GenJnlLine."Document No." := VATEntry."Document No.";
    GenJnlLine."Postponed VAT" := TRUE;
    GenJnlLine."VAT Date" := VATDate;
    GenJnlLine."Posting Date" := VATDate;
    IF VATEntry."Postponed VAT" THEN
    GenJnlLine.Description := Text008
    ELSE
    GenJnlLine.Description := Text009;
    GenJnlLine.Description :=
    COPYSTR(
    STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."),
    1,MAXSTRLEN(GenJnlLine.Description));
    GenJnlLine."System-Created Entry" := TRUE;
    CASE VATEntry.Type OF
    VATEntry.Type::Sale:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer;
    VATEntry.Type::Purchase:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor;
    END;
    IF Type = Type::Realize THEN
    PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry)
    ELSE // Reverse
    PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry);
    //End of the lines.
    ...
  12. Створити нову функцію HasPostedCrMemo VATManagement-codeunit (12376) наступним чином:
    LOCAL PROCEDURE HasPostedCrMemo@1170007(DocumentNo@1170000 : Code[20]) : Boolean;VAR
    SalesCrMemoHeader@1170001 : Record 114;
    BEGIN
    EXIT(SalesCrMemoHeader.GET(DocumentNo));
    END;
  13. Створити нову функцію IsPostponedSalesCrMemoVAT VATManagement-codeunit (12376) наступним чином:
    LOCAL PROCEDURE IsPostponedSalesCrMemoVAT@1170008(VATEntry@1170000 : Record 254) : Boolean;BEGIN
    EXIT(
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo"));
    END;

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

Потрібно мати Польська версія Microsoft Dynamics NAV 2009 R2 для застосування цього виправлення.

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

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

Стан


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