Skip to content
Delphi: Creación de ficheros normas 19.14 y 34.14 (básico, XML)
Pascal
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test Añadimos la etiqueta 2.27 (ver Anexo 1) en la norma 19.14. Fichero 19… Jan 27, 2016
.gitignore Compilación condicional para que compile hasta Delphi 10 Seattle Feb 26, 2016
LICENSE Initial commit Jan 24, 2016
ReadMe.md actualización del readme Jul 31, 2019
uDJMSepa.pas Compilación condicional para que compile hasta Delphi 10 Seattle Feb 26, 2016
uDJMSepa1914XML.pas Hacemos público el array de ordenantes para poder recorrerlo y presen… Apr 7, 2016
uDJMSepa3414XML.pas

ReadMe.md

Delphi: Creación de ficheros normas 19.14 y 34.14 SEPA formato XML

Actualización 2019: Mucha gente me pregunta si este proyecto sigue siendo válido, tras ver que lleva años sin actualizarse. Sí, yo sigo utilizandolo en proyectos que generan ficheros SEPA a diario. Simplemente es que la normativa no ha cambiado, y no ha sido necesario actualizarlos. Con respecto a utilizarlo en las versiones más nuevas de Delphi, no debes tener problema, no se utilizan features del lenguaje novedosas.

Estas unidades contienen dos objetos para la creación de los siguientes ficheros:

  • Norma 19.14 SEPA XML. Es un fichero de órdenes de cobro. El ordenante cobra al deudor. Internamente tenemos un array de ordenantes, cada uno con sus órdenes de cobro. Basta utilizar AddOrdenante, AddCobro. Como cada ordenante tiene una cuenta de abono para todos los cobros, internamente el objeto se encarga de colocar cada cobro en su ordenante. Ver el test está ahí explicado el uso de los objetos.

  • Norma 34.14 SEPA XML. Es un fichero de órdenes de pago. El ordenante paga al beneficiario.

Cosas a tener en cuenta:

  • Leer la normativa de los dos ficheros. Son complejos. Hay campos opcionales que no se han añadido aquí y puede que su banco se lo pida. Los identificadores únicos de cada elemento son importantes, hay que leer su significado y tomar la decisión de cómo formarlos. Por si fuera poco, cada banco tiene su interpretación y puede que le pida alguna variación en algún elemento del fichero (esto ya lo he comprobado con la versión anterior los 19.14 y 34.14 en formato plano). Esto no es un componente "listo para usar" sin más. Hay que entender de qué estamos hablando. Lo que si facilita es la estructuración y la escritura de las etiquetas.

  • Como guardamos la info en arrays, hay unos límites de órdenes y ordenantes. Supongo que serán suficientes pero es fácilmente modificable.

  • En la normativa hay muchos campos opcionales, no se ha añadido ninguno.

  • Se trata de los esquemas básicos, no los b2b.

  • Solamente se contemplan transferencias en euros, nada de cheques.

  • No se contemplan órdenes de devoluciones, etc.

  • No se hace ningún chequeo de contenidos (IBAN, BIC, etc)

  • Vea el proyecto test de ejemplo.

  • Basado en este otro componente: https://github.com/aspettl/delphi-sepa-xml las diferencias son amplias, pero es justo mencionar ese git.

La normativa:

Actualización (febrero 2016): Ya está testeado en 3 bancos españoles. Tanto la norma 19.14 como la 34.14 y los ficheros han sido aceptados.

Actualización (abril 2016): Hacemos público (en Norma 19.14) el array de ordenantes. Para poder recorrerlo y mostrarle al usuario el resumen de importes, algo así:

 for iOrdenantes:=1 to oNorma1914XML.iOrdenantes do begin
     mmFicheros.Lines.add(oNorma1914XML.listOrdenantes[iOrdenantes].sNombreOrdenante+' '+
          oNorma1914XML.listOrdenantes[iOrdenantes].sIBANOrdenante+' '+
                          uFmt_Numero2Str2(oNorma1914XML.listOrdenantes[iOrdenantes].mSumaImportes)+'€');
 end;

Espero que sea de utilidad. Diego J. Muñoz. Freelance. Cocosistemas.com

You can’t perform that action at this time.