![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#2521
|
||||
|
||||
buenos dias pablog2k !
Cita:
¿Puedes postear x fa, tu importacion del wsdl ? a ver si con eso acertamos. Saludos ! |
#2522
|
|||
|
|||
Os paso un ejemplo de XML que funciona, tendréis que cambiar algunas cosas, a saber:
NOMBRE_EMISOR_FACTURA: Es el nombre de la persona o empresa que emite la factura, debe ser el mismo que figura en el certificado electrónico con el que se firma el envío. NIF_EMISOR_FACTURA: Es el nif de la persona o empresa que emite la factura, debe ser el mismo que figura en el certificado electrónico con el que se firma el envío. NOMBRE_CLIENTE: Nombre del cliente, debe ser un nombre real. NIF_CLIENTE: Es el nif del cliente, debe ser el nif real del nombre del cliente. Ojo porque si te inventas los dos valores anteriores dará error aunque sea un nif válido, no te puedes inventar los dos valores anteriores. NOMBRE_EMPRESA_SOFTWARE: Nombre de la empresa o persona que ha hecho el software de facturación, debe ser real. NIF_EMPRESA_SOFTWARE: Nif de la empresa o persona que ha hecho el software de facturación, también debe ser real y el que corresponda con el nombre anterior. Ojo porque si te inventas los dos valores anteriores dará error aunque sea un nif válido, no te puedes inventar los dos valores anteriores. Código PHP:
Código PHP:
Última edición por Neftali [Germán.Estévez] fecha: 01-10-2024 a las 09:31:33. Razón: Cambiada etiqueta CODE por PHP para evitar página muy ancha |
#2523
|
|||
|
|||
![]() Gracias Richidemola, lo probaré
|
#2524
|
|||
|
|||
Cita:
![]() |
#2525
|
|||
|
|||
Cita:
Cita:
Por tanto lo más próximo adónde buscar para tal consulta es el propio ordenador, por qué tiene esta información. Delphi lo expone a través de varias vías, por ejemplo System.DateUtils.TTimeZone (desde XE); probablemente usando Código:
TTimeZone.Local.GetUtcOffset A nivel de Windows, lo normal es que acabe en una llamada a GetTimeZoneInformation (antiguo pero suficiente para el propósito) o GetDynamicTimeZoneInformation (desde Vista, necesitará una versión no demasiada antigua de Delphi). Hay equivalente en los demás sistemas operativos. Online hay un montón de sitios con esta información. Te recomiendo https://www.timeanddate.com/time en inglés, es corto pero acierta. Verás que los husos horarios son realmente una cosa de los políticos, aplicado por algunos laboratorios. Por tanto la respuesta correcta a tu pregunta es probablemente el Real Observatorio de la Armada. |
#2526
|
|||
|
|||
alguien me puede decir como habéis conseguido quitar los milisegundos en la fecha que se genera a partir de la variable TXSDateTime para rellenar el nodo FechaHoraHusoGenRegistro? o utilizáis otra tipo de variable?
|
#2527
|
|||
|
|||
¿Pero entonces tenemos que darnos de alta en algún sitio para poder hacer los envíos? ¿Donde notificamos el NIF y/o el certificado para que admitan el envío de VeriFactu? No recuerdo haber leído nada de eso.
Cita:
|
#2528
|
|||
|
|||
me autorespondo, es utilizando el metodo XSToNative y poniendo 'a piñón' el valor que queramos
|
#2529
|
||||
|
||||
La AEAT sobre el error 4118:
Cita:
|
#2530
|
|||
|
|||
Tiene pinta de que el error va a estar en que nuestro XML tiene repetido el nodo "RegFactuSistemaFacturacion".
Al recibir el XML, AEAT intenta buscar dentro de ese nodo los datos de la factura, pero lo que encuentra es otro nodo "RegFactuSistemaFacturacion". No soy un experto en XML ni sé cómo AEAT interpreta el archivo, pero me da que el problema puede estar ahi. Otra cosa que he notado en mi XML con respecto al que publicaron recientemente es que el que yo genero tiene dos nodos de más: <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 xmlns:NS1="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd"> ..... </SOAP-ENV:Body> </SOAP-ENV:Envelope> El otro XML que publicaron que sí se envía sin error no tiene esas dos líneas. No sé qué hay que configurar en Delphi, o en el componente HTTPRIO, o en el wsdl importado, etc. para que no haga eso. Por si esa fuera la causa del problema. |
#2531
|
||||
|
||||
Cita:
Probare mañana a enviar XMLS manuales, copiando algunos de los que han remitido por aqui. Saludos! |
#2532
|
|||
|
|||
De los que habéis podido enviar, que hay que poner exactamente en el campo FechaHoraHusoGenRegistro ??
Porque he probado: 2024-10-01T13:17:13+01:00 (error) 2024-10-01T13:17:13+02:00 (error) 2024-10-01T12:17:13+01:00 (restando una hora para que aplique el +01:00, error) 2024-10-01T11:17:13+02:00 (restando dos horas para que aplique el +02:00, error) 2024-10-01T15:17:13+02:00 (sumando dos horas para que aplique el +02:00, error) Última edición por pablog2k fecha: 01-10-2024 a las 13:26:42. |
#2533
|
|||
|
|||
Cita:
Comprueba también que la hora de tu equipo, si es una aplicación de escritorio, es igual a la hora de la aeat, en mi caso como la aplicación funciona en navegador web cojo la hora del servidor web que es la misma hora que la de la aeat porque la hora del servidor web está sincronizada y no tengo que andar mirando la hora del PC. Saludos. |
#2534
|
|||
|
|||
Cita:
# curl "http://worldtimeapi.org/api/timezone/Europe/Madrid" si estás en península. Te va a devolver, entre otras cosas, "datetime": "2024-10-01T13:56:54.849406+02:00". Esta fecha es la que tienes que informar en el FechaHoraHusoGenRegistro, indica la hora actual y el +2 hace referencia al horario de verano. Si estás en las Islas Canarias ejecutas # curl "http://worldtimeapi.org/api/timezone/Atlantic/Canary", donde obtenemos "datetime": "2024-10-01T12:55:50.103145+01:00", donde el +1 indica horario de verano ya que en las Islas hay una hora menos. |
#2535
|
|||
|
|||
Cita:
De todas formas mi problema no es obtener la fecha actual, es saber que narices están esperando... he probado todas las maneras habidas y por haber, restando y sumando horas.... y nada (tus ejemplos tampoco me funcionaron ,ni con milisegundos ni sin milisegundos) |
#2536
|
|||
|
|||
Con el .pas generado al importar el WSDL como SOAP 1.2, solo tuve que añadir esta línea al .pas (gracias a pablog2k)
La añadí justo después de la que viene por defecto:
Después de ese cambio, me daba otro error indicando que faltaba el campo "IDDestinatario", pero ese campo sí que estaba. Lo que pasa es que en mi IDDestinatario había añadido el subnodo "IDOtro". Lo quité y ya pude hacer el envío. Ahora bien, el envío me devuelve "Incorrecto", así que ahora tendré que ir poco a poco buscando los motivos, pero al menos el error anterior ya no me da. Supongo que ahora tendré que buscar en la respuesta (RespuestaBaseType) las causas de error que devuelve la AEAT. Cita:
Última edición por Neftali [Germán.Estévez] fecha: 09-10-2024 a las 08:14:05. |
#2537
|
|||
|
|||
Cita:
Si miras esta página de Wikipedia https://es.wikipedia.org/wiki/UTC%2B...opedia%20libre podrás ver que España se rige en la zona horaria UTC+1 ya que tiene una hora más que las situadas en el meridiano de Greenwich. Como además, tenemos una hora adelantada debido al cambio horario de verano, entonces la hora de expresa como UTC+2. Cuando se vuelva a cambiar la hora a la de invierno, atrasaremos una y volveremos a UTC+1. En Canarias sería UTC+0. De todas maneras, como el ordenador donde va estar tu programa debe tener conexión a Internet sí o sí, debes tener activada la sincronización horaria con el reloj de Microsoft o cualquier otro, cualquier librería de cualquier lenguaje puede obtener la hora del sistema y expresarla en formato Iso8601 que es la que nos atañe. |
#2538
|
|||
|
|||
Para poder ver el detalle del error, hay que hacer el envío usando "RespuestaRegFactuSistemaFacturacionType" para la respuesta, en vez de "RespuestaBaseType".
Por lo que el envío usando HTTPRIO hay que hacerlo así: Solo así puedo ver el array de errores que devuelve Hacienda. Última edición por Neftali [Germán.Estévez] fecha: 01-10-2024 a las 15:18:32. Razón: Añadir el TAGs al código |
#2539
|
|||
|
|||
ChatGPT me hizo un favor:
XSDatetime.FractionalSeconds := 0; Con eso se elimina el .000 de la fecha/hora |
#2540
|
|||
|
|||
Increíble pero cierto.....
resulta que estaba poniendo como pruebas la fecha de una factura de hace unos días..... y no se puede hacer eso tienes que poner la fecha de facturas de HOY para los envíos de hoy ..... ya podrían indicarlo claramente en el mensaje de error , en vez de decir todo el rato El valor del campo FechaHoraHusoGenRegistro no está dentro del umbral establecido sobre la fecha del sistema de la AEAT ![]() |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
![]() |
|