HASAR P-250-FAR Imprime X y Z, pero no tickets

758 views
Skip to first unread message

Ezequiel Oyarzabal

unread,
Oct 26, 2017, 5:48:01 PM10/26/17
to PyFiscalPrinter
Estimado grupo, 

Vuelvo al ruedo luego de tanto tiempo y en este caso porque se presentó algo que no estoy encontrando la vuelta.

Tengo una Hasar P-250-FAR (Eso es lo que dice en la caja) que imprime el X y el Z correctamente, pero cuando le tiro alguna ticket no los imprime.

En el IDLE lo que sale es:

Imprimiendo con Impresora Hasar 715v2
imprimiendo la FC  1
No handlers could be found for logger "root"

Traceback (most recent call last):
  File "C:\Users\SON\AppData\Local\Temp\factura26.py", line 9, in <module>
    printer.openTicket()
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 272, in openTicket
    self._sendCommand(self.CMD_OPEN_FISCAL_RECEIPT, ["T", "T"])
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 166, in _sendCommand
    (str(e), commandString))
PrinterException: Error de la impresora fiscal: Campo de datos no válido.
Comando enviado: SEND|0x40|F|['T', 'T']

Pero no entiendo el error, estimo que deben ser los códigos binarios...

Aunque si tiro un cierre X, imprime el ticket lo mas bien

El código que uso para el cierre X es:

# -*- coding: iso-8859-1 -*-
import sys
from hasarPrinter import HasarPrinter
print "Imprimiendo CIERRE X con Impresora Hasar 715v2"
printer = HasarPrinter(deviceFile="COM3", model="715v2", dummy=False)
printer.dailyClose("X")

y el código que uso para la impresión del ticket fiscal que tira error es:

#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-
import sys
from hasarPrinter import HasarPrinter
print "Imprimiendo con Impresoradds Hasar 715v2"
printer = HasarPrinter(deviceFile="COM3", model="715v2", dummy=False)
number = printer.getLastNumber("B") + 1 print "imprimiendo la FC ", number printer.openTicket() printer.addItem("CORTESIA2", 1, 1, 0.000, discount=0, discountDescription="Dto 0%") printer.addPayment("Efectivo", 1) printer.closeDocument()

¿Alguien tendrá alguna línea de ayuda para ver que onda?

Saludos!

Hernán

unread,
Oct 26, 2017, 6:00:46 PM10/26/17
to PyFiscalPrinter
Hola, probá con este código y comentá.

#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-

import sys
from hasarPrinter import HasarPrinter

printer = HasarPrinter(deviceFile="COM3", model="715v2", dummy=False)
number = printer.getLastNumber("B") + 1
print "imprimiendo la FC ", number

printer.openBillTicket(
    "B", "Consumidor Final", "Direccion", "99999999",
    printer.DOC_TYPE_DNI,
    printer.IVA_TYPE_CONSUMIDOR_FINAL
)

# Facturar Celular a $ 1500, con 21% de IVA
printer.addItem("Celular", 1, 1500, 21.0, discount=0, discountDescription="")

printer.addPayment("Efectivo", 3800)

printer.closeDocument()

Ezequiel Oyarzabal

unread,
Oct 26, 2017, 6:18:06 PM10/26/17
to PyFiscalPrinter
Gracias Hernan por tu pronta respuesta e idea.

Lo probé recién, pero me tira esto el IDLE:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
========== RESTART: C:\Users\SON\AppData\Local\Temp\factura26.py ==========
imprimiendo la FC  1
No handlers could be found for logger "root"

Traceback (most recent call last):
  File "C:\Users\SON\AppData\Local\Temp\factura26.py", line 14, in <module>
    printer.IVA_TYPE_CONSUMIDOR_FINAL
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 259, in openBillTicket
    self._setCustomerData(name, address, doc, docType, ivaType)
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 235, in _setCustomerData
    self.setHeader()
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 221, in setHeader
    self._setHeaderTrailer(line, text)
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 212, in _setHeaderTrailer
    self._sendCommand(self.CMD_SET_HEADER_TRAILER, (str(line), text))
  File "C:\Users\SON\AppData\Local\Temp\hasarPrinter.py", line 166, in _sendCommand
    (str(e), commandString))
PrinterException: Error de la impresora fiscal: Comando no reconocido.
Comando enviado: SEND|0x5d|F|('3', '\x7f')
>>> 

Asimismo, lo probé con otro monto (menor a 1000) y con un IVA distinto, pero nada.

Lo que no encuentro por ningún lado es si hay algo distinto de código binario de hasar para la 250 ésta.

Cualquier cosa, aquí ando para seguir probando ;) 

Gracias por tu aporte!

Hernán

unread,
Oct 26, 2017, 6:26:11 PM10/26/17
to PyFiscalPrinter
Es esta la impresora? http://grupohasar.com/producto/htp-250/ Si no buscala en la página de Hasar y posteala, para ver el tema de los comandos. Saludos

Roman Varas

unread,
Oct 26, 2017, 6:29:35 PM10/26/17
to pyfisca...@googlegroups.com
Disculpen si me equivoco... pero eso no es un controlador fiscal... es una comandera...  Se usa con el driver que provee Hasar... ¿No?

2017-10-26 19:26 GMT-03:00 Hernán <hernanar...@gmail.com>:
Es esta la impresora? http://grupohasar.com/producto/htp-250/ Si no buscala en la página de Hasar y posteala, para ver el tema de los comandos. Saludos

--

---
Has recibido este mensaje porque estás suscrito al grupo "PyFiscalPrinter" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyfiscalprinter+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Ezequiel Oyarzabal

unread,
Oct 26, 2017, 6:35:22 PM10/26/17
to PyFiscalPrinter
Si, es esa, pero fiscal.
Abajo tiene una cajita con el precinto y todo eso.

Aqui hay un link de ML con una similar.


En un ratito me pasan la foto de la exacta que estoy probando.

Sé que en el sitio de Hasar es una comandera, pero acá esa con la cajita abajo es fiscal.

Yo me animé a probarlo, porque vi que Mariano publicó que en Panamá usan esa y tenía el código adaptado a esa. → https://code.google.com/archive/p/pyfiscalprinter/

En breve subo la foto de la impre fiscal.

Saludos

Roman Varas

unread,
Oct 26, 2017, 6:39:05 PM10/26/17
to pyfisca...@googlegroups.com
Ah.. pero esa es de la *nueva generacion* de hasar... yo no se si el set de comandos es exactamente el mismo. eh ?



--

Ezequiel Oyarzabal

unread,
Oct 26, 2017, 9:55:06 PM10/26/17
to PyFiscalPrinter
Puede ser eso.

Aqui subo las imagenes que me pasaron

Según lo que veo del modelo sería exactamente la que dice que usan en Panamá

Y según Mariano, estaría soportada, solo que no encontré ni siquiera como estaría nombrada...

Por ahí es un desarrollo aparte. Por eso les consulto si saben algo al respecto.

Saludos!
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyfiscalprint...@googlegroups.com.

Ezequiel Oyarzabal

unread,
Oct 27, 2017, 5:53:56 PM10/27/17
to PyFiscalPrinter
Gente, para actualizar el hilo.
Encontré esta URL de hasar http://grupohasar.com/producto/impresora-fiscal-termica-compacta-de-alta-velocidad/ (Pareciera alternativa, pero oficial al mismo tiempo) con unas "herramientas para programadores"

Voy a chusmearlo y les cuento.

Saludos!

El jueves, 26 de octubre de 2017, 18:48:01 (UTC-3), Ezequiel Oyarzabal escribió:

Ezequiel Oyarzabal

unread,
Oct 28, 2017, 8:51:39 AM10/28/17
to PyFiscalPrinter
Ahora encontré algo mas.
Pareciera que fuera la línea correcta asique vamos a ver que onda ahora.
El link al nuevo material es→ http://grupohasar.com/producto/smhpt-250f/
No entiendo por qué la info está tan rebuscada.
Pero bueno, cuando tenga algo lo paso.
Saludos 

Ezequiel Oyarzabal

unread,
Oct 28, 2017, 9:27:55 AM10/28/17
to PyFiscalPrinter
Aqui dejo el manual que pareciera ser el correcto luego de tanto buscar.

El tema es que no tengo "Ni la más pálida idea" sobre qué tengo que usar...

Lo que leo por ejemplo en la página de "Abrir comprobante" es:

Yo recién el Lunes podré ir al lugar donde está la impresora, pero realmente ahora estoy perdido.

Si alguien me da una mano al menos para orientarme, dejo un enlace al manual en pdf que estoy viendo.


Manual → https://drive.google.com/file/d/0B65lkmT1uzZQcU80RUlTR0hKTEU/view?usp=sharing



Saludos!



Hernán

unread,
Oct 28, 2017, 12:28:07 PM10/28/17
to PyFiscalPrinter
PrinterException: Error de la impresora fiscal: Comando no reconocido.
Comando enviado: SEND|0x5d|F|('3', '\x7f')

Este comando no existe para la impresora con la que estás trabajando. [setHeader]

Comentá las líneas que aparecen debajo de la func _setCustomerData() en hasarPrinter.py:

def _setCustomerData(self, name, address, doc, docType, ivaType):
       # limpio el header y trailer:
       # self.setHeader()
       # self.setTrailer()

y después volvé a probar con emitir una factura con el fragmento que te pasé.

Ezequiel Oyarzabal

unread,
Nov 2, 2017, 9:45:51 AM11/2/17
to PyFiscalPrinter
Hola Hernan, 

Al final probé eso que me decías, pero sigue tirando errores.

Obviamente ya no del header sinó de otras cosas.

Ando con poco tiempo para dedicarle, por lo que puse una propuesta por workana si es que hay alguien que lo puede refactorizar al código para esa impresora.

Por el momento es todo lo que puedo hacer.

(Está aclarado que cuando tenga el código nuevo y lo haya probado en la cancha, lo voy a liberar aquí para quien lo necesite)

Saludos! 

Ezequiel Oyarzabal

unread,
Nov 9, 2017, 6:29:01 PM11/9/17
to PyFiscalPrinter
Actualizo el hilo porque ningún programador pago se sumó por el pedido de workana.

Yo seguí probando porque SI o SI tengo que cerrarlo.

El error (Para Hernan que me pasó unas líneas) sigue sucediendo.

Comenté el SetHeader y SetTrailer, pero el error que viene despues de hacer eso es siempre similar a éste que pongo a continuación: "Campo de datos no válido"

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
= RESTART: C:\Users\admin\AppData\Local\Temp\2017-11-09_19_08_19.py =
imprimiendo la FC  
5

No handlers could be found for logger "root"


Traceback (most recent call last):

 
File "C:\Users\admin\AppData\Local\Temp\2017-11-09_19_08_19.py", line 14, in <module>
    printer
.IVA_TYPE_CONSUMIDOR_FINAL
 
File "C:\Users\admin\AppData\Local\Temp\hasarPrinter.py", line 266, in openBillTicket
   
return self._sendCommand(self.CMD_OPEN_FISCAL_RECEIPT, [type, "T"])
 
File "C:\Users\admin\AppData\Local\Temp\hasarPrinter.py", line 166, in _sendCommand
   
(str(e), commandString))

PrinterException: Error de la impresora fiscal: Campo de datos no válido.
Comando enviado: SEND|0x40|F|['B', 'T']
>>>


Probé cambiando en esta parte → SEND|0x40|F|['B', 'T'← la "T" por otra cosa (ya tipo tirando fruta) pero nada.

Eso sí, si tiro un cierre X o un Z funciona perfecto.

Emulador FP1000
C
.U.I.T. Nro.: 30610400562
Ing. Brutos: ABC123
Inicio de Actividades: 01/01/2014
IVA
Responsable Inscripto
Habilitación: COMPROBANTES CLASE "A"
----------------------------------------------------------------
        C
ód. 080 - INFORME DIARIO DE CIERRE Nº 00000002
                                                    P
.V.Nº 00002
Fecha: 09/11/2017                                 Hora: 20:24:27
----------------------------------------------------------------
FECHA DE LA JORNADA
: 09/11/2017


                     COMPROBANTES FISCALES                      


                       INFORMACION GLOBAL                      


GRAVADO                    
0.00 NO GRAVADO                 0.00
EXENTO                      
0.00 DESCUENTOS                 0.00
COMP
. GENERADOS         00000000 COMP. CANCELADOS       00000000


IMPORTE TOTAL DE COMPROBANTES FISCALES                      
0.00


              COMPROBANTES NO FISCALES HOMOLOGADOS              


                   
940 - DETALLE DE VENTAS                    
PRIMER COMPROBANTE      
00000002 ULTIMO COMPROBANTE     00000002
CANTIDAD COMPROB
.       00000001


IMPORTE FINAL DE COMPROBANTES NO FISCALES                  
0.00


CANTIDAD DE BLOQUEOS EN LA JORNADA  
0                          
  CF ABCDEF0000000001                                   V
: 01.00


En definitiva el emulador funciona ok, la virtualización del puerto también ok, pero es como que los comandos que le envía el código python al fiscal no son los que el fiscal quiere.

Encima este fiscal procesa también XML para imprimir mediante un proxy http, pero no tengo idea como funciona todo esa tecnología.

(Lamentablemente tampoco como funciona este código de python)

En fin, espero que me comenten si tienen alguna pista mas que no tengo problemas en probarla.

Sinó aqui seguiré buscándole la vuelta.

Saludos!

Roman Varas

unread,
Nov 9, 2017, 8:01:40 PM11/9/17
to pyfisca...@googlegroups.com
Ezequiel, mándame un mail, tal vez te pueda ayudar....

--

---
Has recibido este mensaje porque estás suscrito al grupo "PyFiscalPrinter" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyfiscalprinter+unsubscribe@googlegroups.com.

Ezequiel Oyarzabal

unread,
Dec 9, 2017, 10:00:22 AM12/9/17
to PyFiscalPrinter
Hola Roman!

No habia visto tu mensaje.

Sigo interesado ya que no se solución todavía y anduve con otras cosas, pero sigue pendiente.

Te mando mensaje por mail.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyfiscalprint...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages