Centro de ayuda OfiPro

Formato de los ficheros de Contabilización de datos de Facturación

Formato de los ficheros de Contabilización de datos de Facturación

Anterior Siguiente Apartado sin directorio Expand/collapse all hidden text  

Formato de los ficheros de Contabilización de datos de Facturación

Anterior Siguiente La lista de apartados requiere JavaScript Se requiere JavaScript para expandir el texto Se requiere JavaScript para imprimir Enviar consulta acerca de este apartado  

 

En este apartado, reservado para programadores con los necesarios conocimientos técnicos, se describe el formato de los ficheros XML requeridos en la opción Contabilización de datos de Facturación.

 

El formato de los ficheros XML, con datos reales de ejemplo, se puede obtener directamente ejecutando la opción Exportar de la propia pantalla de Contabilización. Tras ejecutarla, puede ver qué ficheros se generan, con qué nombres, qué campos contienen, etc. Puede visualizarlos haciendo doble clic sobre ellos, para que se abran con el navegador.

 

Algunos de estos ficheros serán opcionales, en función de las opciones que se habiliten en la pantalla de Contabilización.

 

 

Notas sobre OfiPro

 

En Marzo de 2018 se ha modificado este formato, para añadirle el campo ES_SUPLIDO a los ficheros VentasLineas.xml y ComprasLineas.xml.

 

Se requiere la versión 20 en el campo "Exportacion_version" del fichero ExportacionGesPro.xml

 

Estos cambios están marcados en amarillo en el texto.

 

 

 

 

hmtoggle_plus1 Generar los ficheros XML ExportacionGesPro.xml

 

Si Vd. trabaja con Delphi como lenguaje de programación, puede obtener dichos ficheros fácilmente, ejecutando el método SaveToFile() del componente TClientDataset. Por ejemplo:

 

 ClientDataset.SaveToFile('ExportacionGesPro.xml', dfXMLUTF8);

 

A continuación, listaremos los ficheros a generar, describiendo el comando SQL con el que generarlos a partir de los datos de OfiPro Facturación.

 

En el caso de otros programas de facturación distintos a OfiPro Facturación, deberá adaptar en el comando los nombres físicos de los campos de cada fichero, respetando el nombre que OfiPro Contabilidad espera recibir. Por ejemplo, en el comando

 

 SELECT CODIGO FROM CLIENTES

 

si en su fichero de Clientes el campo CODIGO es CODE, deberá adaptarlo de la siguiente forma:

 

 SELECT CODE AS CODIGO FROM CLIENTES

 

 

 

Notas sobre OfiPro

Proporcionamos este código como ejemplo, para que sirvan de guía a programadores externos para ayudarles en la tarea de exportar los datos, pero no damos soporte sobre XML, Delphi, ni otros lenguajes o tecnologías de programación.

 

 

hmtoggle_plus1ExportacionGesPro.xml

 

Este fichero, que siempre debe estar presente, consta de los siguientes campos:

 

 

Campo

Tipo

Longitud

Contenido

EXPORTACION_VERSION

Integer

--

Constante 20

NOMBRE_COMERCIAL

String

75

Nombre de la Empresa

FECHA_INICIAL

Date

Date

Fecha inicial de los datos a contabilizar

FECHA_FINAL

Date

--

Fecha final de los datos a contabilizar

DESGLOSAR_ART_COMPRAS

SmallInt

--

1 si se van a desglosar las facturas de compras por artículo; 0 en caso contrario.

DESGLOSAR_ART_VENTAS

SmallInt

--

1 si se van a desglosar las facturas de compras por artículo; 0 en caso contrario.        

TITULO_CTA_ARTICULO

SmallInt

--

1 si el Título de la cuenta de venta o compra debe ser el nombre del artículo; 0 en caso contrario.

IVA_DE_CAJA_FECHA_INICIAL

Date

Date

Fecha en la que la empresa se acogió al Régimen especial del Criterio de Caja.

IVA_DE_CAJA_FECHA_FINAL

Date

Date

Fecha en la que la empresa dejó de estar acogida al Régimen especial del Criterio de Caja.

 

 

hmtoggle_plus1Clientes.xml

 

Campos del fichero de Clientes, y comando SQL correspondiente:

 

SELECT PK_CLIENTE,CODIGO,EMPRESA, CIFNIF,IVA_REGIMEN, DIRECCION,LOCALIDAD,CODIGO_POSTAL,PROVINCIA,PAIS,TELEFONO1,FAX1,EMAIL,URL,CUENTA_CONTABLE3,CUENTA_CONTABLE4,CUENTA_CONTABLE5,CONTRAPARTIDA_CONTABLE3,CONTRAPARTIDA_CONTABLE4,CONTRAPARTIDA_CONTABLE5, AVISO,IBAN FROM CLIENTES

 

 

hmtoggle_plus1Proveedores.xml

 

Campos del fichero de Proveedores, y comando SQL correspondiente:

 

SELECT PK_Proveedor,CODIGO,EMPRESA,CIFNIF,IVA_REGIMEN,DIRECCION,LOCALIDAD,CODIGO_POSTAL,PROVINCIA,PAIS,TELEFONO1,FAX1,EMAIL,URL,CUENTA_CONTABLE3,CUENTA_CONTABLE4,CUENTA_CONTABLE5,CONTRAPARTIDA_CONTABLE3,CONTRAPARTIDA_CONTABLE4,CONTRAPARTIDA_CONTABLE5,AVISO,IBAN FROM Proveedoresss

 

hmtoggle_plus1Bancos.xml

 

Campos del fichero de Bancos, y comando SQL correspondiente:

 

SELECT PK_BANCO,CODIGO,NOMBRE,IBAN,CUENTA_CONTABLE3,CUENTA_CONTABLE4,CUENTA_CONTABLE5,CUENTA_COMISION3,CUENTA_COMISION4,CUENTA_COMISION5,CUENTA_ACREEDOR3,CUENTA_ACREEDOR4,CUENTA_ACREEDOR5 FROM BANCOS

 

 

hmtoggle_plus1Divisas.xml

 

Campos del fichero de Divisas, y comando SQL correspondiente:

 

SELECT PK_DIVISA, CODIGO, NOMBRE, DECIMALES, FRACCION_GENERO, UNIDAD_GENERO, COMENTARIO FROM DIVISAS

 

 

hmtoggle_plus1Ventas.xml

 

Campos del fichero de Facturas de clientes, y comando SQL correspondiente:

 

SELECT  PK_FACTURA_VENTA,SERIE,CODIGO,PK_CLIENTE,FECHA,FECHA_OPERACION,IVA_DE_CAJA,IVA_REGIMEN,PK_DIVISA,DIVISA_VALOR,BRUTO,DESCUENTO_FINANCIERO,GASTOS,PORTES,TIPO_IVA_PORTES,TIPO_RECARGO_PORTES,RETENCION,TOTAL,FACTURA_ORIGEN_SERIE,FACTURA_ORIGEN_CODIGO,FACTURA_ORIGEN_FECHA,DESCRIPCION_OPERACION_SII,CAUSA_RECTIFICACION_SII  

frOM FACTURAS_VENTAS

WHERE FILTROFECHAS

 

 

hmtoggle_plus1VentasLineas.xml

 

Campos del fichero de líneas de Facturas de clientes, y comando SQL correspondiente, que varía según se haya indicado si se desglosan las facturas por artículo o no:

 

Sin desglose de facturas por artículo:

 

SELECT Facturas_Ventas_Lineas.Pk_Factura_Venta, ARTICULOS.ES_SUPLIDO, Facturas_Ventas_Lineas.Tipo_Iva, Facturas_Ventas_Lineas.Tipo_Recargo, Sum(Facturas_Ventas_Lineas.Importe) as ImporteTotalLinea

FROM Facturas_Ventas_Lineas

INNER JOIN SERIES ON (FACTURAS_VENTAS.SERIE = SERIES.CODIGO)

INNER JOIN ARTICULOS ON (FACTURAS_ventas_LINEAS.PK_ARTICULO = ARTICULOS.PK_ARTICULO) 

WHERE FiltroFechas AND (FACTURAS_VENTAS_LINEAS.IMPORTE <> 0)

GROUP BY Facturas_Ventas_Lineas.Pk_Factura_Venta, articulos.es_suplido, Facturas_Ventas_Lineas.Tipo_Iva, Facturas_Ventas_Lineas.Tipo_Recargo

 

Con desglose de facturas por artículo:

 

SELECT Facturas_Ventas_Lineas.Pk_Factura_Venta,Facturas_Ventas.Iva_Regimen, Max(Articulos.Nombre) AS ARTICULO_NOMBRE, Articulos.Cuenta_Contable3_Ventas as CuentaArticulo3, Articulos.Cuenta_Contable4_Ventas as CuentaArticulo4, Articulos.Cuenta_Contable5_Ventas as CuentaArticulo5,  ARTICULOS.ES_SUPLIDO, Facturas_Ventas_Lineas.Tipo_Iva, Facturas_Ventas_Lineas.Tipo_Recargo, Sum(Facturas_Ventas_Lineas.Importe) as ImporteTotalLinea

FROM Facturas_Ventas_Lineas

INNER JOIN FACTURAS_VENTAS ON (Facturas_Ventas_Lineas.Pk_Factura_Venta = Facturas_Ventas.Pk_Factura_Venta)

INNER JOIN ARTICULOS ON (Facturas_Ventas_Lineas.Pk_Articulo = Articulos.Pk_Articulo)

INNER JOIN SERIES ON (FACTURAS_VENTAS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas AND (FACTURAS_VENTAS_LINEAS.IMPORTE <> 0)

GROUP BY Facturas_Ventas_Lineas.Pk_Factura_Venta, Facturas_Ventas.Iva_Regimen, Facturas_Ventas_Lineas.Tipo_Iva, Facturas_Ventas_Lineas.Tipo_Recargo, Articulos.Cuenta_Contable3_Ventas, Articulos.Cuenta_Contable4_Ventas, Articulos.Cuenta_Contable5_Ventas

 

 

hmtoggle_plus1Tickets.xml

 

Campos del fichero de Tiques, y comando SQL correspondiente:

 

SELECT TICKETS.Pk_Ticket,TICKETS.Pk_Registradora,Tickets.Serie,Tickets.Codigo,Tickets.Pk_Cliente,Tickets.Fecha,Tickets.Iva_De_Caja,Tickets.Iva_Regimen,Tickets.Pk_Divisa,Tickets.Divisa_Valor,Tickets.Bruto_Iva,Tickets.Descuento_Financiero, Tickets.Total             

FROM TICKETS 

WHERE FiltroFechas

 

 

 

hmtoggle_plus1TicketsLineas.xml

 

Campos del fichero de líneas de Tiques, y comando SQL correspondiente

 

SELECT Tickets_Lineas.Pk_Ticket, Tickets_Lineas.Tipo_Iva, Tickets_Lineas.Tipo_Recargo, Sum(Tickets_Lineas.Importe) as ImporteTotalLinea

FROM Tickets_Lineas 

INNER JOIN SERIES ON (TICKETS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas AND (TICKETS_LINEAS.IMPORTE <> 0)

GROUP BY Tickets_Lineas.Pk_Ticket, Tickets.Iva_Regimen, Tickets_Lineas.Tipo_Iva, Tickets_Lineas.Tipo_Recargo

 

 

 

 

hmtoggle_plus1Compras.xml

 

Campos del fichero de Facturas de proveedores, y comando SQL correspondiente:

 

SELECT PK_FACTURA_COMPRA,SERIE,CODIGO,PK_PROVEEDOR,FECHA,FECHA_OPERACION,FECHA_EXPEDICION,SU_FACTURA,IVA_DE_CAJA,IVA_REGIMEN,PK_DIVISA,DIVISA_VALOR,BRUTO,DESCUENTO_FINANCIERO,GASTOS,PORTES,TIPO_IVA_PORTES,TIPO_RECARGO_PORTES,RETENCION,TOTAL,FACTURA_ORIGEN_SERIE,FACTURA_ORIGEN_CODIGO,FACTURA_ORIGEN_FECHA,DESCRIPCION_OPERACION_SII,CAUSA_RECTIFICACION_SII   

FROM FACTURAS_COMPRAS

WHERE FILTROFECHAS

 

 

 

hmtoggle_plus1ComprasLineas.xml

 

Campos del fichero de líneas de Facturas de compras, y comando SQL correspondiente, que varía según se haya indicado si se desglosan las facturas por artículo o no:

 

Sin desglose de facturas por artículo:

 

SELECT Facturas_Compras_Lineas.Pk_Factura_Compra, ARTICULOS.ES_SUPLIDOFacturas_Compras.Iva_Regimen,Facturas_Compras_Lineas.Tipo_Iva, Facturas_Compras_Lineas.Tipo_Recargo, Sum(Facturas_Compras_Lineas.Importe) as ImporteTotalLinea

FROM Facturas_Compras_Lineas

INNER JOIN Facturas_Compras ON (Facturas_Compras_Lineas.Pk_Factura_Compra = Facturas_Compras.Pk_Factura_Compra)

INNER JOIN Articulos ON (Facturas_Compras_Lineas.Pk_Articulo = Articulos.Pk_Articulo)

INNER JOIN SERIES ON (FACTURAS_COMPRAS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas AND (FACTURAS_COMPRAS_LINEAS.IMPORTE <> 0) 

GROUP BY Facturas_Compras_Lineas.Pk_Factura_Compra, articulos.es_suplido, Facturas_Compras.Iva_Regimen, Facturas_Compras_Lineas.Tipo_Iva, Facturas_Compras_Lineas.Tipo_Recargo

 

 

Con desglose de facturas por artículo:

 

SELECT Facturas_Compras_Lineas.Pk_Factura_Compra, Max(Articulos.Nombre) AS ARTICULO_NOMBRE, Articulos.Cuenta_Contable3_Compras as CuentaArticulo3, Articulos.Cuenta_Contable4_Compras as CuentaArticulo4, Articulos.Cuenta_Contable5_Compras as CuentaArticulo5, ARTICULOS.ES_SUPLIDOFacturas_Compras_Lineas.Tipo_Iva, Facturas_Compras_Lineas.Tipo_Recargo, Sum(Facturas_Compras_Lineas.Importe) as ImporteTotalLinea

FROM Facturas_Compras_Lineas

INNER JOIN Articulos ON (Facturas_Compras_Lineas.Pk_Articulo = Articulos.Pk_Articulo)

INNER JOIN SERIES ON (FACTURAS_COMPRAS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas AND (FACTURAS_COMPRAS_LINEAS.IMPORTE <> 0) 

GROUP BY Facturas_Compras_Lineas.Pk_Factura_Compra, Facturas_Compras_Lineas.Tipo_Iva, Facturas_Compras_Lineas.Tipo_Recargo, Articulos.Cuenta_Contable3_Compras, Articulos.Cuenta_Contable4_Compras, Articulos.Cuenta_Contable5_Compras

 

 

 

hmtoggle_plus1TicketsCobros.xml

 

Campos del fichero de Cobros de Tiques, y comando SQL correspondiente:

 

SELECT Tickets_Cobros.Pk_Ticket_Cobro, Tickets_Cobros.Cobrado, Tickets.Serie, Tickets.Codigo, Tickets.Fecha, Tickets.Pk_Divisa, Tickets.Divisa_Valor, Tickets.Pk_Cliente, Formas_de_Cobro.Pk_Banco, Formas_de_Cobro.FACTURAE_FORMA_COBRO

FROM TICKETS_COBROS

INNER JOIN TICKETS ON (Tickets_Cobros.Pk_Ticket = Tickets.Pk_Ticket)

INNER JOIN Formas_de_Cobro ON (Tickets_Cobros.Pk_Forma_Cobro = Formas_de_Cobro.Pk_Forma_Cobro)

INNER JOIN SERIES ON (TICKETS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas 

 

 

 

hmtoggle_plus1RemesasCobros.xml

 

Campos del fichero de Remesas_Cobros, que incluye los cobros de vencimientos asignados a remesas, pero no los asignados a remesas del Cuaderno58 al cobro, ya que estos se contabilizan por separado, cada vencimiento en un asiento individual.

 

Comando SQL correspondiente:

 

SELECT Remesas.Fecha_Cobro, Remesas.Importe, Remesas.Pk_Banco, Remesas.Comision_Banco, Remesas.Serie, Remesas.Codigo, Cobros.Pk_Cobro, Cobros.Pk_Remesa, Cobros.Pk_Cliente, Cobros.Pk_Divisa, Cobros.Divisa_Valor, Cobros.Concepto, Cobros.Documento_Tipo, Cobros.Importe as Importe_Cobro

FROM REMESAS

INNER JOIN COBROS ON (Cobros.Pk_Remesa = Remesas.Pk_Remesa)

INNER JOIN SERIES ON (Series.Codigo = Remesas.Serie)

WHERE FiltroFechas 

 

 

La expresión FiltroFechas se debe basar en el campo REMESAS.FECHA_COBRO.

 

 

hmtoggle_plus1Cobros.xml

 

Campos del fichero de Cobros, que incluye los cobros de vencimientos no asignados a remesas, o asignados a remesas del Cuaderno58 al cobro.

 

Comando SQL correspondiente:

 

SELECT COBROS.PK_COBRO,COBROS.PK_CLIENTE,COBROS.PK_BANCO,COBROS.FECHA_COBRO, COBROS.CONCEPTO,COBROS.DOCUMENTO_TIPO,COBROS.DOCUMENTO_NUMERO, COBROS.IMPORTE, COBROS.PK_DIVISA,COBROS.DIVISA_VALOR

FROM COBROS

INNER JOIN SERIES ON (COBROS.SERIE = SERIES.CODIGO)

LEFT OUTER JOIN REMESAS ON (Remesas.Pk_Remesa = Cobros.Pk_Remesa)

WHERE FiltroFechas

 

 

La expresión FiltroFechas se debe basar en el campo REMESAS.FECHA_COBRO.

 

 

hmtoggle_plus1Pagos.xml

 

Campos del fichero de Pagos, y comando SQL correspondiente:

 

SELECT PAGOS.PK_PAGO,PAGOS.PK_PROVEEDOR,PAGOS.PK_BANCO,PAGOS.FECHA_PAGO, PAGOS.CONCEPTO,PAGOS.DOCUMENTO_TIPO, PAGOS.DOCUMENTO_NUMERO,PAGOS.IMPORTE,PAGOS.PK_DIVISA,PAGOS.DIVISA_VALOR

FROM PAGOS

INNER JOIN SERIES ON (PAGOS.SERIE = SERIES.CODIGO)

WHERE FiltroFechas 

 

 

 

 

hmtoggle_plus1Ficheros específicos del Régimen especial del Criterio de Caja

 

En este apartado se explica el formato de los ficheros que incluyen información específica del Régimen especial del Criterio de Caja.

 

Estos ficheros, a diferencia de los explicados en apartados anteriores, no se obtienen directamente mediante un comando SQL.

 

Tenga en cuenta que en estos ficheros se deben incluir también los datos del año anterior, y no sólo los del año actual.

 

El fichero CobrosVentasIvaDeCaja.xml indica para cada Factura y Cobro asignado a dicha Factura, cuál es el Importe Cobrado, así como los Tipos de IVA y Recargo y las correspondientes Cuotas de Iva y Recargo Cobradas, según la ley del Régimen especial de Criterio de Caja.

 

Los ficheros de ComprasIvaDeCajaPdtesPago.xml y TicketsCobrosIvaDeCaja.xml son similares, para el caso de Compras y Tiques, respectivamente.

 

Los ficheros VentasIvaDeCajaPdtesCobro.xml y ComprasIvaDeCajaPdtesPago.xml indican para cada Factura, cuál es el Importe pendiente de Cobrar o Pagar a 31 de Diciembre del año anterior, así como las los Tipos y Cuotas de IVA y Recargo.