PDA

Ver la Versión Completa : Problema con impresora fiscar Hasar 1100 Segunda Generación


mattaldi
09-04-2017, 23:58:45
Hola gente:
Estoy programando la impresión de tickets en una impresora Hasar de segunda genereración. Trabajo con Delphi 5.

En Hasar hay ejemplos en VB y he visto los pasos de conversión que puso el usuario DeG en otro hilo

Ya instalé el OCX que me mandaron de Hasar y cree el objeto mediante:
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;

Puedo acceder a algunos métodos de la clase. He logrado avanzar papel y hacer cierre Z por ejemplo.
Pero no puedo imprimir un TicketFacturaB completo, imprime los datos del cliente, el item y me tira un error, solamente puedo seguir haciendo pruebas cancelando el ticket con el método correspondiente. La impresora está en modo entrenamiento.

Luego de imprimir el item me da el error:
"Proyecy Proyect1.exe raised exception class EOleException whit message 'Type mismatch'. Procces stopped. Use step o run to continued."

Parece ser algún error de tipo, pero he revisado mil veces los pdf de Hasar y los tipos de los parámetros del método ImprimirItem, pero no encuentro el error.

procedure TForm1.BitBtn2Click(Sender: TObject);
var
destino: widestring;
puerto: integer;
tiempo: OleVariant;
HASARNG: Variant;
begin
try
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
destino := '192.168.1.5'; puerto := 0; tiempo := 5000;
HASARNG.Conectar(destino,puerto,tiempo,tiempo);
Showmessage('CONECTADO'); //OKKKKKKKKKKKK
HASARNG.CargarDatosCliente('Razón Social Cliente...', '99999999995', Monotributo, TipoCUIT, 'Domicilio Cliente...', '', '', '');
Showmessage('DATOS CLIENTES CARGADOS'); //OKKKKKKKKKKKK
HASARNG.AbrirDocumento(TiqueFacturaB);
Showmessage('DOCUMENTO ABIERTO'); //OKKKKKKKKKKKK
HASARNG.ImprimirItem ('Producto 2', 2, 50, Gravado, 21.00,
ModoSumaMonto, IIVariablePorcentual, 0, DisplayNo,
ModoPrecioTotal, 1, '7790001001054', '2000', Unidad);
Showmessage('ITEM IMPRESO'); //NO LLEGA ACAAAAAAAAAAA
HASARNG.ImprimirDescuentoItem('Oferta', 10, DisplayNo, ModoPrecioTotal);
HASARNG.ImprimirPago('Efectivo...', 90, Pagar, DisplayNo, '', Efectivo, 0, '');
HASARNG.CerrarDocumento(0, 'hasarventas@hasar.com');
except
on E: Exception do

Showmessage('ERROR: '+ (E.Message));
end;

end;

¿Alguno programó éstas impresoras?¿me pueden dar una mano? Hace 1 mes que estoy trabado.

nmsitemas
21-06-2017, 15:51:47
Hola mattaldi. Yo me tengo que sentar a trabajar con este tipo de impresoras. Por el error que te tira, deberias de probar de registras la ocx de hasar en system32 o syswow64 en caso que sea windows 64 bits. No se si ya has resuelto el problema. Saludos

mattaldi
21-06-2017, 16:26:44
Gracias por contestar nmsitemas:
Varios problemas se solucionaron luego de que hasar me pasara una nueva versión del ocx. Con la última no tuve inconvenientes.

rrdb
21-06-2017, 20:13:30
Hola mattaldi, cual seria la ultima version del ocx, yo descargue hace poco de la pagina, logre conectarme, impirmir un ticket , pero al pedir un subtotal da error "type mismatch", igual realiza bien el comando e imprime pero arroja ese error, te ocurrio algo similar?.. Saludos.

mattaldi
21-06-2017, 23:20:04
El comando ImprimirItem me daba ese error. Cuando cambié el OCX se solucionó.

Respuesta de Hasar
*****************************************************************
Estimado Daniel,
Es muy probable un problema de incompatibilidad entre el OCX y la impresora fiscal 2G.
Utilizar el que se incluye en el último ZIP publicado en la web.
http://grupohasar.com/wp-content/uploads/2016/12/IFH-2G-Distribucion-161215.zip
*****************************************************************
Saludos

rrdb
22-06-2017, 13:55:54
Si, por lo que veo es la misma versión del ocx, que estoy utilizando pues lo baje hace 5 dias de la web y estoy empezando migrar un código que ya tenia, envie la pregunta a hasar a ver que responden, si podrías probar el comando subtotal asi vemos si da ese error te agradeceria.. saludos.!
el comando es simple y no veo que pueda fallar ahi :
hasar2.ConsultarSubtotal(HasarArgentina.ImpresionSubtotal(NoImprimeSubtotal), HasarArgentina.ModosDeDisplay(DisplayNo))
con el resto de los comando hasta ahora no tengo otros problemas.

pablonbulacio
20-07-2017, 17:59:35
hola, yo venia manejando el pruf en un entorno de DOS, y la idea es seguir asi, alguien pudo hacerlo andar? baje un archivo ixbatch pero no tengo bibliografia para saber porque tira error, cierre zeta, etc.
Agradeceria si alguien me da una mano con esto.

rrdb
25-07-2017, 13:34:04
Buenas, con respecto al pruf, no te puedo ayudar mucho porque trabajo en entorno visuarl con ocx, a proposito, venia con un error en el subtotal , como especifique mas arriba, me comunique con hasar y liberaron luego una version nueva del ocx que solucionaba eso. Ahora estoy con un temita que al cerrar la aplicacion no logra liberar el ocx, pero lo estoy viendo.. Saludos.

martinc5
13-12-2017, 20:53:31
Hola mattaldi u otros, quisiera saber si pudieron comunicarse con la impresora 2° Gen y emitir tickets ??
yo por ahora pude configurar la ip a travez del wpruf y entrar por http.
Quisiera saber como creas esta clase o ya esta creada en el OCX.
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
a mi me da error y no puedo seguir.

También he estado leyendo que hay que sacar unos reportes semanales y subirlos al AFIP, como están con esto???

Saludos

mattaldi
16-12-2017, 15:22:49
Hola martinc5:
Yo no tengo problemas con esa línea de código. Supongo que tenes registrado el ocx e importado en delphi.
En cuanto a los reportes que decís, no tengo idea. Si encontras información compartila acá.
Saludos

rrdb
20-12-2017, 16:31:08
Hola martinc5: La conexión por el momento que tengo probada es por el Proxy Fiscal que emula un de IP , a través del servicio :Hasar HTTP2Packet ..
Ahora, este tipo de conexión fue probada en un equipo real y la verdad me resulto lenta la impresión, tendría que ver por puerto serial como responde.
Te pego como tengo en uses y la creación del objeto todo a manera de pruebas, también sobre los reportes no tengo idea,
interface
Uses
SysUtils,Strutils,Messages,Dialogs,Math,Forms,Classes,
ComObj, HasarArgentina_TLB,Windows ;

type

HasarFiscal2 = Class(TImpresoraFiscalRG3561)


private
{ Private declarations }

public

function crearImpresorF():boolean;
begin
try
hasar:= HasarFiscal2.Create(nil);
result:= true;
except
result:= false;
end;
end;

maxpayne198304
27-12-2017, 17:21:59
[QUOTE=rrdb;523652] alguien la pudo hacer andar por puerto com ? o en su defecto USB segun el flaco que me la vendio no deberia haber problemas pero en el OCX q distribuyen no veo una sola opcion de conexion que no sea por ip, y la verdad conectarle un cable de red a un impresora fiscal, en un local con 5 o 6 fiscales es bastante engorroso. Desde ya muchas gricias por la respuesta.

martinc5
28-12-2017, 14:12:51
Hola Gente, les comento que otra opción para emitir ticket es a travez del wspooler que trae en las herramientas de la fiscal.
Lo engorroso es pasarle el archivo.txt con las instrucciones para emitir el ticket. Ahora estoy estudiando el código para probarlo.

maxpayne198304
28-12-2017, 14:18:08
Hola Gente, les comento que otra opción para emitir ticket es a travez del wspooler que trae en las herramientas de la fiscal.
Lo engorroso es pasarle el archivo.txt con las instrucciones para emitir el ticket. Ahora estoy estudiando el código para probarlo.

Bueno gracias yo ayer hable con los de hasar me dijeron q para conectar por usb o rs232 solo con proxy de lo contrario por cable de red.. la verdad que esta gen de fiscales es un dolor de cabeza, laburo para farmacias y el papel termico dudo mucho que sirva para este tipo de ventas.

softarg
18-10-2018, 22:56:55
Hola martinc5: La conexión por el momento que tengo probada es por el Proxy Fiscal que emula un de IP , a través del servicio :Hasar HTTP2Packet ..
Ahora, este tipo de conexión fue probada en un equipo real y la verdad me resulto lenta la impresión, tendría que ver por puerto serial como responde.
Te pego como tengo en uses y la creación del objeto todo a manera de pruebas, también sobre los reportes no tengo idea,
interface
Uses
SysUtils,Strutils,Messages,Dialogs,Math,Forms,Classes,
ComObj, HasarArgentina_TLB,Windows ;

type

HasarFiscal2 = Class(TImpresoraFiscalRG3561)


private
{ Private declarations }

public

function crearImpresorF():boolean;
begin
try
hasar:= HasarFiscal2.Create(nil);
result:= true;
except
result:= false;
end;
end;


Te consulto, estoy trabajando con Delphi 5. Tengo el OCX importado aunque no se ve en la paleta.
Quise probar para comenzar 2 comandos basicos. Cierre X y Z
Instale el Emulador Fiscal + com0com + el PROXI FISCAL para mandarle al emulador los resultados.

Ahi surge mi 1 problema siguiendo los pasos para instalar el PROXI desde Servicios le doy iniciar y se cierra automaticamente dice que algunos servicios se cierran si no son utilizados.

S.O Windows 7 PRO 32bits.

Cualquier ayuda para emular la fiscal les agradeceria, en los manuales no termino de entender bien como funciona.

Gracias

martinc5
19-10-2018, 01:52:49
Hola softarg, gracias por responder ya voy a probar lo que me enviaste. al final nunca pude importar el OCX ni crear el objeto.
Lo que hice es generar archivos txt y ejecutarlos con spooler.

Saludos

softarg
11-01-2019, 23:43:18
Hola mattaldi u otros, quisiera saber si pudieron comunicarse con la impresora 2° Gen y emitir tickets ??
yo por ahora pude configurar la ip a travez del wpruf y entrar por http.
Quisiera saber como creas esta clase o ya esta creada en el OCX.
HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
a mi me da error y no puedo seguir.

También he estado leyendo que hay que sacar unos reportes semanales y subirlos al AFIP, como están con esto???

Saludos

Siguiendo los consejos del foro estoy armando una app para las hasar.
en pruebas con el emulador me anduvo todo bien. Con la impresora Fisica me surge un error de windows al cerrar. Esta aplicacion ha dejado de funcionar blablabla, pero ejecuta los comandos correctamente.

Entonces pienso Despues de crear el objeto :

HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;

Antes de cerrar la app se debe liberar? Como no tiene metodo Free o destroy!

Alguien le paso?

Gracias

santiago14
28-03-2019, 01:52:47
Siguiendo los consejos del foro estoy armando una app para las hasar.
en pruebas con el emulador me anduvo todo bien. Con la impresora Fisica me surge un error de windows al cerrar. Esta aplicacion ha dejado de funcionar blablabla, pero ejecuta los comandos correctamente.

Entonces pienso Despues de crear el objeto :

HASARNG := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;

Antes de cerrar la app se debe liberar? Como no tiene metodo Free o destroy!

Alguien le paso?

Gracias

Estoy teniendo el mismo problema. Conecta bien pero luego sale un error, intuyo que quiere liberar el objeto o algo así.
Por otro lado, ¿cómo hicieron para enviar cosas al Emulador? Porque conseguí mandar tickets a la Fiscal pero nunca consigo que lo haga hacia el Emulador. Me dice que hizo tres intentos y que no puede conectarse. En el mismo sentido, usando hfl_test.exe puedo enviar sin problemas cosas al Emulador.

Espero se entienda. Gracias.

santiago14
28-03-2019, 02:02:32
En otro orden de cosas, tengo esta línea de comandos de prueba:

hsr2gPrueba:Variant;
//...
hsr2gPrueba := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
//...

hsr2gPrueba.ImprimirTextoFiscal(estilo, 'Hasta agotar stock...', DisplayNo); //El error lo indica aquí


Al compilar indica lo siguiente:
[Error] Unit1.pas(62): Type not allowed in Variant Dispatch call

Si defino

hsr2gPrueba:ImpresoraFiscalRG3561;


La cosa no va bien, el error es: Interface not Supported.
Ocurre cuando intenta hacer el "Conectar"...

Bueno, espero puedan darme una mano en esto también.

Gracias.

santiago14
28-03-2019, 22:26:32
Bueno, después de tanto investigar, y penar y penar parece que le encontré la vuelta.
Paso a explicarlo.

Herramientas utilizadas:
Delphi 7
Herramientas de 2da Generación de Hasar: IFH-2G-Distribucion-180914 (Esto se lo consigue con la gente de Hasar, no se bien como porque me lo pasó el cliente dueño de la Fiscal)
Máquina fiscal: SMH250F de 2da Generación, térmica, en este caso está puesta por USB.

Lo que hay que instalar en la máquina:
El OCX de 2da Generación, yo lo tengo en :C:\HasarArgentina Es la Revisión 9, por las dudas. Hasar provee manual para hacerlo.
En Delphi 7 se instala como un ActiveX, pero no pone el componente en la Paleta, no importa.
Instalación de USB Gadget. Driver para la Fiscal. Hasar provee manual para hacerlo.
Instalación de Proxy Fiscal. Es un servicio. Hasar tiene un manual donde lo explica, pero voy a poner algo aquí.

El Proxy Fiscal:
Una vez instalado, no se inicia automáticamente. Hacemos unas cuantas modificaciones en el XML asociado. Está en el Directorio "PROXY FISCAL", de las Herramientas de Hasar. Se llama: proxyconfig.xml
Este es el mío.

<?xml version="1.0" encoding="ISO-8859-1"?>
<Config>
<SerialPort>COM5</SerialPort>
<BaudRate>9600</BaudRate>
<HttpPort>5000</HttpPort>
<DebugLevel>3</DebugLevel>
<ServiceName>HASAR PROXY FISCAL</ServiceName>
<ServiceDescription>Dialogando con IFH 2G</ServiceDescription>
<AutomaticStart>si</AutomaticStart>
</Config>

El SerialPort lo sabemos cuando enganchamos por usb la Fiscal. Lo modificamos aquí.
HttpPort lo ponemos en 5000, o 6000 aparece a veces.
Guardamos e inciamos el Servicio.

Vamos al Código fuente en Delphi:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, HasarArgentina_TLB, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
btnConexion: TButton;
mmoFiscal: TMemo;
edtPuerto: TEdit;
txtDestino: TLabeledEdit;
procedure btnConexionClick(Sender: TObject);
private
{ Private declarations }
//Hasar2G:ImpresoraFiscalRG3561;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses
ComObj;

procedure TForm1.btnConexionClick(Sender: TObject);
var
hsr2gPrueba:ImpresoraFiscalRG3561;
//hsr2gPrueba:Variant;
Puerto:Integer;
Destino:WideString;

respabrir: RespuestaAbrirDocumento;
estilo:AtributosDeTexto;
respcierre:RespuestaCerrarDocumento;
begin
hsr2gPrueba := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561;
Puerto:=StrToInt(edtPuerto.Text);
Destino:=Trim(txtDestino.Text);
try
hsr2gPrueba.Conectar(Destino, Puerto, 15000, 15000);
mmoFiscal.Lines.Add('Conexión exitosa');

hsr2gPrueba.CargarCodigoBarras(CodigoTipoEAN13, '779123456789', ImprimeNumerosCodigo, ProgramaCodigo);
mmoFiscal.Lines.Add('Código de Barras');

hsr2gPrueba.CargarDatosCliente('Razón Social Cliente...', '99999999995', ResponsableInscripto,
TipoCUIT, 'Domicilio Cliente...', 'Domicilio extensión 1...', 'Domicilio extensión 2...',
'Domicilio extensión 3....');
mmoFiscal.Lines.Add('Datos cliente');

respabrir:= hsr2gPrueba.AbrirDocumento(PresupuestoX);
//hsr2gPrueba.AbrirDocumento(PresupuestoX);
mmoFiscal.Lines.Add('Abre documento');

hsr2gPrueba.ImprimirTextoFiscal(estilo, 'Hasta agotar stock...', DisplayNo);
mmoFiscal.Lines.Add('Imprime texto fiscal');

hsr2gPrueba.ImprimirItem('Item a la venta...', 1, 100, Gravado, 21, ModoSumaMonto,
IIVariablePorcentual, 0, DisplayNo, ModoPrecioTotal, 1, '779123456789', '10',Unidad);
mmoFiscal.Lines.Add('Imprime ítem');

hsr2gPrueba.ImprimirDescuentoItem('Oferta 10%...', 10, DisplayNo, ModoPrecioTotal);
mmoFiscal.Lines.Add('Imprime descuento');

respcierre:=hsr2gPrueba.CerrarDocumento(0, '');
//hsr2gPrueba.CerrarDocumento(0, '');
mmoFiscal.Lines.Add('Cerrar documento');
except
on e:Exception do
begin
mmoFiscal.Lines.Add('Sin conexión');
mmoFiscal.Lines.Add('Error de Fiscal: ' + e.Message);
mmoFiscal.Lines.Add('Error de Fiscal (ClassName): ' + e.ClassName);
end;
end;
mmoFiscal.Lines.Add('Prueba terminada');
end;

end.


Como no tenemos componente para arrastrar hacia el Form, ponemos en el uses HasarArgentina_TLB.
hsr2gPrueba := CreateComObject(CLASS_ImpresoraFiscalRG3561) as _ImpresoraFiscalRG3561; Es la forma de crear el Objeto en D7

hsr2gPrueba.Conectar(Destino, Puerto, 15000, 15000); Aquí algo importante:
Destino debería ser: 127.0.0.1
Puerto: 5000 o 6000. Es el valor que pusimos en HttpPort
El primer 15000 es el TiempoEsperaConexión, contra la Fiscal claro.
El segundo 15000 es TiempoEsperaComandos, cuando enviamos a la Fiscal.

En este caso, hicimos un Presupuesto X.

Espero ayude a que podamos manejar de mejor manera estas máquinas. A mí me costó unas tardes hasta que pude hacer que funcionara. Es la idea que ayude y quede documentado para el futuro.

Gracias.

Casimiro Notevi
28-03-2019, 23:08:07
Me alegro de que por fín lo lograras, te veía bastante enredado con el tema.
Por lo que cuentas, parece bastante complicado, ¿no?

santiago14
28-03-2019, 23:40:06
Medio embarazoso.
Pienso, para mí, que lo podrían haber pensado algo mas simple.
Pero bueno, está.

Todavía no consigo hacer funcionar el Emulador, pero estoy mejor que antes. Y mas aliviado, sobre todo con mi cliente.

Gracias.

santiago14
29-03-2019, 12:44:31
Si cometo un pecado, que me perdonen. :D

El paquete que uso es este: paquete (http://grupohasar.com/wp-content/uploads/2017/09/IFH-2G-Distribucion-180914.zip)

Santiago.

santiago14
29-03-2019, 12:46:03
Si alguien tiene mejor suerte que yo con el Emulador, que lo comente. Es bueno tener operativa esa herramienta para pruebas mas exhaustivas.
En una Fiscal real se pueden hacer algunas impresiones y no mucho mas.

Santiago.

santiago14
29-03-2019, 12:59:53
Un agregado más, mi compañero de trabajo logró comunicar la Fiscal y el Software por LAN.

Pasos a seguir:

1) Fijar una IP en el Controlador de acuerdo al rango de red. Esto se logra de la siguiente manera. Se aclara que esta configuración se debe hacer a través de cable usb.
Utilizando wpruf (comando proporcionado por Hasar en sus herramientas) Ejemplo: D:\Otros documentos\Impresoras fiscales\SegundaGeneracion\IFH-2G-Distribucion-180914\HERRAMIENTAS\WPRUF\wpruf_611 -p Puerto. Donde "Puerto" es el puerto serial asociado por el S.O. Luego, mediante los comandos correspondientes, fijar IP.

2) Diagnosticar llegada al controlador mediante Ping y la IP fijada.

3) Comunciarse a través del software con el comando: Hasar.Conectar(IP, 80, 15000, 15000);

IP: La IP fijada

Puerto (80) Puerto http a la espera de peticiones por parte del Controlador fiscal.



Nota: El proxy fiscal no es necesario mediante esta conexión.

Casimiro Notevi
29-03-2019, 13:51:25
El paquete que uso es este: paquete (http://grupohasar.com/wp-content/uploads/2017/09/IFH-2G-Distribucion-180914.zip)
:)

404 Error

santiago14
29-03-2019, 14:01:47
Si cometo un pecado, que me perdonen. :D

El paquete que uso es este: paquete (http://grupohasar.com/wp-content/uploads/2017/09/IFH-2G-Distribucion-180914.zip)

Santiago.

¿Y aquí? Sitio (http://grupohasar.com/wp-content/uploads/)

rjn
05-05-2020, 13:48:58
Buenos días, estoy trabajando con estas impresoras hasar 2g, funciona todo bien de acuerdo a las configuraciones que uds recomendaron, el tema es que en algunos casos se queda procesando algo que no consigo atrapar, en hasar me dijeron que atrape los estos eventos:
Respuesta de hasar:
"A nivel eventos, el OCX 2G lanza tres:

+ 'ComandoEnProceso()' Se lanza cada vez que el OCX 2G envía un comando a la impresora fiscal 2G.
+ 'ComandoProcesado()' Se lanza cuando el OCX 2G recibe la respuesta al comando enviado.
Tener presente que no se puede envir un nuevo comando hasta haber recibido la respuesta al comando anterior.
+ 'EstadoEspera()' Se lanza cada vez que la impresora fiscal 2G avisa que hay que esperar porque la respuesta está demorada; porque la tapa está mal cerrada, falta pepel, etc."

Alguien uso estos procedimientos?, lo que necesito saber básicamente es si un comando fue procesado o no. en el ejemplo en vb6 estan estos procedimientos pero no consigo implementarlos. Agradeceria alguna info al respecto. Gracias