Buenas tardes,
Volviendo con las exentas yo el código que tengo ahora mismo (y que me falla) es esto
Primero defino las variables
vExenB: Exenta; //para operaciones de entrega de bienes
vExenP: Exenta2; //para servicios
Y luego hago
ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose:= TipoDesglose3.Create;
ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose.DesgloseTipoOperacion:= TipoConDesgloseType.Create;
if (edtBien_o_Servicio.Text='B') then //bien
begin
setLength(vExenB, 1);
vExenB[0] := DetalleExentaType.Create;
if (edtTipoOperacion.Text='E2') then // exportacion, ceuta y melilla
vExenB[0].CausaExencion := CausaExencionType.E2;
if (edtTipoOperacion.Text='E5') then //intracomunitaria
vExenB[0].CausaExencion := CausaExencionType.E5;
vExenB[0].BaseImponible := edtImporteTotalFactura.Text;
ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose.DesgloseTipoOperacion.Entrega.Sujeta.Exenta := vExenB;
end;
if (edtBien_o_Servicio.Text='S') then //servicios
begin
setLength(vExenP, 1);
vExenP[0] := DetalleExentaType.Create;
if (edtTipoOperacion.Text='E2') then // exportacion, ceuta y melilla
vExenP[0].CausaExencion := CausaExencionType.E2;
if (edtTipoOperacion.Text='E5') then //intracomunitaria
vExenP[0].CausaExencion := CausaExencionType.E5;
vExenP[0].BaseImponible := edtImporteTotalFactura.Text;
ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose.DesgloseTipoOperacion.PrestacionServicios.Sujeta.Exenta := vExenP;
end;
Y el problema es que me da una excepción a la hora de ejecutar cuando llego a la línea
ARegistroLRFacturasEmitidas[0].FacturaExpedida.TipoDesglose.DesgloseTipoOperacion.Entrega.Sujeta.Exenta := vExenB;
¿Sabéis dónde fallo?
Gracias de antemano
|