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

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

Ця стаття стосується Microsoft Dynamics NAV для нідерландської мови (nl) мови.

Ознаки

Припустімо, що опублікувати рахунок-фактура в місцевій валюті в Нідерландах версії Microsoft Dynamics NAV 2009. У цій ситуації під вільний час запуску отримати пропозицію записи функції рахунку у формі "Telebank – банк огляд", система пропонує лише місцевий грошової суми. Ви очікуєте, що система також пропонує суму валюти. Ця проблема виникає в таких продуктах:

  • Нідерландська версія Microsoft Dynamics NAV 2009 R2
  • Нідерландська версія Microsoft Dynamics NAV 2009 із пакетом оновлень 1

      

Спосіб усунення проблеми

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

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

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

            
          

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

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

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

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

Радимо призначити обліковому запису користувача у вікні "Вхід у Windows" або у вікні "Вхід до бази даних" ідентифікатор ролі "SUPER". Якщо обліковому запису користувача не вдалося призначити ідентифікатор ролі SUPER, переконайтеся, що обліковий запис має такі дозволи:

  • Дозвіл на змінення об'єкта, який буде змінюватися.
  • Дозвіл Execute для об'єкта System Object ID 5210 і для об'єкта System Object ID 9015.

                
Примітка. Ви не повинні мати права на зберігання даних, якщо не потрібно відновлювати дані.

Зміни коду

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

  1. Змініть код у розділі Номер елемента даних 4 у звіті Отримати записи пропозицій (11000000), як описано нижче.
    Наявний код 1

    ...
    Propline."Description 4":=DELCHR(Propline."Description 4"+' '+UseDocumentNo,'<>')
    ELSE
    Propline.Docket:=TRUE;
    END;
    
    // Delete the following lines.
    IF Propline.Docket THEN
    IF Propline."Description 1"<>Text1000016 THEN BEGIN
    Propline."Description 1":=Text1000016;
    CASE Propline."Account Type" OF
    Propline."Account Type"::Customer:
    BEGIN
    Custm.GET(Propline."Account No.");
    IF Custm."Our Account No."<>'' THEN
    Propline."Description 2" :=
    COPYSTR(STRSUBSTNO(Text1000018, Custm."Our Account No."), 1, MAXSTRLEN(Propline."Description 2" ))
    ELSE BEGIN
    CompanyInfo.GET;
    Propline."Description 2":= COPYSTR(CompanyInfo.Name,1,MAXSTRLEN(Propline."Description 2" ));
    END;
    END;
    Propline."Account Type"::Vendor:
    BEGIN
    Vend.GET(Propline."Account No.");
    IF Vend."Our Account No."<>'' THEN
    Propline."Description 2" :=
    COPYSTR(STRSUBSTNO(Text1000017, Vend."Our Account No."),1,MAXSTRLEN(Propline."Description 2"))
    ELSE BEGIN
    CompanyInfo.GET;
    Propline."Description 2":= COPYSTR(CompanyInfo.Name,1,MAXSTRLEN(Propline."Description 2" ));
    END;
    END;
    END;
    Propline."Description 3":='';
    Propline."Description 4":='';
    END;
    // End of the lines.
    
    IF Propline.Identification='' THEN BEGIN
    TrMode.TESTFIELD("Identification No. Series");
    NoSeriesManagement.InitSeries(TrMode."Identification No. Series",
    '',
    ...
    

    Код заміни 1

    ...
    Propline."Description 4":=DELCHR(Propline."Description 4"+' '+UseDocumentNo,'<>')
    ELSE
    Propline.Docket:=TRUE;
    END;
    
    // Add the following line.
    FillDescriptionAndCurrency;
    
    IF Propline.Identification='' THEN BEGIN
    TrMode.TESTFIELD("Identification No. Series");
    NoSeriesManagement.InitSeries(TrMode."Identification No. Series",
    '',
    ...
    

    Наявний код 2

    ...
    Propline."Transaction Date",
    Propline.Identification,
    Propline."Identification No. Series");
    END;
    Propline.MODIFY;
    NumeratorDetailLines:=NumeratorDetailLines+1;
    BatchStatus.UPDATE(2,ROUND(NumeratorDetailLines/NumberOfDetailLines*10000,1));
    END;
    ...
    

    Код заміни 2

    ...
    Propline."Transaction Date",
    Propline.Identification,
    Propline."Identification No. Series");
    END;
    
    // Add the following lines.
    IF Propline."Foreign Currency" = Propline."Currency Code" THEN
    Propline.VALIDATE("Foreign Amount",0)
    ELSE BEGIN
    Propline.VALIDATE("Foreign Amount",ROUND(
    CurrencyExchangeRate.ExchangeAmtFCYToFCY(
    Propline."Transaction Date",Propline."Currency Code",Propline."Foreign Currency",Propline.Amount)));
    END;
    // End of the lines.
    
    Propline.MODIFY;
    NumeratorDetailLines:=NumeratorDetailLines+1;
    BatchStatus.UPDATE(2,ROUND(NumeratorDetailLines/NumberOfDetailLines*10000,1));
    END;
    ...
    
  2. Змініть код у розділі Глобальні змінні у звіті Отримати записи пропозицій (11000000), як описано нижче.
    Наявний код

    ...
    PmtDiscExpiryDate@1000032 : Date;
    Bnk@1000033 : Record 270;
    Custm@1000034 : Record 18;
    Vend@1000035 : Record 23;
    CompanyInfo@1000036 : Record 79;
    
    // Delete the following lines.
    NoSeriesManagement@1000037 : Codeunit 396;
    BEGIN
    // End of the lines.
    
    END.
    }
    RDLDATA
    {
    }
    ...
    

    Код заміни

    ...
    PmtDiscExpiryDate@1000032 : Date;
    Bnk@1000033 : Record 270;
    Custm@1000034 : Record 18;
    Vend@1000035 : Record 23;
    CompanyInfo@1000036 : Record 79;
    
    // Add the following lines.
    CurrencyExchangeRate@1000038 : Record 330;
    NoSeriesManagement@1000037 : Codeunit 396;
    LOCAL PROCEDURE FillDescriptionAndCurrency@1000039();
    BEGIN
    IF DetailLine."Account No." <> '' THEN
    CASE DetailLine."Account Type" OF
    DetailLine."Account Type"::Customer:
    BEGIN
    Custm.GET(DetailLine."Account No.");
    Propline.VALIDATE("Foreign Currency",Custm."Currency Code");
    IF Propline.Docket THEN BEGIN
    IF Propline."Description 1" <> Text1000016 THEN
    Propline."Description 1" := Text1000016;
    IF Custm."Our Account No." <> '' THEN
    Propline."Description 2" :=
    COPYSTR(STRSUBSTNO(Text1000018, Custm."Our Account No."), 1, MAXSTRLEN(Propline."Description 2" ))
    ELSE BEGIN
    CompanyInfo.GET;
    Propline."Description 2" := COPYSTR(CompanyInfo.Name,1,MAXSTRLEN(Propline."Description 2" ));
    END;
    Propline."Description 3" := '';
    Propline."Description 4" := '';
    END;
    END;
    DetailLine."Account Type"::Vendor:
    BEGIN
    Vend.GET(DetailLine."Account No.");
    Propline.VALIDATE("Foreign Currency",Vend."Currency Code");
    IF Propline.Docket THEN BEGIN
    IF Propline."Description 1" <> Text1000016 THEN
    Propline."Description 1" := Text1000016;
    IF Vend."Our Account No."<>'' THEN
    Propline."Description 2" :=
    COPYSTR(STRSUBSTNO(Text1000017, Vend."Our Account No."),1,MAXSTRLEN(Propline."Description 2"))
    ELSE BEGIN
    CompanyInfo.GET;
    Propline."Description 2":= COPYSTR(CompanyInfo.Name,1,MAXSTRLEN(Propline."Description 2" ));
    END;
    Propline."Description 3":='';
    Propline."Description 4":='';
    END;
    END;
    END;
    END;
    // End of the lines.
    
    END.
    }
    RDLDATA
    {
    }
    ...
    

          

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

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

  • Нідерландська версія Microsoft Dynamics NAV 2009 R2
  • Нідерландська версія Microsoft Dynamics NAV 2009 із пакетом оновлень 1

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

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

Стан

Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".

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