Código de Visual Basic - OCX Fiscal Epson

Imágen de perfil
Val: 208
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

OCX Fiscal Epsongráfica de visualizaciones


Visual Basic

Publicado el 16 de Febrero del 2016 por Rodolfo (6 códigos)
22.939 visualizaciones desde el 16 de Febrero del 2016
Es toda las información que tengo de como manejar las Impresoras Fiscales Epson. Esta incluido el proyecto y el instalador de la OCX también incluí un texto explicativo con todas las funciones de la OCX y otro con explicativo de como enviar los valores (importes). Lo comparto por que toda esta info y códigos lo encontré muchos foros por partes separadas. Si Aun estemos en la era de las Facturas electrónicas muchos comercios utilizan Controladores Fiscales. Para probarlo les dejo también la dirección del emulador http://www.impresoras-fiscales.com.ar/emulador.htm si son tan obsesivos como yo lo van a poder implementar en su aplicación en un par de horas. Les recomiendo que implementen un control de errores y estado de la Impresoras por que nadie quiere que a la mitad de un venta de les cierre el programa y también tenga en cuenta a la hora de enviar los importes que esta bien explicado en uno de los TXT. No soy de compartir código propio de mis aplicaciones solo que este sitio me ayudo tanto que creo con este humilde aporte puedo colaborar con muchos que también lo necesitan como yo lo necesite y me costo mucho recopilar.

1.0
estrellaestrellaestrellaestrellaestrella(60)

Publicado el 16 de Febrero del 2016gráfica de visualizaciones de la versión: 1.0
22.940 visualizaciones desde el 16 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: 1.0 (60)

Imágen de perfil
17 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Menudos aportes que nos estás haciendo, el otro día el del teclado, hoy este... muchísimas gracias.
Responder
Imágen de perfil
18 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Es que creo que hay que tener valores en vida. Si gracias a portes grandes o pequeños que te ayudan a resolver problemas. Es bueno devolver las ayudas y no ser mezquino. Obviamente no publico codigo de aplicaciones completas por que eso es trabajo de cada uno. Pero si puedo hacerlo de esta forma. Solo espero cumplir con mi cometido.
Responder
13 de Diciembre del 2018
estrellaestrellaestrellaestrellaestrella
Cuando trato de descargar mi avast detecta un troyano
Responder
José
20 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo,

gracias por este excelente aporte.

Tengo un pequeño problema y es que al imprimir artículos con tildes o eñes no me aparecen correctamente, y no veo en el objeto manera alguna de configurar la codificación de caracteres. ¿Podrías darme alguna solución o idea?

Muchas gracias de antemano.
Responder
Imágen de perfil
21 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
si es cierto, eso es por que tendrias que enviar sin acentos no Ñ cambiala por N y listo por que es un problema de la impresora fiscal eso no del controlador (OCX)
Responder
José
21 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Ah vale, gracias por la aclaración Rodolfo.

Un saludo.
Responder
Fede Pereyra
26 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Hola, gracias por tu aporte, estoy obteniendo un error de Desbordamiento de Total.. Hasta que monto puedo enviar ? no llegan a $3mil los dos productos que envio....los imprime bien, pero el error lo obtengo cuando intenta cerrar el comprobante : SE PRODUCIRA UN DESBORDE DE TOTAL.
Responder
Imágen de perfil
12 de Junio del 2016
estrellaestrellaestrellaestrellaestrella
pega el codigo que estas utilizando y veo que es lo esta mal.
Responder
30 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, Necesito me aclares donde se denomina la funcion ME, osea en lugar de todo eso no puedo decirle a la impresora directamente que imprimir? Por ejemplo, printerfiscal1.senditem("text2", "text3", "text4", "2100", "M", "0", "0", "0") Cuando quiero abrir el ticket con printerfiscal1.openticket("G") abre el ticket con los datos de la cabecera, pero cuando le doy la instruccion tal como te la expliqué me dice que la variable no ha sido definida y me marca la parte de senditem, porque pasa esto? No hay una forma más fácil de utilizarla tipo la impresora hasar?
Responder
1 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola, tengo problemas al enviar un ticket desde vb6, el comando que uso es el siguiente:
printerfiscal1.sendticketitem("text2","text3","text4","2100","M","0","0","0")
el error me dice que no es un valor declarado y me marca sendticketitem, pero cuando uso:
printerfiscal1.sendnofiscaltext("text2","text3","text4","2100","M","0","0","0") imprime sin ningun problema, obviamente que abro el ticket de la forma que corresponde dependiendo del caso, osea, printerfiscal1.openticket("G) para el ticket fiscal y printerfiscal1.opennofiscal para el otro caso. en que le estoy errando? Alguien puede ayudarme?
Responder
Imágen de perfil
4 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Disculpa lei mal, en la funcion
printerfiscal1.sendnofiscaltext("text2","text3","text4","2100","M","0","0","0")
los textbox van sin comilas
Dim Descripcion as string
Dim Catidad as string
Dim Precio as string

Descripcion = left(text2,20)
El precio si es 1 tenes que enviar 100
La cantidad si es 1 tenes que enviar 1000
Para el precio y cantidad no te pongo el codigo por que no se si utilizas coma o punto para el valor decimal. Eso es programacion basica y creo que vas a tener problemas para resolverlo solo
Espero que te sirva la ayuda.
Responder
Imágen de perfil
2 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Ya que mencionas Hasar, la epson tiene 20 caracteres de descripcion, y los valores son sin decimale es decir $100 le tenes que enviar 1000 o $2,50 ---> 250 ademas para que es la "G" cuando abris el tiket? ademas no son las mismas variables por que segun el tipo de ticket que abras son diferentes las variable a ingresar. Ademas mientras vas escribiendo te van apareciendo que variable y tipo e la siguiente. Presta atencion a eso. Ademas le podes enviar un mail a epon que ellos que envian toda la informacion sin problemas.
Responder
Juan Pablo
4 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo.. buenas tardes. Te escribo desde Paraná (E.Ríos).
Yo estoy utilizando esta OCX con PowerBuilder desde hace varios años, y recientemente descubrí que al realizar los cierres Z, la información que me devuelve no incluye los valores de las Notas de Crédito emitidas durante el día.
Tenés alguna idea sobre el porqué? Lo has visto?
Muchísimas gracias de antemano!
Responder
Imágen de perfil
6 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Realmente creo que la razon es por que es un documento NO FISCAL pero algunos modelos lo toman como NO FISCAL HOMOLOGADO y no se refleja en la memoria del equipo. Hace muy poco que comence con el tema de fiscales y con el tema de las notas de credito para HASAR me podes ayudar ya que el ejemplo que viene con la OCX da error por que llama a una funcion que no existe :S saludos
Responder
Juan Pablo
6 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo. Gracias por tu respuesta. En realidad, según entiendo, las Notas de Crédito son documentos fiscales, y la información sobre los contadores debe estar guardada en algún lugar del equipo, ya que se imprime en el Ticket del Cierre Z. Estoy investigando y haciendo algunas pruebas. Si encuentro algo, te aviso.
Respecto a lo que me pedís, no he desarrollado nada para Hasar, pero con gusto te puedo ayudar en lo que esté a mi alcance. Sí tengo experiencia con temas de Facturación, Notas de Crédito, impuestos, y mucha en PowerBuilder. Saludos!
Responder
Jorge
13 de Septiembre del 2018
estrellaestrellaestrellaestrellaestrella
Buenos tardes Juan Pablo, yo tambien soy de Paraná y me interesaria intercambiar conocimientos. Ojala veas este mensaje, saludos.-
Responder
29 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Hola Juan Pablo; Usas Powerbuilder con impresora fiscal Epson TMU 220? Podrías indicarme como le envías un item al impresor fiscal con impuestos internos cuando es Factura A. Muchas gracias!!!
Responder
Imágen de perfil
2 de Julio del 2019
estrellaestrellaestrellaestrellaestrella
Uso cotidianamente VB6, la OCX se debe comportar de la misma manera. Con respecto a impuestos internos no recuerdo si al agregar ITEM tiene ese parametro, si no lo tiene lo que podes hacer es sumar los impuestos internos y colocarlos como un recargo aca en Argentina las facturas con impuestos internos no se le pone al ITEM sino en un apartado. Por eso te decia que figure como recargo. Espera poder haberte ayudado.
Responder
5 de Septiembre del 2019
estrellaestrellaestrellaestrellaestrella
Hola Gustavo;

Cuando envió al TMU 200 fiscal impuestos internos en un TFA, me cancela.
Ahora en un TFB sale bien.
Tu tienes el mismo problema?

Este el código:
lbl_respuesta = w_ole.ole_ifepson.object.SendInvoiceItem( left(ls_descripcion,40),&
string( f_sin_coma(abs(ldec_bultos),5,3 ) ),&
string( f_sin_coma( ldec_precio,7,2 ) ),&
string( ls_iva ),&
ls_simbolo,&
"0",&
"0",&
"",&
"",&
"",&
"0",&
ls_imp_internos)

Muchas gracias!!!
Responder
Imágen de perfil
7 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Te comento, estamos trabajando con una contadora de Mendoza y ella nos envio documentacion de que las notras de credito no son fiscales pero las notas de debito si lo son. Es decir a mi entender de que son fiscales solo los documentos de cobro (ingreso de dinero) pero no las devoluciones. En lo que estamos incursionando es en hacer IVA compras IVA ventas. Si nos podes ayudar con ese tema para la legislacion de AFIP, ademas nos comentaron que la nueva reg. exije que se exporte a un CSV especifico para enviarlo directo. Agradeceriamos mucho tu colaboracion en este tema.
Responder
22 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Rodolfo gracias primero que nada. Funciona para tm-u220afii? Gracias
Responder
Carlos
25 de Abril del 2017
estrellaestrellaestrellaestrellaestrella
Excepcional aporte !!! estpy probando todo esto y anda, una consulta , con que funcion se le pregunta al impresor el numero de ticket emitido ? Gracias. Saludos. Carlos
Responder
Imágen de perfil
27 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
con esta OCX no se puede, presumo que utilizando el protocolo extendido si se podria. Pero esta OCX es para protocolo compatible. Me alegro que con este simple aporte les ayuda a muchos para poder empezar con el tema de las fiscales. :)
Responder
Imágen de perfil
25 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
Excelente Aporte Sr. Rodolfo, tengo una pregunta, este ocx lo pude implementar aca https://www.youtube.com/watch?v=mlW2Chs6ppw ahora bien, como puedo cambiar el CUIT por otro valor? o este ocx solo me sirve para las normas de Argentina? conoce otro ocx u dll para otras impresoras?, Gracias de antemano amigo, excelente su trabajo, estuve revisando las explicaciones y aclara mucho.
Responder
Cristian
8 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Buen dia, muy interesante el foro, les hago una consulta a ver si me pueden ayudar. Estoy usando ifepson, y funciona todo bien, pero quisiera saber como puedo sacar la impresion de las leyendas "Su Pago" y "Su vuelto", y como agregar una leyenda "Cuenta Corriente" cuando la operacion lo necesite. Desde ya muchas gracias
Responder
Imágen de perfil
10 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Mira, hay un tema la fiscal no admite ese tipo de pago es EFECTIVO o TARJETA. Ahora en este caso tendrias que generar un ticket NO FISCAL para imprimir ese detalle de la compra y por cuenta corriente. Por que se asume que en un ticket fiscal te estan pagando por algun medio.
Responder
cristian
10 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, desde ya muchas gracias, el tema es que lo que emito es una factura, respecto a las leyendas tengo entendido que se pueden sacar pero no encontré la manera
Responder
Imágen de perfil
12 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Alguien pudo conseguir el Emulador de las impresoras Nuevas Epson? yo me comunique con epson argentina y nos da mil vueltas para darnos el emulador. Segun ellos tambien trabaja con el protocolo Expandido.
No tiene nada que ver con la OCX que he publicado, quisiera ue alguno que lee este post pueda colaborar con nosotros y todo de los sitio para poder evolucionar ya que en poco tiempo las impresoras fiscales viejas ya no seran legalmente utilizarlas. Saludos
Responder
16 de Agosto del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, te queria consultar si sabes como cambiar el tope de $ 1.000 que tiene la impresora fiscal Epson TM T220AFII ya que cada vez que se supera ese monto pide los datos del cliente y es muy engorroso.
Muchas gracias por tus aportes!!
Saludos!
Responder
agustin cima
21 de Septiembre del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo! muchas gracias por el OCX, te hago una consulta, cada vez que ejecuto una instruccion en tu aplicacion, imprime y despues me da un error "Error 8020, error al leer del dispositivo comm"

En el caso de un cierre x lo hace bien , pero si es un ticket, imprime el encabezado y despues da error...

Busque por todos lados y nada, alguna idea?
Responder
Imágen de perfil
23 de Septiembre del 2017
estrellaestrellaestrellaestrellaestrella
Te comento, esos son ejemplos que sacamos de internet. En la realidad cuando se envia a imprimir un ticket no hay que esperar la respuesta de cada orden osea que ejecuta el comando de manera directa.

Te paso la funcion que usamos nosostros:

Function ImprimirTicketEpson(FormaPago As String, Recargo As Double, Optional Ltr As String) As Boolean
On Local Error GoTo Fallo1
Dim respuesta As Boolean
Dim Articulo As String
Dim Cantidad As String
Dim PrecioUnit As String
Dim Pago As String
Dim RecargoT As String
Dim IVA As String

If Val(FrmCobrar.TxtAbona) >= Val(Reemplazar(FrmCobrar.txttotal, ",", ".")) Then
Pago = Format(FrmCobrar.TxtAbona, "#0.#0")
Pago = Reemplazar(Pago, ",", "")
Else
Pago = Reemplazar(FrmCobrar.txttotal, ",", "")
End If

With MdiPrincipal
Procesar:
Dim Emisor As String
Dim Compra As String
Dim Letra As String
Dim Tipo As String

Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SELECT * From Clientes where IdCliente='" & txtidcliente & "'", Cnx, 3, 1
Emisor = Left(Cargar_Config_STR("Config", "CatAfip"), 1)

Select Case Emisor
Case "R": Emisor = "I"
Case "M": Emisor = "M"
Case "E": Emisor = "E"
End Select

If txtidcliente = "1" Then Letra = "C": Compra = "F": GoTo SaltoCF
Compra = Left(rs("IVA"), 1)

Select Case Compra
Case "R": Letra = "A": Compra = "I"
Case "M": Letra = "B": Compra = "M"
Case "E": Letra = "B": Compra = "E"
Case "C": Letra = "C": Compra = "F"
End Select

SaltoCF:
'Tipo de Ticket segun CatAfip
If (Emisor = "M" Or Val(txtidcliente) = 1 Or Letra = "C") And Funcion = "V" Then 'CF
respuesta = .IF1.OpenTicket("C")
Else 'Ticket Factura A o B o Nota de Credito
If Funcion = "V" Then Tipo = "T"
If Funcion = "NC" Then Tipo = "M"
If Emisor = "M" Or Val(txtidcliente) = 1 Or Letra = "C" Then
respuesta = .IF1.OpenInvoice(Tipo, "C", Letra, "1", "P", "12", Emisor, Compra, "_", "_", "CUIT", "30614104712", "N", "_", "_", "_", Trim(txtNroNC) & "_", "_", "C")
Else
respuesta = .IF1.OpenInvoice(Tipo, "C", Letra, "1", "P", "12", Emisor, Compra, Left(rs("Nombre"), 40), Left(rs("Apellido"), 40), "CUIT", rs("CUIT"), "N", rs("Direccion") & " " & rs("Altura"), "CP: " & rs("CP"), rs("Provincia"), "0" & Trim(txtNroNC), "_", "C")
End If
Set rs = Nothing
End If
' Lista Art.
Dim Valor_sin_IVA As String
For i = 1 To DataGrid1.ApproxCount
Articulo = Left(DataGrid1.Columns(4).CellText(i), 20)
Cantidad = Val(Reemplazar(DataGrid1.Columns(5).CellText(i), ",", ".")) * 1000
PrecioUnit = Val(Reemplazar(DataGrid1.Columns(6).CellText(i), ",", ".")) * 100
IVA = Val(Reemplazar(IVADetalle(DataGrid1.Columns(2).CellText(i)), ",", ".")) * 100
If Letra = "A" Or Letra = "B" Or Funcion = "NC" Then 'Ticket Factura A o B
Valor_sin_IVA = Val(Reemplazar(DataGrid1.Columns(6).CellText(i), ",", ".")) / (Val(IVA) / 10000 + 1)
Valor_sin_IVA = Format(Valor_sin_IVA, "#0.#0") * 100
respuesta = .IF1.SendInvoiceItem(Articulo, Cantidad, Valor_sin_IVA, IVA, "M", "0", "0", "", "", "", "", "")
Else 'Ticket CF
respuesta = .IF1.SendTicketItem(Articulo, Cantidad, PrecioUnit, IVA, "M", "0", "0")
End If
Next

Dim LeyendaP As String
If FormaPago = "E" Then LeyendaP = "EFECTIVO"
If FormaPago = "T" Then LeyendaP = "TARJETA"
If FormaPago = "Ch" Then LeyendaP = "CHEQUE"

If Recargo <> 0 Then
Dim LetraPay As String
Dim LeyendaRD As String
If Recargo > 0 Then LetraPay = "R": LeyendaRD = "RECARGO"
If Recargo < 0 Then LetraPay = "D": Recargo = Recargo * (-1): LeyendaRD = "DESCUENTO"
RecargoT = Format(Recargo, "#0.#0")
RecargoT = Reemplazar(RecargoT, ",", "")
If Letra = "A" Or Letra = "B" Then 'Ticket Factura A o B
respuesta = .IF1.GetInvoiceSubtotal("P", "Sub-Total")
respuesta = .IF1.SendInvoicePayment(LeyendaRD & " POR " & LeyendaP, RecargoT, LetraPay)
Else ' Ticket CF
respuesta = .IF1.GetTicketSubtotal("P", "Sub-Total")
respuesta = .IF1.SendTicketPayment(LeyendaRD & " POR " & LeyendaP, RecargoT, LetraPay)
End If
End If

If Letra = "A" Or Letra = "B" Or Tipo = "M" Or Tipo = "N" Or Funcion = "NC" Then 'Ticket Factura A o B
respuesta = .IF1.SendInvoicePayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseInvoice(Tipo, Letra, "")
Else 'Ticket CF
respuesta = .IF1.SendTicketPayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseTicket
End If

ImprimirTicketEpson = True

End With
Exit Function
Fallo1:
If rs.State = adStateOpen Then rs.Close
If MsgBox("Error: " & Err.Description, vbRetryCancel, "IMPRESORA FISCAL") = vbRetry Then Resume Procesar
End Function
Responder
Marcelo
16 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Hola, te hago una consulta. Estoy tratando de emitir una nota de debito, se puede con esta ocx? en caso de que no se pueda, me podrias dar alguna sugerencia de como hacerlo?.
Desde ya muchas gracias
Responder
4 de Septiembre del 2021
estrellaestrellaestrellaestrellaestrella
Hola Marcelo.
Buenas tardes. Vi tu comentario solictando ayuda para la impresion de Nota de debito con el OCX (hace varios alos)..
Tengo ahora ese problema, pudiste solucionarlo,?. si es asi, por favor pasame algun dato. gracias
Responder
Imágen de perfil
20 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Muy buena pregunta, no tiene la funcion. Para ellos tenes que utilizar el protocolo de bajo nivel actalmente esta en la pagina de de EPSON. saludos
Responder
RUBEN
24 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo. Excelente el aporte.
Ahora te molesto para consultarte si no tenes OCX o algún ejemplo para trabajar en VB6 con el controlador fiscal EPSON TM_T900FA ??

Gracias
saloudoss
Ruben
Responder
Imágen de perfil
26 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Envia un mail a epson pidiendoles la OCX y los ejemplos. Saludos
Responder
21 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
Como hago para enviar en el ticket fiscal impuestos internos ?
Mi cliente vende cigarrillos
Responder
29 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Pudiste solucionarlo? Para facturas A me cancela. Muchas gracias!!!
Responder
Aymar
5 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
Hola. Buenas tardes. Tienen algun ocx de la bixolon srp-812 que me faciliten para programar en vb6?
Responder
Imágen de perfil
7 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
Hola Aymar, la impresora samsung de primera generacion que mencionas la tenes que setear para protocolo EPSON y luego vas a poder trabajar tranquilo con la OCX de EPSON nosotros ya lo hemos probado con el modelo 250 y funciona perfectamente.

Saludos
Responder
Aymar
8 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
Muchas gracias pero disculpe mi ignorancia en el tema. Como seteo la impresora?
Responder
Imágen de perfil
9 de Agosto del 2019
estrellaestrellaestrellaestrellaestrella
Hola Aymar disculpa pero la luego de revisar la bixolon srp-812 es una impresora de 2da generacion osea no funciona con esta OCX ni con ninguna otra OCX que no sea de SAMGUNG. Te comento aca en Argentina Samsung saco el modelo ELIX y trabaja con su propia DLL u OCX y no es compatible con VB6 :( Tendras que contactar a algun distribuidor que te proporcionen las herramientas correspondientes. Saludos
Responder
2 de Diciembre del 2019
estrellaestrellaestrellaestrellaestrella
hola rodolfo, deseo saber cuando una impresora fiscal epson te informa documento invalido y queda trabada, como se anula ese documento para que pueda seguir trabajando, el documento tenia valores en cero por eso la impresora quedo bloqueada.
Responder
Imágen de perfil
3 de Diciembre del 2019
estrellaestrellaestrellaestrellaestrella
si la impresora queda bloqueada por que le estas enviando informacion invalida podes hacer un control de errores para vitar este problema. Siempre que le envies algun parametro mal, te queda bloqueda y el comprobante al ser invalida al apagarla y encenderla de anula asi que no necesitas hacer nada mas. Por que solamente si esta todo bien enviado y se cierra el comprobante Ahi si este queda registrado.
Responder
moises orellana
11 de Diciembre del 2019
estrellaestrellaestrellaestrellaestrella
Gracias Rodolfo, efectivamente lo que tuve que hacer es corregir el documento en mi sistema y volverlo a enviar con el mismo folio y la impresora comienza a trabajar sola sin hacerle nada, pero si se quiere continuar imprimiendo con el folio siguiente sin corregir el folio que provoco el error la impresora no trabajara porque el folio con problema aun no esta cerrado.
Responder
Imágen de perfil
13 de Diciembre del 2019
estrellaestrellaestrellaestrellaestrella
Si eso lo sabemos y sucede con todas las impresoras fiscales, cuando le envias un monto incorrecto en formato y el tipo de variable no es la correspondiente. La misma se TILDA lo unico que lo soluciona es apagala durante 1 min y luego encenderla y ahi imprime un de comprobante cancelado por corte de corriente. Es la unica SOLUCION hasta que vos tengas un control de errores o algo que envie correctamente y no te tilde la impresora. Por la RAZON de que se TILDA es alguna de las instrucciones y/o parametros de las mismas sean incorrectos. SALUDOS
Responder
Fabian ayala
1 de Enero del 2020
estrellaestrellaestrellaestrellaestrella
Buenas. Estimado. Si no es mucha molestia me podes decir dónde leer todas la seguridad funciones De una impresora fiscal y su utilización. .. ejemplo.. , openticket()
Responder
Imágen de perfil
2 de Enero del 2020
estrellaestrellaestrellaestrellaestrella
ActiveX Control Para Impresoras Fiscales EPSON
Manual de Referencia en Español
Propiedades:
PortNumber:
Especifica el número de puerto a utilizar (Valor por defecto: 1).
BaudRate:
Especifica la velocidad de transferencia de datos (Valor por defecto: 9600).
MessagesOn:
Especefica el uso de mensajes por pantalla ante errores de comunicación.
True (default): Mensajes activados.
False: Mensajes desactivados.
Propiedades Sólo Lectura
FiscalStatus:
Estado del módulo fiscal (en hexadecimal).
PrinterStatus:
Estado del módulo impresor (en hexadecimal).
AnswerFiel_n:
Valor del campo número
n
(siendo n=3,...,20) para las respuestas a los comandos.
Métodos:
Todos los métodos devuelven:
True
: Ejecución
correcta
False
: Ejecución
incorrecta
(error de comunicación o error lógico del comando).
Function
CloseJournal
(CloseType As String, Optional Impresion As String) As Boolean
Realiza un cierre de Jornada o de Cajero (“Z” o “X”).
Recibe:

Tipo de cierre: Z o X.

Impresión (opcional): P=imprime el cierre X; N=no imprime el cierre X.
Function
FeedPaper
(Station As String, Lines As String) As Boolean
Avanza el papel de la estación de impresión seleccionada.
Recibe:

Estación: R=Receipt; J=Journal; A=Ambos; S=Hoja suelta.

Cantidad de líneas a avanzar.
Function
CutPaper
() As Boolean
Realiza el corte de papel.
Function
SetGetHeaderTrailer
(Action As String, Number As String, Optional Text As String) As Boolean
Establece u obtiene los datos fijos de encabezados y colas.
Recibe:

Accion: S=Establecer; G=Obtener.

Número de encabezado / cola.

Texto a establecer.
Function
SetGetDateTime
(Action As String, Optional DateYYMMDD As String, Optional TimeHHMMSS
As String) As Boolean
Establece u obtiene la fecha y hora de la impresora fiscal
Recibe:

Acción: S=Establecer; G=Obtener.

Fecha a establecer en formato AAMMDD.

Hora a establecer en formato HHMMSS.
Function
Status
(Optional StatusType As String) As Boolean
Realiza una consulta de estado.
Recibe:

Tipo de estado
(
opcional): N=Normal; P=Impresora; C=Contribuyente; A=Contadores.
Function
OpenCashDrawer
(Number As String) As Boolean
Realiza la apertura de los cajones de dinero.
Recibe:

Número de cajón de dinero.
Function
Audit
(AuditType As String, AuditMode As String, Optional Start As String, Optional Finish As
String) As Boolean
Realiza una auditoría.
Recibe:

Tipo de auditoría: F=Por Fecha; Z=Por cierres Z.

Modo de auditoría: T=Total general; D=Detallado.

Fecha o cierre de inicio (opcional) en formato AAMMDD. Valor por defecto 80/01/01, 0001.

Fecha o cierre final (opcional). Valor por defecto 79/12/31, 9999.
Function
OpenNoFiscal
() As Boolean
Realiza la apertura de un Documento No Fiscal
Function
SendNoFiscalText
(Text As String) As Boolean
Envía una línea de texto no fiscal.
Recibe:

Texto a envíar.
Function
CloseNoFiscal
() As Boolean
Realiza el cierre de un documento no fiscal.
Function
OpenTicket
(Optional StorageDataType As String) As Boolean
Realiza la apertura de un ticket fiscal.
Recibe:

Tipo de almacenamiento de los datos en la memoria: G=Completo; C=Normal
Function
SendTicketItem
(Description As String, Quantity As String, UnitPrice As String , IVA_Tax As
String, Qualifier As String, Bundle As String , PorcentualInternalTaxes As String, Optional
FixesInternalTaxes As String) As Boolean
Envía un Item en un ticket fiscal
Recibe:

Descripción del artículo.

Cantidad.

Precio unitario.

Tasa de IVA.

Calificador de item: M,m,R,r

Cantidad de cultos

Impuestos internos porcentuales

Impuestos Internos Fijos (opcional)
Function
SendExtraDescription
(Text As String) As Boolean
Envía una línea de descripción extra dentro de un ticket fiscal.
Recibe:

Texto a enviar.
Function
GetTicketSubtotal
(Impresion As String, Optional Text As String) As Boolean
Solicita un subtotal de un ticket fiscal.
Recibe:

Impresion: P=Imprime el subtotal; N=No imprime el subtotal.

Texto a imprimir (opcional).
Function
SendTicketPayment
(Text As String, Amount As String, PaymentType As String) As Boolean
Envía un pago en un ticket fiscal
Recibe:

Texto descriptivo del pago.

Monto a pagar.

Descripción del pago: T=Pago; t=Reversión del pago; D=Descuento; R=Recargo.
Function
CloseTicket
() As Boolean
Realiza el cierre de un ticket fiscal.
Function
OpenInvoice
(InvoiceType As String, PaperType As String, InvoiceLetter As String, Copies As
String , FormType As String, FontType As String, IVA_Seller As String, IVA_Buyer As String ,
BuyerName1 As String, BuyerName2 As String, BuyerDocumentType As String, BuyerDocumentNumber
As String, FixedAssest As String , BuyerAddress1 As String, BuyerAddress2 As String, BuyerAddress3
As String, Remit1 As String, Remit2 As String, StorageDataType As String) As Boolean
Realiza la apertura de un ticket-factura o una factura.
Recibe:

Tipo de documento fiscal (T=TiqueFactura o F=Factura)

Salida de impresora (C=continuo o S=Slip)

Letra del documento (A,B o C)

Cantidad de copias

Tipo de formulario (F,P o A)

Tipo de letra

Responsabilidad IVA Emisor (I,R,E,N o M)

Responsabilidad IVa Comprador(I,R,E,N,M o F)

Linea 1 Nombre del Comprador

Linea 2 Nombre del Comprador

Tipo Documento Comprador

Nro. Documento Comprador

Bien de Uso (B o N)

Linea 1 Domicilio Comprador

Linea 2 Domicilio Comprador

Linea 3 Domicilio Comprador

Linea 1 Remito

Linea 2 Remito

Tipo de tabla de item (C o G)
Function
SendInvoiceItem
(Description As String, Quantity As String, UnitPrice As String , IVA_Tax As
String, Qualifier As String, Bundle As String , PorcentualInternalTaxes As String, ExtraLine1 As String,
ExtraLine2 As String , ExtraLine3 As String, IncreaseTax As String, Optional FixesInternalTaxes As
String) As Boolean
Envía un Item en un ticket-factura o factura fiscal
Recibe:

Descripción del artículo.

Cantidad.

Precio unitario.

Tasa de IVA.

Calificador de item: M,m,R,r

Cantidad de cultos

Impuestos internos porcentuales

Linea de descripción extra 1

Linea de descripción extra 2

Linea de descripción extra 3

Tasa de acrecentamiento

Impuestos Internos Fijos
Function
CanDoLineItem
() As Boolean
Consulta si hay espacio para imprimir otro item o necesita solicitar un transporte
.
Function
GetInvoiceSubtotal
(Impresion As String, Optional Text As String) As Boolean
Solicita un subtotal de un ticket-factura o factura fiscal.
Recibe:

Impresion: P=Imprime el subtotal; N=No imprime el subtotal.

Texto a imprimir (opcional).
Function
SendInvoicePerception
(Description As String, Qualifier As String, Amount As String, Optional
Tax as string) As Boolean
Envía una percepción en un ticket-factura o factura fiscal.
Recibe:

Texto descriptivo de la percepción.

Calificador de la percepción: O=Percepcion sobre el IVA

Monto de la percepción.

Tasa de percepción (por compatibilidad el dato es opcional y solo se requiere para
Qualifier=”T”)
Function
SendInvoicePayment
(Text As String, Amount As String, PaymentType As String) As Boolean
Envía un pago en un ticket-factura o factura fiscal
Recibe:

Texto descriptivo del pago.

Monto a pagar.

Descripción del pago: T=Pago; t=Reversión del pago; D=Descuento; R=Recargo.
Function
CloseInvoice
(InvoiceType As String, InvoiceLetter As String, Text As String) As Boolean
Realiza el cierre de un ticket-factura o factura fiscal
Recibe:

Tipo de documento: T=Ticket-factura; F=Factura.

Letra del ticket-factura o factura.

Texto a imprimir en la descripcion del total.
Function
TransportClose
() As Boolean
Envia la orden de cerrar la hoja actual de la factura imprimiendo el transporte para continuar en
otra hoja.
Function
TransportOpen
() As Boolean
Envia la orden de abir la siguiente hoja de la factura actual imprimiendo el transporte para
continuar en esa hoja.
Function
DNFHCreditCard
(CardName As String, CardNumber As String, UserName As String,
ExpireDate As String, CompanyNumber As String , VoucherNumber As String, InternalNumber As String,
AutorizationCode As String, OperationType As String, Amount As String, QuotaAmount As String ,
CurrencyType As String, TerminalNumber As String, LotNumber As String, ETerminalNumber As String,
BranchNumber As String, OperatorNumber As String , FiscalDocumentNumber As String, SignPrint As
String, ExplanationPrint As String, PhonePrint As String) As Boolean
Realiza un Documento No Fiscal Homologado de Tarjeta de Crédito.
Recibe:

Nombre de la Tarejta de Crédito

Nro Tarjeta

Nombre usuario

Fecha vencimiento

Nro de Establecimiento

Nro Cupon

Nro interno del comprobante

Código de Autorizacion

Tipo de operación

Importe

Cantidad de cuotas

Moneda

Nro de terminal

Nro de lote

Nro de terminal electrónica

Nro de sucursal

Nro o nombre del operador

Nro del Documento Fiscal al que se hace referencia

Firma (P)

Aclaracion (P)

Telefono (P)
Function
DNFHDrugstore
(HealthCompanyName As String, CosecureLine1 As String, CosecureLine2 As
String, CosecureLine3 As String, MemberNumber As String , MemberName As String, ExpireDate As
String, AddressLine1 As String, AddressLine2 As String, CompanyNameOrNumber As String,
InternalNumber As String , DescriptionLine1 As String, DescriptionLine2 As String, AddressPrint As
String, DocumentNumberPrint As String, SignPrint As String , ExplanationPrint As String, PhonePrint As
String) as Boolean
Realiza un Documento No Fiscal Homologado de Farmacia.
Recibe:

Nombre de la Obra Social

Linea 1 Coseguro

Linea 2 Coseguro

Linea 3 Coseguro

Nro. de Afiliado

Nombre del Afiliado

Fecha de vencimiento

Linea 1 Domicilio Fiscal vendedor

Linea 2 Domicilio Fiscal vendedor

Numero o nombre del establecimiento

Numero interno del comprobante

Linea 1 Descripcion

Linea 2 Descripcion

Domicilio Imprime (P)

Nro Documento (P)

Firma (P)

Aclaracion (P)

Telefono (P)
Function
S
ysCommand
(
Dat1 As String, Dat2 As String, Dat3 As String, Optional Dat4 As String = "",
Optional Dat5 As String = "", Optional Dat6 As String = "", Optional Dat7 As String = "", Optional Dat8 As
String = "", Optional Dat9 As String = "", Optional Dat10 As String = "") As Boolean
Realiza la
ejecución de un comando de sistema
Recibe:

Depende de
l
c
o
mando que se ejecute
Function
SetPreference
(Dat1 As String, Dat2 As String, Dat3 As String, Dat4 As String, Dat5 As String,
Dat6 As String, Dat7 As String, Dat8 As String, Dat9 As String, Dat10 As String) As Boolean
Realiza la configuración de las preferencias del usuario
Recibe:

Depende de lo que se configure
Function
GetPreference
(Dat1 As String, Dat2 As String, Dat3 As String) As Boolean
Realiza una lectura de las preferencias del usuario
Recibe:

Depende de lo que se consulte
Function
SelectSlip
() As Boolean
Realiza la selección de la estación de hoja suelta para el proximo documento
Recibe:

Nada
Function
PrepareSlip
() As Boolean
Prepara la estación de trabajo de hoja suelta para que tome la hoja
Recibe:

Nada
Function
OpenSlipNoFiscal
() As Boolean
Realiza la apertura de un documento No Fiscal por estación SLIP
Recibe:

Nada
Function
SetPaperSize
(Rows As Integer, Columns As Integer) As Boolean
Realiza la configuración del tamaño del papel
Recibe:

Cantidad de filas

Cantidad de columnas
Function
SetMargin
(MarTop As String, MarLeft As String, MarBottom As String, MarRight As String) As
Boolean
Realiza la configuración de los márgenes de impresión
Recibe:

Margen Superior en filas

Margen Izquierdo en columnas

Margen Inferior en filas

Margen Derecho en columnas
Function
SetZone
(Zone As String, MarLeft As String, MarTop As String, MarRight As String, MarBottom
As String) As Boolean
Realiza la configuración de las zonas de impresión del formulario
Recibe:

Número de Zona

Columna Izquierda

Fila Superior

Columna Derecha

Fila Inferior
Responder
Pedro
1 de Enero del 2020
estrellaestrellaestrellaestrellaestrella
MUY BUENO
Responder
27 de Abril del 2020
estrellaestrellaestrellaestrellaestrella
buen dia, tengo el siguiente problema, soy nuevo y empirico en programación vba, aun así logre crear una aplicación para manejo de una tienda, todo funciona perfecto pero ahora me estrello con que no logro hacer abrir el cajon monedero sin necesidad de imprimir, el cajon se encuentra conectado a la impresora epson tm-t20ii la cual se conecta a la computadora via usb, si alguien me puede colaborar con un código para esto o si me pueden explicar como poder hacerlo, quedaría inmensamente agradecido, feliz tarde
Responder
Imágen de perfil
30 de Abril del 2020
estrellaestrellaestrellaestrellaestrella
Hola Neston nosotros desarrollamos en VB6 te pasamos en comando que utilizamos:
Dim respuesta As Boolean
respuesta = .IF1.OpenCashDrawer("1")

.IF1 es el objeto que tenemos el Formulario Principal y de ahi lo invocamos las veces que necesitamos.

Previo al comando OpenCashDrawer tenes que cargale la configuracion de conexion correspondiente, podes usar la misma que para en envio de comprobantes.

Espero que te sirva. Saludos
Responder
16 de Junio del 2020
estrellaestrellaestrellaestrellaestrella
buenas tardes, necesito un emulador de impresora fiscal EPSON TMU 220 AF II para poder seguir haciendo las pruebas del programa, alquien tiene para compartir, el de http://www.impresoras-fiscales.com/ me pide pago.
Responder
Imágen de perfil
18 de Junio del 2020
estrellaestrellaestrellaestrellaestrella
Nosotros cuando desarrollamos para esa impresora, lo instalamos en una PC virgen con el VB6 y la freezamos con el DeepFreeze la particion C: para poder trabajar tranquilos sin limites de tiempos. Saludos
Responder
Pedro
6 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
estimado rodolfo uso la impresora fiscal epson tm u220 AFII , y solo tengo un problema cuando hago facturas para EXENTOS, en el emulador me da este error AL ABRIR EL COMPROBANTE LINEA 17 , TIPÓ C , EN DATOS DICE CAMPO VACIO (pero le probe cargar distintos valores y nada), qu sera q puedo hacer. [email protected]
Responder
Imágen de perfil
8 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
Hola si haces factura "C" es por que el vendedor es monotributista. Si es Responsable inscripto debe ser "B". Tenes que tener en considerar la situacion. Aca te dejo el ejemplo de como lo hacemos nosotros:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim Emisor As String
Dim Compra As String
Dim Letra As String
Dim Tipo As String
 
Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SELECT * From Clientes where IdCliente='" & txtidcliente & "'", Cnx, 3, 1
Emisor = Left(Cargar_Config_STR("Config", "CatAfip"), 1)
 
Select Case Emisor
Case "R": Emisor = "I"
Case "M": Emisor = "M"
Case "E": Emisor = "E"
End Select
 
If txtidcliente = "1" Then Letra = "C": Compra = "F": GoTo SaltoCF
Compra = Left(rs("IVA"), 1)
 
Select Case Compra
Case "R": Letra = "A": Compra = "I"
Case "M": Letra = "B": Compra = "M"
Case "E": Letra = "B": Compra = "E"
Case "C": Letra = "C": Compra = "F"
End Select

De esta menera el programa sabe que tipo de Comprobante Emitir. No es muy elegante por que tiene 4 años este codigo de haberlo hecho hoy en dia seria mas optimizado. Pero funcion perfectamente.

Saludos
Responder
Imágen de perfil
8 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
Tambien tene en cuenta que no es lo mismo abrir un TICKET C que un A y al mismo a cerrar mira:

1
2
3
4
5
6
7
f Letra = "A" Or Letra = "B" Or Tipo = "M" Or Tipo = "N" Or Funcion = "NC" Then 'Ticket Factura A o B
respuesta = .IF1.SendInvoicePayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseInvoice(Tipo, Letra, "")
Else 'Ticket CF
respuesta = .IF1.SendTicketPayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseTicket
End If

Saludos
Responder
Pablo
20 de Septiembre del 2021
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, muchas gracias por tus aportes!! consulta..¿Como puedo agregar una leyenda al ticket?
Es para una factura "A" a monotributista y el controlador es epson
Responder
Daniel Mendez
4 de Abril del 2022
estrellaestrellaestrellaestrellaestrella
Buen dia, Soy Venezolano, Tengo años con VB6 y nuevo con Impresoras fiscales, Busco quien pudiera ayudarme con funciones adecuadas para transmitir y recibir datos de la impresora,
intento encontrar algún middleware (driver, DLL, SCO, ...) o código fuente ejemplo, preferiblemente en VB6, que implemente los servicios de comunicación con la MP-4000 TH FI.
He leido que tambien existen emuladores, donde podria conseguirlos.
Saludos. [email protected]
Responder
26 de Mayo del 2022
estrellaestrellaestrellaestrellaestrella
Hola gente!
Necesito ayuda acerca de que COMANDO utilizar en el impresor EPSON TM-T900FA - NUEVA GENERACION para poder escribir texto libre.
Necesito que en el ticket A para monotributistas abajo aparezca una leyenda con un escrito... que comando utilizo para escribir ese texto???
Si alguien me puede ayudar les agradezco!!!!
SALUDOS
Responder
Hernan
7 de Junio del 2022
estrellaestrellaestrellaestrellaestrella
Hola estoy tratando de obtener los reportes electrónicos semanales (Cod.909-908-905) en vb6, alguno los pudo obtener con las impresoras Epson?
Saludos
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3435