Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Причини

Після здійснення виправлення в KB3001759 і KB3036811 в 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. Змінити код UnapplyCustLedgEntry функції в полі генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    Наявний код 1

    ...    NegativeLCYAppAmt@1021 : Decimal;
    PositiveACYAppAmt@1020 : Decimal;
    NegativeACYAppAmt@1019 : Decimal;

    // Delete the following lines.
    VatBaseSum@1008 : ARRAY [2] OF Decimal;
    EntryNoBegin@1025 : ARRAY [2] OF Integer;
    // End of the deleted lines.

    i@1027 : Integer;
    TempVatEntryNo@1028 : Integer;
    BEGIN
    ...

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

    ...  NegativeLCYAppAmt@1021 : Decimal;
    PositiveACYAppAmt@1020 : Decimal;
    NegativeACYAppAmt@1019 : Decimal;

    // Add the following lines.
    VatBaseSum@1008 : ARRAY [3] OF Decimal;
    EntryNoBegin@1025 : ARRAY [3] OF Integer;
    // End of the added lines.

    i@1027 : Integer;
    TempVatEntryNo@1028 : Integer;
    BEGIN
    ...

    Наявний код 2

    ... VATEntry2."Entry No." := NextVATEntryNo;
    NextVATEntryNo := NextVATEntryNo + 1;
    VATEntry2.INSERT;
    TempVatEntry.DELETE;
    END;
    IF (VATPostingSetup."Adjust for Payment Discount") AND
    ...

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

    ...VATEntry2."Entry No." := NextVATEntryNo;
    NextVATEntryNo := NextVATEntryNo + 1;
    VATEntry2.INSERT;

    // Add the following lines.
    IF VATEntry2."Unrealized VAT Entry No." = 0 THEN BEGIN
    GLEntryTmp."Entry No." := NextEntryNo;
    GLEntryVatEntrylink.InsertLink(GLEntryTmp,VATEntry2);
    END;
    // End of the added lines.

    TempVatEntry.DELETE;
    END;
    IF (VATPostingSetup."Adjust for Payment Discount") AND
    ...

    Наявний код 3

    ... IF TempVatEntry.FINDSET THEN BEGIN
    REPEAT
    CASE TRUE OF
    VatBaseSum[2] + TempVatEntry.Base = DtldCustLedgEntry2."Amount (LCY)":
    i := 3;
    VatBaseSum[1] + TempVatEntry.Base = DtldCustLedgEntry2."Amount (LCY)":
    ...

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

    ...IF TempVatEntry.FINDSET THEN BEGIN
    REPEAT
    CASE TRUE OF

    // Add the followoing lines.
    VATBaseSum[3] + TempVatEntry.Base = DtldCustLedgEntry2."Amount (LCY)":
    i := 4;
    // End of the added lines.

    VatBaseSum[2] + TempVatEntry.Base = DtldCustLedgEntry2."Amount (LCY)":
    i := 3;
    VatBaseSum[1] + TempVatEntry.Base = DtldCustLedgEntry2."Amount (LCY)":
    ...

    Наявний код 4

    ...END;
    TempVatEntry := VATEntrySaved;
    UNTIL TempVatEntry.NEXT = 0;

    // Delete the following line.
    FOR i := 1 TO 2 DO BEGIN
    // End of the deleted line.

    VatBaseSum[i] := 0;
    EntryNoBegin[i] := 0;
    END;
    ...

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

    ...END;
    TempVatEntry := VATEntrySaved;
    UNTIL TempVatEntry.NEXT = 0;

    // Add the following line.
    FOR i := 1 TO 3 DO BEGIN
    // End of the added line.

    VatBaseSum[i] := 0;
    EntryNoBegin[i] := 0;
    END;
    ...

    Наявний код 5

    ...END;
    TempVatEntry.SETRANGE("Entry No.",0,999999);
    END ELSE BEGIN
    VatBaseSum[2] := VatBaseSum[1] + TempVatEntry.Base;
    VatBaseSum[1] := TempVatEntry.Base;
    EntryNoBegin[2] := EntryNoBegin[1];
    EntryNoBegin[1] := TempVatEntry."Entry No.";
    END;
    ...

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

    ...END;
    TempVatEntry.SETRANGE("Entry No.",0,999999);
    END ELSE BEGIN

    // Add the following line.
    VatBaseSum[3] += TempVATEntry.Base;
    // End of the added line.

    VatBaseSum[2] := VatBaseSum[1] + TempVatEntry.Base;
    VatBaseSum[1] := TempVatEntry.Base;

    // Add the folloiwng lines.
    IF EntryNoBegin[3] > 0 THEN
    EntryNoBegin[3] := TempVatEntry."Entry No.";
    // End of the added lines.

    EntryNoBegin[2] := EntryNoBegin[1];
    EntryNoBegin[1] := TempVatEntry."Entry No.";
    END;
    ...
  2. Змінити код UnapplyVendLedgEntry функції в полі генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    Наявний код 1

    ...    NegativeLCYAppAmt@1021 : Decimal;
    PositiveACYAppAmt@1020 : Decimal;
    NegativeACYAppAmt@1019 : Decimal;

    // Delete the following lines.
    VatBaseSum@1029 : ARRAY [2] OF Decimal;
    EntryNoBegin@1028 : ARRAY [2] OF Integer;
    // End of the deleted lines.

    i@1027 : Integer;
    TempVatEntryNo@1025 : Integer;
    BEGIN
    ...

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

    ...    NegativeLCYAppAmt@1021 : Decimal;
    PositiveACYAppAmt@1020 : Decimal;
    NegativeACYAppAmt@1019 : Decimal;
    V
    // Add the following lines.
    atBaseSum@1029 : ARRAY [3] OF Decimal;
    EntryNoBegin@1028 : ARRAY [3] OF Integer;
    // End of the added lines.

    i@1027 : Integer;
    TempVatEntryNo@1025 : Integer;
    BEGIN
    ...

    Наявний код 2

    ...VatEntry2."Entry No." := NextVATEntryNo;
    NextVATEntryNo := NextVATEntryNo + 1;
    VatEntry2.INSERT;
    TempVatEntry.DELETE;
    END;
    IF (VATPostingSetup."Adjust for Payment Discount") AND
    ...

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

    ...VatEntry2."Entry No." := NextVATEntryNo;
    NextVATEntryNo := NextVATEntryNo + 1;
    VatEntry2.INSERT;

    // Add the following lines.
    IF VatEntry2."Unrealized VAT Entry No." = 0 THEN BEGIN
    GLEntryTmp."Entry No." := NextEntryNo;
    GLEntryVatEntrylink.InsertLink(GLEntryTmp,VatEntry2);
    END;
    // End of the added lines.

    TempVatEntry.DELETE;
    END;
    IF (VATPostingSetup."Adjust for Payment Discount") AND
    ...

    Наявний код 3

    ...  IF TempVatEntry.FINDSET THEN BEGIN
    REPEAT
    CASE TRUE OF
    VatBaseSum[2] + TempVatEntry.Base = DtldVendLedgEntry2."Amount (LCY)":
    i := 3;
    VatBaseSum[1] + TempVatEntry.Base = DtldVendLedgEntry2."Amount (LCY)":
    ...

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

    ...IF TempVatEntry.FINDSET THEN BEGIN
    REPEAT
    CASE TRUE OF

    // Add the following lines.
    VATBaseSum[3] + TempVatEntry.Base = DtldVendLedgEntry2."Amount (LCY)":
    i := 4;
    // End of the added lines.

    VatBaseSum[2] + TempVatEntry.Base = DtldVendLedgEntry2."Amount (LCY)":
    i := 3;
    VatBaseSum[1] + TempVatEntry.Base = DtldVendLedgEntry2."Amount (LCY)":
    ...

    Наявний код 4

    ...END;
    TempVatEntry.SETRANGE("Entry No.",0,999999);
    END ELSE BEGIN
    VatBaseSum[2] := VatBaseSum[1] + TempVatEntry.Base;
    VatBaseSum[1] := TempVatEntry.Base;
    EntryNoBegin[2] := EntryNoBegin[1];
    EntryNoBegin[1] := TempVatEntry."Entry No.";
    END;
    ...

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

    ... END;
    TempVatEntry.SETRANGE("Entry No.",0,999999);
    END ELSE BEGIN

    // Add the following line.
    VatBaseSum[3] += TempVATEntry.Base;
    // End of the added line.

    VatBaseSum[2] := VatBaseSum[1] + TempVatEntry.Base;
    VatBaseSum[1] := TempVatEntry.Base;

    // Add the following lines.
    IF EntryNoBegin[3] > 0 THEN
    EntryNoBegin[3] := TempVatEntry."Entry No.";
    // End of the added lines.

    EntryNoBegin[2] := EntryNoBegin[1];
    EntryNoBegin[1] := TempVatEntry."Entry No.";
    END;
    ...
  3. Змінити код InsertVatEntriesFromTemp функції в полі генералом Jnl.-повідомлення рядка codeunit (12), як описано нижче:
    Наявний код

    ... DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
    TempVatEntry.SETRANGE("Entry No.",2000000,2999999)
    END;

    // Delete the following line.
    TempVatEntry.FINDSET;
    // End of the deleted line.

    REPEAT
    VATEntry := TempVatEntry;
    VATEntry."Entry No." := NextVATEntryNo;
    VATEntry.INSERT;
    NextVATEntryNo := NextVATEntryNo + 1;
    IF VATEntry."Unrealized VAT Entry No." = 0 THEN
    GLEntryVatEntrylink.InsertLink(GLEntry,VATEntry);
    TempVatEntry.DELETE;
    LinkedAmount := LinkedAmount + VATEntry.Base;
    Complete := LinkedAmount = -DtldCVLedgEntryBuf."Amount (LCY)";
    UNTIL Complete OR (TempVatEntry.NEXT = 0);
    END;

    LOCAL PROCEDURE CaptureOrRefundCreditCardPmnt@85() : Integer;
    ...

    Заміна код

    ...DtldCVLedgEntryBuf."Entry Type"::"Payment Tolerance (VAT Excl.)":
    TempVatEntry.SETRANGE("Entry No.",2000000,2999999)
    END;

    // Add the following line.
    IF TempVatEntry.FINDSET THEN
    // End of the added line.

    REPEAT
    VATEntry := TempVatEntry;
    VATEntry."Entry No." := NextVATEntryNo;
    VATEntry.INSERT;
    NextVATEntryNo := NextVATEntryNo + 1;
    IF VATEntry."Unrealized VAT Entry No." = 0 THEN
    GLEntryVatEntrylink.InsertLink(GLEntry,VATEntry);
    TempVatEntry.DELETE;
    LinkedAmount := LinkedAmount + VATEntry.Base;
    Complete := LinkedAmount = -DtldCVLedgEntryBuf."Amount (LCY)";
    UNTIL Complete OR (TempVatEntry.NEXT = 0);
    END;

    LOCAL PROCEDURE CaptureOrRefundCreditCardPmnt@85() : Integer;
    ...


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

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

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 року з пакетом оновлень 1

Крім того, ви повинні мати KB3001759 та KB3036811 , інстальовано.

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

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

Стан

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

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

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

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

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

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

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×