Página 1 de 1
Timbre fiscal, codigo de error 301
Publicado: Mié Abr 13, 2011 11:58 am
por marcoev
Dado, buenos dias, estoy intentando hacer algunas pruebas de timbrado, utilizando el archivo PEM que enviaste junto con los componentes que te compre, en tu aplicacion de ejemplo funciona bien, pero en mi aplicacion me marca Esquema no valido (Codigo 301), cabe mencionar que le cambie el RFC en la empresa que manejo para que sea el mismo que tienes en tu aplicacion, este es MTI0806042N7, el archivo PEM que utilizo se llama CertificadoDemoTimbreFiscalMx.pem, porque me estara regresando este error?
Gracias.
Atte. Marco
Re: Timbre fiscal, codigo de error 301
Publicado: Mié Abr 13, 2011 1:19 pm
por Dado
marcoev escribió:Dado, buenos dias, estoy intentando hacer algunas pruebas de timbrado, utilizando el archivo PEM que enviaste junto con los componentes que te compre, en tu aplicacion de ejemplo funciona bien, pero en mi aplicacion me marca Esquema no valido (Codigo 301), cabe mencionar que le cambie el RFC en la empresa que manejo para que sea el mismo que tienes en tu aplicacion, este es MTI0806042N7, el archivo PEM que utilizo se llama CertificadoDemoTimbreFiscalMx.pem, porque me estara regresando este error?
Gracias.
Atte. Marco
Ese error significa que el XML que estas enviando esta mal formado
Como estas pasando el comprobante a mi rutina? mediante un objeto CFD? o lo modificaste para pasarle otro dato
Re: Timbre fiscal, codigo de error 301
Publicado: Mié Abr 13, 2011 11:21 pm
por marcoev
Si de hecho tenia un error en mi codigo, pues ocasionaba que no se registrara el detalle al CFDI
Otra pregunta... esta es sobre la generacion del codigo CBB
Código: Seleccionar todo
CodigoDeBarras:=tCodigoDeBarras.Create();
with CFD.Datos do
CodigoDeBarras.QRCodeBMP(Emisor.Rfc,Receptor.Rfc,Total,Timbre.Datos.UUID); {<< Aqui me marca el error}
codigocbb:=TSTream.Create();
CodigoDeBarras.BMP.SaveToStream(codigocbb);
dmDatos.qFacturaCFD.FieldByName('CadenaOriginal').Value := CFD.CadenaOriginalTFD;
dmDatos.qFacturaCFD.FieldByName('SelloDigitalSAT').Value := Timbre.Datos.SelloSAT;
dmDatos.qFacturaCFD.FieldByName('UUID').Value := Timbre.Datos.UUID;
dmDatos.qFacturaCFD.FieldByName('ProveedorSello').Value:=ProveedorTimbre;
dmDatos.qFacturaCFD.FieldByName('FechaTimbre').AsString := Timbre.Datos.FechaTimbrado;
(dmDatos.qFacturaCFD.FieldByName('CodigoCBB') As tBlobField).LoadFromStream(codigocbb);
FreeAndNil(codigocbb);
dmDatos.qFacturaCFD.Post;
with dmDatos do
CodigoDeBarras.Save(path + nombre+'.bmp');
CodigoDeBarras.Free;
estoy intentando basarme en el codigo de ejemplo que enviaste en la unidad cfdPDF donde haces algo como
Código: Seleccionar todo
with CFDCopy do
begin
CodigoDeBarras.QRCodeBMP(Emisor.Rfc,Receptor.Rfc,Total,Timbre.Datos.UUID);
Logo.Image := CodigoDeBarras.BMP;
end;
Segun veo es porque la instancia no esta creada, por lo cual la cree manual CodigoDeBarras:=tCodigoDeBarras.Create();, despues dentro de este componente esta lo siguiente
Código: Seleccionar todo
procedure TCodigoDeBarras.QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
begin
Total := Format('%10.6f',[StrToFloatDef(Total,0)]);
Total := DupeString('0',17-length(Total)) + Total;
QRCode:=TQRCode.Create(nil); //Esta linea la agregue porque me marcaba error en la siguiente, y asi se va hasta donde asigna la imagen al BMP
QRCode.code := '?re=' + RFCEmisor + '&rr=' + RFCReceptor + '&tt=' + Total + '&id=' + UUID;
QRCode.Refresh;
QRCode.paintBarcodeAutoSize(BMP.Canvas);
QRCode.Free;
end;
Que no se supone que las instancias de QRCode y BMP se crean en la inicializacion de la unidad cfdQRCode? que estoy haciendo mal :s
Re: Timbre fiscal, codigo de error 301
Publicado: Jue Abr 14, 2011 8:27 am
por Dado
CodigoDeBarras:=tCodigoDeBarras.Create(); QUITA ESTE CREATE, EL OBJETO YA ESTA CREADO, YA NO DEBES CREARLO TU
with CFD.Datos do
CodigoDeBarras.QRCodeBMP(Emisor.Rfc,Receptor.Rfc,Total,Timbre.Datos.UUID); {<< Aqui me marca el error}
codigocbb:=TSTream.Create();
CodigoDeBarras.BMP.SaveToStream(codigocbb);
dmDatos.qFacturaCFD.FieldByName('CadenaOriginal').Value := CFD.CadenaOriginalTFD;
dmDatos.qFacturaCFD.FieldByName('SelloDigitalSAT').Value := Timbre.Datos.SelloSAT;
dmDatos.qFacturaCFD.FieldByName('UUID').Value := Timbre.Datos.UUID;
dmDatos.qFacturaCFD.FieldByName('ProveedorSello').Value:=ProveedorTimbre;
Re: Timbre fiscal, codigo de error 301
Publicado: Jue Abr 14, 2011 2:06 pm
por marcoev
Ya lo removi, de hecho nomas lo puse para verificar si era eso, puesto en Initalize es donde crear los objetas, pero me marca error en el siguiente procedimiento
Código: Seleccionar todo
procedure TCodigoDeBarras.QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
begin
Total := Format('%10.6f',[StrToFloatDef(Total,0)]);
Total := DupeString('0',17-length(Total)) + Total;
QRCode.code := '?re=' + RFCEmisor + '&rr=' + RFCReceptor + '&tt=' + Total + '&id=' + UUID;
QRCode.Refresh;
QRCode.paintBarcodeAutoSize(BMP.Canvas); <<[b]Aqui me marca error[/b]
end;
el error que genera es
Range Check Error
Re: Timbre fiscal, codigo de error 301
Publicado: Jue Abr 14, 2011 10:00 pm
por poliman
marcoev escribió:Ya lo removi, de hecho nomas lo puse para verificar si era eso, puesto en Initalize es donde crear los objetas, pero me marca error en el siguiente procedimiento
Código: Seleccionar todo
procedure TCodigoDeBarras.QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
begin
Total := Format('%10.6f',[StrToFloatDef(Total,0)]);
Total := DupeString('0',17-length(Total)) + Total;
QRCode.code := '?re=' + RFCEmisor + '&rr=' + RFCReceptor + '&tt=' + Total + '&id=' + UUID;
QRCode.Refresh;
QRCode.paintBarcodeAutoSize(BMP.Canvas); <<[b]Aqui me marca error[/b]
end;
el error que genera es
Range Check Error
Hola.
Deshabilita la opcion Range Check Error.
No es un error en tu codigo, solo necesitas desactivar esta comprobacion y funcionara bien.
{$R-}

Re: Timbre fiscal, codigo de error 301
Publicado: Jue Abr 14, 2011 11:00 pm
por marcoev
ya le agregue dicha directiva, pero sigue marcando el error
Código: Seleccionar todo
unit cfdQRCode;
interface
uses SysUtils, StrUtils, Forms, Graphics, QRCode;
type
TCodigoDeBarras = class
BMP : TBitMap;
QRCode : TQRCode;
procedure QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
end;
var
CodigoDeBarras: TCodigoDeBarras;
implementation
{$R-} <<Aqui la puse
procedure TCodigoDeBarras.QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
begin
Total := Format('%10.6f',[StrToFloatDef(Total,0)]);
Total := DupeString('0',17-length(Total)) + Total;
QRCode.code := '?re=' + RFCEmisor + '&rr=' + RFCReceptor + '&tt=' + Total + '&id=' + UUID;
QRCode.Refresh;
QRCode.paintBarcodeAutoSize(BMP.Canvas);
end;
initialization
CodigoDeBarras := TCodigoDeBarras.Create;
CodigoDeBarras.BMP := TBitmap.create();
CodigoDeBarras.BMP.height:=200;
CodigoDeBarras.BMP.width:=200;
CodigoDeBarras.QRCode := TQRCode.Create(Application);
CodigoDeBarras.QRCode.marginPixels := 0;
// CodigoDeBarras.QRCode.backColor := clRed;
end.
La tendre que poner en alguna otra parte?
Re: Timbre fiscal, codigo de error 301
Publicado: Vie Abr 15, 2011 7:39 am
por poliman
marcoev escribió:ya le agregue dicha directiva, pero sigue marcando el error
Código: Seleccionar todo
unit cfdQRCode;
interface
uses SysUtils, StrUtils, Forms, Graphics, QRCode;
type
TCodigoDeBarras = class
BMP : TBitMap;
QRCode : TQRCode;
procedure QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
end;
var
CodigoDeBarras: TCodigoDeBarras;
implementation
{$R-} <<Aqui la puse
procedure TCodigoDeBarras.QRCodeBMP(RFCEmisor,RFCReceptor,Total,UUID : string);
begin
Total := Format('%10.6f',[StrToFloatDef(Total,0)]);
Total := DupeString('0',17-length(Total)) + Total;
QRCode.code := '?re=' + RFCEmisor + '&rr=' + RFCReceptor + '&tt=' + Total + '&id=' + UUID;
QRCode.Refresh;
QRCode.paintBarcodeAutoSize(BMP.Canvas);
end;
initialization
CodigoDeBarras := TCodigoDeBarras.Create;
CodigoDeBarras.BMP := TBitmap.create();
CodigoDeBarras.BMP.height:=200;
CodigoDeBarras.BMP.width:=200;
CodigoDeBarras.QRCode := TQRCode.Create(Application);
CodigoDeBarras.QRCode.marginPixels := 0;
// CodigoDeBarras.QRCode.backColor := clRed;
end.
La tendre que poner en alguna otra parte?
Revisa el siguiente enlace:
http://www.delphibasics.co.uk/RTL.asp?N ... dCode2=Yes
Re: Timbre fiscal, codigo de error 301
Publicado: Vie Abr 15, 2011 9:31 am
por Dado
Otra solucion definitiva (y talvez hasta la mejor) es que INSTALES EL COMPONENTE QRCode, sigue las instrucciones del "readme.txt", con eso aparece un componente nuevo en la barra de Delphi, ese componente lo puedes arrastrar a tu forma y usarlo mas facilmente
Re: Timbre fiscal, codigo de error 301
Publicado: Vie Abr 15, 2011 9:35 am
por marcoev
Precisamente en ese enlace me base para aplicar la directiva, y de hecho uso mucho esa pagina, pues es mas facil y rapido encontrar ayuda ahi que en el mismo delphi que tengo (2010, muy lento pa abrir la ayuda).
Voy a hacer la prueba instalando el componente y te aviso, gracias.