Ir al contenido


Foto

Documentación Impresora Fiscal Hasar SMH/PT 250F

impresora fiscal hasar 2da generación

Mejor respuesta Delphius , 09 octubre 2020 - 02:05

Bueno. El bestia era yo, como era de esperarse.

La documentación estaba bien. Sucedían dos cosas. Estaba confundiendo, los tipos de comprobantes que puede aceptar la SMH/PT 250F con los de la SMH/PT 1000F. La primera es una ticketera, la 2da imprime hojas completas, grandes.

 

Error 1:

Cuando vi la tabla de Códigos no me había dado cuenta de que no es lo mismo un Ticket Factura A de una Factura A por dar un ejemplo. La biblioteca funcionaba perfectamente, y yo estaba controlando que parámetros y valores pasaba. Yo veía un 81 (Tiquet Factura A) y después en tabla leía Factura A (1) y estuve pensando que la doc era cualquier cosa.

 

Error 2:

Una vez que me di cuenta de eso, seguía sin enterarme como era que estaba andando la biblioteca pasando como 1er parámetro el comando correcto. Notaba un char(numero) y la doc no me decía nada... no lograba entender de donde y porqué mandaba, en cada método al send_command() la linea de comandos perfectamente, estaba seguro de que ese 1er numerito que formaba la cadena hacía referencia al comando en cuestión pero no entendía como. Hasta que me empecé a preguntar que carajos eran esos valores en hexadecimal en las referencias. Por ejemplo, el comando para el comando @PrintLineItem: en la doc dice además esto:  Imprimir ítem (ref: ImprimirItem, 0x42h)

Hagarré la calculadora y convertí ese valor hexadecimal a decimal. Curiosamente, ese valor coincidía con el char(algo) que pasara como primer parametro en la linea de comando.

Me fijé con otros comandos, y ya no era una mera casualidad.

 

Fue así que dije ¡Eureka! 42(16) = 66(10), por tanto el comando bastaba con hacer un simple chr(66) y el resto de paramatros/valores separados por un chr(28) = FS para formar el string de comando para el método de imprimir item.

 

Así que lo único que tuve que hacer es fijarme en ese numerito y poder implementar los comandos para soportar Documentos Fiscales No Homologados que no tenía la biblioteca, y asegurarme de no confundir los códigos de los comprobantes.

 

Ahora ustede se preguntarán porqué no usamos el/los drivers que ofrecen los mismos tipos que dan la documentación, que nos evitaría el problemita. La respuesta: no lo se. Asi estaba la cosa cuando entré a laburar allí y no estamos en condiciones de cambiar todo.

 

Ya está chicos. Manden nuevas neuronas. Es viernes. ya he terminado de ampliar la biblioteca para lo que hacía falta. Ahora se que hacer si en el día de mañana necesito seguir ampliándola. Termino esta semana laboral con la cabeza frita y el gusto de que anda.

 

Gracias por el aguante, sepan disculpar el monólogo. Si alguien se queda trabado alguna vez leyendo la doc de esta maquinita, puede que este post les sirva de norte.

 

Saludos,

Ir al mensaje completo


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.290 mensajes
  • LocationArgentina

Escrito 07 octubre 2020 - 12:38

¡Buenas!

Tanto tiempo que he estado ausente. Se que los tengo un buen tiempo olvidados. Exceso de laburo, y mucha merde social, económica y política en este tiempo de pandemia me han tenido completamente alejado del Foro.

 

Vengo no con una duda filosófica, sino con algo que supuestamente es más simple. Encontrar documentación técnica y/o del protocolo de comunicación de esta impresora. He tratado de localizar algo que me lleve a buen puerto, pero no encuentro algo sobre este modelo en particular. Si he encontrado otra documentación referente a otros modelos, y no se hasta que punto pudiera ser compatible.

 

En mi laburo tenemos una "library" escrita en PHP que manda algunos comandos a esta impresora. Funciona. Pero necesitamos modificarla para incluir otros documentos no fiscales homologados que no fueron incorporados en su momento. Este modelo de impresora acepta estos tipos de documentos, de eso estamos seguro. Lamentablemente el chico que hizo esta biblioteca se tomó el palo hace ya tiempo, fue contratado freelance y era ajeno a la empresa en la que trabajo, y no tenemos forma de comunicarnos con el.

 

Leyendo esta documentación, me doy con que lo que hace la biblioteca no coincide con la doc. O al menos asi estoy entendiendo. Porque comparo los parametros, y valores de tipos como para una orden conocida e implementada como ser una Factura A y difieren en lo que dice el doc de lo que tiene la biblioteca.

 

También estoy leyendo este otro documento, y quedo también muy en offside.

 

Pareciera ser que el primer doc hace referencia a una solución de 3ros, que interactúa con la impresora. Un driver propio hecho por esta gente.

La biblioteca, según veo, se limita a abrir un socket y luego tira sobre este con fwrite() los comandos. Y no hay dependencia con otra biblioteca.

 

¿Alguno de ustedes ha trabajado con esta impresora? Supuestamente este modelo podría tener cierta compatibilidad con la 441F, o la H714 pero es que ni de estos modelos estoy encontrando data que me ilumine y me oriente.

 

¿Donde podría encontrar algo de info? El sitio de Hasar es una mierda y parece que no hay material. Su buscador no me dice nada.

 

Saludos,


  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.290 mensajes
  • LocationArgentina

Escrito 07 octubre 2020 - 02:39

Wait... Wait... creo haberme dado cuenta de algo. Parece que es correcta la documentación del 1er enlace. Se me hace que estuve confundiendo los tipos y parámetros del modelo 1000F con el de la 250. Inserten emoji facepalm aquí.
¡Manden neuronas frescas que las mías están muy quemadas!

Mañana veré que sale de esto.

Saludos
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.290 mensajes
  • LocationArgentina

Escrito 09 octubre 2020 - 02:05   Mejor respuesta

Bueno. El bestia era yo, como era de esperarse.

La documentación estaba bien. Sucedían dos cosas. Estaba confundiendo, los tipos de comprobantes que puede aceptar la SMH/PT 250F con los de la SMH/PT 1000F. La primera es una ticketera, la 2da imprime hojas completas, grandes.

 

Error 1:

Cuando vi la tabla de Códigos no me había dado cuenta de que no es lo mismo un Ticket Factura A de una Factura A por dar un ejemplo. La biblioteca funcionaba perfectamente, y yo estaba controlando que parámetros y valores pasaba. Yo veía un 81 (Tiquet Factura A) y después en tabla leía Factura A (1) y estuve pensando que la doc era cualquier cosa.

 

Error 2:

Una vez que me di cuenta de eso, seguía sin enterarme como era que estaba andando la biblioteca pasando como 1er parámetro el comando correcto. Notaba un char(numero) y la doc no me decía nada... no lograba entender de donde y porqué mandaba, en cada método al send_command() la linea de comandos perfectamente, estaba seguro de que ese 1er numerito que formaba la cadena hacía referencia al comando en cuestión pero no entendía como. Hasta que me empecé a preguntar que carajos eran esos valores en hexadecimal en las referencias. Por ejemplo, el comando para el comando @PrintLineItem: en la doc dice además esto:  Imprimir ítem (ref: ImprimirItem, 0x42h)

Hagarré la calculadora y convertí ese valor hexadecimal a decimal. Curiosamente, ese valor coincidía con el char(algo) que pasara como primer parametro en la linea de comando.

Me fijé con otros comandos, y ya no era una mera casualidad.

 

Fue así que dije ¡Eureka! 42(16) = 66(10), por tanto el comando bastaba con hacer un simple chr(66) y el resto de paramatros/valores separados por un chr(28) = FS para formar el string de comando para el método de imprimir item.

 

Así que lo único que tuve que hacer es fijarme en ese numerito y poder implementar los comandos para soportar Documentos Fiscales No Homologados que no tenía la biblioteca, y asegurarme de no confundir los códigos de los comprobantes.

 

Ahora ustede se preguntarán porqué no usamos el/los drivers que ofrecen los mismos tipos que dan la documentación, que nos evitaría el problemita. La respuesta: no lo se. Asi estaba la cosa cuando entré a laburar allí y no estamos en condiciones de cambiar todo.

 

Ya está chicos. Manden nuevas neuronas. Es viernes. ya he terminado de ampliar la biblioteca para lo que hacía falta. Ahora se que hacer si en el día de mañana necesito seguir ampliándola. Termino esta semana laboral con la cabeza frita y el gusto de que anda.

 

Gracias por el aguante, sepan disculpar el monólogo. Si alguien se queda trabado alguna vez leyendo la doc de esta maquinita, puede que este post les sirva de norte.

 

Saludos,


  • 1