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

Ця стаття відноситься до Microsoft Dynamics NAV всі країни і всі мови.

Причини

Після інсталяції виправлення 2292157 і 2764340 для Microsoft Dynamics NAV, 2009, Застосування записи для користувачів форми а також у вигляді Застосування записи в постачальника відображати неправильні значення балансу та , Pmt. диска. Обсяг поля.Ця проблема виникає в таких продуктів:

  • Microsoft Dynamics NAV 2009 пакет оновлень 1 для

  • Microsoft Dynamics NAV 2009 R2

Щоб отримати додаткові відомості про виправлення, 2292157 і 2764340 клацніть номер статті в базі знань Microsoft Knowledge Base:

2292157 поле "Баланс" та "Pmt. диска. Сума"поле, у вигляді застосування записи для користувачів а також у вигляді застосування записи в постачальника Показати неправильні значення, якщо застосування оплати кілька відкритих документів Microsoft Dynamics NAV

2764340 постачальника записи вибрано незважаючи на те, що ви очистили постачальника записи раніше у формі "Застосувати постачальника записи" в Microsoft Dynamics NAV, 2009

Вирішення

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

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

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

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

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

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

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

Зміни коду

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

  1. Змін у theApply записи для користувачів, форми (232), функція HandlChosenEntries наступним чином:Наявний код 1

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -                AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Delete the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtDisc;               CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                 AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtDisc;               PossiblePmtDisc := 0;// End of the deleted lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF (FromZeroGenJnl) THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";...

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

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -                AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Add the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";               CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                 AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";// End of the added lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF (FromZeroGenJnl) THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    Наявний код 2

    ...END;                CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Delete the following lines.             PossiblePmtDisc := AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";             IF (((CurrentAmount - PossiblePmtDisc + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN BEGIN               PmtDiscAmount := PmtDiscAmount + PossiblePmtDisc;               CurrentAmount := CurrentAmount - PossiblePmtDisc;               PossiblePmtDisc := 0;               AppliedAmount := AppliedAmount + CorrectionAmount;             END;// End of the deleted lines.              CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedCustLedgEntryTemp.SETRANGE(Positive);            AppliedCustLedgEntryTemp.FINDFIRST;...

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

    ...END;                CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Add the following lines.             IF (((CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN               AppliedAmount := AppliedAmount + CorrectionAmount;// End of the added lines.              CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedCustLedgEntryTemp.SETRANGE(Positive);            AppliedCustLedgEntryTemp.FINDFIRST;...
  2. Змінити код у вигляді застосування записи в постачальника (233), функції HandlChosenEntries наступним чином:Наявний код 1

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -                AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Delete the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtdisc;               CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                 AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtdisc;               PossiblePmtdisc := 0;// End of the deleted lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF FromZeroGenJnl THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";...

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

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -                AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Add the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";               CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                 AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";// End of the added lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF FromZeroGenJnl THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    Наявний код 2

    ...END;                CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Delete the following lines.             PossiblePmtdisc := AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";             IF (((CurrentAmount - PossiblePmtdisc + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN BEGIN               PmtDiscAmount := PmtDiscAmount + PossiblePmtdisc;               CurrentAmount := CurrentAmount - PossiblePmtdisc;               PossiblePmtdisc := 0;               AppliedAmount := AppliedAmount + CorrectionAmount;             END;// End of the deleted lines.              CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedVendLedgEntryTemp.SETRANGE(Positive);            AppliedVendLedgEntryTemp.FINDFIRST;...

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

    ...END;                CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Add the following lines.             IF (((CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN               AppliedAmount := AppliedAmount + CorrectionAmount;// End of the added lines.              CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedVendLedgEntryTemp.SETRANGE(Positive);            AppliedVendLedgEntryTemp.FINDFIRST;...

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

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

  • Microsoft Dynamics NAV 2009 пакет оновлень 1 для

  • Microsoft Dynamics NAV 2009 R2

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

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

Стан

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

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

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

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

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