Застосовується до
Dynamics NAV 2009

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

"Операцію неможливо виконати, оскільки це призведе до невідповідності головної книги запис таблиці. Перевірте, де і як ПОСЛІДОВНІ функції використовується в операції знайти причину помилки. Зверніться до системного адміністратора. Таблиці можна позначено як несумісні під час комплексний завдання, наприклад повідомлення. Це запобігає даних оновлюється неправильно."

Виконайте дії, описані в розділі зміни коду , щоб вирішити цю проблему. Ця проблема виникає, у таких продуктів:

  • Португальський версії Microsoft Dynamics NAV 2009-R2

  • Португальський версії Microsoft Dynamics NAV 2009 пакетом оновлень 1

Це відбувається через певної кількості і ПДВ г. %.Наприклад:1, 15% 0, 25 = 0,002875 та ЗАОКРУГЛЕНА до 2 знаки має значення 0.Codeunit 12 існує обмеження, надсилати лише кількість <>, 0, таким чином, податок на додану вартість (ПДВ) елементи оминаються.

Вирішення

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

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

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

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

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

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

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

Зміни коду

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

  1. Змінити код InsertVAT функції в полі генералом Jnl.-повідомлення рядка Codeunit (12), як описано нижче:Наявний код 1

    ...VATDifferenceLCY@1013 : Decimal;        SrcCurrVATDifference@1014 : Decimal;      BEGIN        WITH GenJnlLine DO BEGIN...

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

    ...VATDifferenceLCY@1013 : Decimal;        SrcCurrVATDifference@1014 : Decimal;// Add the following line.VATAmountTotal@1015 : Decimal;// End of the added line.      BEGIN        WITH GenJnlLine DO BEGIN...

    Наявний код 2

    ...GLEntryVATAmount,SrcCurrGLEntryVATAmt,TRUE,TRUE);                              InsertGLEntry(TRUE);// Delete the following lines.VATPostingSetup.TESTFIELD("Return VAT account (Sales)");InitGLEntry(VATPostingSetup."Return VAT account (Sales)",//                        -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,-TempVATAmount,//                        -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),TRUE,TRUE);InsertGLEntry(TRUE);// End of the deleted lines.                          END                        ELSE...

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

    ...GLEntryVATAmount,SrcCurrGLEntryVATAmt,TRUE,TRUE);                              InsertGLEntry(TRUE);                          END                        ELSE...

    Наявний код 3

    ...END                      ELSE// Delete the following lines.BEGINIF NOT GenJnlLine."UE Aquisition Not Accep." THEN BEGINVATPostingSetup.TESTFIELD("Purchase VAT Account");InitGLEntry(VATPostingSetup."Purchase VAT Account",GLEntryVATAmount,SrcCurrGLEntryVATAmt,TRUE,TRUE);InsertGLEntry(TRUE);END;//-------- VATPostingSetup.TESTFIELD("Reverse Chrg. VAT Acc.");InitGLEntry(VATPostingSetup."Reverse Chrg. VAT Acc.",//                    -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,//                    ROUND(-GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100),ROUND((- VATBase * VATPostingSetup."VAT D. %" / 100) - (VATBase * VATPostingSetup."VAT N.D. %" / 100)),//                    -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),TRUE,TRUE);// End of the deleted lines.                          InsertGLEntry(TRUE);                        END;...

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

    ...END                      ELSE// Add the following lines.IF NOT GenJnlLine."UE Aquisition Not Accep." THEN BEGINVATPostingSetup.TESTFIELD("Purchase VAT Account");InitGLEntry(VATPostingSetup."Purchase VAT Account",GLEntryVATAmount,SrcCurrGLEntryVATAmt,TRUE,TRUE);// End of the added lines.                          InsertGLEntry(TRUE);                        END;...

    Наявний код 4

    ...END;          END;        END;      END;...

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

    ...  END;          END;// Add the following lines.IF IsPurchaseReverseChargeVAT(UnrealizedVAT) THENIF "Document Type"= "Document Type"::"Credit Memo" THEN BEGINIF (NOT GenJnlLine."UE Aquisition Not Accep.") AND (TempVATAmount <> 0) THEN BEGINVATPostingSetup.TESTFIELD("Return VAT account (Sales)");InitGLEntry(VATPostingSetup."Return VAT account (Sales)",-TempVATAmount,ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),TRUE,TRUE);InsertGLEntry(TRUE);END;END ELSE BEGINVATAmountTotal := ROUND((- VATBase * VATPostingSetup."VAT D. %" / 100) - (VATBase * VATPostingSetup."VAT N.D. %" / 100));IF VATAmountTotal <> 0 THEN BEGIN VATPostingSetup.TESTFIELD("Reverse Chrg. VAT Acc.");InitGLEntry(VATPostingSetup."Reverse Chrg. VAT Acc.",VATAmountTotal,ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),TRUE,TRUE);InsertGLEntry(TRUE);END;END;// End of the added lines.        END;      END;...
  2. Змінити код IsPurchaseReverseChargeVAT функції в полі генералом Jnl.-повідомлення рядка Codeunit (12), як описано нижче:Наявний код

    ...END;      BEGIN      END....

    Заміна код

    ...END;// Add the following lines.LOCAL PROCEDURE IsPurchaseReverseChargeVAT@1110015(UnrealizedVAT@1110000 : Boolean) : Boolean;BEGINEXIT((GenJnlLine."Gen. Posting Type" = GenJnlLine."Gen. Posting Type"::Purchase) AND (NOT UnrealizedVAT) AND(VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" ));END;// End of the added lines.      BEGIN      END....

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

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

  • Португальський версії Microsoft Dynamics NAV 2009-R2

  • Португальський версії Microsoft Dynamics NAV 2009 пакетом оновлень 1

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

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

Стан

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

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

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

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

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