Según el AEAT, no es posible reportar caracteres especiales como por ejemplo paréntesis, pero no se pueden sustituir por espacios en blanco.

Por ejemplo, si tenemos un cliente con nombre:

Test (Test1

Hay que reportarlo como:

TEST TEST(Sólo un espacio entre TEST Y TEST1)

 

Actualmente, el informe 347 exporta este nombre con dos espacios:

TEST TEST1 (Dos espacios entre TEST y TEST1)

Para solucionar esto, se pueden escribir lo siguiente en código:

En el report 1070

Trigger
FormatTextName(NameString : Text[50]) Result : Text[50]

….

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

IF NOT(TempString1 IN ['(',')') THEN  //NEW LINE       
Result := Result + ' '; //line indented

TempString := DELSTR(TempString,1,1);

UNTIL STRLEN(TempString) = 0;

…..

 

En la nueva linea se pueden añadir todos los caracteres especiales que no puedan ser exportados, en este caso el código borrará el caracter especial e importará el nombre correcto que sí sea aceptado por AEAT.

Alessandro Vannini

Microsoft Dynamics

Escalation Engineer