MANUAL DE PROGRAMACIÓN IMPRESORA FISCAL CON TECNOLOGÍA VMAX
Venezuela
© 2016
2
Índice
I. Introducción ... 14
II. Controlador Fiscal – Funcionamiento ... 15
III. Configuración del puerto serial ... 18
IV. Protocolo de Comunicación – Usuario ... 19
1. Protocolo de Bajo Nivel ... 19
2. Estados de la impresora fiscal ... 21
a. En espera ... 22 b. Inicio Venta ... 22 c. Venta... 22 d. Subtotal ... 22 e. Pago ... 23 f. Fin Venta ... 23 g. No Fiscal ... 23 h. Programación ... 23 i. Error ... 23 j. Inicio Devolución ... 24 k. Devolución ... 24 3. Definición de status ... 25
a. Status de inicialización (CK_STI) ... 26
b. Status de venta (CK_STV) ... 27
c. Status de impuesto (CK_IMP) ... 28
3
e. Status interno (CK_INT) ... 30
f. Status de inicialización 2 (CK_SI2) ... 31
g. Status de validación (CK_VAL) ... 32
4. Retornos de errores ... 33
5. Tipos de datos soportados ... 36
6. Envío de texto enriquecido (RT) a la impresora ... 37
V. Detalle de comandos ... 41
1. Estructura para la lectura detallada de comandos ... 41
2. Configuración y operación del puerto serial ... 43
3. Comandos de configuración y diagnóstico ... 44
a. Obtener estado ... 44
b. Obtener características del programa de control ... 46
c. Obtener datos de serialización ... 48
d. Configurar fecha y hora... 50
e. Obtener fecha y hora ... 52
f. Obtener datos de fiscalización ... 53
g. Configurar líneas de encabezado ... 55
h. Obtener configuración de líneas de encabezado ... 57
i. Configurar líneas de cola ... 59
j. Obtener configuración de líneas de cola ... 61
k. Obtener información de la memoria de auditoría ... 63
l. Obtener ancho de carro ... 65
4
a. Avanzar papel ... 66
b. Abrir cajón de dinero ... 67
c. Obtener estado del mecanismo de impresión ... 69
d. Visor Externo ... 72
e. Comunicación con puertos seriales adicionales ... 74
f. Reinicio de estado de la impresora fiscal ... 76
g. Configurar fuente ... 77
h. Obtener configuración de fuente ... 79
5. Comandos de documento fiscal ... 81
a. Abrir ... 81
b. Ítem ... 84
c. Ítem con retorno ... 86
d. Devolución de ítem ... 89
e. Devolución de ítem con retorno ... 91
f. Descuento/Recargo de ítem ... 94
g. Descuento/Recargo de ítem con retorno ... 96
h. Subtotal ... 99
i. Subtotal con retorno ... 101
j. Descuento global ... 103
k. Descuento global con retorno ... 105
l. Recargo Global ... 107
m. Recargo global con retorno ... 109
5
o. Pago con retorno ... 113
p. Cerrar ... 115
q. Cerrar con retorno ... 116
r. Cancelar ... 118
s. Línea de comentario ... 119
t. Información de Comprobante Fiscal... 121
6. Comandos de documento no fiscal ... 123
a. Abrir documento no fiscal... 123
b. Línea no fiscal ... 124
c. Cerrar documento no fiscal ... 126
d. Cerrar documento no fiscal con retorno ... 127
e. Obtener versión de firmware ... 129
7. Comandos de generación de reportes y auditoría fiscal ... 130
a. Reporte Z ... 130
b. Reporte Z con retorno ... 131
c. Reporte X ... 132
d. Reporte de memoria ... 133
e. Reporte electrónico ... 135
f. Iniciar lectura de cierres Z por rango cierres Z ... 142
g. Iniciar lectura de cierres Z por rango de fechas ... 144
h. Imprimir siguiente grupo de datos de la lectura de memoria fiscal ... 146
i. Finalizar lectura de la memoria fiscal ... 147
6
k. Iniciar reporte de transacciones por rango de cierre Z ... 150
l. Imprimir siguiente grupo de datos del reporte de transacciones ... 152
m. Finalizar reporte de transacciones ... 153
n. Iniciar lectura de transacciones por rango de cierre Z ... 154
o. Iniciar lectura de transacciones por rango de fechas ... 156
p. Obtener siguiente grupo de datos de lectura de transacciones ... 158
q. Finalizar lectura de transacciones ... 160
r. Búsqueda/ reimpresión de registros de la memoria de transacciones ... 161
VI. Apéndice ... 164
1. Tabla de impresoras compatibles ... 164
2. Tabla de tipos de documentos ... 164
3. Tipos de tasas ... 165
4. Status de la impresora fiscal ... 166
5. Flujograma Lectura de cierres Z por rango de cierre Z ... 167
6. Flujograma Lectura de cierre Z por rango de fechas ... 168
7. Flujograma Reporte de transacciones por rango de fechas ... 169
8. Flujograma Reporte de transacciones por rango de cierre Z ... 170
9. Flujograma Lectura de transacciones por rango de cierre Z ... 171
7
Índice de Imágenes
Figura 1: Estructura del comando. ... 20
Figura 2: Formato de impresión de texto. ... 37
Figura 3: Estructura detallada de comandos. ... 42
Figura 4: Flujograma lectura de cierre Z por rango de cierre Z. ... 167
Figura 5: Flujograma Lectura de cierre Z por rango de fechas... 168
Figura 6: Flujograma Reporte de transacciones por rango de fechas. ... 169
Figura 7: Flujograma Reporte de transacciones por rango de cierre Z. ... 170
Figura 8: Flujograma Lectura de transacciones por rango de cierre Z. ... 171
8
Índice de Tablas
Tabla 1: Configuración del puerto serial. ... 18
Tabla 2: Estados. ... 21
Tabla 3: Status de inicialización. ... 26
Tabla 4: Status de Venta. ... 27
Tabla 5: Status de impuesto. ... 28
Tabla 6: Status de impresión. ... 29
Tabla 7: Status interno. ... 30
Tabla 8: Status de inicialización 2. ... 31
Tabla 9: Status de validación. ... 32
Tabla 10: Retorno de errores. ... 35
Tabla 11: Tipos de datos soportados. ... 36
Tabla 12: Formato - Obtener estado. ... 37
Tabla 13: Atributos de impresión. ... 38
Tabla 14: Tipo de códigos de barras. ... 39
Tabla 15: Impresión en códigos de barras. ... 40
Tabla 16: Configuración y operación del puerto serial. ... 43
Tabla 17: Formato - Obtener estado. ... 44
Tabla 18: CS – Obtener estado. ... 44
Tabla 19: Formato - Obtener características PC. ... 46
Tabla 20: CS – Obtener características de control. ... 47
Tabla 21: Formato - Obtener datos de serialización. ... 48
Tabla 22: CS – Obtener datos de serialización. ... 48
Tabla 23: Formato – Configurar fecha y hora. ... 50
Tabla 24: CE – Configurar fecha y hora. ... 50
Tabla 25: Formato – Obtener fecha y hora. ... 52
Tabla 26: CS – Obtener fecha y hora. ... 52
Tabla 27: Formato – Obtener datos de fiscalización. ... 53
9
Tabla 29: Formato – Configurar líneas de encabezado. ... 55
Tabla 30: CE – Configurar líneas de encabezado. ... 55
Tabla 31: Formato – Obtener configuración de líneas de encabezado. ... 57
Tabla 32: CE – Obtener configuración de líneas de encabezado. ... 57
Tabla 33: CS – Obtener configuración de líneas de encabezado. ... 57
Tabla 34: Formato – Obtener configuración de líneas de cola. ... 59
Tabla 35: CE – Configurar líneas de cola. ... 59
Tabla 36: Formato – Obtener configuración de líneas de cola. ... 61
Tabla 37: CE – Obtener configuración de líneas de cola. ... 61
Tabla 38: CS – Obtener configuración de líneas de cola. ... 61
Tabla 39: Formato – Obtener información de la MA ... 63
Tabla 40: CS – Obtener información de la MA ... 63
Tabla 41: Formato – Obtener ancho de carro. ... 65
Tabla 42: CS – Obtener ancho de carro. ... 65
Tabla 43: Formato – Avanzar papel. ... 66
Tabla 44: Formato – Abrir cajón de dinero. ... 67
Tabla 45: CE – Abrir cajón de dinero. ... 67
Tabla 46: Formato – Obtener estado de mecanismo de impresión. ... 69
Tabla 47: CS – Obtener estado de mecanismo de impresión. ... 69
Tabla 44: Detalle del estado de mecanismo de impresión. ... 70
Tabla 49: Formato – Visor externo. ... 72
Tabla 50: CE – Visor externo. ... 72
Tabla 51: Formato – Comunicación con puertos seriales. ... 74
Tabla 52: CE – Comunicación con puertos seriales. ... 74
Tabla 53: Formato – Reinicio de estado ... 76
Tabla 54: Formato – Configurar fuente. ... 77
Tabla 55: CE – Configurar fuente. ... 77
Tabla 56: Tipo de impresoras. ... 78
10
Tabla 58: CS – Obtener configuración de fuente. ... 80
Tabla 59: Tipo de impresoras. ... 80
Tabla 60: Formato – Abrir... 81
Tabla 61: CE – Abrir. ... 82
Tabla 62: CS – Abrir. ... 82
Tabla 63: Formato – Ítem. ... 84
Tabla 64: CE – Ítem. ... 84
Tabla 65: Formato – Ítem con retorno. ... 86
Tabla 66: CE – Ítem con retorno. ... 86
Tabla 67: CS – Ítem con retorno. ... 87
Tabla 68: Formato – Devolución de ítem. ... 89
Tabla 69: CE – Devolución de ítem. ... 89
Tabla 70: Formato – Devolución de ítem con retorno. ... 91
Tabla 71: CE – Devolución de ítem con retorno. ... 91
Tabla 72: CS – Devolución de ítem con retorno. ... 92
Tabla 73: Formato – Descuento/Recargo de ítem. ... 94
Tabla 74: CE – Descuento/Recargo de ítem. ... 94
Tabla 75: Formato – Descuento/Recargo de ítem con retorno... 96
Tabla 76: CE – Descuento/Recargo de ítem con retorno. ... 96
Tabla 77: CS – Descuento/Recargo de ítem con retorno. ... 97
Tabla 78: Formato – Subtotal. ... 99
Tabla 79: CE – Subtotal. ... 99
Tabla 80: CS – Subtotal. ... 99
Tabla 81: Formato – Subtotal con retorno. ... 101
Tabla 82: CE – Subtotal con retorno. ... 101
Tabla 83: CS – Subtotal con retorno. ... 102
Tabla 84: Formato – Descuento global. ... 103
Tabla 85: CE – Descuento global. ... 103
11
Tabla 87: CE – Descuento global con retorno. ... 105
Tabla 88: CS – Descuento global con retorno. ... 105
Tabla 89: Formato – Recargo global. ... 107
Tabla 90: CE – Recargo global. ... 107
Tabla 91: Formato – Recargo global con retorno. ... 109
Tabla 92: CE – Recargo global con retorno. ... 109
Tabla 87: CS – Recargo global con retorno. ... 109
Tabla 94: Formato – Pago. ... 111
Tabla 95: CE – Pago. ... 111
Tabla 96: Formato – Pago con retorno. ... 113
Tabla 97: CE – Pago con retorno. ... 113
Tabla 98: CS – Pago con retorno. ... 114
Tabla 99: Formato – Cerrar. ... 115
Tabla 100: Formato – Cerrar con retorno. ... 116
Tabla 101: CS – Cerrar con retorno. ... 116
Tabla 102: Formato – Cancelar. ... 118
Tabla 103: Formato – Línea de comentario. ... 119
Tabla 104: CE – Línea de comentario. ... 119
Tabla 105: Formato – Información de comprobante fiscal. ... 121
Tabla 106: CS – Información de comprobante fiscal. ... 121
Tabla 107: Formato – Abrir documento no fiscal. ... 123
Tabla 108: Formato – Línea de comentario. ... 124
Tabla 109: CE – Línea de comentario. ... 124
Tabla 110: Formato – Cerrar documento no fiscal. ... 126
Tabla 111: Formato – Cerrar documento no fiscal con retorno. ... 127
Tabla 112: CS – Línea de comentario con retorno. ... 127
Tabla 113: Formato – Obtener versión de firmware. ... 129
Tabla 114: CS – Obtener versión de firmware. ... 129
12
Tabla 116: Formato – Reporte Z con retorno. ... 131
Tabla 117: CS – Reporte Z con retorno. ... 131
Tabla 118: Formato – Reporte X. ... 132
Tabla 119: Formato – Reporte de memoria... 133
Tabla 120: CE – Reporte de memoria. ... 133
Tabla 121: Formato – Reporte electrónico. ... 135
Tabla 116: CE – Reporte electrónico. ... 135
Tabla 123: CS – Reporte electrónico – informativo. ... 136
Tabla 124: CS – Reporte electrónico – Memoria Fiscal. ... 138
Tabla 125: CS – Reporte electrónico – Memoria de trabajo. ... 139
Tabla 126: CS – Reporte electrónico – Memoria Fiscal. ... 141
Tabla 127: Formato – Iniciar lectura de cierres Z por rango de cierres Z. ... 142
Tabla 128: CE – Iniciar lectura de cierres Z por rango de cierres Z. ... 142
Tabla 129: CS – Iniciar lectura de cierres Z por rango de cierres Z. ... 142
Tabla 130: Formato – Iniciar lectura de cierres Z por rango de fechas. ... 144
Tabla 131: CE – Iniciar lectura de cierres Z por rango de fechas. ... 144
Tabla 132: CS – Iniciar lectura de cierres Z por rango de fechas. ... 144
Tabla 133: Formato – Imprimir siguiente lectura de transacciones. ... 146
Tabla 134: Formato – Finalizar lectura de transacciones. ... 147
Tabla 135: Iniciar reporte de transacciones por fecha. ... 148
Tabla 136: Formato – Reporte de transacciones por rango de fecha. ... 148
Tabla 131: CE – Reporte de transacciones por rango de fecha. ... 148
Tabla 138: CS – Reporte de transacciones por rango de fecha. ... 149
Tabla 139: Formato – Iniciar reporte de transacciones por rango cierres Z. ... 150
Tabla 140: CE – Iniciar reporte de transacciones por rango cierres Z. ... 150
Tabla 141: CS – Iniciar reporte de transacciones por rango cierres Z. ... 150
Tabla 142: Formato – Imprimir siguiente reporte de transacciones. ... 152
Tabla 143: Formato – Finalizar reporte de transacciones. ... 153
13
Tabla 145: CE – Iniciar lectura de transacciones por rango cierres Z. ... 154
Tabla 146: CS – Iniciar lectura de transacciones por rango cierres Z. ... 154
Tabla 147: CS – Iniciar lectura de transacciones por fecha. ... 156
Tabla 148: Formato – Lectura de transacciones por rango de fecha. ... 156
Tabla 149: CE – Lectura de transacciones por rango de fecha... 156
Tabla 150: CS – Lectura de transacciones por rango de fecha... 157
Tabla 151: Formato – Imprimir siguiente lectura de transacciones. ... 158
Tabla 152: CS – Imprimir siguiente reporte de transacciones. ... 159
Tabla 153: Formato – Finalizar lectura de transacciones. ... 160
Tabla 154: Formato – Búsqueda y reimpresión. ... 161
Tabla 155: CE – Búsqueda y reimpresión. ... 162
Tabla 156: CS – Búsqueda y reimpresión – Modo electrónico. ... 163
Tabla 157: Impresoras compatibles. ... 164
Tabla 158: Tipos de documentos. ... 164
Tabla 159: Tipo de tasas. ... 165
14
I.
Introducción
Este documento tiene como finalidad establecer el protocolo de comunicación y el conjunto de comandos de bajo nivel que se deben utilizar en las impresoras fiscales VMAX de Venezuela.
Entre la información que el lector encontrará más adelante se encuentra una descripción completa de la funcionalidad del controlador fiscal tanto a nivel operativo como técnico.
Además se dará una completa información sobre el funcionamiento interno de la Impresora Fiscal y luego se detallan todos los comandos que permiten su operación.
Se tienen diversas posibilidades para programar dependiendo de la plataforma o sistema operativo sobre el cual se encuentre la aplicación de ventas. Las plataformas o sistemas operativos soportados son WIN32, UNIX y próximamente LINUX, MS-DOS y WIN16.
15
II.
Controlador Fiscal – Funcionamiento
El controlador fiscal VMAX es un dispositivo periférico el cual tiene como finalidad la emisión de comprobantes fiscales de ventas y el almacenamiento de los montos de las mismas en una memoria fiscal.
La característica más resaltante que diferencia a la Impresora Fiscal de una impresora de tickets común es la comunicación entre la computadora y la impresora. La comunicación con la Impresora Fiscal es mediante un conjunto de comandos propios del fabricante del kit fiscal. La Impresora Fiscal ejecutará o no la operación relacionada al comando, según las operaciones que se hayan realizado. En una impresora común se deben enviar líneas con los caracteres que se desean imprimir, independientemente de las operaciones de venta o reportes que se estén realizando, además de no permitir el almacenamiento de información en memoria fiscal.
Con la Impresora Fiscal se puede realizar venta de artículos o anulación de los mismos, descuento sobre un artículo o sobre el total de la transacción, notas de crédito, reportes de ventas diarias o por periodos de tiempo, reportes fiscales, etc. La Impresora Fiscal almacena la información de todas las transacciones efectuadas en ella desde su instalación. Permite llevar el registro de las ventas efectuadas en el periodo de ventas en curso (reporte X), realiza el cierre de caja diario almacenando la información en la memoria fiscal (reporte Z) y permite acceder a toda la información almacenada en la memoria fiscal (reporte de memoria y reporte electrónico).
Todas las operaciones realizadas por la Impresora Fiscal se dividen o clasifican en estados, logrando así mayores facilidades. Con esta modalidad los comandos a ejecutar serán restringidos por el estado en que se encuentre la Impresora Fiscal.
16
La Impresora Fiscal comienza sus operaciones en un estado inicial (Estado de Espera) en el que solo son válidas algunas de las operaciones. Al encender la Impresora Fiscal se imprimirá un mensaje señalando que la Impresora Fiscal está operativa. Si al encender la Impresora Fiscal, ésta se encuentra en un estado diferente al Estado de Espera, se efectuarán los pasos necesarios para volver al Estado de Espera.
Si la Impresora Fiscal se encuentra en algunos de los estados de venta la transacción será anulada, excepto si encuentra en el Estado de Fin de Venta donde el comprobante será finalizado. En cualquiera de los dos casos la Impresora Fiscal se colocará, al final, en el Estado de Espera.
Si se encuentra un Comprobante no Fiscal abierto se cerrará volviendo al Estado de Espera.
Si la bandera de reporte Z se encuentra activa, se imprimirá el mensaje de interrupción de la energía y se volverá a imprimir el reporte Z. Si está activa la bandera de otro reporte, se procede a imprimir el mismo mensaje y se desactivan las banderas.
Si se encuentra en el Estado de Programación volverá al Estado de Espera. Pero si se encuentra en el Estado de Error, se cancelará la operación que estaba en curso (si había alguna) y se imprimirá un mensaje de error con el status de la Impresora Fiscal. Se mantendrá en el mismo estado hasta que se solvente el problema.
El estado inicial de la Impresora Fiscal no permite cualquier comando. Si se quiere emitir un comprobante fiscal, se debe enviar el comando de abrir CF. Luego se pasa a un nuevo estado que permitirá únicamente la venta o anulación de artículos, o el comando de subtotal. Con esto se pasa a un nuevo estado que permitirá únicamente comandos de pago. Una vez que el monto pagado sea igual
17
o superior al total de la transacción, se pasa a un nuevo estado donde solo se permite el comando de cierre del comprobante fiscal. Esta fue una descripción a grandes rasgos sobre los estados. Existe un mayor número de estados y comandos posibles que serán explicados más ampliamente en un próximo capítulo.
Otra de las ventajas es la interacción entre la Impresora Fiscal y el punto de venta. Cada vez que se ejecuta un comando la Impresora Fiscal envía una señal a la computadora indicando el resultado de la ejecución del comando. Si el comando se ejecuta satisfactoriamente se envía el carácter ACK (06H). De igual manera cuando no se puede realizar el comando la Impresora Fiscal envíale carácter NAK (15H).
La Impresora Fiscal ofrece al programador la información sobre el estado actual, los posibles errores existentes y de las operaciones efectuadas, permitiendo tener un mayor control sobre la misma, con lo cual es posible la rápida resolución de los problemas más comunes, como por ejemplo ausencia de papel. Esta información se obtiene solicitando el status de la Impresora Fiscal.
18
III.
Configuración del puerto serial
El puerto serial de comunicación entre la Impresora Fiscal y la computadora debe ser configurado según se muestra en la siguiente tabla:
Descripción Valor Bits por segundo 9600 Bits de datos 8
Paridad Ninguna
Bits de parada 1
Control de flujo Xon/Xoff
19
IV.
Protocolo de Comunicación – Usuario
1. Protocolo de Bajo Nivel
El protocolo permite el envío de n campos, enmarcados dentro de una estructura de comando. Al conjunto de los campos, sin el enmarcado del comando, se le llama ‘datos’. Cada campo solo puede contener bytes desde 0x20 hasta 0xFF, con la condición de que el comando enviado a la impresora no supere los 2048 bytes de longitud.
Una vez que la Impresora Fiscal ha procesado el comando y efectuado las operaciones correspondientes al mismo envía a la computadora una respuesta: si el comando se realizó satisfactoriamente envía el carácter ACK (0x06), si el comando no era válido en el estado actual o si por algún motivo no se pudo realizar envía el carácter NAK (0x21) como señal de error. Para tener certeza del motivo que impidió la ejecución de dicho comando se debe solicitar el Status de la Impresora Fiscal.
Para poder determinar si la comunicación se mantiene en progreso durante la ejecución de un comando, la impresora enviará al equipo terminal un byte de respuesta intermedia (BEL) indicando el progreso del comando cada 500ms. Los caracteres reservados que forman parte del protocolo de comando son:
0x02 STX comienzo de paquete.
0x03 ETX final del paquete.
0x06 ACK respuesta positiva.
0x07 BEL respuesta intermedia.
0x15 NAK respuesta negativa.
20 El formato del protocolo es el siguiente:
Figura 1: Estructura del comando.
Tomar en cuenta que los comandos tienen un orden específico de ejecución y de parámetros. Los detalles se encontrarán en el capítulo V de este manual.
1 1 n m 1 <STX> <ETX> Inicio de texto Comando Fin de texto No de bytes Extensión del comando Datos
21
2. Estados de la impresora fiscal
Las funcionalidades de la Impresora Fiscal están clasificadas por estados, cada una de las posibles operaciones a realizar son permitidas en determinados estados. Estos estados señalan la etapa del proceso donde se encuentra la Impresora Fiscal, ya sea realizando un documento fiscal o un reporte, etc.
El estado actual de la Impresora Fiscal se puede obtener al solicitar el comando de “Status”. El comando de solicitud de Status es válido en cualquier estado, inclusive en el estado de error.
A continuación se presentan los estados de la Impresora Fiscal junto a una breve descripción de cada uno.
Estados Respuesta Nombre 0 En Espera 1 Inicio Venta 2 Venta 3 Subtotal 4 Pago 5 Fin Venta 6 No Fiscal 7 Programación 8 Error 9 Inicio Devolución 10 Devolución Tabla 2: Estados.
22 A continuación se detalla cada estado:
a. En espera
Es el estado inicial de la impresora fiscal. La impresora se encuentra lista para recibir los comandos fiscales.
b. Inicio Venta
Se inicia en este estado luego de abrir un comprobante fiscal. Se permite realizar:
Ventas de artículos.
Anulación del Comprobante Fiscal. c. Venta
Se inicia en este estado luego de realizar una venta de artículo. Se permite realizar:
Ventas/Anulaciones de artículos.
Descuentos/Recargos* sobre artículos vendidos.
Subtotal.
Pagos.
Anulación del Comprobante Fiscal. d. Subtotal
La impresora fiscal pasa a este estado una vez realizado el subtotal y sólo se permitirá realizar pagos.
23 e. Pago
Realizado algún pago la impresora fiscal se encuentra en el Estado de Pago en el cual se permite realizar todos los pagos necesarios hasta completar el monto de la venta. También permite anular alguno de los pagos realizados.
f. Fin Venta
Este estado se activa cuando se está realizando el comando de cierre de Comprobante Fiscal. Permite culminar el comprobante si ocurre interrupción de la energía antes de la finalización del comprobante. g. No Fiscal
Al abrir un Comprobante no Fiscal la impresora pasa al Estado No Fiscal, en el cual permite imprimir líneas no fiscales y cerrar el Comprobante no Fiscal.
h. Programación
Para acceder a este estado se debe estar al inicio de un periodo de ventas (el último comando realizado debe ser un reporte Z ya que el periodo de venta se inicia con un reporte Z). Este estado permite realizar los comandos necesarios para programar la impresora fiscal según los Consideraciones del usuario.
i. Error
La impresora fiscal pasa al Estado de Error cuando hay alguna condición anormal en la impresora.
Estas condiciones pueden ser:
24
Fecha y hora no válidas o menor a la del último reporte Z efectuado.
La impresora saldrá de este estado cuando se resuelva la situación de error y volverá al estado en que se encontraba antes del problema. j. Inicio Devolución
Se inicia en este estado luego de abrir un Comprobante Fiscal como Nota de Crédito.
Permitirá realizar:
Devoluciones de artículos.
Anulaciones de artículos.
Anular el Comprobante Fiscal en curso. k. Devolución
El Estado de Devolución permite realizar devoluciones o anulaciones de las mismas así como subtotalizar la transacción.
25
3. Definición de status
El status de la Impresora Fiscal indica las operaciones que se han realizado en la misma, además del estado en que se encuentra la Impresora y también los posibles errores que puedan ocurrir.
El status consta de 8 bytes de información, cada bit representa una bandera que se activa con ‘1’ lógico y se desactiva con ‘0’. Excepto el séptimo byte que representa es el estado actual de la Impresora Fiscal.
Las banderas que representan operaciones relacionadas entre sí son agrupadas en el mismo byte. El status consta de los siguientes bytes: status de inicialización, de venta, de impuesto, de la impresora, internos, de inicialización 2 y de validación.
Los bytes del status se encuentran definidos en la memoria de trabajo con el fin de recuperar el estado en el cual se encontraba el dispositivo antes de ocurrir algún tipo de falla, por ejemplo interrupción de la energía eléctrica.
El bit menos significativo de los bytes del status siempre tiene el valor ‘1’, excepto para el byte del Estado.
26
A continuación se señalan cada una de las banderas pertenecientes a cada uno de los bytes del status.
a. Status de inicialización (CK_STI)
Status Nombre del estado Parámetros 7 -
6 Inicialización Fuera de Inicialización = 0 Dentro de Inicialización = 1 5 Reservado
4 Reloj Detenido Funcionamiento normal = 0 Reloj detenido = 1
3 Fecha Inválida Fecha válida = 0 Fecha inválida = 1 2 Línea encabezado /pie inválida Línea válida = 0 Línea inválida = 1 1 Primera Inicialización Realizada
Sin realizar la primera inicialización = 0 Primera inicialización realizada = 1 0 -
27 b. Status de venta (CK_STV)
Status Nombre del estado Parámetros
7 Comprobante Fiscal Abierto
No hay comprobante fiscal en curso = 0 Comprobante Fiscal abierto = 1
6 Comando de Venta Efectuado
Artículo no vendido = 0 Artículo vendido = 1 5 Subtotal Realizado Subtotal no realizado = 0
Subtotal realizado = 1 4 Anulación de Pago Otra operación = 0
Anulación de pago = 1 3 Comando de Pago Efectuado Pago no efectuado = 0 Pago efectuado = 1 2 Comprobante no fiscal abierto
No hay comprobante no fiscal en curso = 0
Comprobante no fiscal abierto = 1
1 Periodo de Ventas Empezado
El periodo de ventas abarca desde la primera venta luego de un reporte Z hasta el próximo reporte Z:
- Periodo nuevo = 0 - Periodo comenzado = 1 0 -
28 c. Status de impuesto (CK_IMP)
Estado Nombre del estado Parámetros
7 Reporte X Otro reporte = 0
Reporte X = 1 6 Anulación de Artículo Otra operación = 0
Anulación de artículo = 1 5 Artículo Exento de Impuesto Artículo no exento = 0
Artículo exento = 1
4 Reporte Z Otro reporte = 0
Reporte Z = 1 3 Tasa de Impuesto 3 Otro impuesto = 0
Impuesto 3 = 1 2 Tasa de Impuesto 2 Otro impuesto = 0
Impuesto 2 = 1 1 Tasa de Impuesto 1 Otro impuesto = 0
Impuesto 1 = 1 0 -
29 d. Status de impresión (CK_PRT)
Estado Nombre del estado Parámetros
7 Memoria fiscal (MF) no conectada MF conectada = 0 MF no conectada = 1 6 Memoria fiscal (MF) agotada MF no agotada = 0
Memoria fiscal agotada = 1 5 Memoria fiscal (MF)
inválida
MF conectada = 0 MF inválida = 1
4 Impresora fuera de línea
Puede deberse a:
- Impresora esté apagada - Tapa levantada
- Impresora sin papel: Status recibido = 0 Status no recibido = 1 3 Memoria auditoría (MA)
agotada
MA no agotada= 0 MA agotada = 1
2 Impresora en estado desconocido
Se activa cuando se recibe en el status de la impresora un valor diferente a los conocidos:
Estado conocido = 0 Estado desconocido = 1 1 -
0 -
30 e. Status interno (CK_INT)
Estado Nombre del estado Parámetros 7 Descuento (Dcto.)
sobre el total
Otra operación = 0 Dcto. sobre el total = 1 6 Descuento (Dcto.)
sobre un artículo
Otra operación = 0
Dcto sobre un artículo = 1 5 Reporte de memoria Otra operación = 0
Reporte de memoria = 1
4 Primer artículo vendido
Indica si se ha vendido el primer artículo de una transacción:
Primer artículo sin vender = 0 Primer artículo vendido = 1 3 Devolución (Dev.)/ Nota de
Crédito (NC)
Dev./ NC no efectuada = 0 Dev./ NC efectuada = 1 2 Pago parcial realizado Pago parcial no realizado = 0
Pago parcial realizado = 1
1 Pago completo realizado
Pago completo no realizado = 0
Pago completo realizado = 1 0 -
31 f. Status de inicialización 2 (CK_SI2)
Estado Nombre del estado Parámetros 7 Impuesto incluido Excluido = 0
Incluido = 1
6 Cerrando ticket
Indica que se está ejecutando el comando de cierre de ticket: Otra operación = 0 Cerrando ticket = 1 5 Reservado 4 Reservado 3 Reservado 2 Reservado 1 Reservado 0 -
32 g. Status de validación (CK_VAL)
Estado Nombre del estado Parámetros 7 Reservado
6 Memoria de auditoría (MA) inválida
MA válida = 0 MA inválida = 1 5 Memoria de auditoría (MA)
llena MA disponible = 0 MA llena = 1 4 Memoria de auditoría no conectada MA conectada = 0 MA desconectada = 1 3 Memorias sólo lectura Memorias operativas = 0
Memorias sólo lectura = 1 2 Reservado
1 Falta reporte Z – Memoria de Auditoría nueva
No falta reporte Z = 0 Falta reporte Z = 1 0 -
33
4. Retornos de errores
El controlador fiscal retorna con el comando Obtener estado el código de respuesta del último comando ejecutado. Si la respuesta de un comando determinado es ACK (respuesta positiva) el código de retorno que se obtiene el comando Obtener Estado será cero. Por el contrario si la respuesta de un comando es NAK entonces el código de retorno obtenido será un valor distinto de cero y representa alguno de los posibles errores en la ejecución del último comando. Los códigos de retorno posibles son los siguientes:
Valor (Hex)
Valor
(Dec) Descripción
0x0000 0 Último comando ejecutado exitosamente 0x0101 257 Comando inválido en el estado actual 0x0102 258 Comando inválido en el documento actual 0x0103 259 Jumper de programación conectado
0x0105 261 Comando sólo aceptado con el jumper de servicio
0x0107 263 Comando inválido
0x0109 265 Falta un campo obligatorio en el comando 0x0110 272 Longitud de un campo del comando inválida 0x0111 273 Valor de un campo del comando inválido o fuera
de rango
0x0112 274 Tasa de impuesto inactiva
34
0x0204 516 Mecanismo impresor sin papel 0x0205 517 Tasa de baudios inválida 0x0301 769 Error en la fiscalización
0x0302 770 Error en comando de cambio de fecha 0x0303 771 Fecha inválida
0x0401 1025 Número de línea de encabezado/cola inválido 0x0402 1026 RUC no puede ser modificado
0x0501 1281 Memoria de transacciones llena
0x0503 1283 Memoria de transacciones desconectada 0x0504 1284 Error de lectura o escritura de Memoria de
transacciones
0x0505 1285 Memoria de transacciones inválida
0x0601 1537 Comando inválido fuera de la jornada fiscal 0x0602 1538 No se ha iniciado la jornada fiscal
0x0603 1539 Memoria fiscal llena
0x0604 1540 Memoria fiscal desconectada 0x0605 1541 Memoria fiscal inválida
0x0606 1542 Se requiere emitir un reporte Z 0x0607 1543 No se encuentra el documento 0x0608 1544 Periodo fiscal sin datos
0x0609 1545 Periodo auditado sin datos 0x060A 1546 No hay más datos disponibles
35
0x060B 1547 No se pueden emitir 2 Z el mismo día 0x060C 1548 No se pudo grabar Reporte Z
0x0701 1793 Total debe ser mayor a cero
0x0801 2049 Límite de líneas de comentario en documento fiscal
0x0901 2305 Límite de líneas en documento no fiscal 0xFFFF 65535 Error desconocido
36
5. Tipos de datos soportados
Tipo de Dato Abreviatura Rangos
Alfanumérico A ‘0’-‘9’, ‘a’-‘z’, ‘A’-‘Z’
Numérico N ‘0’-‘9’
Imprimible P 0x20-0xFF
Fecha D ddmmaaaa
Hora T HHMM
Hexadecimal H 0x00 – 0xFF
Opcional O Indica que el campo es opcional
Obligatorio M Indica que el campo es mandatorio u obligatorio
Condicional C Indica que el campo es condicional Longitud máxima LM Indica que la longitud está entre 1 y el
valor de la longitud Longitud
Obligatoria LO Indica que la longitud es obligatoria Texto
enriquecido RT
Permite imprimir texto enriquecido (negrita, doble alto, etc.) y códigos de barras
37
6. Envío de texto enriquecido (RT) a la impresora
El protocolo de comunicación permite el envío de atributos de impresión en determinados comandos donde es permitido. Para ello deben enviarse dos bytes dentro del campo de texto, el primero permite al controlador fiscal determinar que se desea asignar un formato de impresión al texto y el segundo identifica el formato en sí. Solo se podrá asignar un formato por línea y el mismo se desactivará al final de la línea.
El formato de envío es el siguiente:
Solo presente para código de barras
Inicio RT Atributos Tipo(1) Impresión de
Caracteres(1) Ancho
(1) Alto(1) Texto
Campo de texto
1-Solo presentes cuando el atributo seleccionado es código de barras.
Figura 2: Formato de impresión de texto. Dónde:
Inicio RT: 1 byte que indica que el campo tiene atributo de impresión. [Formato]
Caracter Hex Decimal
_ 0x1B 95
38
Atributos: 1 byte que identifica los atributos de impresión a aplicar de acuerdo a la siguiente tabla:
Bit Atributos 0 Reservado 1 Reservado 2 Negrita 3 Doble alto 4 Doble ancho 5 Subrayado 6 Reducir 7 Código de barras
Tabla 13: Atributos de impresión.
Cuando se selecciona código de barras no es posible seleccionar otro atributo adicional. En ese caso se esperan los siguientes bytes que determinan el formato del código de barras.
Tipo: 1 byte que determina el tipo de código de barras a imprimir de acuerdo a la siguiente tabla:
Valor (Hex) Valor (Dec) Código de barras Cantidad de datos (k) Rangos de los datos (d) 0x30 48 UPC-E 11≤k≤12 48≤d≤57 (‘0’≤d≤‘9’) 0x31 49 UPC-A 11≤k≤12 48≤d≤57 (‘0’≤d≤‘9’) 0x32 50 JAN/EAN8 7≤k≤8 48≤d≤57 (‘0’≤d≤‘9’) 0x33 51 JAN/EAN13 12≤k≤13 48≤d≤57
39 (‘0’≤d≤‘9’) 0x34 52 Code39 1≤k 48≤d≤57 (‘0’≤d≤‘9’) 65≤d≤90 (‘A’≤d≤‘Z’) 32, 36, 37, 43, 45, 46, 47 (SP, ‘$’, ‘%’, ‘+’, ‘-‘, ‘.’, ‘/’) 0x35 53 ITF 1≤k (Par) 48≤d≤57 (‘0’≤d≤‘9’) 0x36 54 Code128 1≤k 32≤d≤127 0x37 55 Code93 1≤k 32≤d≤127 0x38 56 NW-7 1≤k 48≤d≤57 (‘0’≤d≤‘9’) 65≤d≤68 (‘A’≤d≤‘D’) 36, 37, 43, 45, 46, 47, 58 (‘$’, ‘%’, ‘+’, ‘-‘, ‘.’, ‘/’, ‘:’) 97, 98, 99, 100 (‘a’, ‘b’, ‘c’, ‘d’) Tabla 14: Tipo de códigos de barras.
40
Impresión de caracteres: 1 byte que determina si se imprimen o no los caracteres debajo del código de barras.
Valor (Hex) Valor (Dec) Selección 0x30 48 No se imprime 0x31 49 Si se imprime
Tabla 15: Impresión en códigos de barras.
Ancho: 1 byte que determina el ancho del código de barras. Si w es el ancho: ‘1’ < w < ‘7’.
Alto: 1 byte que determina el alto del código de barras. Si h es el alto: 1 < h < 255.
Texto: Son los caracteres a imprimir. Si es un código de barras se deben respetar los valores indicados en la tabla de 4.5. Tipos de datos soportados.
La impresión con atributos de código de barra no es soportada en la estación de documentos.
41
V.
Detalle de comandos
En este capítulo se especifican los formatos, tipos y comportamientos de los campos utilizados. La columna Tipo* en los detalles de cada comando indicarán las longitudes, tipo de datos y otras observaciones que definirá a cada parámetro.
Ver sección 4.5 Tipos de datos soportados.
1. Estructura para la lectura detallada de comandos
Nombre del comando Comando a detallar.
[Formato]
Caracter Hex Decimal
´ 0xEF 239
Indica el número correspondiente al comando. Según su preferencia puede utilizar el Hexadecimal o Decimal.
[Campos de entrada] N Indica la cantidad de campos que recibirá el comando.
Detalle de cada campo que recibirá el comando
Campo Descripción TIPO* Long.
N Descripción del Campo Tipo de dato
soportado. N
[Campos de salida] N Indica la cantidad de campos que retornará el comando.
42
Detalle de cada campo que retornará el comando
Campo Descripción TIPO* Long.
N Descripción del Campo Tipo de dato
soportado. N
Figura 3: Estructura detallada de comandos. [Consideraciones]
43
2. Configuración y operación del puerto serial
Los métodos que son utilizados para la configuración, apertura y cierre del puerto serial dependen de la herramienta de integración que utilice.
Método Descripción
AbrirPuerto
Efectúa la apertura del puerto serial, reservando los recursos de software y hardware necesarios para su utilización.
CerrarPuerto
Efectúa el cierre del puerto serial, liberando los recursos de software y hardware alocados por el método AbrirPuerto.
44
3. Comandos de configuración y diagnóstico
Utilizado para obtener información de la impresora fiscal y configurar algunos datos de los documentos fiscales.
a. Obtener estado
Obtiene los valores de estado de impresora y fiscal en tiempo real. Este status permite conocer las operaciones que se han realizado dentro de la transacción, el estado actual y los posibles problemas que se pueden presentar. Ver tabla de estado en 4.2.Estados de la Impresora Fiscal
[Formato]
Caracter Hex Decimal
_ 0x5F 95
Tabla 17: Formato - Obtener estado. [Campos de entrada] Ninguno.
[Campos de salida] 3.
Campo Descripción Tipo* Long.
1 Bits de status fiscal N, LO 6
2 Estado N, LM 2
3 Status de validación (CK_VAL) N, LO 1 Tabla 18: CS – Obtener estado.
45 [Consideraciones]
Bits de status fiscal se envían en el siguiente orden: “<CK_STI><CK_STV><CK_IMP><CK_PRT><CK_INT> <CK_SI2>”.
Este comando se puede utilizar en cualquier proceso de la impresora fiscal, incluso en el estado de error.
[Ejemplo]
Datos enviados a la impresora: <2><95><3> o <2>_<3>
Datos recibidos desde la impresora:
46
b. Obtener características del programa de control
Utilizado para obtener las características del firmware instalado en la impresora fiscal.
[Formato]
Caracter Hex Decimal
! 0x21 33
Tabla 19: Formato - Obtener características PC. [Campos de entrada] Ninguno.
[Campos de salida] 16.
Campo Descripción Tipo* Long.
1 ID del País N, LO 3
2 Versión de firmware (mayor) N, LO 2
3 Versión de firmware (menor) N, LO 2
4 Marca del mecanismo impresor A, LM 20
5 Nombre del mecanismo impresor A, LM 20
6 ID del mecanismo impresor (CW) N, LO 2
7 Capacidad de la memoria fiscal (en bytes) N. LM 7 8 Capacidad de la memoria de transacciones (en
Kbytes)
N, LM 7
9 Capacidad restante memoria fiscal (en zetas) N, LM 4 10 Capacidad restante memoria de transacciones
(en %)
47
Tabla 20: CS – Obtener características de control.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
[Ejemplo]
Datos enviados a la impresora: <2>!<3>
Datos recibidos desde la impresora:
<2>VEF<28>01<28>02<28>XXXX<28>XXXX-123FP<28>48<28>1028096<28>3901439<28>1995<28>99.96% <28>5376<28>113<28>256<28>250834<28>0<28>01030101010 101211014020300071003D3D221VE<3><6> 11 Reservado N, LM 6 12 Reservado N, LM 6 13 Reservado N, LM 6 14 Reservado N, LM 6 15 Reservado N, LM 6 16 Reservado N, LM 40
48 c. Obtener datos de serialización
Utilizado para obtener los datos fiscales que se encuentran configurados en el equipo.
[Formato]
Caracter Hex Decimal
“ 0x22 34
Tabla 21: Formato - Obtener datos de serialización. [Campos de entrada] Ninguno.
[Campos de salida] 5.
Tabla 22: CS – Obtener datos de serialización.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
Campo Descripción Tipo* Long.
1 Serial fiscal A, LO 10
2 Número de serie mecanismo impresor A, LO 16
3 Número de serie kit fiscal N, LO 16
4 Número de serie memoria auditoría N, LO 7
49
Comando sólo disponible en impresoras con arquitectura VMAX4. Consulte con su proveedor si su impresora posee esta arquitectura.
[Ejemplo]
Datos enviados a la impresora: <2>"<3>
Datos recibidos desde la impresora:
<2>VMX1400001<28>1234567890123456<28>131213QA200000 15<28>0000001<28><3><6>
50 d. Configurar fecha y hora
Establece el valor del RTC interno de la impresora fiscal. La impresora fiscal valida que la fecha y la hora no sean menores que la última Z o la última transacción. Al configurar valida también años bisiestos.
[Formato]
Caracter Hex Decimal
C 0x43 67
Tabla 23: Formato – Configurar fecha y hora. [Campos de entrada] 2.
Campo Descripción Tipo* Long.
1 Fecha (ddmmyyyy) D, M, LO 8
2 Hora (hhmm) T, M, LO 4
Tabla 24: CE – Configurar fecha y hora.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
No debe estar abierto ningún documento fiscal.
La nueva configuración debe ser posterior a la fecha del último documento fiscal o cierre de jornada laboral.
[Ejemplo]
51
52 e. Obtener fecha y hora
Utilizado para obtener los valores actuales de configuración del RTC interno de la impresora fiscal.
[Formato]
Caracter Hex Decimal
f 0x66 102
Tabla 25: Formato – Obtener fecha y hora. [Campos de entrada] Ninguno.
[Campos de salida] 2.
Tabla 26: CS – Obtener fecha y hora.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
[Ejemplo]
Datos enviados a la impresora: <2>f<3>
Datos recibidos desde la impresora: <2>231020141548<3><6>
Campo Descripción Tipo* Long.
1 Fecha (ddmmyyyy) D, LO 8
53 f. Obtener datos de fiscalización
Utilizado para obtener los datos de fiscales que se encuentran configurados en el equipo.
[Formato]
Caracter Hex Decimal & 0x26 38
Tabla 27: Formato – Obtener datos de fiscalización. [Campos de entrada] Ninguno.
[Campos de salida] 6.
Tabla 28: CS – Obtener datos de fiscalización.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
Campo Descripción Tipo* Long.
1 Razón social contribuyente P, LM 100
2 Dirección fiscal contribuyente P, LM 100
3 Número de RIF contribuyente A, LO 15
4 Tasa 1 N, LO 2,2
5 Tasa 2 N, LO 2,2
54 [Ejemplo]
Datos enviados a la impresora: <2>&<3>
Datos recibidos desde la impresora:
<2>????????????????????????????????????????????????? ???????????????????????????????????????????????<28>? ???????????????????????????????????????????????????? ???????????????????????????????????????????<28>????? ??????????<28>1200<28>0800<28>2200<3><6>
55 g. Configurar líneas de encabezado
Utilizado para configurar el valor de las líneas de encabezado que se almacenan en la memoria del equipo.
[Formato]
Caracter Hex Decimal
F 0x46 70
Tabla 29: Formato – Configurar líneas de encabezado. [Campos de entrada] 3.
Tabla 30: CE – Configurar líneas de encabezado.
(1) El tamaño máximo lo determina la cantidad de caracteres por líneas que soporta el mecanismo de impresión (CW).
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
La jornada fiscal no debe estar abierta.
El número de encabezado debe estar comprendido entre 1 y 3. Sin embargo existen impresoras que soporta hasta 10 líneas.
Campo Descripción Tipo* Long.
1 Número de línea N, M, LM 1
2 Tipo (Encabezado = 1) N, M, LM 1
56
En las impresoras matriciales de carro ancho, si la configuración del tamaño de papel es media carta, el número de líneas máximo para encabezado es 3.
[Ejemplo]
Datos enviados a la impresora: <2>F11Encabezado1<3>
57
h. Obtener configuración de líneas de encabezado
Utilizado para obtener el valor de las líneas de encabezado que se almacenan en la memoria del equipo.
[Formato]
Caracter Hex Decimal
( 0x28 40
Tabla 31: Formato – Obtener configuración de líneas de encabezado. [Campos de entrada] 1.
Tabla 32: CE – Obtener configuración de líneas de encabezado. [Campos de salida] 1.
Campo Descripción Tipo* Long.
1 Texto de línea P Max(1)
Tabla 33: CS – Obtener configuración de líneas de encabezado.
(1) El tamaño máximo lo determina la cantidad de caracteres por líneas que soporta el mecanismo de impresión (CW).
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
Campo Descripción Tipo* Long.
1 Número de línea N, M, LM 1
58 [Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
El número de encabezado debe estar comprendido entre 1 y 3. Sin embargo existen impresoras que soporta hasta 10 líneas. [Ejemplo]
Datos enviados a la impresora: <2>(11<3>
Datos recibidos desde la impresora: <2> Caracas - Venezuela <3><6>
59 i. Configurar líneas de cola
Utilizado para configurar el valor de las líneas de cola que se almacenan en la memoria del equipo.
[Formato]
Caracter Hex Decimal
F 0x46 70
Tabla 34: Formato – Obtener configuración de líneas de cola. [Campos de entrada] 3.
Tabla 35: CE – Configurar líneas de cola.
(1) El tamaño máximo lo determina la cantidad de caracteres por líneas que soporta el mecanismo de impresión (CW).
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
La jornada fiscal no debe estar abierta.
El número de encabezado debe estar comprendido entre 1 y 3. Sin embargo existen impresoras que soporta hasta 10 líneas.
Campo Descripción Tipo* Long.
1 Número de línea N, M, LM 1
2 Tipo (Cola = 0) N, M, LM 1
60
En las impresoras matriciales de carro ancho, si la configuración del tamaño de papel es media carta, el número de líneas máximo para encabezado es 3.
[Ejemplo]
Datos enviados a la impresora: <2>F10Cola1<3>
61
j. Obtener configuración de líneas de cola
Utilizado para obtener los valores configurados para el pie de página de los documentos de venta.
[Formato]
Caracter Hex Decimal
( 0x28 40
Tabla 36: Formato – Obtener configuración de líneas de cola. [Campos de entrada] 1.
Tabla 37: CE – Obtener configuración de líneas de cola. [Campos de salida] 1.
Campo Descripción Tipo* Long.
1 Texto de línea P, LM Max(1)
Tabla 38: CS – Obtener configuración de líneas de cola.
(1) El tamaño máximo lo determina la cantidad de caracteres por líneas que soporta el mecanismo de impresión (CW).
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
Campo Descripción Tipo* Long.
1 Número de línea N, M, LM 1
62 [Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
El número de encabezado debe estar comprendido entre 1 y 3. Sin embargo existen impresoras que soporta hasta 10 líneas. [Ejemplo]
Datos enviados a la impresora: <2>(10<3>
Datos recibidos desde la impresora:
<2>????????????????????????????????????????????????< 3><6>
63
k. Obtener información de la memoria de auditoría
Utilizado para obtener los eventos realizados con la memoria de auditoría fiscal.
[Formato]
Caracter Hex Decimal
g 0x67 103
Tabla 39: Formato – Obtener información de la MA [Campos de entrada] Ninguno.
[Campos de salida] 5.
Campo Descripción Tipo* Long.
1 Serial de la memoria fiscal N, LO 10
2 RIF N, LO 16
3 Consecutivo de la memoria de auditoría N, LO 4 4 Capacidad disponible de la memoria de
auditoría
N, LO 3
5 Capacidad de la memoria de auditoría N, LM 20 Tabla 40: CS – Obtener información de la MA
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
64 [Ejemplo]
Datos enviados a la impresora: <2>g<3>
Datos recibidos desde la impresora:
65 l. Obtener ancho de carro
Utilizado para obtener los caracteres soportados por el mecanismo de impresión.
[Formato]
Caracter Hex Decimal
J 0x4A 74
Tabla 41: Formato – Obtener ancho de carro. [Campos de entrada] Ninguno.
[Campos de salida] 1.
Campo Descripción Tipo* Long.
1 CW N, LO 2
Tabla 42: CS – Obtener ancho de carro.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Consideraciones]
Comando permitido en cualquier estado de la impresora fiscal. [Ejemplo]
Datos enviados a la impresora: <2>J<3>
66
4. Comandos de control de la impresora
Estos comandos permiten realizar procesos en la impresora fiscal, que no intervienen con el curso de los documentos fiscales.
a. Avanzar papel
Avanza el papel en la estación de la impresora fiscal. [Formato]
Caracter Hex Decimal
U 0x55 85
Tabla 43: Formato – Avanzar papel. [Campos de entrada] Ninguno.
[Campos de salida] Ninguno. [Consideraciones]
Este comando se puede utilizar después de abrir un documento fiscal y antes del cierre del mismo.
[Ejemplo]
Datos enviados a la impresora: <2>U<3>
67 b. Abrir cajón de dinero
Realiza la apertura de los cajones de dinero. [Formato]
Caracter Hex Decimal
] 0x5D 93
Tabla 44: Formato – Abrir cajón de dinero. [Campos de entrada] Ninguno ó 1.
Tabla 45: CE – Abrir cajón de dinero.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
El tipo 0 ó 1 dependerá de la estación que obtiene el cajón de dinero al ser conectado.
Para el caso de no enviar ningún parámetro o enviar un parámetro fuera del rango establecido, se tomará el valor por defecto ‘1’.
Campo Descripción Tipo* Long.
1
Cajón de dinero:
‘0’ – Cajón de dinero 1. ‘1’ – Cajón de dinero 2.
68 [Ejemplo]
Datos enviados a la impresora con parámetros: <2>]1<3>
Datos enviados a la impresora sin parámetros: <2>]<3>
69
c. Obtener estado del mecanismo de impresión
Este comando permite conocer el estatus del mecanismo de impresión en caso de sospecha de falla. La impresora fiscal retorna 4 bytes donde cada uno representa la existencia o no de un error específico. Es válido en cualquier estado.
[Formato]
Caracter Hex Decimal
e 0x65 101
Tabla 46: Formato – Obtener estado de mecanismo de impresión. [Campos de entrada] Ninguno.
[Campos de salida] 1.
Campo Descripción Tipo* Long.
1 Estatus del mecanismo de impresión H, LO 4 Tabla 47: CS – Obtener estado de mecanismo de impresión.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
El detalle del estado del mecanismo de impresión, se muestra en la siguiente tabla:
Bit Descripción 0 1
0
Estatus ONLINE/OFFLINE EN LINEA FUERA DE LINEA
70 2 Sensor de temperatura del
cabezal NORMAL ALTA
3 Error no recuperable OK ERROR
4 Cortadora de Papel OK ERROR
5 Buffer overflow OK ERROR
6 Sensor de fin de papel CON PAPEL SIN PAPEL 7 Sensor de Ausencia de Papel CON PAPEL SIN PAPEL 8 Detección en estación TOF CON PAPEL SIN PAPEL 9 Detección en estación COF CON PAPEL SIN PAPEL 10 Detección en estación BOF CON PAPEL SIN PAPEL
11 Reservado Siempre ‘0’
12 Reservado Siempre ‘0’
13 Reservado Siempre ‘0’
14 Reservado Siempre ‘0’
15 Reservado Siempre ‘0’
Tabla 48: Detalle del estado de mecanismo de impresión. [Consideraciones]
El Bit 0 es válido solo para todas las impresoras.
Los Bits 1 a 15 sólo aplican para impresoras térmicas o híbridas.
Este comando se puede utilizar en cualquier estado de la impresora fiscal.
71 [Ejemplo]
Datos enviados a la impresora: <2>e<3>
72 d. Visor Externo
Con este comando se configura el envío automático de la información del proceso de venta a un visor externo compatible conectado a uno de los dos puertos seriales adicionales que posee la impresora fiscal.
[Formato]
Caracter Hex Decimal
D 0x44 68
Tabla 49: Formato – Visor externo. [Campos de entrada] 1.
Campo Descripción Tipo* Long.
1
Modo:
‘1’- Visor conectado en puerto uno (P1)
‘2’ - Visor conectado en puerto dos (P2)
‘Otro valor’ – Deshabilita el puerto.
H, LO 4
Tabla 50: CE – Visor externo.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
73
El modo 2 está solo disponible para impresoras con tecnología VMAX2 (COM1 y COM2).
Hay que destacar que la configuración del visor externo vuelve a su valor por defecto (deshabilitado) al apagar o encender la impresora o con el comando de reset.
[Ejemplo]
Datos enviados a la impresora: <2>D1<3>
74
e. Comunicación con puertos seriales adicionales
Este comando envía n bytes de datos al puerto seleccionado y recibe tantos bytes como se indique.
[Formato]
Caracter Hex Decimal
^ 0x5E 94
Tabla 51: Formato – Comunicación con puertos seriales. [Campos de entrada] 5.
Tabla 52: CE – Comunicación con puertos seriales.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
[Campos de salida] Ninguno. [Consideraciones]
Si no se desea enviar el campo 2 y 3 (Número de bytes a transmitir y recibir), se debe enviar “0” en cada byte del campo.
El máximo número de bytes a transmitir o a recibir es 70.
Campo Descripción Tipo* Long.
1 Puerto N, M, LO 1
2 Número de bytes a transmitir (ASCII) N, M, LO 2 3 Número de bytes a recibir (ASCII) N, M, LO 2
4 Time out N, M, LO 2
75
En el campo Time out se debe colocar el factor de multiplicación para ajustar el tiempo máximo de espera entre cada byte a recibir.
El mínimo tiempo de espera es 73,28ms y se selecciona colocando “0” y “1” en el primer y segundo byte del campo Time out respectivamente.
En el campo Data se colocan los datos que se desean enviar al puerto seleccionado.
Comando permitido en estado de espera, inicio de venta, venta, subtotal, pago, no fiscal, devolución, inicio de devolución.
[Ejemplo]
Datos enviados a la impresora: <2>^140150Descripcion Visor <3>
76
f. Reinicio de estado de la impresora fiscal
Comando utilizado para reiniciar el estado cuando existe un estado de error entre el software y la impresora.
[Formato]
Caracter Hex Decimal
b 0x62 98
Tabla 53: Formato – Reinicio de estado [Campos de entrada] Ninguno.
[Campos de salida] Ninguno. [Consideraciones]
Comando permitido en cualquier estado de la impresora fiscal [Ejemplo]
Datos enviados a la impresora: <2>b<3>
77 g. Configurar fuente
Este comando permite configurar el tipo de fuente y el ancho de carro de la impresora.
[Formato]
Caracter Hex Decimal
: 0x3A 58
Tabla 54: Formato – Configurar fuente. [Campos de entrada] 3.
Campo Descripción Tipo* Long.
1 Fuente (1) - ‘0’: 80 - ‘1’: 96 - ‘2’: 120 N, M, LM 1 2 Ancho de carro (1) ‘0’: 40 ‘1’: 80 ‘2’: 96 ‘3’: 120 N, M, LM 1 3
Tamaño del papel - ‘0’: Carta - ’1’: Media carta
N, O, LM 1
Tabla 55: CE – Configurar fuente.
78 [Campos de salida] Ninguno.
(1) - Detalle de los tipos de fuente y anchos de carro soportados por modelo
de impresora:
Térmico Matricial
80 Col. Ancho carro
Fuente 0 1 2 3
0 48 80 40 80 - -
1 64 96 40 80 96 -
2 72 120 40 80 96 120
Tabla 56: Tipo de impresoras.
[Consideraciones]
No debe tener ningún documento fiscal abierto.
Comando válido solo para impresoras de carro ancho.
El tamaño del papel puede tomar dos valores, 0 si es carta y 1 si es media carta. Si no se indica un valor, tomará por defecto el valor 0.
Adicional a la configuración del tamaño de papel, se debe configurar el tamaño manualmente en la impresora fiscal, según procedimiento indicado en el manual de usuario.
[Ejemplo]
Datos enviados a la impresora: <2><58><28>1<28>1<28>0<3>.
79 h. Obtener configuración de fuente
Este comando permite obtener la configuración del tipo de fuente y el ancho de carro de la impresora.
[Formato]
Caracter Hex Decimal
; 0x3B 59
Tabla 57: Formato – Obtener configuración de fuente.
[Campos de entrada] Ninguno. [Campos de salida] 3.
Campo Descripción Tipo* Long.
1 Fuente (1) - ‘000’: 80 - ‘001’: 96 - ‘002’: 120 N 3 2 Ancho de carro (1) ‘040’: 40 ‘080’: 80 ‘096’: 96 ‘120’: 120 N 3
80 - ‘000’: Carta - ’001’: Media carta
Tabla 58: CS – Obtener configuración de fuente.
Tipo*: Ver tipos de datos en la sección 4.5 Tipos de datos soportados.
(1) - Detalle de los tipos de fuente y anchos de carro soportados por modelo de
impresora:
Matricial
80 Col. Ancho carro
Fuente 0 1 2 3
0 80 40 80 - -
1 96 40 80 96 -
2 120 40 80 96 120
Tabla 59: Tipo de impresoras. [Consideraciones]
No debe tener ningún documento fiscal abierto.
Comando válido solo para impresoras de carro ancho.
Los parámetros de salida están separados por el caracter FS (Dec: 28, Hex: 0x1C).
[Ejemplo]
Datos enviados a la impresora: <2><59><3>.