Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SDK Componente Verifactu para Delphi 7+ - Subforo Avisos/consultas (https://www.clubdelphi.com/foros/forumdisplay.php?f=81)
-   -   Publicada versión 5.4 del proyecto DLL Veri*factu (https://www.clubdelphi.com/foros/showthread.php?t=97670)

Neftali [Germán.Estévez] 09-09-2025 09:03:20

Publicada versión 5.4 del proyecto DLL Veri*factu
 
Ya está publicada en el FTP la versión 5.4 del proyecto.
https://terawiki.clubdelphi.com/Otro...%20Delphi%207/

Los últimos cambios son los siguientes (que también están descritos en el fichero dentro del RAR)

Cita:

version 5.4
-----------------------------------------------------------------------------------------------------------------------------
Se corrige la carga de certificados desde disco P12/PFX


version 5.3 (no publicada)
-----------------------------------------------------------------------------------------------------------------------------
Se incluyen tres funciones para saber los tipos de version:

function versionDLL:string; // version de la DLL
function versionTiposDLL:string; // version de los tipos uTiposVerifactu con los que fue compilada la DLL (1)
function versionTiposEXE:string; // version de los tipos uTiposVerifactu con los que se ha sido compilado el componente (2)
// 1 y 2 deberian coincidir de lo contrario nos exponemos quizas a errores de paso de parametros, etc... (errores de proteccion general, de stack, etc...)

En la demo, en el evento onFormShow, se ve como actuan estas tres funciones.
Dentro del fichero RAR tenéis un fichero llamado [ayuda.txt], IMPRESCINDIBLE revisar para los que trabajéis con el proyecto.

Gracias como siempre a [seccion_31] y al resto de usuarios que colaboráis con este proyecto.

seccion_31 09-09-2025 09:38:38

Vamos a explicar un poco mas esto:

Function versionDLL:string; // version de la DLL simplemente nos dice que version es la DLL.

function versionTiposDLL:string; // version de los tipos uTiposVerifactu con los que fue compilada la DLL
function versionTiposEXE:string; // version de los tipos uTiposVerifactu con los que se ha sido compilado el componente (en el EXE actual)

Estas dos funciones, nos dicen con que version de la estructura de records de uTiposVeriFactu esta compilada la DLL, y el EXE que actualmente esta siendo compilado por el usuario.
Ambas versiones deben ser iguales de lo contrario, las variables que se envian y reciben desde la DLL al programa y viceversa no coindicen y por tanto podria generar errores graves.

La DLL llevara su version, pero como digo las versiones de tipos deben coincidir.

DarkDudae 16-09-2025 12:56:51

Muchas gracias compañero. Justo el otro día tuve un problema de que la consulta de datos a la AEAT me arrojaba valores incorrectos y era precisamente por la diferencia en las librerías. Muy útil esta nueva versión.

jjmonteros 17-09-2025 11:33:50

no encuentro la demo
 
no la encuentro ese enlace va a todas las opciones de descargas , yo tengo actualmente la version 3.5 y no me funciona mandar

valdusio 17-09-2025 11:58:05

Cita:

Empezado por jjmonteros (Mensaje 567774)
no la encuentro ese enlace va a todas las opciones de descargas , yo tengo actualmente la version 3.5 y no me funciona mandar

En las opciones de descarga sigue estos pasos:

Directorio raiz » Otros » Documentacion LeyAntifraude » Ejemplos-codigo-proyectos_ » Demo verifactu Delphi 7

Saludos

Sergio J. 13-10-2025 18:15:18

Proyecto para Delphi 6 Interprise?
 
Hola a la sala,

Por diversas circunstancias, ahora me piden adaptar un software que programé hace años a la nueva legislación veri*factu. Tengo los fuentes en Delphi 6 (Interprise) y el entorno de desarrollo.

He visto por aquí que se ha desarrollado la solución en Delphi 7. He intentado cargar en Delphi 6 y compilar pero me ha dado una serie de funciones desconocidas y demás.

Es posible modificar alguna llamada o algo y que sea compatible con Delphi 6?

Agradezco cualquier respuesta, aunque sea negativa.

Un saludo

Neftali [Germán.Estévez] 14-10-2025 11:07:56

Cita:

Empezado por Sergio J. (Mensaje 568520)
He visto por aquí que se ha desarrollado la solución en Delphi 7. He intentado cargar en Delphi 6 y compilar pero me ha dado una serie de funciones desconocidas y demás.
Es posible modificar alguna llamada o algo y que sea compatible con Delphi 6?

Lo suyo sería que intentes adaptarla a D6, ya que lo necesitas.
Una buena opción sería utilizar condicionales de forma que los mismos fuentes sirvan para cualquier versión.

Si vas colocando los errores que te da, tal vez podamos ayudarte con esa migración.

Sergio J. 15-10-2025 20:57:36

Gracias por responder Neftali
He empezado por instalar el componente donde lo he llamado cVerifactu.bpl y no ha habido ningún problema.

El problema ha estado en intentar compilar el proyecto verifactuFormD7.dpr para poder integrarlo poco a poco en el software a adaptar a VERIFACTU y ha empezado a no encontrar unidades que no están disponibles en D6 como XPMan y UxTheme. Las he comentado y los objetos asociados como XPManifest1 ya que al parecer son componentes visuales.

Al compilar de nuevo me ha saltado al constructor checkVatResponse en la unidad checkVatServiceD7 ya que en la linea

FSerializationOptions := [xoLiteralParam];

Undeclared identifier: 'FSerializationOptions'

A partir de aquí, según creo, no puedo utilizar la unidad Soap.InvokeRegistry ya que no está disponible en D6.

No se si habrá alguna clase en D6 que pueda utilizar o sustituir por todo eso...

Agradeceré cualquier rayo de luz que me ilumine.

seccion_31 16-10-2025 07:24:43

Cita:

Empezado por Sergio J. (Mensaje 568636)
Gracias por responder Neftali
He empezado por instalar el componente donde lo he llamado cVerifactu.bpl y no ha habido ningún problema.

El problema ha estado en intentar compilar el proyecto verifactuFormD7.dpr para poder integrarlo poco a poco en el software a adaptar a VERIFACTU y ha empezado a no encontrar unidades que no están disponibles en D6 como XPMan y UxTheme. Las he comentado y los objetos asociados como XPManifest1 ya que al parecer son componentes visuales.

Al compilar de nuevo me ha saltado al constructor checkVatResponse en la unidad checkVatServiceD7 ya que en la linea

FSerializationOptions := [xoLiteralParam];

Undeclared identifier: 'FSerializationOptions'

A partir de aquí, según creo, no puedo utilizar la unidad Soap.InvokeRegistry ya que no está disponible en D6.

No se si habrá alguna clase en D6 que pueda utilizar o sustituir por todo eso...

Agradeceré cualquier rayo de luz que me ilumine.

Buenos dias !

el componente esta diseñado para Delphi 7 en adelante

No hace falta que lo instales en la barra de componentes, casi es mejor que lo elimines de ahi. Lo creas a medida que lo necesites, como esta en el ejemplo. Eliminalo de tu instalacion.

Como emergencia, elimina esas unidades de uTVerifactu y/o comenta lo que no vaya encontrando o den error. Eso es para validar los Nifs y los Nies, algo opcional.

Con suerte quizas te compile la demo.

Ya nos diras.

Saludos !

Sergio J. 24-10-2025 21:52:57

Buenas de nuevo,

Gracias por vuestro interés. He conseguido compilar en D6 la demo y enviadas algunas algunas facturas. Qué alivio! Después de leer un poco más de fuentes oficiales, he decidido optar solamente por la versión VERI*FACTU.

Así me evito tener que estar firmando los registros de facturas y gestionando los eventos y demás.

Me queda integrarlo en mi software paso a paso hasta que se cumplan las condiciones de envío que no es poca cosa.

He estado leyendo acerca de la fecha de emisión de la factura y la fecha de generación y envío del registro de facturación y en las Preguntas frecuentes de la AEAT he encontrado esto:

Respecto a la inmediatez de la remisión de los registros de facturación en VERI*FACTU, ¿la fecha de emisión [creación] del registro de facturación debe coincidir con la fecha de comunicación?

La fecha de expedición de la factura debe coincidir con la de generación del registro de facturación. Ambas fechas, generalmente deben corresponderse con la fecha en que se remite el Registro de facturación. No obstante, se pueden dar situaciones puntuales de no coincidencia, de la fecha de generación del registro con la de envío (por ejemplo, incidencia al remitir que obliga a reintentar más adelante, cambio de horario de verano/invierno...).
Un mayor detalle puede encontrarse en las reglas de validación que afecten a los campos del registro de facturación y del mensaje de remisión a la AEAT .


Lo que no me cuadra con lo que leí anteriormente en el hilo Se va a liar. La gente no se entera�� ... por [siyei].`

Gracias de nuevo y seguimos trabajando.

seccion_31 25-10-2025 16:02:52

con todos mis respetos, sobre la inmediatez en el calculo de huella o envio del registro

sinceramente no creo que hacienda con cronometro en mano vaya a tu puesto de trabajo en modo verifactu a ver cuantos segundos tardas en generar un registro y enviarlo y te sancione porque tardas unos segundos mas o menos, estando todo correcto.

saludos !

Sergio J. 27-10-2025 20:48:33

Buenas,

está claro sobre el intervalo que transcurre entre la generación del registro y el envío.

Me refería a que no se permitirá emitir una factura con fecha de ayer o antes de ayer, (casos en los que se está emitiendo las facturas de fin de mes y se está a día 1 ó 2 del mes siguiente) y generar el registro y enviarlo ahora.

Un saludo

Carlos 27-10-2025 22:33:41

Cita:

Empezado por Sergio J. (Mensaje 569029)
Buenas,

está claro sobre el intervalo que transcurre entre la generación del registro y el envío.

Me refería a que no se permitirá emitir una factura con fecha de ayer o antes de ayer, (casos en los que se está emitiendo las facturas de fin de mes y se está a día 1 ó 2 del mes siguiente) y generar el registro y enviarlo ahora.
Un saludo

Hacienda te permitirá que envíes esa factura el dia 01/yy y de fecha emisión 30/xx.

Otra cosa es que Hacienda marcará el registro que recibe como enviado con 'retraso'; y eso ya se verá hasta donde puede llegar.


La franja horaria es GMT +2. Ahora son las 06:30:22.

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