Ver Mensaje Individual
  #54  
Antiguo 03-06-2025
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 24
Reputación: 0
Sandy656 Va por buen camino
Atascado en la consulta

Hola.
He seguido el ejemplo de la demo de verifactu que funciona de maravilla para el envío de facturas. Pero al intentar hacer lo mismo con la consulta de las facturas enviadas me da error "access violation".
Este es el código que tengo:

Código Delphi [-]
procedure TForm_ConsultaEnviadosAEAT.BotonBuscarClick(Sender: TObject);
var
  ConsultaFactura: ConsultaFactuSistemaFacturacion; // Objeto a enviar
  ACaducidadCertificado:TDate;
  DireccionEnvio:String;
  res : RespuestaConsultaFactuSistemaFacturacionType;  // Respuesta

begin
  ConsultaFactura := ConsultaFactuSistemaFacturacion.Create;
  ConsultaFactura.Cabecera := CabeceraConsultaSf.Create;
  ConsultaFactura.Cabecera.IDVersion:=VersionType._1_0;
  ConsultaFactura.Cabecera.ObligadoEmision := ObligadoEmisionConsultaType.Create;
  ConsultaFactura.Cabecera.ObligadoEmision.NombreRazon := Nombre.Text; // máximo 120 carácteres
  ConsultaFactura.Cabecera.ObligadoEmision.Nif := Nif.Text; // 9 carácteres

  ConsultaFactura.FiltroConsulta:= LRFiltroRegFacturacionType.Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion:= PeriodoImputacionType .Create;
  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Ejercicio:=IntToStr(YearOf(Desde.CurrentDate));

  ConsultaFactura.FiltroConsulta.PeriodoImputacion.Periodo:=veriFactuPeriodoType(MonthOf(Desde.Current  Date)); //devuelve el valor según el mes seleccionado

  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura:= FechaExpedicionConsultaType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion:= RangoFechaExpedicionType.Create;
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Desde:= FormatDateTime('dd-mm-yyy',Desde.CurrentDate);
  ConsultaFactura.FiltroConsulta.FechaExpedicionFactura.RangoFechaExpedicion.Hasta:= FormatDateTime('dd-mm-yyy',Hasta.CurrentDate);

    try
    DireccionEnvio:=  'https://prewww1.agenciatributaria.gob.es/wlpl/TIKE-CONT/SvTikeEmitidasQuery';

    ACaducidadCertificado:=VerificarCaducidadCertificado(P_Datavarios.QSala.FieldByName('ultima_firma').  AsString);

    if (P_DataVarios.QSala.FieldByName('ultima_firma').AsString <> '') then //comprueba si tiene firma digital
    begin
      res:=  RespuestaConsultaFactuSistemaFacturacionType.Create;//  ConsultaFactuSistemaFacturacionType.Create;
   línea donde da el error -->   res:=   GetsfPortTypeVerifactu( false, DireccionEnvio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion(ConsultaFactura );        // enviarlo !
    end;

  except
    on E: Exception do
    begin
      MensajeError(E.ClassName+' - '+ E.Message) ;
    end;
  end;


end;


Alguien lo hace de esta manera?. Lo hacéis a pelo?? Qué estoy haciendo mal??

Gracias!!!
Responder Con Cita