Ця стаття стосується Microsoft Dynamics NAV для наведених нижче країн і мовних мов.
- Англійська (Канада) (en-ca)
- Англійська (Сполучені Штати) (en-us)
- іспанська (Мексика) (es-mx)
- французька (Канада) (fr-ca)
Ознаки
Припустімо, що застосування виправлення 978857 та виправлення 2585384 в північноамериканської версії Microsoft Dynamics NAV 2009. Опублікувати продажу рахунку, який містить податок із продажу обсяг. У цій ситуації, коли опублікувати частковий платіж у грошових надходжень журналу продажу рахунку, система створює неправильний запис податок із продажу. Ця проблема виникає, якщо в діалоговому вікні Податкові юрисдикції задати для нереалізованого типу податків значення Перший (повністю оплачений).
Щоб отримати додаткові відомості, клацніть номер статті в базі знань база знань Microsoft:
978857 неправильні ПДВ записи створюються після кредит memo, щоб застосувати рахунок-фактуру, який містить нереалізовані ПДВ в Microsoft Dynamics NAV
2585384 лише половина податок сума зараховується несподівано під час застосування додано продажу кредит memo опубліковано продажу рахунку вручну в Microsoft Dynamics NAV
Ця проблема виникає в таких продуктах:
- Північноамериканська версія Microsoft Dynamics NAV 2009 R2
- Північноамериканська версія Microsoft Dynamics NAV 2009 із пакетом оновлень 1 (SP1)
Спосіб усунення проблеми
Відомості про виправлення
Від корпорації Майкрософт доступне виправлення, що підтримується. Однак вона призначена лише для виправлення проблеми, описаної в цій статті. Застосуйте її лише до систем, у яких виникла ця проблема. Це виправлення може отримати додаткове тестування. Таким чином, якщо ви не серйозно постраждали від цієї проблеми, ми радимо дочекатися наступного Microsoft Dynamics NAV 2009 пакет оновлень або наступної версії Microsoft Dynamics NAV, яка містить це виправлення.
Примітка У особливих випадках стягнення плати, які зазвичай понесені для викликів підтримки, може бути скасовано, якщо спеціаліст служби технічної підтримки Microsoft Dynamics і пов'язані продукти визначать, що конкретне оновлення вирішить вашу проблему. Звичайні витрати на підтримку застосовуватимуться до додаткових запитань і питань підтримки, які не відповідають вимогам для конкретного оновлення, про яке йде мова.
Відомості про інсталяцію
Корпорація Майкрософт надає приклади програмування лише для ілюстрації без жодних гарантій, явних або неявних. Це стосується зокрема неявних гарантій щодо придатності до продажу чи придатності для певної мети. У цій статті припускається, що ви знайомі з мовою програмування, яка демонструється, і з інструментами, які використовуються для створення і налагодження процедур. Спеціалісти служби підтримки Microsoft можуть пояснити вам функціональні можливості певної процедури. Однак вони не змінюватимуть ці приклади, щоб надавати додаткові функції або конструювати процедури відповідно до ваших конкретних вимог.
Примітка. Перш ніж інсталювати це виправлення, переконайтеся, що всі користувачі клієнта Microsoft Dynamics NAV, вийти із системи. Це стосується служб Microsoft Dynamics NAV Application Server (NAS). Ви повинні бути єдиним клієнтом користувача, який ввійшов, коли ви впроваджуєте це виправлення.
Щоб реалізувати це виправлення, потрібно мати ліцензію розробника.
Радимо призначити обліковому запису користувача у вікні "Вхід у Windows" або у вікні "Вхід до бази даних" ідентифікатор ролі "SUPER". Якщо обліковому запису користувача не вдалося призначити ідентифікатор ролі SUPER, переконайтеся, що обліковий запис має такі дозволи:
- Дозвіл на змінення об'єкта, який буде змінюватися.
- Дозвіл Execute для об'єкта System Object ID 5210 і для об'єкта System Object ID 9015.
Примітка. Ви не повинні мати права на зберігання даних, якщо не потрібно відновлювати дані.
Зміни коду
Примітка. Завжди перевіряйте виправлення коду в контрольованому середовищі, перш ніж застосовувати виправлення до робочих комп'ютерів.
Щоб вирішити цю проблему, виконайте такі дії:
Змініть код у функції CustUnrealizedVAT у gen. Jnl.-Post Line codeunit (12) наступним див.
Наявний код... VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group"); // Delete the following lines. IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; // End of the deleted lines. UNTIL VATEntry2.NEXT = 0; ...Код заміни
... VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group"); // Add the following lines. IF VATEntry2."VAT Calculation Type" = VATEntry2."VAT Calculation Type" :: "Sales Tax" THEN BEGIN TaxJurisdiction.GET(VATEntry2."Tax Jurisdiction Code"); IF TaxJurisdiction."Unrealized VAT Type" IN [TaxJurisdiction."Unrealized VAT Type"::Last,TaxJurisdiction."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF TaxJurisdiction."Unrealized VAT Type" IN [TaxJurisdiction."Unrealized VAT Type"::First,TaxJurisdiction."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; END ELSE BEGIN IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; END; // End of the added lines. UNTIL VATEntry2.NEXT = 0; ...Змініть код у функції VendUnrealizedVAT у gen. Jnl.-Post Line codeunit (12) наступним див.
Наявний код... VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group"); // Delete the following lines. IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; // End of the deleted lines. UNTIL VATEntry2.NEXT = 0; ...Код заміни
... VATPostingSetup.GET(VATEntry2."VAT Bus. Posting Group",VATEntry2."VAT Prod. Posting Group"); // Add the following lines. IF VATEntry2."VAT Calculation Type" = VATEntry2."VAT Calculation Type" :: "Sales Tax" THEN BEGIN TaxJurisdiction.GET(VATEntry2."Tax Jurisdiction Code"); IF TaxJurisdiction."Unrealized VAT Type" IN [TaxJurisdiction."Unrealized VAT Type"::Last,TaxJurisdiction."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF TaxJurisdiction."Unrealized VAT Type" IN [TaxJurisdiction."Unrealized VAT Type"::First,TaxJurisdiction."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; END ELSE BEGIN IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::Last,VATPostingSetup."Unrealized VAT Type"::"Last (Fully Paid)"] THEN TotalUnrealVATAmountLast := TotalUnrealVATAmountLast - VATEntry2."Remaining Unrealized Amount"; IF VATPostingSetup."Unrealized VAT Type" IN [VATPostingSetup."Unrealized VAT Type"::First,VATPostingSetup."Unrealized VAT Type"::"First (Fully Paid)"] THEN TotalUnrealVATAmountFirst := TotalUnrealVATAmountFirst - VATEntry2."Remaining Unrealized Amount"; END; // End of the added lines. UNTIL VATEntry2.NEXT = 0; ...
Попередні вимоги
Щоб застосувати це виправлення, потрібно мати один із таких продуктів:
- Північноамериканська версія Microsoft Dynamics NAV 2009 R2
- Північноамериканська версія Microsoft Dynamics NAV 2009 із пакетом оновлень 1
Крім того, потрібно мати виправлення 978857 та виправлення 2585384 інстальовано для застосування цього виправлення.
Відомості про видалення
Не можна видалити це виправлення.
Стан
Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".
Примітка. Це стаття "FAST PUBLISH", створена безпосередньо з організації підтримки Корпорації Майкрософт. Інформація, що міститься в цьому документі, надається як у відповідь на нові проблеми. В результаті швидкості її використання матеріали можуть включати друкарські помилки і можуть бути переглянуті в будь-який час без попередження. Інші зауваження див. в розділі Умови використання .