Skip to content

Descripción de ítem en múltiple líneas

Es posible especificar la descripción (campo descripcion) de un ítem usando varias líneas, usando uno (o en el caso de Microsoft Windows, dos) de estos caracteres:

  • Carácter nueva línea: El más común en Internet, usado nativamente por Linux, Android y macOS.
    • Abreviatura ASCII: LF
    • Decimal: 10
    • Hexadecimal: 0x09
    • Secuencia de escape C: \n
  • Carácter retorno de carro: Usado antiguamente por Mac OS Classic.
    • Abreviatura ASCII: CR
    • Decimal: 13
    • Hexadecimal: 0x0C
    • Secuencia de escape C: \r
  • Carácter pleca: Para especificar una nueva línea usando el formato texto.
    • Carácter: |
    • Decimal: 124
    • Hexadecimal: 0x7C

Microsoft Windows usa una combinación de CR y LF para denotar un cambio de línea.

Al momento de generar el XML, Fabo cambiará todos estos caracteres por un carácter LF . Una secuencia de varios de estos caracteres unidos será colapsado en un único carácter LF, lo que implica que no podrá haber líneas en blanco.

Ejemplo

Si se consigna el siguiente valor en el campo descripcion:

SERVICIO DE PINTADO|Incluye pared exterior|No incluye baldes de pintura

Fabo generará el XML separando cada línea con un carácter LF, que será mostrado por la mayoría de editores como varias líneas:

1
2
3
<cbc:Description>SERVICIO DE PINTADO
Incluye pared exterior
No incluye baldes de pintura</cbc:Description>

El formato JSON no permite nuevas líneas dentro de los valores, por lo que debes usar la secuencia de escape de C para especificar las nuevas líneas, o usar plecas. Es válido combinar varios de los caracteres. Por ejemplo:

1
"descripcion": "SERVICIO DE PINTADO\nIncluye pared exterior|No incluye baldes de pintura"

Uso de propiedad descripcion_extra

La propiedad descripcion_extra del ítem es una forma conveniente de añadir una segunda línea a descripcion sin usar un carácter de nueva línea. Su valor se añadirá al valor de descripción preponiendo un carácter LF.

Esta propiedad también puede contener caracteres de nueva línea para dividir la descripción en más líneas.

Ejemplo

Si se consigna los siguientes valores (el ejemplo es solo demostrativo, no sigue el formato requerido por la API, como json o texto)

1
2
descripcion: TARJETA DE VIDEO AUSOM-3000
descripcion_extra: S/N 1234-5678

El XML será creado uniendo ambas propiedades con el carácter LF:

1
2
<cbc:Description>TARJETA DE VIDEO AUSOM-3000
S/N 1234-5678</cbc:Description>

Ya que la propiedad descripcion_extra permite también separar más líneas, el ejemplo anterior de “SERVICIO DE PINTADO” puede ser consignado de la siguiente manera:

1
2
descripcion: SERVICIO DE PINTADO
descripcion_extra: Incluye pared exterior|No incluye baldes de pintura

o en JSON usando los caracteres de Microsoft Windows de cambio de línea (el ejemplo es solo demostrativo, el JSON es incompleto):

1
2
"descripcion": "SERVICIO DE PINTADO",
"descripcion_extra": "Incluye pared exterior\r\nNo incluye baldes de pintura"

obteniendo el mismo resultado.

Representación impresa

Cuando la descripción del ítem incluye más de una línea, la primera será dibujada en negrita. Por ejemplo, usando el ejemplo del inicio de esta nota:

SERVICIO DE PINTADO|Incluye pared exterior|No incluye baldes de pintura

Este valor de la propiedad descripcion será mostrado en la representación impresa de la siguiente manera:

SERVICIO DE PINTADO
Incluye pared exterior
No incluye baldes de pintura

Usando el valor del segundo ejemplo:

1
2
descripcion: TARJETA DE VIDEO AUSOM-3000
descripcion_extra: S/N 1234-5678

La representación impresa lo mostrará en dos líneas:

TARJETA DE VIDEO AUSOM-3000
S/N 1234-5678

Ejemplo de comprobante

Puedes ver un comprobante de ejemplo en “Boletas con descripción en múltiples líneas”.