El porqué de las 80 columnas en los ficheros de norma 43

Cuando miramos a un fichero en norma 43 con un editor de texto (por ejemplo el notepad) llama la atención el hecho que las líneas tengan casi todas ese ancho de 80 caracteres por línea. La razón para este tamaño tiene mucho que ver con la historia de la informática y con la fecha de creación de esta norma: febrero de 1982. Hasta esa década gran parte de los ordenadores que se utilizaban de forma profesional eran terminales de texto:

La mayoría de este tipo de terminales se diseñó para mostrar 80 columnas y 24 o 25 líneas de texto. Tiene sentido entonces que cualquier tipo de fichero texto se intentara formatear dentro de estos límites. A día de hoy sigue habiendo muchos ámbitos donde se sigue respectando este límite histórico.
Lo que nos podríamos preguntar ahora es: ¿Y porqué los terminales de texto tenían el límite de 80 columnas? La respuesta está relacionada con la empresa que más impactó la informática empresarial del siglo pasado: IBM.

En 1928 IBM diseño un nuevo formato de tarjetas perforadas para mejor aprovechar el tamaño estándar que había (187.325 mm × 82.55 mm) y el diseño que ganó tenía perforaciones rectangulares de 12 líneas de 80 columnas:

Este formato fue el más utilizado y con la transición a los terminales de texto, se siguió utilizando el mismo ancho de columnas.

Conversor a Excel y encuesta de nuevas funcionalidades

Desde hace unas semanas está disponible en www.norma43.net la posibilidad de convertir de Norma 43 a Excel. Se siguen haciendo correcciones y mejoras pero el resultado parece ser lo que muchos usuarios estaban buscando. Esto nos lleva a la pregunta:

Cual sería la funcionalidad o mejora que te gustaría ver en el conversor de norma43.net?

La estructura de un fichero en norma 43

Un ejemplo

A primera vista, un fichero en norma 43 solo parece un montón de números y letras amontonados hasta completar 80 caracteres por línea. Hoy intentaré explicar de forma gráfica la estructura de este fichero, simplificándolo  y sin entrar en los aspectos más complejos del mismo. Para ello utilizaremos el siguiente fichero de ejemplo:

111234222212345678900102180202182000000002000009783MI EMPRESA SL 099
2212342222010218010218011112000000000100500000000000ORDEN PAGO RECIB 
2212342222010218010218011112000000000050250000000000ORDEN PAGO RECIB 
2301LIQ. OP. N 000000000000069 
2302AUTOMOCION LAGUNA SL 41001 SEVILLA ES 
3312342222123456789000000000000000000000000200000000015075200000000215075978 
88999999999999999999000006

Para entender mejor las distintas partes del fichero, en esta imagen las vemos separadas por secciones. También he añadido colores para diferenciar los varios tipos de datos:

Con la separación de los campos y el agrupado de las líneas relacionadas entre sí, empiezan a surgir algunos patrones y grupos de registros. Lo que posiblemente llama más la atención, es que cada línea (o registro) del fichero empieza por un código de 2 dígitos que identifica su tipo.

Registro de cabecera

Empezaremos por analizar el primer tipo, el 11 o «Registro de cabecera de cuenta»:

Los campos posteriores al tipo de registro son la clave de entidad, la clave de oficina y el número de cuenta. Es aquí donde queda registrado a que cuenta bancaria se refiere este extracto.

Después de la cuenta aparecen las fechas inicial y final del extracto en formato ddmmaa. En este caso se refiere al primer y segundo día de febrero de 2018.

En seguida vemos el saldo inicial de la cuenta especificado con 3 campos. El primero consta de un dígito, 1 o 2 que simboliza debe o haber. En nuestro caso tenemos un saldo inicial positivo (2). Después viene el importe del saldo especificado con 14 dígitos (!!) en que los últimos 2 son decimales. En el ejemplo, el saldo es de 2000,00. Por fin, nos viene especificada la divisa de la cuenta en ISO 4217. En nuestro caso es el Euro (código 978).

En el resto del fichero se mantendrán los mismos formatos para representar fechas, importes y la representación de debe o haber.

En el siguiente campo se registra la «Modalidad del servicio e información». Como dijimos al inicio dejaremos el análisis de este tipo de campos para futuros artículos.

Por último, nos viene lo que se define como nombre abreviado para la cuenta. Dependiendo de la entidad, aquí puede venir el nombre de la sociedad o bien un código interno que hayamos personalizado para esta cuenta.

Registro principal de movimientos

Los registros que empiezan por 22, guardan información sobre los movimientos en cuenta. En nuestro ejemplo, el primer movimiento es el siguiente:

El primer campo importante que vemos en esta línea es la clave de oficina (en este caso 2222), seguido de las fechas de operación y valor (ambas el 1 de febrero de 2018).

Más adelante vemos el importe con el correspondiente debe/haber antes (ingreso de 100,5€).

Justo al final de la línea vemos una referencia en texto al movimiento (Orden pago recib).

Como habíamos definido al inicio, nos hemos saltado varios campos para que esta introducción al formato de la norma 43 no sea muy compleja. Entre ellos están el concepto común, concepto propio y número de documento.

Registro complementario de movimientos

Si seguimos mirando el fichero ejemplo, nos encontramos con un grupo de 3 registros. El grupo empieza por un registro principal de movimientos (22) completado por 2 registros complementarios (23):

Para entender la existencia del registro complementario es importante fijarse en algo que indiqué al inicio: todos los registros tienen un máximo de 80 caracteres (veremos el porqué en otro artículo). Si nos fijamos en las referencias de los dos registros del tipo 22 podemos apreciar que el texto que tenemos disponible para la referencia es de solo 28 caracteres. Es aquí donde entra el registro complementario. Este registro permite asociar a un movimiento conceptos textuales de 76 caracteres de longitud. De hecho, este tipo de registros solo está compuesto por eso. Además, podemos asociar hasta 5 registros complementarios a un movimiento. En este caso tenemos 2:

  • LIQ. OP. N 000000000000069
  • AUTOMOCION LAGUNA SL 41001 SEVILLA ES

La utilización del registro complementario depende del tipo de movimiento y de la entidad bancaria, pero normalmente se utiliza de forma semejante a nuestro ejemplo, con el motivo del movimiento y el nombre de la entidad que hizo o a la que se hizo el ingreso.

Registro final de cuenta

Este registro es «la pareja» del registro de cabecera. Aunque en nuestro ejemplo no sea así, en un fichero de norma 43 pueden venir extractos de varias cuentas. Para saber donde empieza un extracto y donde termina, se utiliza esta pareja de registros. Además, como veremos en seguida, el registro final nos da pistas para comprobar la integridad del extracto:

Los primeros campos vuelven a ser la entidad, oficina y número de cuenta. Después vienen 2 parejas de campos:

  • el número de apuntes de debe y su importe total – no hubo
  • el número de apuntes de haber y su importe total – 2 apuntes y un total de 150,75€

Después tenemos el saldo final precedido de la señal y respectiva divisa. En este caso hay un saldo positivo de 2150,75€.

Registro de fin de fichero

Como dijimos antes, podría haber más extractos y de más cuentas pero al final de fichero tenemos siempre el registro final (88):

Este registro solo tiene un campo donde aparece el total de registros de los otros tipos que tenía el fichero.

¿Me he olvidado de algo?

Es verdad que me quedó por explicar un tipo de registro menos común y algunos de los campos menos relevantes, pero espero que el análisis de este pequeño ejemplo haya servido para entender las bases de la estructura de los ficheros de la norma 43. Profundizaré en estas cuestiones en futuras entregas.

 

¿Se puede convertir un fichero excel a Norma 43?

Esta es una de las preguntas que surgen más frecuentemente relacionadas con la Norma 43. Quien se hace esta pregunta, está buscando probablemente,  cargar en algún programa de gestión o tesorería, un listado de movimientos hecho en una hoja de cálculo. La respuesta corta es: No es posible, o por lo menos no es una tarea simple.

Lo que hay que entender es que la idea que hay detrás de especificaciones como la norma 43, es justamente evitar que cada banco o programa tenga su formato para guardar un extracto bancario.  Imaginemos una reunión donde todo el mundo habla inglés. A la pregunta: «Una persona que solo habla en navajo puede participar en esta reunión?» podremos responder «Sí, con un interprete adecuado».  El excel permite formatear una tabla con los campos que queramos, en el orden que queramos. Esto es como si cada libro excel hablara su propio idioma inventado. Crear o formar un «interprete» para un idioma nuevo es algo que solo su creador puede hacer y típicamente un usuario normal de excel no tiene ni las herramientas ni los conocimientos para hacerlo.

Como ejemplo,  en futuras entregas intentaré explicar como podríamos llegar a convertir la información de un extracto desde una hoja de cálculo determinada a un fichero de norma 43.