Специалните символи не се конвертират в обикновени символи, когато изпълните отчета за декларацията Make 347 в испанската версия на Microsoft Dynamics NAV

Отнася се за
Dynamics NAV 2009 Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Service Pack 1

Бързо публикуваните статии предоставят информация директно от организацията за поддръжка на Microsoft. Информацията, която се съдържа в този документ, е създадена в отговор на нововъзникнали или уникални теми или е предназначена да допълни друга информация в базата знания.
 Microsoft Business Solutions-Navision 4.0 и Microsoft Navision 4.0 вече са част от Microsoft Dynamics NAV 4.0. Всички препратки към Microsoft Business Solutions-Navision или Microsoft Navision 4.0 се отнасят до Microsoft Dynamics NAV.

Тази статия се отнася за Microsoft Dynamics NAV за езиково-географската променлива на испански (es).

Симптоми

Когато изпълните отчета за декларацията Make 347 в испанската версия на Microsoft Dynamics NAV, специалните символи не се конвертират в обикновени знаци.

Забележка: Всички специални символи ще се конвертират в обикновени знаци. Знаците на á, é, í, ó, ú, ä, ë, ï, ö, ø и ü трябва да бъдат преобразувани в знаците a, e, i, o и you. Другите знаци, като например ', ", &, $, ( и ), трябва да се преобразуват в интервали. Знакът ñ трябва да бъде преобразуван в ASCII 209, а знакът Ç трябва да бъде преобразуван в ASCII 199. Всеки друг знак, който се различава от знак от А до Я и от А до Я, трябва да бъде конвертиран в празен стойност. Освен това знакът минус (-) трябва да бъде конвертиран в празен стойност.

Този проблем възниква в следните продукти:

  • Испанска версия на Microsoft Dynamics NAV 2009
  • Испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1
  • Испанската версия на Microsoft Dynamics NAV 4.0 Service Pack 3

Решение

Информация за горещи поправки

Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.

Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.

            
          

Информация за инсталиране

Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжка на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.

Забележка Преди да инсталирате тази гореща корекция, уверете се, че всички потребители на клиента на Microsoft Navision са излезли от системата. Това включва потребители на клиенти на Microsoft Navision Application Services (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.

За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.

Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:

  • Разрешението за промяна за обекта, който ще променяте.
  • Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.

                
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.

Промени в кода

Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да приложите тази гореща корекция, изпълнете следните стъпки:

  1. Променете кода в обекта "Елемент на данни номер 2" в отчета за деклариране "Make 347" (10707) както следва:
    Съществуващ код

    ...
                                 GLEntry3@1100000 : Record 17;
                               BEGIN
                                 VATRegNo347 := PADSTR(COPYSTR(DELCHR("VAT Registration No.",'=','.-/'),1,9),9,' ');
    
                                 // Delete the following lines.
                                 Name347 := PADSTR(Name,40,' ');
                                 Name347 := CONVERTSTR(UPPERCASE(Name347),'µ•ÔÖÞàãé륚()"&ï',Text1100003);
                                 // End of the lines.
    
                                 PostCode347 := PADSTR(StatementNo("Post Code"),5,' ');
                                 CountryCity := COPYSTR(PostCode347,1,2)+ '   ';
                                 IF Customer."Country Code" <> '' THEN BEGIN
    ...
    
    

    Код за подмяна

    ...
                                 GLEntry3@1100000 : Record 17;
                               BEGIN
                                 VATRegNo347 := PADSTR(COPYSTR(DELCHR("VAT Registration No.",'=','.-/'),1,9),9,' ');
    
                                 // Add the following line.
                                 Name347 := PADSTR(FormatTextName(Name),40,' '); 
                                 // End of the line.
    
                                 PostCode347 := PADSTR(StatementNo("Post Code"),5,' ');
                                 CountryCity := COPYSTR(PostCode347,1,2)+ '   ';
                                 IF Customer."Country Code" <> '' THEN BEGIN
    ...
    
    
  2. Променете кода в обекта "Раздели" на елемент на данни номер 2 в отчета за деклариране "Make 347" (10707) по следния начин:
    Съществуващ код

    ...
                                      ELSE
                                        CashAmtText := PADSTR('',15,'0');
                                      OutText :=
    
                                       // Delete the following line.
                                        '2347' + FiscalYear + VATRegNo + VATRegNo347 + PADSTR('',9,' ') +UPPERCASE(Name347) + Text1100002 +
                                        // End of the line.
    .
                                        COPYSTR(PostCode347,1,2) + PADSTR('',3,' ') + Text1100008 + CONVERTSTR(AmountText,' ','0') + PADSTR('',2,' ') +
                                        CashAmtText + PADSTR('',15,'0') + PADSTR('', 371, ' ');
    ...
    
    

    Код за подмяна

    ...
                                      ELSE
                                        CashAmtText := PADSTR('',15,'0');
                                      OutText :=
    
                                        // Add the following line.
                                        '2347' + FiscalYear + UPPERCASE(VATRegNo) + UPPERCASE(VATRegNo347) + PADSTR('',9,' ') +UPPERCASE(Name347) + Text1100002 + 
                                        // End of the line.
    
                                        COPYSTR(PostCode347,1,2) + PADSTR('',3,' ') + Text1100008 + CONVERTSTR(AmountText,' ','0') + PADSTR('',2,' ') +
                                        CashAmtText + PADSTR('',15,'0') + PADSTR('', 371, ' ');
    ...
    
    
  3. Променете кода в обекта "Елемент на данни номер 5" в отчета за деклариране "Make 347" (10707) както следва:
    Съществуващ код

    ...
              OnAfterGetRecord=BEGIN
                                 VATRegNo347 := PADSTR(COPYSTR(DELCHR("VAT Registration No.",'=','.-/'),1,9),9,' ');
    
                                 // Delete the following lines.
                                 Name347 := PADSTR(Name,40,' ');
                                 Name347 := CONVERTSTR(UPPERCASE(Name347),'µ•ÔÖÞàãé륚()"&ï',Text1100003);
                                 // End of the lines.
    
                                 PostCode347 := PADSTR(StatementNo("Post Code"),5,' ');
                                 CountryCity := COPYSTR(PostCode347,1,2)+ '   ';
                                 IF Vendor."Country Code"<>'' THEN BEGIN
    ...
    
    

    Код за подмяна

    ...
              OnAfterGetRecord=BEGIN
                                 VATRegNo347 := PADSTR(COPYSTR(DELCHR("VAT Registration No.",'=','.-/'),1,9),9,' ');
    
                                 // Add the following line.
                                 Name347 := PADSTR(FormatTextName(Name),40,' '); 
                                 // End of the line.
    
                                 PostCode347 := PADSTR(StatementNo("Post Code"),5,' ');
                                 CountryCity := COPYSTR(PostCode347,1,2)+ '   ';
                                 IF Vendor."Country Code"<>'' THEN BEGIN
    ...
    
    
  4. Променете кода в обекта "Раздели" за елемент на данни номер 5 в отчета за деклариране "Make 347" (10707) по следния начин:
    Съществуващ код

    ...
                                      CLEAR(OutText);
                                      AmountText := AmtEuro(PurchasesAmt);
                                      OutText :=
    
                                        // Delete the following line.
                                        '2347' + FiscalYear + VATRegNo + VATRegNo347 + PADSTR('',9,' ') +UPPERCASE(Name347) + Text1100002 +
                                        // End of the line.
    
                                        COPYSTR(PostCode347,1,2) + PADSTR('',3,' ')  + Text1100011 + CONVERTSTR(AmountText,' ','0') + PADSTR('',2,' ') +
                                        PADSTR('',15,'0') + PADSTR('',15,'0') + PADSTR('', 371, ' ');
    ...
    
    

    Код за подмяна

    ...
                                      CLEAR(OutText);
                                      AmountText := AmtEuro(PurchasesAmt);
                                      OutText :=
    
                                        // Add the following line.
                                        '2347' + FiscalYear + UPPERCASE(VATRegNo) + UPPERCASE(VATRegNo347) + PADSTR('',9,' ') +UPPERCASE(Name347) + Text1100002 + 
                                        // End of the line.
    
                                        COPYSTR(PostCode347,1,2) + PADSTR('',3,' ')  + Text1100011 + CONVERTSTR(AmountText,' ','0') + PADSTR('',2,' ') +
                                        PADSTR('',15,'0') + PADSTR('',15,'0') + PADSTR('', 371, ' ');
    ...
    
    
  5. Променете кода на глобалните променливи в отчета за декларацията Make 347 (10707) както следва:
    Съществуващ код

    ...
        CODE
        {
          VAR
    
            // Delete the following lines.
            Text1100001@1100058 : TextConst 'ENU="AAEEIIOOUUÑU    ";ESP="AAEEIIOOUUÑU    "';
            Text1100002@1100059 : TextConst 'ENU=D;ESP=D';
            Text1100003@1100060 : TextConst 'ENU="AAEEIIOOUUÑU     ";ESP="AAEEIIOOUUÑU     "';
            Text1100004@1100061 : TextConst 'ENU=<Integer>;ESP=<Integer>';
            Text1100005@1100062 : TextConst 'ENU="AAEEIIOOUU¥U     ";ESP="AAEEIIOOUU¥U     "';
            // End of the lines.
    
            Text1100006@1100063 : TextConst 'ENU=Postal Code is missing in customer''s card %1;ESP=Falta el c¢digo postal en la ficha del cliente %1';
            Text1100008@1100065 : TextConst 'ENU=B;ESP=B';
            Text1100009@1100066 : TextConst 'ENU=Postal Code is missing in vendor''s card %1;ESP=Falta el c¢digo postal en la ficha del proveedor %1';
    ...
    
    

    Код за подмяна

    ...
        CODE
        {
          VAR
    
            // Add the following lines.
            Text1100002@1100059 : TextConst 'ENU=D;ESP=D';
            Text1100004@1100061 : TextConst 'ENU=<Integer>;ESP=<Integer>';
            // End of the lines.
    
            Text1100006@1100063 : TextConst 'ENU=Postal Code is missing in customer''s card %1;ESP=Falta el c¢digo postal en la ficha del cliente %1';
            Text1100008@1100065 : TextConst 'ENU=B;ESP=B';
            Text1100009@1100066 : TextConst 'ENU=Postal Code is missing in vendor''s card %1;ESP=Falta el c¢digo postal en la ficha del proveedor %1';
    ...
    
    
  6. Променете кода във функцията CreateFileHeader в отчета за декларацията Make 347 (10707) както следва:
    Съществуващ код

    ...
            CLEAR(OutText);
    
            OutText :=
    
              // Delete the following lines.
              '1347' + FiscalYear + VATRegNo +
               PADSTR(CONVERTSTR(UPPERCASE(CompanyInfo.Name),'µ•ÔÖÞàãé륚€()"&ï','AAEEIIOOUUÑUÇ     '),40,' ');
              // End of the lines.
    
            IF DeclarationMediaType = DeclarationMediaType :: Telematic THEN
              DeclrationMT := 'T'
    ...
    
    

    Код за подмяна

    ...
            CLEAR(OutText);
    
            OutText :=
    
              // Add the following lines.
              '1347' + FiscalYear + UPPERCASE(VATRegNo) +
               PADSTR(FormatTextName(CompanyInfo.Name),40,' ');
              // End of the lines.
    
            IF DeclarationMediaType = DeclarationMediaType :: Telematic THEN
              DeclrationMT := 'T'
    ...
    
    
  7. Променете кода във функцията CreateFileHeader в отчета за декларацията Make 347 (10707) както следва:
    Съществуващ код

    ...
            OutText := OutText + DeclrationMT;
            OutText := OutText + ContactTelephone;
    
            // Delete the following line.
            OutText := OutText + PADSTR(CONVERTSTR(UPPERCASE(ContactName),'µ•ÔÖÞàãé륚€()"&ï','AAEEIIOOUUÑUÇ     '),40,' ');
            // End of the line.
    ...
    
    

    Код за подмяна

    ...
            OutText := OutText + DeclrationMT;
            OutText := OutText + ContactTelephone;
    
            // Add the following line.
            OutText := OutText + PADSTR(FormatTextName(ContactName),40,' '); 
            // End of the line.
    ...
    
    
  8. Променете кода в обекта на документацията в отчета за деклариране "Make 347" (10707), както следва:
    Съществуващ код

    ...
            NoOfAcc := j - 1;
          END;
    
          BEGIN
          END.
        }
      }
    ...
    
    

    Код за подмяна

    ...
            NoOfAcc := j - 1;
          END;
    
          // Add the following lines.
          PROCEDURE FormatTextName@1100006(NameString@1100000 : Text[50]) Result@1100001 : Text[50];
          VAR
            TempString@1100002 : Text[50];
            TempString1@1100003 : Text[1];
          BEGIN
            CLEAR(Result);
    
            TempString := CONVERTSTR(UPPERCASE(NameString),'•µ¶ÇŽÔÒÓÞÖרãàâå™ëéêší¥€§¦','AAAAAEEEEIIIIOOOOOUUUUYOÑÇ  ');
            IF (STRLEN(TempString) > 0) THEN
              REPEAT
                TempString1 := COPYSTR(TempString,1,1);
                IF TempString1 IN ['A'..'Z','0'..'9','Ñ','Ç'] THEN
                  Result := Result + TempString1
                ELSE
                  Result := Result + ' ';
                TempString := DELSTR(TempString,1,1);
              UNTIL STRLEN(TempString) = 0;
    
            EXIT(Result);
          END;
          // End of the lines.
    
          BEGIN
          END.
        }
      }
    ...
    
    

Предварителни изисквания

Трябва да имате инсталиран един от следните продукти, за да приложите тази гореща корекция:

  • Испанска версия на Microsoft Dynamics NAV 2009
  • Испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1
  • Испанската версия на Microsoft Dynamics NAV 4.0 Service Pack 3

              

Информация за премахване

Не можете да премахнете тази гореща корекция.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

MICROSOFT И/ИЛИ НЕГОВИТЕ ДОСТАВЧИЦИ НЕ ДАВАТ ОБЕЩАНИЯ ИЛИ ГАРАНЦИИ ОТНОСНО ПРИГОДНОСТТА, НАДЕЖДНОСТТА ИЛИ ТОЧНОСТТА НА ИНФОРМАЦИЯТА, КОЯТО СЕ СЪДЪРЖА В ДОКУМЕНТИТЕ И СВЪРЗАНИТЕ ГРАФИКИ, ПУБЛИКУВАНИ НА ТОЗИ УЕБ САЙТ ("МАТЕРИАЛИТЕ"), ЗА КАКВАТО И ДА Е ЦЕЛ.

МАТЕРИАЛИТЕ МОГАТ ДА ВКЛЮЧВАТ ТЕХНИЧЕСКИ НЕТОЧНОСТИ ИЛИ ПЕЧАТНИ ГРЕШКИ И МОГАТ ДА БЪДАТ КОРИГИРАНИ ПО ВСЯКО ВРЕМЕ БЕЗ ПРЕДИЗВЕСТИЕ. ДО МАКСИМАЛНАТА СТЕПЕН, РАЗРЕШЕНА ОТ ПРИЛОЖИМОТО ЗАКОНОДАТЕЛСТВО, MICROSOFT И/ИЛИ НЕЙНИТЕ ДОСТАВЧИЦИ ОТХВЪРЛЯТ И ИЗКЛЮЧВАТ ВСИЧКИ ДЕКЛАРАЦИИ, ГАРАНЦИИ И УСЛОВИЯ, НЕЗАВИСИМО ДАЛИ СА ИЗРИЧНИ, ПОДРАЗБИРАЩИ СЕ, ИЛИ ЗАКОНОВИ, ВКЛЮЧИТЕЛНО, НО НЕ САМО, ДЕКЛАРАЦИИ, ГАРАНЦИИ ИЛИ УСЛОВИЯ ЗА СОБСТВЕНОСТ, НЕНАРУШЕНИЕ, ЗАДОВОЛИТЕЛНО СЪСТОЯНИЕ ИЛИ КАЧЕСТВО, ПРОДАВАЕМОСТ И ПРИГОДНОСТ ЗА ОПРЕДЕЛЕНА ЦЕЛ, ПО ОТНОШЕНИЕ НА МАТЕРИАЛИТЕ.