Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Registros de Facturacion y Eventos (XML) (https://www.clubdelphi.com/foros/forumdisplay.php?f=67)
-   -   Bloque del esquema SistemaInformatico (https://www.clubdelphi.com/foros/showthread.php?t=96990)

pablog2k 21-05-2025 13:35:41

justo esto me viene al pelo para un problema que me estaba surgiendo, y era como encadenar registros , si había 2 tiendas que usan el mismo SIF, pero el SIF es programa de escritorio (exe hecho con delphi), y la base de datos es local (firebird). Al no poder conectarse una tienda con otra para saber cual ha sido el ultimo registro, la opción era que cada tienda trabajara con una serie distinta, y cada serie llevara un encadenamiento propio. (lo que señalan como 'centros de facturación independientes, como tiendas')
La solución según esta documentación, es utilizar el mismo IdSistemaInformatico y Version, pero distinto NumeroInstalacion, de tal manera que cada tienda lleva su numero de instalación y su encadenamiento.

He hecho las pruebas y efectivamente, si envías con el mismo NifObligado+IdSistemaInformatico+Version, pero distinto NumeroInstalacion, puedes trabajar con encadenamientos distintos

Jaketon 28-05-2025 17:58:19

Buenas compañeros, a mi lo que me lleva loco es esta frase de las últimas FAQ de desarrolladores:

"Incluso si se formatea el ordenador donde estaba instalado un SIF y se reinstala el mismo software de nuevo en ese mismo ordenador, el nuevo SIF así constituido debe llevar otro nº de instalación diferente al anterior que tenía, y que no coincida con la de ningún otro SIF de ese OEF (pasado, presente o futuro)."

No entiendo para nada... es como si al reinstalar el programa este fuera otro SIF distinto y tuviera que empezar a encadenar o llevar un encadenamiento propio cuando no es así dado que por ejemplo hemos recuperado una copia del SIF y queremos continuar... En fin ... que retorcidos son estos hijos de p....

maikl 28-05-2025 18:18:36

Bueno, tampoco creo que puedan saber si el programa se ha reinstalado o no.
A no ser que vayan a mirar las fechas de los archivos en la carpeta del programa, el programa será el mismo, y si has recuperado un backup los datos también...
No le veo ningún tipo de lógica.

Jarogo08 28-05-2025 18:43:36

Cita:

Empezado por Jaketon (Mensaje 564958)
es como si al reinstalar el programa este fuera otro SIF distinto y tuviera que empezar a encadenar o llevar un encadenamiento propio


Es justo eso lo que quieren que se haga. Si reinstalas o formateas el número de instalación tiene que ser distinto al que tenía antes, con lo cual el encadenamiento tiene que empezar de 0 (lo que significa que el primer registro no irá encadenado a nada)

Rja750 28-05-2025 20:09:00

Cita:

Empezado por Jarogo08 (Mensaje 564960)
Es justo eso lo que quieren que se haga. Si reinstalas o formateas el número de instalación tiene que ser distinto al que tenía antes, con lo cual el encadenamiento tiene que empezar de 0 (lo que significa que el primer registro no irá encadenado a nada)


Lo que se encadena son los registros de facturación por la huella y el registro anterior.
Si mis clientes están trabajando normalmente y yo decido cambiar algún literal del SIF o mostrar la API de otra forma mas clara, tendría que cambiar la versión del SIF porque se ha modificado con respecto al anterior y posteriormente colgar la actualización para que mis clientes se actualicen online, pero sigo encadenando los RF´s igual que antes. El emisor de las facturas no cambia.

Faneka 29-05-2025 08:16:18

Del encadenamiento se hablo en varios hilos, y como bien dijo @sglorka:
Como un SIF se identifica con los 3 parámetros OT+IDISTEMA+IDINSTALACION, la respuesta a la pregunta de cómo hay que encadenar los registros de facturación de un OT sería, por cada SIF que tenga desplegado.

novatico 29-05-2025 09:36:07

¿ Y que pasa si la empresa cierra por vacaciones 1 mes ?
¿ Como leches van a diferenciar entre una reinstalación, (si se tarda varios días) o un periodo de vacaciones ?

Creo que no tienen forma de saberlo.

Faneka 29-05-2025 09:43:01

No entiendo el tema de vacaciones con la reinstalación.
Yo por ejemplo me guardo en cada equipo un fichero con el nº de instalación, que el nº es el datetime (es uno de los ejemplos que pusieron ellos mismos), ese fichero se crea la primera vez que se genere un RF, mientras el fichero exista sera la misma instalación, en el caso que se formatee o se cambie de equipo, como no encuentra ese fichero se vuelve a crear el nº de instalación.
Y al igual que ese fichero para el nº de instalación tengo otros para saber cual fue el ultimo RF enviado y así realizar el encadenamiento.

novatico 29-05-2025 09:59:24

Quería hacer referencia a como van a distinguir si se ha producido una reinstalación que, salvo que se haya perdido toda la información, si se recupera todo lo anterior no tienen forma salvo que controlen tiempos de inactividad (de ahí mi comentario de vacaciones). Incluso una reinstalación, puede producirse de una forma rápida, y por tanto veo imposible que se enteren de una reinstalación.

Faneka 29-05-2025 14:20:28

Yo la verdad que estoy releyendo 27 veces todo y no se si cada vez lo tengo menos claro. Solo me faltaría atinar si en una red local donde se instala el programa en el servidor el numero de instalación es la del servidor o en cada puesto que tenga su acceso al servidor es una instalación distinta, ahora mismo despues de las últimas lecturas lo tengo como la última opción, cada puesto que accede al servidor tiene un número de instalación distinta. Así se por OT+IdSistema+Instalación (puesto) quien realiza los envios y cada uno tiene su encadenamiento propio.

bmfranky 29-05-2025 15:36:22

Hola, me he perdido algo?, cuando actualices la aplicación, hay que reiniciar el encadenamiento??

sglorka 29-05-2025 23:47:47

Cita:

Empezado por Faneka (Mensaje 564993)
Yo la verdad que estoy releyendo 27 veces todo y no se si cada vez lo tengo menos claro. Solo me faltaría atinar si en una red local donde se instala el programa en el servidor el numero de instalación es la del servidor o en cada puesto que tenga su acceso al servidor es una instalación distinta, ahora mismo despues de las últimas lecturas lo tengo como la última opción, cada puesto que accede al servidor tiene un número de instalación distinta. Así se por OT+IdSistema+Instalación (puesto) quien realiza los envios y cada uno tiene su encadenamiento propio.

Faneka, sólo tiene número de instalación el puesto de trabajo que actúa como un SIF, o sea, si es capaz de emitir, enviar y en su caso, conservar el RF por si sólo. Si necesita estar conectado al servidor central para realizar este proceso, entonces no es un SIF y la línea de encadenamiento de este puesto de trabajo será la del servidor central.
Si el puesto de trabajo o TPV es capaz de generar un RF, enviarlo (aunque lo podría hacer otro subsistema) y en su caso, conservarlo, entonces es un SIF y por ende, debe tener su número de instalación para identificarlo unívocamente y tendrá su propia línea de encadenamiento independiente del servidor central. Si se reinstala el servidor central se cambia su número de instalación pero no el del Tpv(en modo SIF) y viceversa.

Faneka 30-05-2025 08:08:44

Cita:

Empezado por sglorka (Mensaje 565010)
Faneka, sólo tiene número de instalación el puesto de trabajo que actúa como un SIF, o sea, si es capaz de emitir, enviar y en su caso, conservar el RF por si sólo. Si necesita estar conectado al servidor central para realizar este proceso, entonces no es un SIF y la línea de encadenamiento de este puesto de trabajo será la del servidor central.
Si el puesto de trabajo o TPV es capaz de generar un RF, enviarlo (aunque lo podría hacer otro subsistema) y en su caso, conservarlo, entonces es un SIF y por ende, debe tener su número de instalación para identificarlo unívocamente y tendrá su propia línea de encadenamiento independiente del servidor central. Si se reinstala el servidor central se cambia su número de instalación pero no el del Tpv(en modo SIF) y viceversa.

Muchas gracias @sglorka, ahora lo tengo claro, nosotros lo tenemos que cada puesto que factura crea el RF, lo envia y guarda tango envios, respuestas, etc.. , no tenemos algo centralizado (un servicio) que reciba las peticiones que se van generando de facturas para crear y enviar los RF.
Con lo cual cada puesto tiene que llevar su nº de instalación.

^\||/

Jarogo08 30-05-2025 08:13:45

Cita:

Empezado por bmfranky (Mensaje 564995)
Hola, me he perdido algo?, cuando actualices la aplicación, hay que reiniciar el encadenamiento??


No no... el hecho de actualizar la aplicación no hace que cambie el SIF. Pero el hecho de cambiar de servidor, o de formatear un servidor y tener que volver a poner el programa sí.

Jarogo08 30-05-2025 08:17:12

Cita:

Empezado por Faneka (Mensaje 564993)
Yo la verdad que estoy releyendo 27 veces todo y no se si cada vez lo tengo menos claro. Solo me faltaría atinar si en una red local donde se instala el programa en el servidor el numero de instalación es la del servidor o en cada puesto que tenga su acceso al servidor es una instalación distinta, ahora mismo despues de las últimas lecturas lo tengo como la última opción, cada puesto que accede al servidor tiene un número de instalación distinta. Así se por OT+IdSistema+Instalación (puesto) quien realiza los envios y cada uno tiene su encadenamiento propio.


Si tienes el programa en el servidor y equipos de la red tiran de él es un único SIF, sólo va a haber un encadenamiento. Por tanto, sólo debería haber un equipo que enviara los datos, porque si cada equipo envía sus registros no vas a cumplir con los 60 segundos de espera entre envío y envío (a no ser que encuentres la manera de solucionarlo, ver quién y cuando envió y esperar)

Faneka 30-05-2025 08:23:26

Cita:

Empezado por Jarogo08 (Mensaje 565014)
Si tienes el programa en el servidor y equipos de la red tiran de él es un único SIF, sólo va a haber un encadenamiento. Por tanto, sólo debería haber un equipo que enviara los datos, porque si cada equipo envía sus registros no vas a cumplir con los 60 segundos de espera entre envío y envío (a no ser que encuentres la manera de solucionarlo, ver quién y cuando envió y esperar)

Nosotros tenemos ERP de escritorio y la mayoría es un equipo el que factura y muchas veces una vez a la semana. En algunas instalaciones si que es de venta al publico en mostrador pero esas son grandes y estan en el SII. No creo que hay problema por eso.
Pero hablando de los 60 segundos, el que tiene que esperar ese tiempo es el OT+ID+NºInstalación supongo, no todas las instalaciones del programa ¿no? eso si que no lo había pensado. Si cada puesto es independiente para el encadenamiento tambien lo debería ser para el flujo de envío, o al menos así lo veo yo.

Jarogo08 30-05-2025 08:44:46

Cita:

Empezado por Faneka (Mensaje 565015)
Si cada puesto es independiente para el encadenamiento tambien lo debería ser para el flujo de envío, o al menos así lo veo yo.


Sí, claro. Si son SIFs distintos cada uno tiene su flujo. El caso que decía yo es cuando varios equipos de red apuntan a un servidor y es un único SIF

Faneka 30-05-2025 08:50:15

Cita:

Empezado por Jarogo08 (Mensaje 565017)
Sí, claro. Si son SIFs distintos cada uno tiene su flujo. El caso que decía yo es cuando varios equipos de red apuntan a un servidor y es un único SIF

^\||/ Ok, gracias por la puntualización.

Rja750 30-05-2025 11:07:01

Se hace inviable tener varios SIF o líneas de facturación instalado en cada pc con el mismo OT, IdSistemaInformatico, Version y distinto NumeroInstalacion. Esto obligaría a tener numeraciones diferentes en las altas, incluido las rectificativas y aunque tengan la misma BD en la nube esto sería ya el colmo. Creo que este quebradero de cabeza se podría simplificar y que nadie se dará cuenta de, si se ha actualizado el servidor o se ha añadido un nuevo puesto a la red. Si el titular del negocio cierra durante un periodo de tiempo por lo que sea, cuando vuelva a abrir seguirá con el siguiente RF y esto no quiere decir nada(ni que se ha formateado ni se ha defraudado ni nada). Otra cosa seria una nueva instalación de un nuevo OT.
----EDITO
Lo que me choca es la idea de que cada vez que actualizemos tengamos que tener un registro como primer RF sin registro anterior. No le puedo poner sentido comun a esto:
Un OT emite el RF NumSerieFactura = 1, NumSerieFactura =2, NumSerieFactura =3, NumSerieFactura =4 y ese dia actualiza con un nuevo NumeroInstalacion por modificacion del SIF. Cuando procede a emitir un nuevo RF es el NumSerieFactura =5 pero como si fuera el primer RF sin registro anterior. ¿Esto como es así? no le encuentro lógica. Lo único que se me viene a la cabeza es que al haber un salto en la trazabilidad, existe un antes y un después, por si se hubiese tocado para hacer defalcos o algo así.

Jarogo08 30-05-2025 11:45:05

Cita:

Empezado por Rja750 (Mensaje 565023)
Lo que me choca es la idea de que cada vez que actualizemos tengamos que tener un registro como primer RF sin registro anterior. No le puedo poner sentido comun a esto:
Un OT emite el RF NumSerieFactura = 1, NumSerieFactura =2, NumSerieFactura =3, NumSerieFactura =4 y ese dia actualiza con un nuevo NumeroInstalacion por modificacion del SIF. Cuando procede a emitir un nuevo RF es el NumSerieFactura =5 pero como si fuera el primer RF sin registro anterior. ¿Esto como es así? no le encuentro lógica. Lo único que se me viene a la cabeza es que al haber un salto en la trazabilidad, existe un antes y un después, por si se hubiese tocado para hacer defalcos o algo así.


Es que actualizar la versión del programa no hace que cambie el NumeroInstalacion, o no debería hacerlo. ¿donde habéis leído que tiene que hacer eso?


La franja horaria es GMT +2. Ahora son las 07:34:51.

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