Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2025
victor03 victor03 is offline
Miembro
 
Registrado: feb 2025
Posts: 16
Poder: 0
victor03 Va por buen camino
generacion del verifactur y validarlo

Hola, lo primero de todo: perdón si este tema ya se ha tratado en el foro o si no estoy usando correctamente el foro.

Estoy intentando trabajar con VERI*FACTU y tengo un par de dudas:

¿Existe algún ejemplo completo de la estructura XML que debe tener el envío?
He visto que debe enviarse un archivo .xml, pero la mayoría de "ejemplos" que encuentro son de gente diciendo que no les funciona. ¿Hay algún ejemplo oficial o funcional que pueda usar como referencia para asegurarme de que la estructura es correcta?

¿Cómo se valida un envío VERI*FACTU?
Por lo que he leído en el foro, ya hay disponible una zona de pruebas, pero parece que hace falta un certificado digital para identificarse, entre otros requisitos.
¿Me podéis decir qué necesito para validar un envío y si hay algún ejemplo del proceso?

Trabajo con Delphi 2005, que sé que ya tiene sus años, y no estoy seguro de si con esta versión voy a poder realizar el envío correctamente al sistema de la AEAT, lo comento por si alguien ha podido probar con esta versión y me puede dar algún consejo.
Responder Con Cita
  #2  
Antiguo 26-03-2025
chenech chenech is offline
Miembro
 
Registrado: dic 2013
Posts: 107
Poder: 12
chenech Va por buen camino
Yo uso C++ Builder pero para el caso es lo mismo, tengo también una versión muy antigua, anterior a Delphi 5, imagínate :-) lo que hago es generar el XML a pelo en un string, lo guardo en disco y luego lo envío con una llamada a system del curl.
Te adjunto varios XML, de una factura ordinaria, simplificada y rectificativa, así como del comando curl.
Hay mas variaciones, distintos tipos de IVA/IGIC, exentas, rectificativa de una simplificada, envíos masivos, etc. Pero jugando con estos ejemplos los puedes ir viendo, de todas formas, en esta web hay infinidad de ejemplos.
Un saludo.
Factura ordinaria:
Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera>
<ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<NombreRazon>XXXXXXX</NombreRazon>
<NIF>XXXXXXX</NIF>
</ObligadoEmision>
<RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<Incidencia>N</Incidencia>
</RemisionVoluntaria>
</Cabecera>
<RegistroFactura>
<RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<IDFactura>
<IDEmisorFactura>XXXXXXX</IDEmisorFactura>
<NumSerieFactura>A00000045</NumSerieFactura>
<FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura>
</IDFactura>
<NombreRazonEmisor>INFOCERDA SL</NombreRazonEmisor>
<Subsanacion>N</Subsanacion>
<RechazoPrevio>N</RechazoPrevio>
<TipoFactura>F1</TipoFactura>
<DescripcionOperacion>VENTA DE MERCADERIAS</DescripcionOperacion>
<FacturaSimplificadaArt7273>N</FacturaSimplificadaArt7273>
<FacturaSinIdentifDestinatarioArt61d>N</FacturaSinIdentifDestinatarioArt61d>
<Macrodato>N</Macrodato>
<Destinatarios>
<IDDestinatario>
<NombreRazon>XXXXXXXXXXXXXXXXXX</NombreRazon>
<NIF>XXXXXXXX</NIF>
</IDDestinatario>
</Destinatarios>
<Cupon>N</Cupon>
<Desglose>
<DetalleDesglose>
<Impuesto>01</Impuesto>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>S1</CalificacionOperacion>
<TipoImpositivo>21.00</TipoImpositivo>
<BaseImponibleOimporteNoSujeto>8.26</BaseImponibleOimporteNoSujeto>
<CuotaRepercutida>1.74</CuotaRepercutida>
</DetalleDesglose>
</Desglose>
<CuotaTotal>1.74</CuotaTotal>
<ImporteTotal>10.00</ImporteTotal>
<Encadenamiento>
<RegistroAnterior>
<IDEmisorFactura>XXXXXXXX</IDEmisorFactura>
<NumSerieFactura>B00000028</NumSerieFactura>
<FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura>
<Huella>CBC7B59D1EA619EA5C1E16AA69243AF4402FC2ECE6E8A7208D7DEFDB76C5878B</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico>
<NombreRazon>Infocerda SL</NombreRazon>
<NIF>B04430534</NIF>
<NombreSistemaInformatico>TPVComercio</NombreSistemaInformatico>
<IdSistemaInformatico>01</IdSistemaInformatico>
<Version>3.18</Version>
<NumeroInstalacion>B04430534-011</NumeroInstalacion>
<TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
<TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT>
<IndicadorMultiplesOT>N</IndicadorMultiplesOT>
</SistemaInformatico>
<FechaHoraHusoGenRegistro>2024-10-28T20:46:14+01:00</FechaHoraHusoGenRegistro>
<TipoHuella>01</TipoHuella>
<Huella>86D7BC03C87C951B926E0C9914EA970F2DC0449DE03EDFD11531FFDF84EE9347</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Factura simplificada:
Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera>
<ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<NombreRazon>xxxxxxxx</NombreRazon>
<NIF>xxxxxxxxx</NIF>
</ObligadoEmision>
<RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<Incidencia>N</Incidencia>
</RemisionVoluntaria>
</Cabecera>
<RegistroFactura>
<RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<IDFactura>
<IDEmisorFactura>xxxxxxxx</IDEmisorFactura>
<NumSerieFactura>B00000028</NumSerieFactura>
<FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura>
</IDFactura>
<NombreRazonEmisor>xxxxxxx</NombreRazonEmisor>
<Subsanacion>N</Subsanacion>
<RechazoPrevio>N</RechazoPrevio>
<TipoFactura>F2</TipoFactura>
<DescripcionOperacion>VENTA DE MERCADERIAS</DescripcionOperacion>
<FacturaSimplificadaArt7273>N</FacturaSimplificadaArt7273>
<FacturaSinIdentifDestinatarioArt61d>N</FacturaSinIdentifDestinatarioArt61d>
<Macrodato>N</Macrodato>
<Cupon>N</Cupon>
<Desglose>
<DetalleDesglose>
<Impuesto>01</Impuesto>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>S1</CalificacionOperacion>
<TipoImpositivo>21.00</TipoImpositivo>
<BaseImponibleOimporteNoSujeto>8.26</BaseImponibleOimporteNoSujeto>
<CuotaRepercutida>1.74</CuotaRepercutida>
</DetalleDesglose>
</Desglose>
<CuotaTotal>1.74</CuotaTotal>
<ImporteTotal>10.00</ImporteTotal>
<Encadenamiento>
<RegistroAnterior>
<IDEmisorFactura>xxxxxxx</IDEmisorFactura>
<NumSerieFactura>B00000027</NumSerieFactura>
<FechaExpedicionFactura>28-10-2024</FechaExpedicionFactura>
<Huella>EC962FAE28B4D8473909CE7FADC04C487FD57B678EDE0CCBD0D320C5A97A55B7</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico>
<NombreRazon>Infocerda SL</NombreRazon>
<NIF>B04430534</NIF>
<NombreSistemaInformatico>TPVComercio</NombreSistemaInformatico>
<IdSistemaInformatico>01</IdSistemaInformatico>
<Version>3.18</Version>
<NumeroInstalacion>B04430534-011</NumeroInstalacion>
<TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
<TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT>
<IndicadorMultiplesOT>N</IndicadorMultiplesOT>
</SistemaInformatico>
<FechaHoraHusoGenRegistro>2024-10-28T18:56:13+01:00</FechaHoraHusoGenRegistro>
<TipoHuella>01</TipoHuella>
<Huella>CBC7B59D1EA619EA5C1E16AA69243AF4402FC2ECE6E8A7208D7DEFDB76C5878B</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Factura rectificativa:
Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<RegFactuSistemaFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<Cabecera>
<ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<NombreRazon>EMPRESA</NombreRazon>
<NIF>XXXXXXXXX</NIF>
</ObligadoEmision>
<RemisionVoluntaria xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<Incidencia>N</Incidencia>
</RemisionVoluntaria>
</Cabecera>
<RegistroFactura>
<RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<IDFactura>
<IDEmisorFactura>XXXXXXXXX</IDEmisorFactura>
<NumSerieFactura>2-1520</NumSerieFactura>
<FechaExpedicionFactura>17-05-2024</FechaExpedicionFactura>
</IDFactura>
<NombreRazonEmisor>EMPRESA</NombreRazonEmisor>
<TipoFactura>R4</TipoFactura>
<TipoRectificativa>I</TipoRectificativa>
<FacturasRectificadas>
<IDFacturaRectificada>
<IDEmisorFactura>XXXXXXXXX</IDEmisorFactura>
<NumSerieFactura>4-182</NumSerieFactura>
<FechaExpedicionFactura>10-05-2024</FechaExpedicionFactura>
</IDFacturaRectificada>
</FacturasRectificadas>
<DescripcionOperacion>Prueba</DescripcionOperacion>
<Destinatarios>
<IDDestinatario>
<NombreRazon>EMPRESA SOFTWARE</NombreRazon>
<NIF>XXXXXXXX</NIF>
</IDDestinatario>
</Destinatarios>
<Desglose>
<DetalleDesglose>
<Impuesto>03</Impuesto>
<ClaveRegimen>01</ClaveRegimen>
<CalificacionOperacion>S1</CalificacionOperacion>
<TipoImpositivo>7</TipoImpositivo>
<BaseImponibleOimporteNoSujeto>-100</BaseImponibleOimporteNoSujeto>
<CuotaRepercutida>-7</CuotaRepercutida>
</DetalleDesglose>
</Desglose>
<CuotaTotal>-7</CuotaTotal>
<ImporteTotal>-107</ImporteTotal>
<Encadenamiento>
<RegistroAnterior>
<IDEmisorFactura>XXXXXXXX</IDEmisorFactura>
<NumSerieFactura>2-1520</NumSerieFactura>
<FechaExpedicionFactura>17-05-2024</FechaExpedicionFactura>
<Huella>00BA687E2E0056A3F931B830F2C8776D6BDBBF905A494D9B0EE87F61A9A1A420</Huella>
</RegistroAnterior>
</Encadenamiento>
<SistemaInformatico>
<NombreRazon>DESARROLLADOR</NombreRazon>
<NIF>XXXXXXXX</NIF>
<NombreSistemaInformatico>HFocused.es</NombreSistemaInformatico>
<IdSistemaInformatico>01</IdSistemaInformatico>
<Version>0.1.2</Version>
<NumeroInstalacion>12</NumeroInstalacion>
<TipoUsoPosibleSoloVerifactu>S</TipoUsoPosibleSoloVerifactu>
<TipoUsoPosibleMultiOT>N</TipoUsoPosibleMultiOT>
<IndicadorMultiplesOT>N</IndicadorMultiplesOT>
</SistemaInformatico>
<FechaHoraHusoGenRegistro>2024-10-30T17:48:40Z</FechaHoraHusoGenRegistro>
<TipoHuella>01</TipoHuella>
<Huella>EDDA0CEA231B287982B059ACE4BC2C7C5B0BDD1C09F7DF8D2D9F4924253392E0</Huella>
</RegistroAlta>
</RegistroFactura>
</RegFactuSistemaFacturacion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Comando curl:
Código:
curl.exe --connect-timeout 30 -m 30 -k -L -d "@d:\tmp\E1-2-1621.xml" -o d:\tmp\E1-2-1621R.xml --cert-type P12 --cert d:\tmp\Certificado.pfx:passcert https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP

Última edición por chenech fecha: 26-03-2025 a las 15:06:37.
Responder Con Cita
  #3  
Antiguo 26-03-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.905
Poder: 22
newtron Va camino a la fama
El compañero seccion_31 ha hecho un espléndido ejemplo de envío/recepción a Verifactu:


https://terawiki.clubdelphi.com/Otro...go-proyectos_/


Funciona en Delphi 7 por lo que no deberías de tener problemas para que te funcione en Delphi 2005.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 27-03-2025
victor03 victor03 is offline
Miembro
 
Registrado: feb 2025
Posts: 16
Poder: 0
victor03 Va por buen camino
Muchas gracias a los dos sobre el tema de la estructura he encontrado este documento sede.agenciatributaria.gob.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_Descripcion_SWeb.pdf algunos campos me coinciden otros no tanto, ¿es aquí donde has sacado la estructura o de otro documento?

unos campos que me parecen raro como se llaman son:
->FacturaSimplificadaArt7273
->FacturaSinIdentifDestinatarioArt61d

supongo que tendrán alguna razón
Responder Con Cita
  #5  
Antiguo 27-03-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.905
Poder: 22
newtron Va camino a la fama
Aquí tienes el enlace donde está la documentación técnica de Verifactu. Échale un vistazo porque tienes bastante que estudiar.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo Hace 4 Semanas
victor03 victor03 is offline
Miembro
 
Registrado: feb 2025
Posts: 16
Poder: 0
victor03 Va por buen camino
Una pregunta que a lo mejor es un poco tonta estaba con la huella del sha256 y me he fijado que en el campo 'numSerieFactura' lo separas así: 'Nºserie-Nºfactura' pero en el ejemplo de la documentación pone: NumSerieFactura=12345678/G3,

mi pregunta que debo de usar como separador: ¿'-' o '/'?
Responder Con Cita
  #7  
Antiguo Hace 4 Semanas
gcqZW gcqZW is offline
Miembro
 
Registrado: ene 2025
Ubicación: Zaragoza
Posts: 134
Poder: 1
gcqZW Va por buen camino
Puedes poner el que quieras, como si no quieres poner ninguno.
__________________
La religión es personal e intransferible.
Responder Con Cita
  #8  
Antiguo Hace 4 Semanas
chenech chenech is offline
Miembro
 
Registrado: dic 2013
Posts: 107
Poder: 12
chenech Va por buen camino
Pues lo que quieras, incluso no usar separador, por ejemplo 0100001 para la serie 1 y 0200001 para la serie 2, pero siempre usar el mismo formato.
Responder Con Cita
  #9  
Antiguo Hace 3 Semanas
victor03 victor03 is offline
Miembro
 
Registrado: feb 2025
Posts: 16
Poder: 0
victor03 Va por buen camino
me ha entrado una duda con el encadenamiento, yo estaba usando la misma serie para mis pruebas y todo parecía funcionar, el problema es cuando he cambiado de serie, yo como lo tengo montado el encadenamiento separo las series en los encadenamientos tal que así:

1/25->1/26->1/27...

2/10->2/11...

si intento juntar las series 1/25->2/10 (orden de generación de factura) me da error 'El cálculo de la huella suministrada es incorrecta. Datos de entrada cálculo huella:..'

así que entiendo que la opción correcta es la primera.

pero cuando creo una serie nueva sin estrenar 3/1 me obliga a poner que no es primer resgitro por que si no me da este error: 'No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.' en resumen que tendría que poner
<PrimerRegistro>
N
</PrimerRegistro> ¿pero que debo poner en registro anterior para que no me salte ?
Responder Con Cita
  #10  
Antiguo Hace 3 Semanas
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.905
Poder: 22
newtron Va camino a la fama
Cita:
Empezado por victor03 Ver Mensaje
me ha entrado una duda con el encadenamiento, yo estaba usando la misma serie para mis pruebas y todo parecía funcionar, el problema es cuando he cambiado de serie, yo como lo tengo montado el encadenamiento separo las series en los encadenamientos tal que así:

1/25->1/26->1/27...

2/10->2/11...

si intento juntar las series 1/25->2/10 (orden de generación de factura) me da error 'El cálculo de la huella suministrada es incorrecta. Datos de entrada cálculo huella:..'

así que entiendo que la opción correcta es la primera.

pero cuando creo una serie nueva sin estrenar 3/1 me obliga a poner que no es primer resgitro por que si no me da este error: 'No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.' en resumen que tendría que poner
<PrimerRegistro>
N
</PrimerRegistro> ¿pero que debo poner en registro anterior para que no me salte ?

Creo que es un error de planteamiento. El encadenamiento no debe de ir por serie sino por SIF, es decir, todas las facturas que se emitan desde un mismo sistema informático, ya sea monopuesto, red, con distintas series, etc. debe de ir encadenado de forma conjunta.
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo Hace 3 Semanas
victor03 victor03 is offline
Miembro
 
Registrado: feb 2025
Posts: 16
Poder: 0
victor03 Va por buen camino
Cita:
Empezado por victor03 Ver Mensaje
me ha entrado una duda con el encadenamiento, yo estaba usando la misma serie para mis pruebas y todo parecía funcionar, el problema es cuando he cambiado de serie, yo como lo tengo montado el encadenamiento separo las series en los encadenamientos tal que así:

1/25->1/26->1/27...

2/10->2/11...

si intento juntar las series 1/25->2/10 (orden de generación de factura) me da error 'El cálculo de la huella suministrada es incorrecta. Datos de entrada cálculo huella:..'

así que entiendo que la opción correcta es la primera.

pero cuando creo una serie nueva sin estrenar 3/1 me obliga a poner que no es primer resgitro por que si no me da este error: 'No debe informarse como primer registro, existen facturas emitidas con el obligado emisión y el sistema informático actual.' en resumen que tendría que poner
<PrimerRegistro>
N
</PrimerRegistro> ¿pero que debo poner en registro anterior para que no me salte ?
Fallo mio, el has se estaba calculando con la serie equivocada 😰

entonces el orden de encadenamiento debe de ser por emisión de factura entiendo

1/25->2/10->2/11->1/56
Responder Con Cita
  #12  
Antiguo Hace 3 Semanas
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 2025
Posts: 78
Poder: 1
Jarogo08 Va por buen camino
Cita:
Empezado por victor03 Ver Mensaje
Fallo mio, el has se estaba calculando con la serie equivocada 😰

entonces el orden de encadenamiento debe de ser por emisión de factura entiendo

1/25->2/10->2/11->1/26

Correcto, el encandenamiento es con el último registro creado, sea de la misma serie o de otra


Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Generacion del PDF Becario127 Registros de Facturacion y Eventos (XML) 1 05-11-2024 16:32:47
Copiado y generacion de PDF gdlrinfo Varios 6 13-03-2015 22:27:37
Generacion de scripts AMO Oracle 2 10-10-2005 17:55:15
Generación de archivos dcu jplj Varios 2 26-04-2005 21:44:29


La franja horaria es GMT +2. Ahora son las 16:23:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi