Cita:
Empezado por Sandy656
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; ACaducidadCertificado:TDate;
DireccionEnvio:String;
res : RespuestaConsultaFactuSistemaFacturacionType;
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; ConsultaFactura.Cabecera.ObligadoEmision.Nif := Nif.Text;
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));
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.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP'; <<<-- Ha de usar la misma de los registros
ACaducidadCertificado:=VerificarCaducidadCertificado(P_Datavarios.QSala.FieldByName('ultima_firma'). AsString);
if (P_DataVarios.QSala.FieldByName('ultima_firma').AsString <> '') then begin
res:= RespuestaConsultaFactuSistemaFacturacionType.Create; línea donde da el error --> res:= GetsfPortTypeVerifactu( false, DireccionEnvio , HTTPRIO1 ).ConsultaFactuSistemaFacturacion(ConsultaFactura ); end;
except
on E: Exception do
begin
MensajeError(E.ClassName+' - '+ E.Message) ;
end;
end;
end;
Cita:
Alguien lo hace de esta manera?. Lo hacéis a pelo?? Qué estoy haciendo mal??
Gracias!!!
|
Hola, esta usando una dirección errónea para enviar la consulta, se usa la misma de los registros de facturación...