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 :oops:

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.