Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Buenas tardes, me estoy volviendo un poco loca con este error:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.



Realizo la consulta de la hora en teoria "oficial" pero me sigue saliendo el mismo error. Algo no debo entender bien .


Código:
<FechaHoraHusoGenRegistro>2025-02-26T17:13:57.000Z</FechaHoraHusoGenRegistro>
No será por los milisegundos...


Alguien tiene este problema?
Responder Con Cita
  #2  
Antiguo 26-02-2025
Faneka Faneka is offline
Miembro
 
Registrado: nov 2024
Ubicación: Alicante
Posts: 508
Poder: 2
Faneka Va por buen camino
Cuando creas el RF le pones la Fecha y Hora si cuando llegue al servidor de AEAT han pasado más de 120 segundos te devolvera ese aviso.
Responder Con Cita
  #3  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por Faneka Ver Mensaje
Cuando creas el RF le pones la Fecha y Hora si cuando llegue al servidor de AEAT han pasado más de 120 segundos te devolvera ese aviso.



Lo envío inmediatamente, por eso no lo entiendo.
Responder Con Cita
  #4  
Antiguo 26-02-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 870
Poder: 3
bmfranky Va por buen camino
Cita:
Empezado por jodaws Ver Mensaje
Buenas tardes, me estoy volviendo un poco loca con este error:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.



Realizo la consulta de la hora en teoria "oficial" pero me sigue saliendo el mismo error. Algo no debo entender bien .


Código:
<FechaHoraHusoGenRegistro>2025-02-26T17:13:57.000Z</FechaHoraHusoGenRegistro>
No será por los milisegundos...


Alguien tiene este problema?
Hola, si es por los milisegundos, yo tenia ese problema al pasarle el timestamp, al final lo formatee yo en un string.


Para c# @rci me paso esta solucion.
Cita:
Empezado por rci Ver Mensaje
Hola bmfranky, Puedes adaptarlo a lo que necesites:
Código:
DateTime currentDateTime = GetDateTime(); // Coge la fecha y hora de internet o del ordenador

// Convert to Veri*Factu FORMAT EXPECTED: YYYY-MM-DDThh:mm:ssTZD (ej: 2024-01-01T19:20:30+01:00) (ISO 8601)
var creationDateTime = new DateTime(currentDateTime.Year,  currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour,  currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local);

registroFacturacionAlta.FechaHoraHusoGenRegistro = creationDateTime;
Prueba a ver si te sirve, creo que no depende de la versión del VisualStudio que tengas

Saludos
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #5  
Antiguo 26-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.225
Poder: 24
newtron Va camino a la fama
Hola.


Prueba con esta forma de generar ese dato:


Código Delphi [-]
  DateTime:=now;
  XSDatetime := TXSDatetime.Create;
  XSDateTime.AsDateTime := dateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;


La variable XSDatetime es del tipo TXSDatetime y tienes que poner en el uses Soap.XSBuiltIns


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Hola.


Prueba con esta forma de generar ese dato:


Código Delphi [-] DateTime:=now; XSDatetime := TXSDatetime.Create; XSDateTime.AsDateTime := dateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;



La variable XSDatetime es del tipo TXSDatetime y tienes que poner en el uses Soap.XSBuiltIns


Saludos.



Y lo hacía así pero me daba error:


Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:04:19.643+01:00</FechaHoraHusoGenRegistro>
Error no.: 1244 El campo FechaHoraHusoGenRegistro tiene un formato incorrecto.


Lo cambie por:

Código Delphi [-]XSDatetime := TXSDatetime.Create; XSDatetime.AsUTCDateTime :=getAhora;//Now; //XSDatetime.HourOffset:=1; //XSDatetime.UseZeroMilliseconds:=false; Factura.RegistroAlta.FechaHoraHusoGenRegistro :=XSDatetime;



Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:06:21.000Z</FechaHoraHusoGenRegistro>
Me lo acepta pero con errores:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos. RefExterna=2219518
TimestampPresentacion: 26/02/2025 18:06:21
Responder Con Cita
  #7  
Antiguo 26-02-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 345
Poder: 2
Jarogo08 Va por buen camino
Buenas jodaws


Creo que no tienes bien el formato. Tiene que ser algo así (sin milisegundos y con el +01:00 de la franja horaria):


2025-02-26T12:18:25+01:00


Yo lo obtengo así y me va sin problemas (es en VB. NET)


Dim retorno As String = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK")


espero que te sirva!
Responder Con Cita
  #8  
Antiguo 26-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
Buenas jodaws


Creo que no tienes bien el formato. Tiene que ser algo así (sin milisegundos y con el +01:00 de la franja horaria):


2025-02-26T12:18:25+01:00


Yo lo obtengo así y me va sin problemas (es en VB. NET)


Dim retorno As String = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK")


espero que te sirva!



Es que no lo puedo formatear yo o no sé como hacerlo, ya que tengo un tipo TXSDateTime. No le puedo asignar un string directamente... A ver si hay alguien en Delphi que lo haya solucionado y me da luz
Responder Con Cita
  #9  
Antiguo 26-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.225
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por jodaws Ver Mensaje
Y lo hacía así pero me daba error:


Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:04:19.643+01:00</FechaHoraHusoGenRegistro>
Error no.: 1244 El campo FechaHoraHusoGenRegistro tiene un formato incorrecto.


Lo cambie por:

Código Delphi [-]XSDatetime := TXSDatetime.Create; XSDatetime.AsUTCDateTime :=getAhora;//Now; //XSDatetime.HourOffset:=1; //XSDatetime.UseZeroMilliseconds:=false; Factura.RegistroAlta.FechaHoraHusoGenRegistro :=XSDatetime;



Código:
<FechaHoraHusoGenRegistro>2025-02-26T18:06:21.000Z</FechaHoraHusoGenRegistro>
Me lo acepta pero con errores:


Error no.: 2004 El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos. RefExterna=2219518
TimestampPresentacion: 26/02/2025 18:06:21

Ok, ya sé lo que te pasa. Es por los milisegundos. Prueba a hacerlo así:


Código Delphi [-]
  XSDateTime.AsDateTime := dateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime;
  Factura.RegistroAlta.FechaHoraHusoGenRegistro.FractionalSeconds:=0;


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #10  
Antiguo 27-02-2025
jodaws jodaws is offline
Miembro
 
Registrado: may 2007
Posts: 45
Poder: 0
jodaws Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Ok, ya sé lo que te pasa. Es por los milisegundos. Prueba a hacerlo así:


Código Delphi [-] XSDateTime.AsDateTime := dateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro := XSDateTime; Factura.RegistroAlta.FechaHoraHusoGenRegistro.FractionalSeconds:=0;



Saludos.

Muchas gracias a todos!Pues así lo ha hecho bien pero ahora me salta error en el cálculo de la huella


Código:
<FechaHoraHusoGenRegistro>2025-02-27T09:08:59+01:00</FechaHoraHusoGenRegistro>
Código:
<tikR:DescripcionErrorRegistro>El cálculo de la huella suministrada es incorrecta. 
      Datos de entrada cálculo huella: 
        IDEmisorFactura=XXXXXXXXX&
        NumSerieFactura=1/125000013&
        FechaExpedicionFactura=26-02-2025&
        TipoFactura=F1&
        CuotaTotal=1.72&
        ImporteTotal=9.90&
        Huella=857d7da1a202c1659e2249feb65273a6333afc3166e97d9f2018978a42cb9233&
        FechaHoraHusoGenRegistro=2025-02-27T09:08:59+01:00 
        Huella calculada: FE087FDBAAC73C408D8F5100CC06175476A9741BF4EFBFC4C088C86F027F4E73</tikR:DescripcionErrorRegistro>
Edito: la huella debe estar en mayúsculas!

Última edición por jodaws fecha: 27-02-2025 a las 09:24:18.
Responder Con Cita
  #11  
Antiguo 27-02-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.225
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por jodaws Ver Mensaje
Muchas gracias a todos!Pues así lo ha hecho bien pero ahora me salta error en el cálculo de la huella


Código:
<FechaHoraHusoGenRegistro>2025-02-27T09:08:59+01:00</FechaHoraHusoGenRegistro>
Código:
<tikR:DescripcionErrorRegistro>El cálculo de la huella suministrada es incorrecta. 
      Datos de entrada cálculo huella: 
        IDEmisorFactura=XXXXXXXXX&
        NumSerieFactura=1/125000013&
        FechaExpedicionFactura=26-02-2025&
        TipoFactura=F1&
        CuotaTotal=1.72&
        ImporteTotal=9.90&
        Huella=857d7da1a202c1659e2249feb65273a6333afc3166e97d9f2018978a42cb9233&
        FechaHoraHusoGenRegistro=2025-02-27T09:08:59+01:00 
        Huella calculada: FE087FDBAAC73C408D8F5100CC06175476A9741BF4EFBFC4C088C86F027F4E73</tikR:DescripcionErrorRegistro>
Edito: la huella debe estar en mayúsculas!

No das muchas pistas sobre lo que te pasa con la huella, por si te sirve de algo yo lo hago así:


Código Delphi [-]
  // Calculo huella
  sAux:='IDEmisorFactura='+Edit2.Text+'&NumSerieFactura='+Factura.RegistroAlta.IDFactura.NumSerieFactu  ra+'&FechaExpedicionFactura='+Factura.RegistroAlta.IDFactura.FechaExpedicionFactura;
 sAux:=sAux+'&TipoFactura='+ListaCampos[2]+'&CuotaTotal='+Factura.RegistroAlta.CuotaTotal+'&ImporteTotal='+Factura.RegistroAlta.ImporteTotal+'  &Huella='+Edit18.Text+'&FechaHoraHusoGenRegistro='+XSDateTime.NativeToXS;
  Huella:=UpperCase(HashSHA256(sAux));
  Factura.RegistroAlta.TipoHuella := TipoHuellaType._01;
  Factura.RegistroAlta.Huella     := Huella;


No creo que tengas mucho problema en adivinar unas cuantas variables que hay en esas líneas.


y la función HashSHA256:


Código Delphi [-]
function HashSha256(const APassword: string): string;
var
  SHA256: THashSHA2;
begin
  SHA256 := THashSHA2.Create;
  try
    Result := SHA256.GetHashString(APassword);
  finally
    FreeAndNil(SHA256);
  end;
end;


Saludos.
__________________
Be water my friend.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Maxima longitud de un Varchar(x) ingabraham Varios 4 13-08-2010 00:21:14
Convertir segundos a formato hora, minutos y segundos jafera Varios 2 07-02-2009 22:13:45
BMP/JPG a máxima velocidad MaMu Gráficos 14 11-03-2008 14:34:37
Cantidad maxima de hilos ?? marceloalegre Varios 2 18-04-2007 17:27:46
Longitud maxima integer cinecito Varios 10 12-05-2004 03:06:22


La franja horaria es GMT +2. Ahora son las 16:06:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi