Отрицателните количества във файла на .txt са в неправилен формат, когато генерирате файл с телема.txt тичен ДДС в испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1

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

Когато изпълните отчета за телематичната декларация за ДДС (10715), за да генерирате телематичен .txt файл с ДДС от диалоговия прозорец "Декларация за ДДС " в испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1), отрицателните количества в генерирания файл на .txt са в неправилен формат. Например сумата "-1890,109,00" се показва като "0N000000189010900" във файла .txt.

Симптоми

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

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

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

Решение

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

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

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

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

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

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

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

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

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

  1. Променете кода във функцията CalcTotLine в отчета за телематична декларация за ДДС (10715) както следва:
    Съществуващ код 1

    ...
    "VAT StatementLine2"."Amount Type"::"Unrealized Base":
    BEGIN
    VATEntry.CALCSUMS("Unrealized Base","Add.-Currency Unrealized Base");
    Amount := ConditionalAdd(0,VATEntry."Unrealized Base",VATEntry."Add.-Currency Unrealized Base");
    END;
    
    // Delete the following lines.
    "VAT StatementLine2"."Amount Type"::"Amount+Base":
    BEGIN 
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base"); 
    END; 
    // End of the lines.
    
    END;
    CalcTotAmount("VAT StatementLine2",TotalAmount);
    END;
    ...
    
    

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

    ...
    "VAT StatementLine2"."Amount Type"::"Unrealized Base":
    BEGIN
    VATEntry.CALCSUMS("Unrealized Base","Add.-Currency Unrealized Base");
    Amount := ConditionalAdd(0,VATEntry."Unrealized Base",VATEntry."Add.-Currency Unrealized Base");
    END;
    
    // Add the following lines.
    "VAT StatementLine2"."Amount Type"::"Amount+Base": 
    BEGIN 
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN 
    IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN 
    VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."VAT %"; 
    VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %") * 
    VATEntry."VAT %"; 
    END; 
    Amount := ConditionalAdd(0,VATAmount,VATAmountAC); 
    END; 
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base; 
    END;
    // End of the lines.
    
    END;
    CalcTotAmount("VAT StatementLine2",TotalAmount);
    END;
    ...
    
    

    Съществуващ код 2

    ...
    "VAT StatementLine2"."Amount Type"::"Unrealized Base":
    BEGIN
    VATEntry.CALCSUMS("Unrealized Base","Add.-Currency Unrealized Base");
    Amount := ConditionalAdd(0,VATEntry."Unrealized Base",VATEntry."Add.-Currency Unrealized Base");
    END;
    
    // Delete the following lines.
    "VAT StatementLine2"."Amount Type"::"Amount+Base":
    BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    END;
    // End of the lines.
    
    END;
    CalcTotAmount("VAT StatementLine2",TotalAmount);
    END;
    
    END;
    
    EXIT(TRUE);
    ...
    
    

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

    ...
    "VAT StatementLine2"."Amount Type"::"Unrealized Base":
    BEGIN
    VATEntry.CALCSUMS("Unrealized Base","Add.-Currency Unrealized Base");
    Amount := ConditionalAdd(0,VATEntry."Unrealized Base",VATEntry."Add.-Currency Unrealized Base");
    END;
    
    // Add the following lines.
    "VAT StatementLine2"."Amount Type"::"Amount+Base":
    BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN
    IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN
    VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."EC %";
    VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %") *
    VATEntry."EC %";
    END;
    Amount := ConditionalAdd(0,VATAmount,VATAmountAC);
    END;
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base; 
    END;
    // End of the lines.
    
    END;
    CalcTotAmount("VAT StatementLine2",TotalAmount);
    END;
    
    END;
    
    EXIT(TRUE);
    ...
    
    
  2. Променете кода във функцията LoadValue в отчета за телематичната декларация за ДДС (10715), както следва:
    Съществуващ код

    ...
    CASE TransFormat.Subtype OF
    
    // Delete the following lines.
    TransFormat.Subtype::"Integer and Decimal Part" :
    BEGIN 
    TransFormat.Value := Negative + FORMAT(Amt,TransFormat.Length - STRLEN(Negative),
    Text1100010+'2'+Text1100011);
    TransFormat.Value := CONVERTSTR(DELCHR(TransFormat.Value,'=',',.'),' ','0');
    TransFormat.Value := PADSTR('',TransFormat.Length - STRLEN(TransFormat.Value),'0') + TransFormat.Value;
    END; 
    TransFormat.Subtype::"Integer Part" :
    BEGIN
    TransFormat.Value := Negative + FORMAT(Amt,TransFormat.Length - STRLEN(Negative),
    Text1100012);
    TransFormat.Value := CONVERTSTR(CONVERTSTR(TransFormat.Value,',','.'),' ','0');
    END;
    TransFormat.Subtype::"Decimal Part" :
    BEGIN
    TransFormat.Value := FORMAT(Amt,TransFormat.Length+1,Text1100010+
    FORMAT(TransFormat.Length,1) +Text1100013);
    TransFormat.Value := CONVERTSTR(DELCHR(TransFormat.Value,'=','.,'),' ','0');
    TransFormat.Value := PADSTR('',TransFormat.Length - STRLEN(TransFormat.Value),'0') + TransFormat.Value;
    END;
    // End of the lines.
    
    END;
    TransFormat.MODIFY;
    ...
    
    

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

    ...
    CASE TransFormat.Subtype OF
    
    // Add the following lines.
    TransFormat.Subtype::"Integer and Decimal Part":
    BEGIN
    TransFormat.Value := FORMAT(Amt,TransFormat.Length,Text1100010 + '2' + Text1100011);
    TransFormat.Value := CONVERTSTR(DELCHR(TransFormat.Value,'=',',.'),' ','0');
    TransFormat.Value := Negative + PADSTR('',TransFormat.Length - STRLEN(Negative) - 
    STRLEN(TransFormat.Value),'0') + TransFormat.Value;
    END;
    TransFormat.Subtype::"Integer Part":
    BEGIN 
    TransFormat.Value := Negative + FORMAT(Amt,TransFormat.Length - STRLEN(Negative), 
    Text1100012); 
    TransFormat.Value := CONVERTSTR(CONVERTSTR(TransFormat.Value,',','.'),' ','0'); 
    END; 
    TransFormat.Subtype::"Decimal Part":
    BEGIN 
    TransFormat.Value := FORMAT(Amt,TransFormat.Length,Text1100010 + '2' + Text1100013);
    TransFormat.Value := CONVERTSTR(DELCHR(TransFormat.Value,'=','.,'),' ','0'); 
    TransFormat.Value := Negative + PADSTR('',TransFormat.Length - STRLEN(Negative) - 
    STRLEN(TransFormat.Value),'0') + TransFormat.Value; 
    END; 
    // End of the lines.
    
    END;
    TransFormat.MODIFY;
    ...
    
    

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

Трябва да имате инсталирана испанската версия на Microsoft Dynamics NAV 5.0 Service Pack 1, за да приложите тази гореща корекция.

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

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

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

Състояние

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