Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


ÍNDICE

  1. Visión general
  2. Ejemplo de utilización
  3. Menús
  4. Diccionario de datos.
  5. Tablas.
  6. .Temas relacionados.


01. VISIÓN GENERAL

Se implementa la generación de XML  y procedimiento de timbrado de los documentos Factura "NF", Nota de Crédito "NCC" , Nota de Débito "NDC" y Guía de Remisión "RFN" electrónicos según lo establecido por la SET en la  versión N° 150-24/06/2019/SIFEN (Especificado en el siguiente documento).

02. EJEMPLO DE UTILIZACIÓN

Configuraciones Previas

View file
nameManual Técnico Versión 150.pdf
height250


Rutinas:

Rutina
FISA812.PRWDefinición de catálogos.
FISA813.PRWMantenimiento de catálogos.
FISA814.PRWInformaciones de catálogos.
LOCXFUNA.PRXFunciones genéricas de notas fiscales.
LOCXNF.PRWNotas Fiscales.
LOCXNF2.PRWFunciones genéricas de notas fiscales.
M100IVA.PRXFunción de cálculo de IVA.
M100IVAI.PRWFunción de cálculo de IVA.
M460IVA.PRXFunción de cálculo de IVA.
M460IVAI.PRWFunción de cálculo de IVA.
M486PAGOS.PRWFunción de registro de pagos para Facturación Electrónica.
M486PDFPAR.PRWImpresión de Factura Electrónica.
M486XFUNPAR.PRWFunciones genéricas para Facturación Electrónica.
MATA462AN.PRWEmisión de Remisión
MATA468N.PRXGeneración de Facturas.
MATA486.PRWDocumentos Electrónicos.
MATA992.PRWControl de formularios.


02. EJEMPLO DE UTILIZACIÓN

Configuraciones Previas

GetSrvProfString('startpath','')+'\cfd\inicfd\fatepar.ini'
Totvs custom tabs box
tabsParámetros, Archivos Necesarios ,Configuraciones Necesarias, Facturas, Notas Crédito, Notas Débito, Remitos, Documentos Electrónicos, Punto de Entrada Xml Salida, Punto de Entrada Xml Entrada,Personalizar PDF
idspaso01,paso02,paso03,paso04,paso05,paso06,paso07,paso08,paso09,paso10,paso11
Totvs custom tabs box
tabsParámetros, Archivos Necesarios ,Configuraciones Necesarias, Facturas, Notas Crédito, Notas Débito
idspaso01,paso02,paso03,paso04,paso05,paso06
Totvs custom tabs box items
defaultyes
referenciapaso01
Nombre de la VariableValor
MV_PATH814C:\Catalogos_csv\
MV_F3HNUMCarácter
MV_CFDI_AMT
MV_CFDSMARGetClientDir()
MV_CFDI_PASIFENWS
MV_CFDDOCSGetSrvProfString('startpath','')+'\cfd\facturas\'
MV_CFDI_PXcertificado.pfx
MV_CFDICVE12345678a
MV_IDCONEN1
MV_IDCSC0001
MV_CSCABCD0000000000000000000000000000
MV_CFDUSO1
MV_CFDFTSGetSrvProfString('startpath','')+'\cfd\inicfd\fatspar.ini'
MV_CFDFTE
Totvs custom tabs box items
defaultnoyes
referenciapaso02paso01
Nombre de la VariableValor Ejemplo
MV_PATH814C:\Catalogos_csv\
MV_F3HNUM
MV_CFDI_AMT
MV_CFDSMAR

GetClientDir()

Cuando se usa en versión web se debe crear un carpeta en alguna ubicación con permisos de lectura y escritura;  y se debe informar la ruta ejemplo "C:\temp\". Adicional en dicha ruta debe esta el certificado y la carpeta SIFENWS.

MV_CFDI_PASIFENWS
MV_CFDDOCSGetSrvProfString('startpath','')+'\cfd\facturas\'
MV_CFDI_PXcertificado.pfx
MV_CFDICVE12345678a
MV_IDCONEN1
MV_IDCSC0001
MV_CSCABCD0000000000000000000000000000
MV_CFDUSO1
MV_RELACNT[email protected]
MV_TIPTRANS
MV_ASYNLOT50
MV_TIPCON1=Persona Física ,2=Persona Jurídica
MV_IMPKUDE

1= Imprime facturas autorizadas

2= Imprime facturas transmitidas y autorizadas


totvs-custom-tabs-
  • Archivos de Catálogos.
    • Una vez configurado el parámetro MV_PATH814 con una ruta local, deberá colocar los archivos .csv anexos a esta solución en el archivo CatalogosFact.zip. En este archivo se encuentran los catálogos en formato csv los cuales serán tomados por la rutina Carga de Catálogos para generar sus registros en Protheus.
  • Certificado digital.
    • El certificado digital informado en el parámetro MV_CFDI_PX, deberá ser colocado dentro dentro de la ruta informada en el parámetro MV_CFDSMAR.
  • Archivos .Ini para generación de los archivos xml.
    • fatspar.ini. - Deberá ser colocado en la ruta informada en el parámetro MV_CFDFTS.
    • fatepar.ini - Deberá ser colocado en la ruta informada en el parámetro MV_CFDFTE.
  • Archivo .exe para realizar consumo de los servicios web del SIFEN.
    • El nombre del archivo deberá ser colocado en el parámetro MV_CFDI_PA, el archivo deberá ser colocado en la ruta informada en el parámetro MV_CFDSMAR.
      • En caso de que el archivo se encuentre en una carpeta, la carpeta deberá tener el mismo nombre del archivo .exe.
totvs-custom-tabs-box-items
defaultno
referenciapaso03paso02
  • Archivos de Catálogos.
      • En el módulo de Facturación, ingresar a la rutina Definición de Catálogos  "Actualizaciones | Archivos| Definición de Catálogos". La primera vez detonará la carga de los archivos csv al Protheus. Es importante realice este paso, pues las configuraciones siguientes dependen de la correcta carga de la información de catálogos al sistema Protheus.

      • En el módulo de Facturación, ingresar a la rutina Mantenimiento de Catálogos "Actualizaciones | Archivos | Mantenimiento de Catálogos". Ingresar al catálogo S030 - DIRECCIÓN DEL EMISOR, informar los datos correspondientes a la dirección del emisor.
        • Ejemplo:
          • RUC correspondiente al emisor.
          • Número  - Correspondiente al informado antes el SIFEN.
          • Tipo Régimen - Régimen del emisor de acuerdo al catálogo S001.
          • Departamento - Correspondiente al RUC informado y de acuerdo al catálogo S003.
          • Distrito - Correspondiente al RUC informado y de acuerdo al catálogo S031.
          • Ciudad - Correspondiente al RUC informado y de acuerdo al catálogo S012.

    Para los siguientes registros será necesario informar los siguientes campos para el correcto llenado de los archivos xml.

    • Clientes - (SIGAFIS | Actualizaciones | Archivos| Clientes)
      • A1_TIPDOC - Tipo de documento.
      • A1_NUM - Número de casa.
      • A1_DEPTO - Código departamento de acuerdo a la SET.
      • A1_DISTR - Código de distrito de acuerdo a la SET.
      • A1_CIUDAD - Código de ciudad de acuerdo a la SET.
      • A1_PESSOA - Persona Física/Jurídica
      • A1_CGC - RUC.
      • A1_NIF - Número de identificación Fiscal
      • A1_NOME - Nombre del cliente.
      • A1_NREDUZ - Nombre de fantasía.
      • A1_END - Dirección del cliente.
      • A1_TEL - Teléfono del cliente.
      • A1_EMAIL - Correo del cliente.
      • A1_COD - Código interno del cliente.
    • Países - (SIGACOM | Actualizaciones | Archivo Importaciones| Paises)
      • YA_CODERP - Cod. ERP. Clave de país de acuerdo al catálogo de países.
    • Monedas - (SIGACTB | Actualizaciones | Archivos| Monedas Contables)
      • CTO_MOESAT - Moneda SAT. Clave de moneda de acuerdo al catálogo monedas.
    • Unidades de medida - (SIGAFIS | Actualizaciones | Archivos| Unidades de Medida).
      • AH_COD_CO - Ori Cert Cód. Clave de unidad de medida de acuerdo al catálogo de unidades de medida.
    • Impuestos variables - (SIGAFIS | Actualizaciones | Archivos| Impuestos Variab.).
      • FB_CODIMP - Cod. Impuest. Código de impuesto de acuerdo al catálogo de impuesto afectado.
      • FB_CLASSE - Clase Imp. Indicar la clase de impuesto.
    • Control de Formularios - (SIGAFIS | Actualizaciones | Archivos| Control de formularios).
      • FP_SERIE2 - Serie 2. De acuerdo a la numeración definida por el SIFEN empezando con una serie en blanco hasta acabar la numeración 0000001 - 9999999.
      • FP_CAI - No. Aprob. Informar el número de timbrado para la serie usada de acuerdo al tipo de documento.
      • FP_FINITIM - Fch. In. Tim. Informar la fecha de inicio del timbrado.
    • Productos - (SIGAFIS | Actualizaciones | Archivos | Productos).
      • B1_COD - Código del producto.
      • B1_DESC - Descripción del producto.
      • B1_UM - Unidad de Medida.
      • Una vez configurado el parámetro MV_PATH814 con una ruta local, deberá colocar los archivos .csv anexos a esta solución en el archivo CatalogosFact.zip. En este archivo se encuentran los catálogos en formato csv los cuales serán tomados por la rutina Carga de Catálogos para generar sus registros en Protheus.
    • Certificado digital.
      • El certificado digital informado en el parámetro MV_CFDI_PX, deberá ser colocado dentro de la ruta informada en el parámetro MV_CFDSMAR.
    • Archivo .exe (SIFENWS.EXE) para realizar consumo de los servicios web del SIFEN
      • El archivo SIFENWS.EXE se puede descargar del siguiente enlace https://suporte.totvs.com/portal/p/10098/download?e=1083727 una vez descargado el archivo:
        • Localizar el archivo descargado, y descomprimir.
        • Ubique la carpeta "Paraguay" dentro se encuentra el comprimido SIFENWS descomprima no mover ninguno de los elementos.
      • El nombre del archivo(ejecutable) deberá ser colocado en el parámetro MV_CFDI_PA (SIFENWS), el archivo deberá ser colocado en la ruta informada en el parámetro MV_CFDSMAR.
    • Dentro de la ruta '\Protheus_data\system\', deberá crear los siguientes directorios:
      • "\facturas\" 
      • Dentro de la ruta '\Protheus_data\system\facturas\', deberá crear los siguientes directorios:
        • "\autorizados\" - Almacena las facturas autorizadas por el SIFEN.
        • "\canceladas\" - Almacena los documentos cancelados. Los documentos cancelados son documentos que fueron enviados y autorizados por el SIFEN, pero que después fueron cancelados.
        • "\inutilizadas\" - Almacena los documentos inutilizados. Los documentos inutilizados son documentos que no fueron transmitidos al SIFEN, pero que fueron reportados como "cancelados" sin ser aprobados previamente.
    • Para el uso en versión web se debe tener actualizado WEBAGENT y configurar correctamente de acuerdo  a la documentación.
paso04
Totvs custom tabs box items
defaultno
referenciapaso03
  • Catálogos.
    • En el módulo de Facturación, ingresar a la rutina Definición de Catálogos  "Actualizaciones | Archivos| Definición de Catálogos". La primera vez detonará la carga de los archivos csv al Protheus. Es importante realice este paso después de configurar todos los parámetros , pues las configuraciones siguientes dependen de la correcta carga de la información de catálogos al sistema Protheus.

    • Catálogos.

      View file
      nameCatalogos.zip
      height250

      CódigoDescripción
      S001Tipo de Régimen
      S002Unidad de Medida
      S003Departamento
      S004Monedas
      S005Países
      S006Catálogo de actividad económica
      S007Catálogo de afectación
      S008Catálogo de categoría ISC
      S009Catálogo de tasas ISC
      S010Condiciones
      S011Catálogo de Regímenes Aduaneros
      S012Referencia Geográfica
      S013Tipos de Pago
      S014Denominación Tarjeta
      S015Documento Electrónico
      S016Tipo de transacción
      S017Catálogo de Impuesto Afectado
      S018Tipo Documento de Identidad
      S019Indicador de Presencia
      S020Doc Identidad VEN/TRA
      S021Motivo de Emisión NC
      S022Motivo de Emisión RE
      S023Catálogo de Respon. Emisión
      S024Catálogo de Vehículos
      S025Catálogo de Tipo de Combustible
      S026Catálogo de Mod. de Transporte
      S027Catálogo Respon. del Flete
      S028Catálogo de Doc. Impreso
      S029Tipos de Operación
      S030Dirección del Emisor
      S031Distrito
      S032Procesamiento Pago
Totvs custom tabs box items
defaultno
referencia
    • En el módulo de Facturación, ingresar a la rutina
Facturación
    • Mantenimiento de Catálogos "Actualizaciones |
Facturación | Facturación".
  • Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
    1. Tipo NF (F2_TIPONF).
    2. Tipo Transacción (F2_TPTRANS).
  • Confirmar el documento.
  • Una vez finalizado se mostrará una ventana para informar las formas de pago del documento, estas son obligatorias para la correcta generación del documento xml. (Deberán contemplar el valor completo del documento para que se válido)
    1. En caso no haber registrado la formas de pago al confirmar el documento será posible registrarlas seleccionando el documento y en "Otras acciones" seleccionar la opción "Registro pagos."
  • Una vez registradas las formas de pago confirmar.
  • Seleccionar el documento, en "Otras acciones" seleccionar "Facturas electrónicas", será generado el documento Xml, una vez generado el documento se mostrará un mensaje preguntando si se desea transmitir el documento, en caso de confirmar se realizará la transmisión.
    1. En caso de indicar que no se desea transmitir el documento se podrá realizar la transmisión seleccionando el documento y en "Otras acciones" seleccionar la opción "Transmitir DE".
  • En caso de haberse realizado correctamente la transmisión se mostrará un mensaje indicando transmisión satisfactoria, en caso de no haber sido realizada la transmisión se mostrará un mensaje indicando los errores ocurridos durante la transmisión.
  • Totvs custom tabs box items
    defaultno
    referenciapaso05
    1. En el módulo de Facturación, ingresar a la rutina Facturación "Actualizaciones | Facturación | Facturación".
    2. Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo NF (F2_TIPONF).
      2. Tipo Transacción (F2_TPTRANS).
    3. Confirmar el documento.
    4. Una vez finalizado se mostrará una ventana para informar las formas de pago del documento, estas son obligatorias para la correcta generación del documento xml. (Deberán contemplar el valor completo del documento para que se válido)
      1. En caso no haber registrado la formas de pago al confirmar el documento será posible registrarlas seleccionando el documento y en "Otras acciones" seleccionar la opción "Registro pagos."
    5. Una vez registradas las formas de pago confirmar.
    6. Seleccionar el documento, en "Otras acciones" seleccionar "Facturas electrónicas", será generado el documento Xml, una vez generado el documento se mostrará un mensaje preguntando si se desea transmitir el documento, en caso de confirmar se realizará la transmisión.
      1. En caso de indicar que no se desea transmitir el documento se podrá realizar la transmisión seleccionando el documento y en "Otras acciones" seleccionar la opción "Transmitir DE".
    7. En caso de haberse realizado correctamente la transmisión se mostrará un mensaje indicando transmisión satisfactoria, en caso de no haber sido realizada la transmisión se mostrará un mensaje indicando los errores ocurridos durante la transmisión.
    Totvs custom tabs box items
    defaultno
    referenciapaso06
    1. En el módulo de Facturación, ingresar a la rutina Facturación "Actualizaciones | Facturación | Facturación".
    2. Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo NF (F2_TIPONF).
      2. Tipo Transacción (F2_TPTRANS).
    3. Confirmar el documento.
    4. Una vez finalizado se mostrará una ventana para informar las formas de pago del documento, estas son obligatorias para la correcta generación del documento xml. (Deberán contemplar el valor completo del documento para que se válido)
      1. En caso no haber registrado la formas de pago al confirmar el documento será posible registrarlas seleccionando el documento y en "Otras acciones" seleccionar la opción "Registro pagos."
    5. Una vez registradas las formas de pago confirmar.
    6. Seleccionar el documento, en "Otras acciones" seleccionar "Facturas electrónicas", será generado el documento Xml, una vez generado el documento se mostrará un mensaje preguntando si se desea transmitir el documento, en caso de confirmar se realizará la transmisión.
      1. En caso de indicar que no se desea transmitir el documento se podrá realizar la transmisión seleccionando el documento y en "Otras acciones" seleccionar la opción "Transmitir DE".
    7. En caso de haberse realizado correctamente la transmisión se mostrará un mensaje indicando transmisión satisfactoria, en caso de no haber sido realizada la transmisión se mostrará un mensaje indicando los errores ocurridos durante la transmisión.

    03. Menús

    En el Configurador (SIGACFG), acceda a Entornos/Archivo/Menú (CFGX013). Informe las nuevas opciones de menú conforme las instrucciones a continuación:

    ...

    Menú

    ...

    Facturación

    ...

    Submenú

    ...

    Actualizaciones | Archivos

    ...

    Nombre de la Rutina

    ...

    Definición de Catálogos

    ...

    Programa

    ...

    FISA812

    ...

    Módulo

    ...

    Facturación

    ...

    Tipo

    ...

    Función Protheus

      • Archivos | Mantenimiento de Catálogos". Ingresar al catálogo S030 - DIRECCIÓN DEL EMISOR, informar los datos correspondientes a la dirección del emisor.
        • Ejemplo:
          • RUC correspondiente al emisor.
          • Número  - Correspondiente al informado antes el SIFEN.
          • Tipo Régimen - Régimen del emisor de acuerdo al catálogo S001.
          • Departamento - Correspondiente al RUC informado y de acuerdo al catálogo S003.
          • Distrito - Correspondiente al RUC informado y de acuerdo al catálogo S031.
          • Ciudad - Correspondiente al RUC informado y de acuerdo al catálogo S012.

    Dentro del módulo configurador en la configuración de la empresa verificar la siguiente configuración se encuentre registrada:

    • Datos generales
      • Nombre comercial.
      • Teléfono
      • RUC (CNPJ o CPF).
    • Dirección Fiscal/Entrega
      • Dirección Fiscal/Entrega
      • Barrio
      • Ciudad Fiscal Entrega
      • CP Fiscal/Entrega
    • Adicionales
      • Actividad económica - Correspondiente al RUC informado y de acuerdo al catálogo S006.

    Para los siguientes registros será necesario informar los siguientes campos para el correcto llenado de los archivos xml.

    • Clientes - (SIGAFIS | Actualizaciones | Archivos| Clientes)
      • A1_TIPDOC - Tipo de documento.
      • A1_NUM - Número de casa.
      • A1_DEPTO - Código departamento de acuerdo a la SET.
      • A1_DISTR - Código de distrito de acuerdo a la SET.
      • A1_CIUDAD - Código de ciudad de acuerdo a la SET.
      • A1_PESSOA - Persona Física/Jurídica
      • A1_CGC - RUC.
      • A1_NIF - Número de identificación Fiscal
      • A1_NOME - Nombre del cliente.
      • A1_NREDUZ - Nombre de fantasía.
      • A1_END - Dirección del cliente.
      • A1_TEL - Teléfono del cliente.
      • A1_EMAIL - Correo del cliente.
      • A1_COD - Código interno del cliente.
    • Países - (SIGACOM | Actualizaciones | Archivo Importaciones| Países)
      • YA_CODERP - Cod. ERP. Clave de país de acuerdo al catálogo de países.
    • Monedas - (SIGACTB | Actualizaciones | Archivos| Monedas Contables)
      • CTO_MOESAT - Moneda SAT. Clave de moneda de acuerdo al catálogo monedas.
    • Unidades de medida - (SIGAFIS | Actualizaciones | Archivos| Unidades de Medida).
      • AH_COD_CO - Ori Cert Cód. Clave de unidad de medida de acuerdo al catálogo de unidades de medida.
    • Impuestos variables - (SIGAFIS | Actualizaciones | Archivos| Impuestos Variab.).
      • FB_CODIMP - Cod. Impuest. Código de impuesto de acuerdo al catálogo de impuesto afectado.
      • FB_CLASSE - Clase Imp. Indicar la clase de impuesto.
    • Control de Formularios - (SIGAFIS | Actualizaciones | Archivos| Control de formularios).
      • FP_SERIE2 - Serie 2. De acuerdo a la numeración definida por el SIFEN empezando con una serie en blanco hasta acabar la numeración 0000001 - 9999999.
      • FP_CAI - No. Aprob. Informar el número de timbrado para la serie usada de acuerdo al tipo de documento.
      • FP_FINITIM - Fch. In. Tim. Informar la fecha de inicio del timbrado.
    • Productos - (SIGAFIS | Actualizaciones | Archivos | Productos).
      • B1_COD - Código del producto.
      • B1_DESC - Descripción del producto.
      • B1_UM - Unidad de Medida.
    • Condiciones de pago - (SIGAFAT | Actualizaciones | Archivos | Condiciones de pago).
      • Pago de contado  
        • E4_BXTITAV = 1-Si. Baja título automática.
      • Pago en cuota o plazo.
        • E4_BXTITAV = 2-No. Baja título automática.
        • E4_COND - Informar el plazo o cuotas.
          • Ejemplo plazo
            • "30" - Genera un plazo de 30 días.
          • Ejemplo cuota
            • "30,60,90" - Genera 3 cuotas, una cada 30 días.
    • Transportadoras (SIGACOM | Actualizaciones | Archivo importaciones | Transportadoras)
      • A4_NOME - Nombre
      • A4_CGC - RUC
      • A4_TIPCON - Tipo Contrib
      • A4_TIPID - Tipo de Iden (De acuerdo al catálogo S018).
    • Vehículos (SIGAOMS | Actualizaciones | Logística | Vehículos)

      • DA3_DESC - Modelo
      • DA3_PLACA - Matrícula
      • DA3_CHASSI - Chasís
      • DA3_TIPTR2 - Tipo Transporte
      • DA3_TIPID - Tipo Vehículo (Tipo de identificación).
    Totvs custom tabs box items
    defaultno
    referenciapaso04

    Pago de Contado

    1. En el módulo de Facturación, ingresar a la rutina Facturación "Actualizaciones | Facturación | Facturación".
    2. Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo NF (F2_TIPONF).
      2. Tipo Transacción (F2_TPTRANS).
      3. Seleccionar una condición de pago que realice baja automática. (E4_BXTITAV = 1)
    3. Confirmar el documento.
    4. Una vez finalizado se mostrará una ventana para informar las formas de pago del documento, estas son obligatorias para la correcta generación del documento xml. (Deberán contemplar el valor completo del documento para que sea válido)
      1. Para la correcta generación deberán ser informados los campos de acuerdo al tipo de pago.
        1. Tipo de pago 
          1. Pago con Tarjetas.
            1. Tipo Tarjeta
            2. Código de autorización de operación.
            3. Número de Tarjeta (Últimos 4 dígitos).
          2. Pago con cheque. 
            1. Banco emisor.
            2. Número de cheque.
        2. Monto de pago
        3. Forma de procesamiento de pago
      2. En caso no haber registrado la formas de pago al confirmar el documento será posible registrarlas seleccionando el documento y en "Otras acciones" seleccionar la opción "Registro pagos."
    5. Una vez registradas las formas de pago confirmar.


    Pago a plazo

    1. En el módulo de Facturación, ingresar a la rutina Facturación "Actualizaciones | Facturación | Facturación".
    2. Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo NF (F2_TIPONF).
      2. Tipo Transacción (F2_TPTRANS).
      3. Seleccionar una condición de pago que NO realice baja automática y genere pago con plazo. (Ejemplo: E4_BXTITAV = 2 y E4_COND = 30)
    3. Confirmar el documento.

    Pago en cuota

    1. En el módulo de Facturación, ingresar a la rutina Facturación "Actualizaciones | Facturación | Facturación".
    2. Registrar una factura, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo NF (F2_TIPONF).
      2. Tipo Transacción (F2_TPTRANS).
      3. Seleccionar una condición de pago que NO realice baja automática y genere cuotas. (Ejemplo: E4_BXTITAV = 2 y E4_COND = 30,60,90)
    3. Confirmar el documento.
    Totvs custom tabs box items
    defaultno
    referenciapaso05
    1. En el módulo de Facturación, ingresar a la rutina Generac. de Notas  de Crédito y Débito "Actualizaciones | Facturación | Generac. de Notas  de Crédito y Débito".
    2. Registrar una nota de crédito, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo Nota C (F1_TIPREF) - Motivo de la emisión de la nota de crédito.
    3. Dentro de "Otras acciones | Doc Orig" seleccionar el documento al que corresponde la nota de crédito.
    4. Confirmar el documento.

    Nota: Las notas de crédito deben tener un documento asociado. Campos D1_NFORI, D1_SERIORI informados.

    Totvs custom tabs box items
    defaultno
    referenciapaso06
    1. En el módulo de Facturación, ingresar a la rutina Generac. de Notas  de Crédito y Débito "Actualizaciones | Facturación | Generac. de Notas  de Crédito y Débito".
    2. Registrar una nota de débito, informar los campos necesarios en la factura para generar correctamente el archivo xml.
      1. Tipo Nota D (F2_TIPREF).
    3. Al registrar la nota de débito deberán ser informados los campos del documento al cual se encuentra asociada.
    4. Confirmar el documento.

    Nota: Las notas de crédito deben tener un documento asociado. Campos D2_NFORI, D2_SERIORI informados.

    Totvs custom tabs box items
    defaultno
    referenciapaso07
    1. En el módulo de Facturación, ingresar a la rutina Pedidos de venta "Actualizaciones | Pedidos | Pedidos de venta". 

      1. Registrar un pedido que genere un remito e informar los datos necesarios en el pedido para generar correctamente el archivo xml.
        1. Transp. (C5_TRANSP)
        2. Doc Gener. (C5_DOCGER) = 2 - Remisión
        3. Vehic. Trans. (C5_VEICULO)
        4. Motivo (C5_MODTRAD)
        5. Tipo NF (C5_TIPONF)
        6. Tipo Transac. (C5_TPTRANS)
        7. Incoterms (C5_INCOTER)
        8. Fec. Ini. Tras. (C5_FECDSE)
        9. Fch. Fin Tras. (C5_FECHDE)
        10. Resp. Flete (C5_TPRESFL)
    2. Confirmar el documento.
    3. En el módulo de Facturación, ingresar a la rutina Generac de remito "Actualizaciones | Form. De Remisión | Generac de remito".

    4. Realizar la generación del remito usando el pedido antes generado.


    Totvs custom tabs box items
    defaultno
    referenciapaso08
    1. En el módulo de Facturación, ingresar a la rutina Documentos Electrónicos "Actualizaciones | Facturación | Documentos Electrónicos".
    2. Seleccionar los parámetros de acuerdo a los documentos que serán visualizados/procesados.
      1. ¿Tipo documento? - Seleccionar el tipo de documento.
        1. Factura
        2. Nota Débito
        3. Nota Crédito
        4. Remisión
      2. ¿Serie? - Seleccionar la serie de los documentos.
      3. ¿Estatus? - Estatus de los documentos.
        1. 1 - No transmitida.
        2. 2 - Recibido.
        3. 3 - Esperando procesamiento.
        4. 4 - Documento Rechazado.
        5. 5 - Documento Autorizado.
      4. ¿Fecha Inicial? - Fecha inicial del rango para los documentos.
      5. ¿Fecha Final? - Fecha final del rango para los documentos.

    Transmisión

    Seleccionar los parámetros para visualizar los documentos no transmitidos o rechazados.

    Ejemplo:

    1. ¿Tipo documento? - "Factura"
    2. ¿Serie? - "A"
    3. ¿Estatus? - "1" o "4"
    4. ¿Fecha Inicial? - 01/03/2021
    5. ¿Fecha Final? - 31/03/2021

    Se visualizarán los documentos que no han sido transmitidos o procesados, dependiendo del parámetro "Estatus".

    1. Seleccionar "Transmitir".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán transmitidos. Informar la serie del documento y el rango de los documentos a transmitir.
      1. ¿Serie de la Factura? - "A01"
      2. ¿Factura Inicial? - "0010010000001"
      3. ¿Factura Final? - "0010010000001"
    3. Una vez finalizado el proceso se mostrará un mensaje.
      1. En caso de haber tenido errores durante la transmisión se mostrará un mensaje indicándolo.
        1. Indicar "Si" en la pregunta "¿Desea visualizar el log del proceso?".
        2. Se mostrará un informe con los errores que ocurrieron durante el proceso.
      2. En caso de haber realizado de manera correcta la transmisión se mostrará un mensaje indicándolo.
        1. Indicar "Si" en la pregunta "¿Desea visualizar log de Transmisión?".
        2. Se mostrará un informe con los documentos autorizados.
    4. El documento será actualizado y ahora será visible al seleccionar el estatus "5 - Documento Autorizado"

    Cancelación

    Seleccionar los parámetros para visualizar los documentos Autorizados.

    Ejemplo:

    1. ¿Tipo documento? - "Factura"
    2. ¿Serie? - "A"
    3. ¿Estatus? - "5"
    4. ¿Fecha Inicial? - 01/03/2021
    5. ¿Fecha Final? - 31/03/2021
    1. Seleccionar "Otras acciones | Anulación Fac. Electrónica".
    2. Se mostrará una barra de progreso.
    3. Una vez finalizado el proceso se mostrará un mensaje.
      1. En caso de haber tenido errores durante la transmisión se mostrará un mensaje indicándolo.
        1. Indicar "Si" en la pregunta "¿Desea visualizar el log del proceso?".
        2. Se mostrará un informe con los errores que ocurrieron durante el proceso.
      2. En caso de haber realizado de manera correcta la transmisión se mostrará un mensaje indicándolo.
        1. Indicar "Si" en la pregunta "¿Desea visualizar log de Transmisión?".
        2. Se mostrará un informe con los documentos autorizados.

    Imprimir PDF

    Sin la existencia del parámetro MV_IMPKUDE.

      Ejemplo 1 -  Documento Autorizado.

    NOTA: Al no existir el parámetro se toma el valor default de 1. Por lo que solo se pueden imprimir documentos autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000001"
      3. ¿Documento Final? - "0010010000001"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. Se mostrará una barra de progreso.
    4. Una vez finalizado el proceso se podrán consultar los documento en la ruta informada en el parámetro MV_CFDDOCS en la carpeta llamada "Autorizados" o en la ruta informada en el parámetro "Ruta copia PDF".

      Ejemplo 2 - Documento No Autorizado.

    NOTA: Al no existir el parámetro se toma el valor default de 1. Por lo que solo se pueden imprimir documentos autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000002"
      3. ¿Documento Final? - "0010010000002"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. No se mostrara ningún mensaje, solo no se realizara el proceso.
    4. Al consultar la ruta informada en el parámetro MV_CFDDOCS en la carpeta llamada "Autorizados" o en la ruta informada en el parámetro "Ruta copia PDF", no existira ningún documento generado.

    Configuración del parámetro MV_IMPKUDE = 1

      Ejemplo 1 -  Documento Autorizado.

    NOTA: Al estar configurado el valor del parámetro en 1, solo se pueden imprimir documentos autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000001"
      3. ¿Documento Final? - "0010010000001"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. Se mostrará una barra de progreso.
    4. Una vez finalizado el proceso se podrán consultar los documento en la ruta informada en el parámetro MV_CFDDOCS en la carpeta llamada "Autorizados" o en la ruta informada en el parámetro "Ruta copia PDF".

      Ejemplo 2 - Documento No Autorizado.

    NOTA: Al estar configurado el valor del parámetro en 1, solo se pueden imprimir documentos autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000002"
      3. ¿Documento Final? - "0010010000002"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. No se mostrara ningún mensaje, solo no se realizara el proceso.
    4. Al consultar la ruta informada en el parámetro MV_CFDDOCS en la carpeta llamada "Autorizados" o en la ruta informada en el parámetro "Ruta copia PDF", no existira ningún documento generado.

    Configuración del parámetro MV_IMPKUDE = 2

      Ejemplo 1 -  Documento Autorizado.

    NOTA: Al estar configurado el valor del parámetro en 2, se pueden imprimir documentos que ya han sido transmitidos y están en espera de ser autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000001"
      3. ¿Documento Final? - "0010010000001"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. Se mostrará una barra de progreso.
    4. Una vez finalizado el proceso se podrán consultar los documento en la ruta informada en el parámetro MV_CFDDOCS en la carpeta llamada "Autorizados" o en la ruta informada en el parámetro "Ruta copia PDF".

      Ejemplo 2 - Documento Transmitido aun No Autorizado.

    NOTA: Al estar configurado el valor del parámetro en 2, se pueden imprimir documentos que ya han sido transmitidos y están en espera de ser autorizados.

    1. Seleccionar "Imprimir PDF".
    2. Se mostrará una venta de parámetros, informar los datos de acuerdo a los documentos que serán generados los PDF. Informar la serie del documento y el rango de los documentos autorizados de los que se generara el PDF. 
      1. ¿Serie de documento? - "A01"
      2. ¿Documento Inicial? - "0010010000002"
      3. ¿Documento Final? - "0010010000002"
      4. ¿Formato? - PDF
      5. Ruta copia PDF - C:\prueba\
    3. Se mostrará una barra de progreso.
    4. Una vez finalizado el proceso se podrán consultar los documento en la ruta informada en el parámetro MV_CFDDOCS o en la ruta informada en el parámetro "Ruta copia PDF"..
    Totvs custom tabs box items
    defaultno
    referenciapaso09

    En caso de que se necesite modificar el XML para documentos de salida (NF, NDC, RFN) existe el punto de entrada M486PESXML habilitado para realizar esta operación.

    Aviso
    titleNota

    El siguiente ejemplo sirve para reemplazar todo el XML y será necesario utilizar la función de usuario  QryItem() , que realiza una consulta SQL (Query) para obtener los datos correspondientes a los ítems, se encuentra al final del ejemplo.

    Ejemplos de uso:

    Bloco de código
    languageactionscript3
    themeRDark
    titleM486PESXML
    linenumberstrue
    collapsetrue
    User Function M486PESXML()
    Local cFilial   := PARAMIXB[1]
    Local cSerie    := PARAMIXB[2]
    Local cCliente  := PARAMIXB[3]
    Local cLoja     := PARAMIXB[4]
    Local cDoc      := PARAMIXB[5]
    Local cEspecie  := PARAMIXB[6]
    Local cXml      := ""
    Local cSalto	:= chr(13) + chr(10)
    Local cPicture	:= "999999999999999.9999"
    Local cID		:= ""
    Local cSecCod	:= ""
    Local cdDVId	:= ""
    Local cFeEmiDE	:= ""
    Local cNumCasa	:= ""
    Local cDepEmi	:= ""
    Local cDisEmi	:= ""
    Local cCiuEmi	:= ""
    Local cIniTras	:= ""
    Local cFinTras	:= ""
    Local aTotales	:= {0,0,0,0,0,0,0,0,0,0,0,0,0}
    Local aDesc		:= {0,0}
    Local lProd		:= SuperGetMV("MV_CFDI_AM",,"") == "P"
    Local cEmail	:= SuperGetMV("MV_RELACNT",,"")
    Local cAliasTmp	:= ""
    Local aArea		:= GetArea()
    Local aSF		:= {}
    
    	DbSelectArea("SF2")
    	aSF := GetArea()
    	DbSetOrder(1)//F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA+F2_FORMUL+F2_TIPO
    	lOK := DbSeek(xFilial("SF2")+cDoc+cSerie+cCliente+cLoja) 
    
    	
    	cSecCod  := M486SecCod(Time(),SF2->F2_EMISSAO)
    	cID 	 := IIF(AllTrim(SF2->F2_ESPECIE)=="NF",M486GENCDC("01",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),"")
    	cID 	 := IIF(AllTrim(SF2->F2_ESPECIE)=="NDC",M486GENCDC("06",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),cID)
    	cID 	 := IIF(AllTrim(SF2->F2_ESPECIE)=="RFN",M486GENCDC("07",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF2->F2_DOC,1,3),SUBSTR(SF2->F2_DOC,4,3),RIGHT(SF2->F2_DOC,7),"1",SF2->F2_EMISSAO,"1",cSecCod,SF2->F2_ESPECIE),cID)
    	cdDVId	 := AllTrim(STR(CalcMod11(SUBSTR(cID,1,43))))
    	cFeEmiDE := SUBSTR(DTOS(SF2->F2_EMISSAO),0,4) + "-" + SUBSTR(DTOS(SF2->F2_EMISSAO),5,2) + "-" + SUBSTR(DTOS(SF2->F2_EMISSAO),7,2) + "T" + SF2->F2_HORA
    	cNumCasa := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 11,6)
    	cNumCasa := Iif(Empty(cNumCasa), "0", cNumCasa )
    	cDepEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 18,2) 
    	cDisEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 20,3)
    	cCiuEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 23,4)
    
    	cXml := '<rDE' + cSalto
    	cXml += ' xmlns="http://ekuatia.set.gov.py/sifen/xsd" ' + cSalto
    	cXml += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' + cSalto
    	cXml += ' xsi:schemaLocation="http://ekuatia.set.gov.py/sifen/xsd/ siRecepDE_v150.xsd">' + cSalto
    	cXml += ' <dVerFor>150</dVerFor>' + cSalto
    	cXml += '	<DE Id="' + cID + '">' + cSalto
    	cXml += '		<dDVId>' + cdDVId + '</dDVId>' + cSalto
    	cXml += '		<dFecFirma></dFecFirma> ' + cSalto
    	cXml += '		<dSisFact>1</dSisFact>' + cSalto
    	cXml += '		<gOpeDE>' + cSalto
    	cXml += '        	<iTipEmi>1</iTipEmi>' + cSalto
    	cXml += '        	<dDesTipEmi>Normal</dDesTipEmi>' +cSalto
    	cXml += '			<dCodSeg>' + SUBSTR(cID,35,9) + '</dCodSeg>' + cSalto
    	cXml += '		</gOpeDE>' + cSalto
    	cXml += '		<gTimb>' + cSalto
    	If AllTrim(SF2->F2_ESPECIE) == "NF"
    		cXml += '        	<iTiDE>1</iTiDE>' + cSalto
    		cXml += '        	<dDesTiDE>Factura electrónica</dDesTiDE>' + cSalto
    	ElseIf AllTrim(SF2->F2_ESPECIE) == "NDC"
    		cXml += '        	<iTiDE>6</iTiDE>' + cSalto
    		cXml += '        	<dDesTiDE>Nota de débito electrónica</dDesTiDE>' + cSalto
    	Else
    		cXml += '        	<iTiDE>7</iTiDE>' + cSalto
    		cXml += '        	<dDesTiDE>Nota de remisión electrónica</dDesTiDE>'	+ cSalto
    	EndIf
    	cXml += '        	<dNumTim>'+ AllTrim(SF2->F2_NUMTIM) +'</dNumTim>' + cSalto
    	cXml += '        	<dEst>' + SUBSTR(SF2->F2_DOC,1,3) + '</dEst>' + cSalto
    	cXml += '        	<dPunExp>' + SUBSTR(SF2->F2_DOC,4,3) + '</dPunExp>' + cSalto
    	cXml += '        	<dNumDoc>' + RIGHT(SF2->F2_DOC,7) + '</dNumDoc>' + cSalto
    	cXml += '        	<dSerieNum>' + AllTrim(SF2->F2_SERIE2) + '</dSerieNum>' + cSalto
    	cXml += '			<dFeIniT>' +FecIniTimb(SF2->F2_SERIE, SF2->F2_ESPECIE) + '</dFeIniT>' + cSalto
    	cXml += '		</gTimb>' + cSalto
    	cXml += '		<gDatGralOpe>' + cSalto
    	cXml += '			<dFeEmiDE>' + cFeEmiDE + '</dFeEmiDE>' + cSalto
    	
    	// Campos inherentes a la operación comercial (D010-D099)
    	If AllTrim(SF2->F2_ESPECIE) <> "RFN"
    		CTO->(DbSetOrder(1)) //CTO_FILIAL+CTO_MOEDA
    		CTO->(MsSeek(xFilial("CTO")+Strzero(SF2->F2_MOEDA,2)))
    		cXml += M486IMPPAR(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA, CTO->CTO_MOESAT, AllTrim(SF2->F2_TPTRANS),SF2->F2_TXMOEDA) + cSalto
    	EndIf
    	//EMISOR
    	cXml += '			<gEmis>' + cSalto
    	cXml += '				<dRucEm>' + SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1)+'</dRucEm>' + cSalto
    	cXml += '				<dDVEmi>' + Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1) + '</dDVEmi>' + cSalto
    	cXml += '				<iTipCont>1</iTipCont>' + cSalto
    	cXml += '				<cTipReg>'+ ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 17,1) +'</cTipReg>' + cSalto
    	If lProd
    		cXml += '				<dNomEmi>'+ AllTrim(SM0->M0_NOME) + '</dNomEmi>' + cSalto
    	Else
    		cXml += '				<dNomEmi>'+  "DE generado en ambiente de prueba - sin valor comercial ni fiscal" + '</dNomEmi>' + cSalto
    	EndIf
    	cXml += '				<dNomFanEmi>'+ AllTrim(SM0->M0_NOMECOM) + '</dNomFanEmi>' + cSalto
    	cXml += '				<dDirEmi>'+ AllTrim(SM0->M0_ENDENT) + '</dDirEmi>' + cSalto
    	cXml += '				<dNumCas>' + cNumCasa + '</dNumCas>' + cSalto
    	cXml += '				<cDepEmi>' + cDepEmi+ '</cDepEmi>' + cSalto
    	cXml += '				<dDesDepEmi>' + AllTrim(ObtColSAT("S003",cDepEmi, 1, 2, 3,28)) + '</dDesDepEmi>' + cSalto
    	cXml += '				<cDisEmi>' + AllTrim(cDisEmi) + '</cDisEmi>' + cSalto
    	cXml += '				<dDesDisEmi>' + AllTrim(ObtColSAT("S031",cDisEmi, 1, 3, 4,30))+ '</dDesDisEmi>' + cSalto
    	cXml += '				<cCiuEmi>' +  AllTrim(cCiuEmi)  + '</cCiuEmi>' + cSalto
    	cXml += '				<dDesCiuEmi>' +  AllTrim(ObtColSAT("S012",cCiuEmi, 48, 4, 52,30))+ '</dDesCiuEmi>' + cSalto
    	If !Empty(SM0->M0_TEL)
    		cXml += '				<dTelEmi>' + AllTrim(SM0->M0_TEL) + '</dTelEmi>' + cSalto
    	EndIf
    	cXml += '				<dEmailE>' +  cEmail  + '</dEmailE>' + cSalto //Quitar
    	cXml += '				<gActEco>' + cSalto
    	cXml += '					<cActEco>' + AllTrim(SM0->M0_DSCCNA) + '</cActEco>' + cSalto
    	cXml += '					<dDesActEco>'+ ObtColSAT("S006",SUBSTR(SM0->M0_DSCCNA,1,6) , 2, 5, 7,166)+'</dDesActEco>' + cSalto
    	cXml += '				</gActEco>' +  cSalto
    	cXml += '			</gEmis>' + cSalto
    	//RECEPTOR
    	SA1->(DbSetOrder(1))
    	SA1->(MSSeek(xFilial("SA1")+SF2->F2_CLIENTE+SF2->F2_LOJA))
    	SYA->(DbSetOrder(1))
    	SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
    
    	cXml += '			<gDatRec>' + cSalto
    	cXml += '				<iNatRec>1</iNatRec>' + cSalto
    	cXml += '				<iTiOpe>1</iTiOpe>' + cSalto
    	cXml += '				<cPaisRec>' + SYA->YA_CODERP + '</cPaisRec>' + cSalto
    	cXml += '				<dDesPaisRe>'+ ObtColSAT("S005",SYA->YA_CODERP, 1, 3, 4,52)+'</dDesPaisRe>' +cSalto
    	If !Empty(SA1->A1_CGC)
    		cXml += '				<iTiContRec>' + IIF(SA1->A1_PESSOA $ "F","1","2") + '</iTiContRec>' + cSalto
    		cXml += '				<dRucRec>' +  SUBSTR(SA1->A1_CGC,1,RAT("-",SA1->A1_CGC)-1) + '</dRucRec>' + cSalto
    		cXml += '				<dDVRec>' + Substr(SA1->A1_CGC,RAT("-",SA1->A1_CGC)+ 1,1) + '</dDVRec>' + cSalto
    	Else
    		cXml += '				<iTipIDRec>' + AllTrim(SA1->A1_TIPDOC) + '</iTipIDRec>' + cSalto
    		cXml += '				<dDTipIDRec>' +  ObtColSAT("S018", SA1->A1_TIPDOC, 1, 1, 2,41) + '</dDTipIDRec>' + cSalto
    		cXml += '				<dNumIDRec>' +  IIF(AllTrim(SA1->A1_TIPDOC)=="5","0",ALLTRIM(SA1->A1_NIF)) + '</dNumIDRec>' +cSalto
    	EndIf
    	cXml += '				<dNomRec>' + AllTrim(SA1->A1_NOME)+ '</dNomRec>' + cSalto
    	cXml += '				<dNomFanRec>' + AllTrim(SA1->A1_NREDUZ)+ '</dNomFanRec>' + cSalto
    	cXml += '				<dDirRec>' + AllTrim(SA1->A1_END) + '</dDirRec>' + cSalto
    	cXml += '				<dNumCasRec>' + AllTrim(SA1->A1_NUM) + '</dNumCasRec>' + cSalto
    	cXml += '				<cDepRec>' + SA1->A1_DEPTO + '</cDepRec>' + cSalto
    	cXml += '				<dDesDepRec>' + AllTrim(ObtColSAT("S003",SA1->A1_DEPTO, 1, 2, 3,28)) +'</dDesDepRec>' + cSalto
    	cXml += '				<cDisRec>' + SA1->A1_DISTR+ '</cDisRec>' + cSalto
    	cXml += '				<dDesDisRec>'+ AllTrim(ObtColSAT("S031",SA1->A1_DISTR, 1, 3, 4,30)) + '</dDesDisRec>' + cSalto
    	cXml += '				<cCiuRec>' + AllTrim(SA1->A1_CIUDAD) + '</cCiuRec>' + cSalto
    	cXml += '				<dDesCiuRec>' + AllTrim(ObtColSAT("S012",SA1->A1_CIUDAD, 48, 4, 52,30)) + '</dDesCiuRec>' + cSalto
    	If !Empty(SA1->A1_TEL)
    		cXml += '				<dTelRec>' + AllTrim(SA1->A1_TEL) + '</dTelRec>' + cSalto
    	EndIf
    	If !Empty(SA1->A1_EMAIL)
    		cXml += '				<dEmailRec>' + SA1->A1_EMAIL + '</dEmailRec>' + cSalto
    	EndIf
    	cXml += '				<dCodCliente>' + AllTrim(SA1->A1_COD) + '</dCodCliente>' + cSalto
    	cXml += '			</gDatRec>' + cSalto
    	cXml += '		</gDatGralOpe>' + cSalto
    
    	//TIPO DE PRESENCIA
    	cXml += '		<gDtipDE>' + cSalto
    	If AllTrim(SF2->F2_ESPECIE)=="NF"
    		cXml += '        	<gCamFE>' + cSalto
    		cXml += '    			<iIndPres>' + AllTrim(SF2->F2_TIPONF) + '</iIndPres>' + cSalto
    		cXml += '        		<dDesIndPres>'+ ObtColSAT("S019",SF2->F2_TIPONF, 1, 1, 2,30)+'</dDesIndPres>' + cSalto
    		cXml += '        	</gCamFE>' + cSalto
    		// CONDICIONES DE PAGO
    		cXml += M486CONDPAG(SF2->F2_FILIAL, SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA,SF2->F2_ESPECIE,SF2->F2_COND,SF2->F2_MOEDA,SF2->F2_TXMOEDA) + cSalto
    	ElseIf AllTrim(SF2->F2_ESPECIE)=="NDC"
    		cXml += '        	<gCamNCDE>' + cSalto
    		cXml += '    			<iMotEmi>' + AllTrim(SF2->F2_TIPREF) + '</iMotEmi>' + cSalto
    		cXml += '        		<dDesMotEmi>'+ ObtColSAT("S021",SF2->F2_TIPREF, 1, 1, 2,30)+'</dDesMotEmi>' + cSalto
    		cXml += '        	</gCamNCDE>' + cSalto
    	ElseIf AllTrim(SF2->F2_ESPECIE)=="RFN"
    		cXml += '        	<gCamNRE>' + cSalto
    		cXml += '    			<iMotEmiNR>' + AllTrim(SF2->F2_MOTEMIR) + '</iMotEmiNR>' + cSalto
    		cXml += '        		<dDesMotEmiNR>'+ ObtColSAT("S022",SF2->F2_MOTEMIR, 1, 2, 3,60)+'</dDesMotEmiNR>' + cSalto
    		cXml += '    			<iRespEmiNR>1</iRespEmiNR>'+ cSalto
    		cXml += '    			<dDesRespEmiNR>Emisor de la factura</dDesRespEmiNR>' + cSalto
    		If AllTrim(SF2->F2_MOTEMIR) == "1"
    			cXml += '    			<dFecEm>' + SUBSTR(DTOS(SF2->F2_FECHSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),7,2) + '</dFecEm>' + cSalto
    		EndIf
    		cXml += '        	</gCamNRE>' + cSalto
    	EndIf
    
    	cAliasTmp := u_QryItem("SD2", "D2_COD, D2_QUANT, D2_TES, D2_ITEM, SD2.R_E_C_N_O_", "D2_DOC='" + SF2->F2_DOC + "' AND D2_SERIE='" + SF2->F2_SERIE + "' AND D2_CLIENTE='" + SF2->F2_CLIENTE + "' AND D2_LOJA='" + SF2->F2_LOJA + "'",  "D2_ITEM") 
    	
    	While (cAliasTmp)->(!EOF())
    		cXml += '        	<gCamItem>' + cSalto
    		cXml += '    			<dCodInt>' + Alltrim((cAliasTmp)->B1_COD) + '</dCodInt>' + cSalto
    		cXml += '    			<dDesProSer>' + AllTrim((cAliasTmp)->B1_DESC) + '</dDesProSer>' + cSalto
    		cXml += '    			<cUniMed>' + AllTrim((cAliasTmp)->AH_COD_CO) + '</cUniMed>' + cSalto
    		cXml += '    			<dDesUniMed>' + ObtColSAT("S002",(cAliasTmp)->AH_COD_CO, 1, 3, 29,6) + '</dDesUniMed>' + cSalto
    		cXml += '    			<dCantProSer>' + AllTrim(TRANSFORM((cAliasTmp)->D2_QUANT,"9999999999.9999") )+ '</dCantProSer>' + cSalto
    		If AllTrim(SF2->F2_ESPECIE) <> "RFN"
    			If (cAliasTmp)->R_E_C_N_O_ > 0
    				SD2->(dbgoto((cAliasTmp)->R_E_C_N_O_))
    			EndIf
    			cXml += M486IMPDPAR(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA, (cAliasTmp)->D2_TES,(cAliasTmp)->D2_ITEM,(cAliasTmp)->D2_COD,@aDesc,@aTotales) + cSalto
    		EndIf
    		cXml += '        	</gCamItem>' + cSalto
    		(cAliasTmp)->(dbSkip())
    	End
    	(cAliasTmp)->(dbcloseArea())
    	
    	//Nodos de Guia de Remisión
    	If AllTrim(SF2->F2_ESPECIE) == "RFN"
    		DbSelectArea("DA3")
    		DA3->(DbSetOrder(1)) //DA3_FILIAL+DA3_COD
    		If DA3->(DbSeek(xFilial("DA3") + SF2->F2_VEICULO))
    			cXml += '        	<gTransp>' + cSalto
    			cXml += '    			<iTipTrans>' + AllTrim(DA3->DA3_TIPTR2) + '</iTipTrans>' + cSalto
    			If AllTrim(AllTrim(DA3->DA3_FROVEI)) == "1"
    				cXml += '    			<dDesTipTrans>Propio</dDesTipTrans>' + cSalto
    			Else
    				cXml += '    			<dDesTipTrans>Tercero</dDesTipTrans>' + cSalto
    			EndIf
    			cXml += '    			<iModTrans>' + AllTrim(DA3->DA3_TIPTR2) + '</iModTrans>' + cSalto
    			cXml += '    			<dDesModTrans>' + AllTrim(ObtColSAT("S026", AllTrim(DA3->DA3_TIPTR2), 1, 1, 2,10)) + '</dDesModTrans>' + cSalto
    			cXml += '    			<iRespFlete>' + AllTrim(SF2->F2_TPRESFL) + '</iRespFlete>' + cSalto
    			cXml += '    			<cCondNeg>' + AllTrim(SF2->F2_INCOTER) + '</cCondNeg>' +  cSalto
    			cIniTras := SUBSTR(DTOS(SF2->F2_FECDSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECDSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECDSE),7,2)
    			cXml += '    			<dIniTras>' + cIniTras + '</dIniTras>' + cSalto
    			cFinTras := SUBSTR(DTOS(SF2->F2_FECHSE),0,4) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),5,2) + "-" + SUBSTR(DTOS(SF2->F2_FECHSE),7,2)
    			cXml += '    			<dFinTras>' + cFinTras  + '</dFinTras>' + cSalto
    			cXml += '    			<gCamSal>' + cSalto
    			cXml += '    				<dDirLocSal>' + AllTrim(SM0->M0_ENDENT) + '</dDirLocSal>' + cSalto
    			cXml += '    				<dNumCasSal>' + cNumCasa + '</dNumCasSal>' + cSalto 
    			If !Empty(SM0->M0_COMPENT)
    				cXml += '    				<dComp1Sal>' + AllTrim(SM0->M0_COMPENT) + '</dComp1Sal>' + cSalto
    			EndIf
    			cXml += '    				<cDepSal>' + cDepEmi + '</cDepSal>' + cSalto
    			cXml += '    				<dDesDepSal>' + AllTrim(ObtColSAT("S003",cDepEmi, 1, 2, 3,28)) + '</dDesDepSal>' + cSalto
    			cXml += '    				<cDisSal>' + AllTrim(cDisEmi) + '</cDisSal>' + cSalto
    			cXml += '    				<dDesDisSal>' + AllTrim(ObtColSAT("S031",cDisEmi, 1, 3, 4,30)) + '</dDesDisSal>' +cSalto
    			cXml += '    				<cCiuSal>' + AllTrim(cCiuEmi) + '</cCiuSal>' + cSalto
    			cXml += '    				<dDesCiuSal>' + AllTrim(ObtColSAT("S012",cCiuEmi, 48, 4, 52,30)) + '</dDesCiuSal>' + cSalto
    			cXml += '    			</gCamSal>' + cSalto
    			cXml += '    			<gCamEnt>' + cSalto
    			cXml += '    				<dDirLocEnt>' + AllTrim(SA1->A1_END) + '</dDirLocEnt>' + cSalto
    			cXml += '    				<dNumCasEnt>' + AllTrim(SA1->A1_NUM) + '</dNumCasEnt>' + cSalto
    			cXml += '    				<cDepEnt>' + AllTrim(SA1->A1_DEPTO) + '</cDepEnt>' + cSalto
    			cXml += '    				<dDesDepEnt>' + Alltrim(ObtColSAT("S003",SA1->A1_DEPTO, 1, 2, 3,28)) + '</dDesDepEnt>' + cSalto
    			cXml += '    				<cDisEnt>' + AllTrim(SA1->A1_DISTR) + '</cDisEnt>' +cSalto
    			cXml += '    				<dDesDisEnt>' + AllTrim(ObtColSAT("S031",SA1->A1_DISTR, 1, 3, 4,30)) + '</dDesDisEnt>' + cSalto
    			cXml += '    				<cCiuEnt>' + AllTrim(SA1->A1_CIUDAD) + '</cCiuEnt>' + cSalto
    			cXml += '    				<dDesCiuEnt>' +  AllTrim(ObtColSAT("S012",SA1->A1_CIUDAD, 48, 4, 52,30)) + '</dDesCiuEnt>' + cSalto
    			If !Empty(SA1->A1_TEL)
    				cXml += '    				<dTelEnt>' + AllTrim(SA1->A1_TEL) + '</dTelEnt>' + cSalto
    			EndIf
    			cXml += '    			</gCamEnt>' + cSalto
    			cXml += '    			<gVehTras>' + cSalto
    			cXml += '    				<dTiVehTras>' + Alltrim(ObtColSAT("S026", AllTrim(DA3->DA3_TIPTR2), 1, 1, 2,10)) + '</dTiVehTras>' + cSalto
    			cXml += '    				<dMarVeh>' + AllTrim(DA3->DA3_DESC) + '</dMarVeh>' +cSalto
    			cXml += '    				<dTipIdenVeh>' + AllTrim(DA3->DA3_TIPID) + '</dTipIdenVeh>' + cSalto
    			If AllTrim(DA3->DA3_TIPID) == "1"
    				cXml += '    				<dNroIDVeh>' + AllTrim(DA3->DA3_CHASSI) + '</dNroIDVeh>' + cSalto
    			Else
    				cXml += '    				<dNroMatVeh>' + AllTrim(DA3->DA3_PLACA) + '</dNroMatVeh>' + cSalto
    			EndIf
    			If AllTrim(DA3->DA3_TIPTR2) == "3"
    				cXml += '    				<dNroVuelo>' + AllTrim(SF2->F2_RASTR) + '</dNroVuelo>' + cSalto
    			EndIf
    			cXml += '    			</gVehTras>' + cSalto
    			DbSelectArea("SA4")
    			SA4->(DbSetOrder(1)) //A4_FILIAL+A4_COD
    			If SA4->(MsSeek(xFilial("SA4") + SF2->F2_TRANSP))
    				cXml += '    			<gCamTrans>' + cSalto
    				cXml += '    				<iNatTrans>' + AllTrim(SA4->A4_TIPCON) + '</iNatTrans>' + cSalto
    				cXml += '    				<dNomTrans>' + AllTrim(SA4->A4_NOME) + '</dNomTrans>' + cSalto
    				If AllTrim(SA4->A4_TIPCON) == "1"
    					cXml += '    				<dRucTrans>' + SUBSTR(SA4->A4_CGC,1,RAT("-",SA4->A4_CGC)-1) + '</dRucTrans>' + cSalto
    					cXml += '    				<dDVTrans>' + SUBSTR(SA4->A4_CGC,RAT("-",SA4->A4_CGC)+ 1,1) + '</dDVTrans>' + cSalto
    				Else
    					cXml += '    				<iTipIDTrans>' + Alltrim(SA4->A4_TIPID) + '</iTipIDTrans>' + cSalto
    					cXml += '    				<dDTipIDTrans>' +  Alltrim(ObtColSAT("S018", ALLTRIM(SA4->A4_TIPID), 1, 1, 2,41))  + '</dDTipIDTrans>' + cSalto
    					cXml += '    				<dNumIDTrans>' + AllTrim(SA4->A4_CGC) + '</dNumIDTrans>' + cSalto
    				EndIf
    				cXml += '    				<dNumIDChof>' + AllTrim(SA4->A4_CGC) + '</dNumIDChof>' + cSalto
    				cXml += '    				<dNomChof>' + AllTrim(SA4->A4_NOME) + '</dNomChof>' + cSalto
    				cXml += '    			</gCamTrans>' + cSalto
    			EndIf
    			cXml += '        	</gTransp>' + cSalto
    		EndIf
    	EndIf
    
    	cXml += '		</gDtipDE>' + cSalto
    	If AllTrim(SF2->F2_ESPECIE) <> "RFN"
    		aTotales := M486SUBTOT(AllTrim(SF2->F2_ESPECIE),SF2->F2_DOC,SF2->F2_SERIE, SF2->F2_CLIENTE,SF2->F2_LOJA)
    		cXml += '		<gTotSub>' + cSalto
    		cXml += '        	<dSubExe>'+ AllTrim(TRANSFORM(aTotales[1],cPicture))+'</dSubExe>' + cSalto
    		cXml += '        	<dSubExo>'+ AllTrim(TRANSFORM(aTotales[2],cPicture))+'</dSubExo>' + cSalto
    		cXml += '        	<dSub5>'+ AllTrim(TRANSFORM(aTotales[3],cPicture))+'</dSub5>' + cSalto
    		cXml += '        	<dSub10>'+ AllTrim(TRANSFORM(aTotales[4],cPicture))+'</dSub10>' + cSalto
    		cXml += '        	<dTotOpe>'+ AllTrim(TRANSFORM(aTotales[5],cPicture))+'</dTotOpe>' + cSalto
    		cXml += '        	<dTotDesc>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dTotDesc>' + cSalto
    		cXml += '        	<dTotDescGlotem>'+ AllTrim(TRANSFORM(aTotales[6],cPicture))+'</dTotDescGlotem>' + cSalto
    		cXml += '        	<dTotAntItem>0</dTotAntItem>' + cSalto
    		cXml += '        	<dTotAnt>0</dTotAnt>' + cSalto
    		cXml += '        	<dPorcDescTotal>0</dPorcDescTotal>' + cSalto
    		cXml += '        	<dDescTotal>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dDescTotal>' + cSalto
    		cXml += '        	<dAnticipo>0</dAnticipo>' + cSalto
    		cXml += '        	<dRedon>0.0</dRedon>' + cSalto
    		cXml += '        	<dTotGralOpe>'+ AllTrim(TRANSFORM(SF2->F2_VALBRUT,cPicture))+'</dTotGralOpe>' + cSalto
    		cXml += '        	<dIVA5>'+ AllTrim(TRANSFORM(aTotales[7],cPicture))+'</dIVA5>' + cSalto
    		cXml += '        	<dIVA10>'+ AllTrim(TRANSFORM(aTotales[8],cPicture))+'</dIVA10>' + cSalto
    		cXml += '        	<dTotIVA>'+ AllTrim(TRANSFORM(aTotales[9],cPicture))+'</dTotIVA>' + cSalto
    		cXml += '        	<dBaseGrav5>'+ AllTrim(TRANSFORM(aTotales[10],cPicture))+'</dBaseGrav5>' + cSalto
    		cXml += '			<dBaseGrav10>'+ AllTrim(TRANSFORM(aTotales[11],cPicture))+'</dBaseGrav10>' + cSalto
    		cXml += '			<dTBasGraIVA>'+ AllTrim(TRANSFORM(aTotales[12],cPicture))+'</dTBasGraIVA>' + cSalto
    		If AllTrim(STR(SF2->F2_MOEDA)) <> "1"
    			cXml += '			<dTotalGs>'+ AllTrim(TRANSFORM(SF2->F2_VALBRUT*SF2->F2_TXMOEDA,cPicture))+'</dTotalGs>' + cSalto
    		EndIf
    		cXml += '		</gTotSub>' +cSalto
    	EndIf
    	
    	//DOCUMENTO ASOCIADO
    	If AllTrim(SF2->F2_ESPECIE)=="NDC"
    		cXml += '		<gCamDEAsoc>' + cSalto
    		cXml += M486ASOC(SF2->F2_ESPECIE,SF2->F2_DOC,SF2->F2_SERIE,SF2->F2_CLIENTE,SF2->F2_LOJA,"1") 
    		cXml += '		</gCamDEAsoc>' + cSalto
    	EndIf
    	cXml += '	</DE>' + cSalto
    	cXml += '</rDE>' + cSalto
    
    	RestArea(aSF)
    	RestArea(aArea)
    
    Return cXml
    
    /*/{Protheus.doc} QryItem Genera un query para obetener los datos correspondientes a los items.
    @param cAlias, caracter, Alias de la tabla.
    @param cCpos, caracter, Campos a ser usados en el query.
    @param cWhere, caracter, Condición a ser usada en el query.
    @param cOrder, caracter, Campo a ser usado en el orden,
    @return cAliasTmp, Alias de la tabla temporal.
    /*/
    User Function QryItem(cAlias, cCpos, cWhere, cOrder)
    Local cQuery 	:= ""
    Local cAliasTmp	:= getNextAlias()
    
    	cQuery := "Select "
    	cQuery += cCpos
    	cQuery += " ,B1_COD, B1_DESC, B1_UM, AH_COD_CO" 
    	cQuery += " from "+RetSqlName(cAlias)+ " " + cAlias + " "
    	cQuery += " Left Join " +RetSqlName("SB1")+ " SB1 ON " + IIf(cAlias == "SD2","D2_COD","D1_COD") + " = B1_COD AND B1_FILIAL = '" + xFilial("SB1") + "'"
    	cQuery += " Left Join " +RetSqlName("SAH")+ " SAH ON B1_UM = AH_UNIMED AND AH_FILIAL = '" + xFilial("SAH") + "'"
    	cQuery += " Where "
    	cQuery += cWhere
    	cQuery += " AND " + cAlias + ".D_E_L_E_T_ = ''"
    	cQuery += " AND SB1.D_E_L_E_T_ = ''"
    	cQuery += " AND SAH.D_E_L_E_T_ = ''"
    	If !Empty(cOrder)
    		cQuery += " ORDER BY "+ SqlOrder(cOrder)
    	EndIf
    	cQuery := ChangeQuery(cQuery)
    	dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasTmp,.T.,.T.)
    
    	(cAliasTmp)->(dbGoTop())
    
    Return cAliasTmp

    La información retornada en la variable cXml deberá contener el xml que será guardado para ser transmitido.

    Totvs custom tabs box items
    defaultno
    referenciapaso10

    En caso de que se necesite modificar el xml para documentos de entrada (NCC) existe el punto de entrada M486PEEXML habilitado para realizar esta operación.

    Aviso
    titleNota

    El siguiente ejemplo sirve para reemplazar todo el XML y será necesario utilizar la función de usuario  QryItem() , que realiza una consulta SQL (Query) para obtener los datos correspondientes a los ítems, se encuentra al final del ejemplo.

    Ejemplos de uso:

    Bloco de código
    languageactionscript3
    themeRDark
    title M486PEEXML
    linenumberstrue
    collapsetrue
    User Function M486PEEXML()
    Local cFilial   := PARAMIXB[1]
    Local cSerie    := PARAMIXB[2]
    Local cCliente  := PARAMIXB[3]
    Local cLoja     := PARAMIXB[4]
    Local cDoc      := PARAMIXB[5]
    Local cEspecie  := PARAMIXB[6]
    Local cXml      := ""
    Local cSalto	:= chr(13) + chr(10)
    Local cPicture	:= "999999999999999.9999"
    Local cID		:= ""
    Local cSecCod	:= ""
    Local cdDVId	:= ""
    Local cFeEmiDE	:= ""
    Local cNumCasa	:= ""
    Local cDepEmi	:= ""
    Local cDisEmi	:= ""
    Local cCiuEmi	:= ""
    Local aTotales	:= {0,0,0,0,0,0,0,0,0,0,0,0,0}
    Local aDesc		:= {0,0}
    Local lProd		:= SuperGetMV("MV_CFDI_AM",,"") == "P"
    Local cEmail	:= SuperGetMV("MV_RELACNT",,"")
    Local cAliasTmp	:= ""
    Local aArea		:= GetArea()
    Local aSF		:= {}
    
    	DbSelectArea("SF1")
    	aSF := GetArea()
    	DbSetOrder(1)//F1_FILIAL+F1_DOC+F1_SERIE+F1_FORNECE+F1_LOJA+F1_TIPO 
    	DbSeek(xFilial("SF1")+cDoc+cSerie+cCliente+cLoja)
    
    	
    	cSecCod  := M486SecCod(Time(),SF1->F1_EMISSAO)
    	cID		 := M486GENCDC("05",SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1),Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1),SUBSTR(SF1->F1_DOC,1,3),SUBSTR(SF1->F1_DOC,4,3),SUBSTR(SF1->F1_DOC,7),"1",SF1->F1_EMISSAO,"1",cSecCod,SF1->F1_ESPECIE)
    	cdDVId	 := AllTrim(STR(CalcMod11(SUBSTR(cID,1,43))))
    	cFeEmiDE := SUBSTR(DTOS(SF1->F1_EMISSAO),0,4) + "-" + SUBSTR(DTOS(SF1->F1_EMISSAO),5,2) + "-" + SUBSTR(DTOS(SF1->F1_EMISSAO),7,2) + "T" + SF1->F1_HORA
    	cNumCasa := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 11,6)
    	cNumCasa := Iif(Empty(cNumCasa), "0", cNumCasa )
    	cDepEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 18,2) 
    	cDisEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 20,3)
    	cCiuEmi  := ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 23,4)
    
    	cXml := '<rDE' + cSalto
    	cXml += ' xmlns="http://ekuatia.set.gov.py/sifen/xsd" ' + cSalto
    	cXml += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' + cSalto
    	cXml += ' xsi:schemaLocation="http://ekuatia.set.gov.py/sifen/xsd/ siRecepDE_v150.xsd">' + cSalto
    	cXml += ' <dVerFor>150</dVerFor>' + cSalto
    	cXml += '	<DE Id="' + cID + '">' + cSalto
    	cXml += '		<dDVId>' + cdDVId + '</dDVId>' + cSalto
    	cXml += '		<dFecFirma></dFecFirma> ' + cSalto
    	cXml += '		<dSisFact>1</dSisFact>' + cSalto
    	cXml += '		<gOpeDE>' + cSalto
    	cXml += '        	<iTipEmi>1</iTipEmi>' + cSalto
    	cXml += '        	<dDesTipEmi>Normal</dDesTipEmi>' +cSalto
    	cXml += '			<dCodSeg>' + SUBSTR(cID,35,9) + '</dCodSeg>' + cSalto
    	cXml += '		</gOpeDE>' + cSalto
    	cXml += '		<gTimb>' + cSalto
    	cXml += '        	<iTiDE>5</iTiDE>' + cSalto
    	cXml += '        	<dDesTiDE>Nota de crédito electrónica</dDesTiDE>' + cSalto
    	cXml += '        	<dNumTim>'+ AllTrim(SF1->F1_NUMTIM) +'</dNumTim>' + cSalto
    	cXml += '        	<dEst>' + SUBSTR(SF1->F1_DOC,1,3) + '</dEst>' + cSalto
    	cXml += '        	<dPunExp>' + SUBSTR(SF1->F1_DOC,4,3) + '</dPunExp>' + cSalto
    	cXml += '        	<dNumDoc>' + RIGHT(SF1->F1_DOC,7) + '</dNumDoc>' + cSalto
    	cXml += '        	<dSerieNum>' + AllTrim(SF1->F1_SERIE2) + '</dSerieNum>' + cSalto
    	cXml += '			<dFeIniT>' + FecIniTimb(SF1->F1_SERIE, SF1->F1_ESPECIE) + '</dFeIniT>' + cSalto
    	cXml += '		</gTimb>' + cSalto
    	cXml += '		<gDatGralOpe>' + cSalto
    	cXml += '			<dFeEmiDE>' + cFeEmiDE + '</dFeEmiDE>' + cSalto
    
    	// Campos inherentes a la operación comercial (D010-D099)
    	CTO->(DbSetOrder(1)) //CTO_FILIAL+CTO_MOEDA
    	CTO->(MsSeek(xFilial("CTO")+Strzero(SF1->F1_MOEDA,2)))
    	cXml += M486IMPPAR(ALLTRIM(SF1->F1_ESPECIE),SF1->F1_DOC,SF1->F1_SERIE, SF1->F1_FORNECE,SF1->F1_LOJA, CTO->CTO_MOESAT,"","") + cSalto
    
    	//EMISOR
    	cXml += '			<gEmis>' + cSalto
    	cXml += '				<dRucEm>' + SUBSTR(SM0->M0_CGC,1,RAT("-",SM0->M0_CGC)-1)+'</dRucEm>' + cSalto
    	cXml += '				<dDVEmi>' + Substr(SM0->M0_CGC,RAT("-",SM0->M0_CGC)+ 1,1) + '</dDVEmi>' + cSalto
    	cXml += '				<iTipCont>1</iTipCont>' + cSalto
    	cXml += '				<cTipReg>'+ ObtColSAT("S030",SUBSTR(SM0->M0_CGC,1,10) , 1, 10, 17,1) +'</cTipReg>' + cSalto
    	If lProd
    		cXml += '				<dNomEmi>'+ AllTrim(SM0->M0_NOME) + '</dNomEmi>' + cSalto
    	Else
    		cXml += '				<dNomEmi>'+  "DE generado en ambiente de prueba - sin valor comercial ni fiscal" + '</dNomEmi>' + cSalto
    	EndIf
    	cXml += '				<dNomFanEmi>'+ AllTrim(SM0->M0_NOMECOM) + '</dNomFanEmi>' + cSalto
    	cXml += '				<dDirEmi>'+ AllTrim(SM0->M0_ENDENT) + '</dDirEmi>' + cSalto
    	cXml += '				<dNumCas>' + cNumCasa + '</dNumCas>' + cSalto
    	cXml += '				<cDepEmi>' + cDepEmi+ '</cDepEmi>' + cSalto
    	cXml += '				<dDesDepEmi>' + AllTrim(ObtColSAT("S003",cDepEmi, 1, 2, 3,28)) + '</dDesDepEmi>' + cSalto
    	cXml += '				<cDisEmi>' + AllTrim(cDisEmi) + '</cDisEmi>' + cSalto
    	cXml += '				<dDesDisEmi>' + AllTrim(ObtColSAT("S031",cDisEmi, 1, 3, 4,30))+ '</dDesDisEmi>' + cSalto
    	cXml += '				<cCiuEmi>' +  AllTrim(cCiuEmi)  + '</cCiuEmi>' + cSalto
    	cXml += '				<dDesCiuEmi>' +  AllTrim(ObtColSAT("S012",cCiuEmi, 48, 4, 52,30))+ '</dDesCiuEmi>' + cSalto
    	If !Empty(SM0->M0_TEL)
    		cXml += '				<dTelEmi>' + AllTrim(SM0->M0_TEL) + '</dTelEmi>' + cSalto
    	EndIf
    	cXml += '				<dEmailE>' +  cEmail  + '</dEmailE>' + cSalto //Quitar
    	cXml += '				<gActEco>' + cSalto
    	cXml += '					<cActEco>' + AllTrim(SM0->M0_DSCCNA) + '</cActEco>' + cSalto
    	cXml += '					<dDesActEco>'+ ObtColSAT("S006",SUBSTR(SM0->M0_DSCCNA,1,6) , 2, 5, 7,166)+'</dDesActEco>' + cSalto
    	cXml += '				</gActEco>' +  cSalto
    	cXml += '			</gEmis>' + cSalto
    	//RECEPTOR
    	SA1->(DbSetOrder(1))
    	SA1->(MSSeek(xFilial("SA1")+SF1->F1_FORNECE+SF1->F1_LOJA))
    	SYA->(DbSetOrder(1))
    	SYA->(MsSeek(xFilial("SYA")+SA1->A1_PAIS))
    
    	cXml += '			<gDatRec>' + cSalto
    	cXml += '				<iNatRec>1</iNatRec>' + cSalto
    	cXml += '				<iTiOpe>1</iTiOpe>' + cSalto
    	cXml += '				<cPaisRec>' + SYA->YA_CODERP + '</cPaisRec>' + cSalto
    	cXml += '				<dDesPaisRe>'+ ObtColSAT("S005",SYA->YA_CODERP, 1, 3, 4,52)+'</dDesPaisRe>' +cSalto
    	If !Empty(SA1->A1_CGC)
    		cXml += '				<iTiContRec>' + IIF(SA1->A1_PESSOA $ "F","1","2") + '</iTiContRec>' + cSalto
    		cXml += '				<dRucRec>' +  SUBSTR(SA1->A1_CGC,1,RAT("-",SA1->A1_CGC)-1) + '</dRucRec>' + cSalto
    		cXml += '				<dDVRec>' + Substr(SA1->A1_CGC,RAT("-",SA1->A1_CGC)+ 1,1) + '</dDVRec>' + cSalto
    	Else
    		cXml += '				<iTipIDRec>' + AllTrim(SA1->A1_TIPDOC) + '</iTipIDRec>' + cSalto
    		cXml += '				<dDTipIDRec>' +  ObtColSAT("S018", SA1->A1_TIPDOC, 1, 1, 2,41) + '</dDTipIDRec>' + cSalto
    		cXml += '				<dNumIDRec>' +  IIF(AllTrim(SA1->A1_TIPDOC)=="5","0",ALLTRIM(SA1->A1_NIF)) + '</dNumIDRec>' +cSalto
    	EndIf
    	cXml += '				<dNomRec>' + AllTrim(SA1->A1_NOME)+ '</dNomRec>' + cSalto
    	cXml += '				<dNomFanRec>' + AllTrim(SA1->A1_NREDUZ)+ '</dNomFanRec>' + cSalto
    	cXml += '				<dDirRec>' + AllTrim(SA1->A1_END) + '</dDirRec>' + cSalto
    	cXml += '				<dNumCasRec>' + AllTrim(SA1->A1_NUM) + '</dNumCasRec>' + cSalto
    	cXml += '				<cDepRec>' + SA1->A1_DEPTO + '</cDepRec>' + cSalto
    	cXml += '				<dDesDepRec>' + AllTrim(ObtColSAT("S003",SA1->A1_DEPTO, 1, 2, 3,28)) +'</dDesDepRec>' + cSalto
    	cXml += '				<cDisRec>' + SA1->A1_DISTR+ '</cDisRec>' + cSalto
    	cXml += '				<dDesDisRec>'+ AllTrim(ObtColSAT("S031",SA1->A1_DISTR, 1, 3, 4,30)) + '</dDesDisRec>' + cSalto
    	cXml += '				<cCiuRec>' + AllTrim(SA1->A1_CIUDAD) + '</cCiuRec>' + cSalto
    	cXml += '				<dDesCiuRec>' + AllTrim(ObtColSAT("S012",SA1->A1_CIUDAD, 48, 4, 52,30)) + '</dDesCiuRec>' + cSalto
    	If !Empty(SA1->A1_TEL)
    		cXml += '				<dTelRec>' + AllTrim(SA1->A1_TEL) + '</dTelRec>' + cSalto
    	EndIf
    	If !Empty(SA1->A1_EMAIL)
    		cXml += '				<dEmailRec>' + SA1->A1_EMAIL + '</dEmailRec>' + cSalto
    	EndIf
    	cXml += '				<dCodCliente>' + AllTrim(SA1->A1_COD) + '</dCodCliente>' + cSalto
    	cXml += '			</gDatRec>' + cSalto
    	cXml += '		</gDatGralOpe>' + cSalto
    
    	//TIPO DE PRESENCIA
    	cXml += '		<gDtipDE>' + cSalto
    	cXml += '        	<gCamNCDE>' + cSalto
    	cXml += '    			<iMotEmi>' + AllTrim(SF1->F1_TIPREF) + '</iMotEmi>' + cSalto
    	cXml += '        		<dDesMotEmi>'+ ObtColSAT("S021",SF1->F1_TIPREF, 1, 1, 2,30)+'</dDesMotEmi>' + cSalto
    	cXml += '        	</gCamNCDE>' + cSalto
    
    	cAliasTmp := u_QryItem("SD1", "D1_COD, D1_QUANT, D1_TES, D1_ITEM, SD1.R_E_C_N_O_", "D1_DOC='" + SF1->F1_DOC + "' AND D1_SERIE='" + SF1->F1_SERIE + "' AND D1_FORNECE='" + SF1->F1_FORNECE + "' AND D1_LOJA='" + SF1->F1_LOJA + "'",  "D1_ITEM") 
    	
    	While (cAliasTmp)->(!EOF())
    		cXml += '        	<gCamItem>' + cSalto
    		cXml += '    			<dCodInt>' + Alltrim((cAliasTmp)->B1_COD) + '</dCodInt>' + cSalto
    		cXml += '    			<dDesProSer>' + AllTrim((cAliasTmp)->B1_DESC) + '</dDesProSer>' + cSalto
    		cXml += '    			<cUniMed>' + AllTrim((cAliasTmp)->AH_COD_CO) + '</cUniMed>' + cSalto
    		cXml += '    			<dDesUniMed>' + ObtColSAT("S002",(cAliasTmp)->AH_COD_CO, 1, 3, 29,6) + '</dDesUniMed>' + cSalto
    		cXml += '    			<dCantProSer>' + AllTrim(TRANSFORM((cAliasTmp)->D1_QUANT,"9999999999.9999") )+ '</dCantProSer>' + cSalto
    		If (cAliasTmp)->R_E_C_N_O_ > 0
    			SD2->(dbgoto((cAliasTmp)->R_E_C_N_O_))
    		EndIf
    		cXml += M486IMPDPAR(ALLTRIM(SF1->F1_ESPECIE),SF1->F1_DOC,SF1->F1_SERIE, SF1->F1_FORNECE,SF1->F1_LOJA, (cAliasTmp)->D1_TES,(cAliasTmp)->D1_ITEM,(cAliasTmp)->D1_COD,@aDesc) + cSalto
    		cXml += '        	</gCamItem>' + cSalto
    		(cAliasTmp)->(dbSkip())
    	End
    	(cAliasTmp)->(dbcloseArea())
    	cXml += '		</gDtipDE>' + cSalto
    
    	aTotales := M486SUBTOT(ALLTRIM(SF1->F1_ESPECIE),SF1->F1_DOC,SF1->F1_SERIE, SF1->F1_FORNECE,SF1->F1_LOJA)
    	cXml += '		<gTotSub>' + cSalto
    	cXml += '        	<dSubExe>'+ AllTrim(TRANSFORM(aTotales[1],cPicture))+'</dSubExe>' + cSalto
    	cXml += '        	<dSubExo>'+ AllTrim(TRANSFORM(aTotales[2],cPicture))+'</dSubExo>' + cSalto
    	cXml += '        	<dSub5>'+ AllTrim(TRANSFORM(aTotales[3],cPicture))+'</dSub5>' + cSalto
    	cXml += '        	<dSub10>'+ AllTrim(TRANSFORM(aTotales[4],cPicture))+'</dSub10>' + cSalto
    	cXml += '        	<dTotOpe>'+ AllTrim(TRANSFORM(aTotales[5],cPicture))+'</dTotOpe>' + cSalto
    	cXml += '        	<dTotDesc>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dTotDesc>' + cSalto
    	cXml += '        	<dTotDescGlotem>'+ AllTrim(TRANSFORM(aTotales[6],cPicture))+'</dTotDescGlotem>' + cSalto
    	cXml += '        	<dTotAntItem>0</dTotAntItem>' + cSalto
    	cXml += '        	<dTotAnt>0</dTotAnt>' + cSalto
    	cXml += '        	<dPorcDescTotal>0</dPorcDescTotal>' + cSalto
    	cXml += '        	<dDescTotal>'+ AllTrim(TRANSFORM(aDesc[1],cPicture))+'</dDescTotal>' + cSalto
    	cXml += '        	<dAnticipo>0</dAnticipo>' + cSalto
    	cXml += '        	<dRedon>0.0</dRedon>' + cSalto
    	cXml += '        	<dTotGralOpe>'+ AllTrim(TRANSFORM(SF1->F1_VALBRUT,cPicture))+'</dTotGralOpe>' + cSalto
    	cXml += '        	<dIVA5>'+ AllTrim(TRANSFORM(aTotales[7],cPicture))+'</dIVA5>' + cSalto
    	cXml += '        	<dIVA10>'+ AllTrim(TRANSFORM(aTotales[8],cPicture))+'</dIVA10>' + cSalto
    	cXml += '        	<dTotIVA>'+ AllTrim(TRANSFORM(aTotales[9],cPicture))+'</dTotIVA>' + cSalto
    	cXml += '        	<dBaseGrav5>'+ AllTrim(TRANSFORM(aTotales[10],cPicture))+'</dBaseGrav5>' + cSalto
    	cXml += '			<dBaseGrav10>'+ AllTrim(TRANSFORM(aTotales[11],cPicture))+'</dBaseGrav10>' + cSalto
    	cXml += '			<dTBasGraIVA>'+ AllTrim(TRANSFORM(aTotales[12],cPicture))+'</dTBasGraIVA>' + cSalto
    	If AllTrim(STR(SF1->F1_MOEDA)) <> "1"
    		cXml += '			<dTotalGs>'+ AllTrim(TRANSFORM(SF1->F1_VALBRUT*SF1->F1_TXMOEDA,cPicture))+'</dTotalGs>' + cSalto
    	EndIf
    	cXml += '		</gTotSub>' +cSalto
    	
    	//DOCUMENTO ASOCIADO
    	cXml += '		<gCamDEAsoc>' + cSalto
    	cXml += M486ASOC(SF1->F1_ESPECIE,SF1->F1_DOC,SF1->F1_SERIE,SF1->F1_FORNECE,SF1->F1_LOJA,"1") + cSalto
    	cXml += '		</gCamDEAsoc>' + cSalto
    	cXml += '	</DE>' + cSalto
    	cXml += '</rDE>' + cSalto
    
    	RestArea(aSF)
    	RestArea(aArea)
    
    Return cXml
    
    /*/{Protheus.doc} QryItem Genera un query para obetener los datos correspondientes a los items.
    @param cAlias, caracter, Alias de la tabla.
    @param cCpos, caracter, Campos a ser usados en el query.
    @param cWhere, caracter, Condición a ser usada en el query.
    @param cOrder, caracter, Campo a ser usado en el orden,
    @return cAliasTmp, Alias de la tabla temporal.
    /*/
    User Function QryItem(cAlias, cCpos, cWhere, cOrder)
    Local cQuery 	:= ""
    Local cAliasTmp	:= getNextAlias()
    
    	cQuery := "Select "
    	cQuery += cCpos
    	cQuery += " ,B1_COD, B1_DESC, B1_UM, AH_COD_CO" 
    	cQuery += " from "+RetSqlName(cAlias)+ " " + cAlias + " "
    	cQuery += " Left Join " +RetSqlName("SB1")+ " SB1 ON " + IIf(cAlias == "SD2","D2_COD","D1_COD") + " = B1_COD AND B1_FILIAL = '" + xFilial("SB1") + "'"
    	cQuery += " Left Join " +RetSqlName("SAH")+ " SAH ON B1_UM = AH_UNIMED AND AH_FILIAL = '" + xFilial("SAH") + "'"
    	cQuery += " Where "
    	cQuery += cWhere
    	cQuery += " AND " + cAlias + ".D_E_L_E_T_ = ''"
    	cQuery += " AND SB1.D_E_L_E_T_ = ''"
    	cQuery += " AND SAH.D_E_L_E_T_ = ''"
    	If !Empty(cOrder)
    		cQuery += " ORDER BY "+ SqlOrder(cOrder)
    	EndIf
    	cQuery := ChangeQuery(cQuery)
    	dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasTmp,.T.,.T.)
    
    	(cAliasTmp)->(dbGoTop())
    
    Return cAliasTmp

    La información retornada en la variable cXml deberá contener el xml que será guardado para ser transmitido.

    Totvs custom tabs box items
    defaultno
    referenciapaso11

    PE - M486PDFGEN

    Descripción:

    M486PDFGEN.- Generación personalizada de Impresión Gráfica de Documentos

    Ubicación:

    Actualizaciones / Facturación / Transmisión Electrónica.

    Eventos:

    Imprimir PDF.

    Programa Fuente:

    MATA486.PRW

    Función:

    MenuDef

    Parámetros: 

    Posición

    Tipo

    Descripción

    N/AN/AN/A
    Retorno:N/A



    Totvs custom tabs box items
    defaultno
    referenciapaso12

    IMPRESION DEL KUDE - PARÁMETRO MV_IMPKUDE (EJEMPLO)

    Parámetro

    Descripción

    Tipo

    Valores

    Default

    MV_IMPKUDEConfiguración de la impresión del KUDE antes de obtener la autorización.Numérico

    1 = Imprime solo facturas validadas.

    2 = Imprime facturas validadas y facturas transmitidas.

    1 =  Imprime solo facturas validadas.


    03. Menús

    En el Configurador (SIGACFG), acceda a Entornos/Archivo/Menú (CFGX013). Informe las nuevas opciones de menú conforme las instrucciones a continuación:

    Menú

    Facturación

    Submenú

    Actualizaciones | Archivos

    Nombre de la Rutina

    Definición de Catálogos

    Programa

    FISA812

    Módulo

    Facturación

    Tipo

    Función Protheus

    Menú

    Facturación

    Submenú

    Actualizaciones | Archivos

    Nombre de la Rutina

    Mantenimiento de Catálogos

    Programa

    FISA813

    Módulo

    Facturación

    Tipo

    Función Protheus

    Menú

    Actualizaciones

    Submenú

    Facturación

    Nombre de la Rutina

    Documentos Electrónicos

    Programa

    MATA486

    Módulo

    SIGAFAT

    Tipo

    Función del Protheus

    04. Diccionario de datos


    Totvs custom tabs box
    tabsTablas,Campos,Consultas Estándar,Parámetros, Índices, Preguntas, Tablas genéricas,Leyenda/Estatus de los documentos
    idspaso1,paso2,paso3,paso4,paso5,paso6,paso7,paso8
    Totvs custom tabs box items
    defaultyes
    referenciapaso1

    Clave

    Nombre

    Modo

    PYME

    F3HConfiguración de CatálogosCS
    F3IInformación de CatálogosCS
    F7LPagos contado Factura ElectrónicaES
    Totvs custom tabs box items
    defaultno
    referenciapaso2
    CampoTipoTamañoDecimalFormatoTítuloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F3H
    F3H_FILIALC20
    SucursalSucursal1NoNoNo




    Digite el código de la sucursal.
    F3H_CODIGOC40@!CódigoCódigo del parámetro1SiSiSi


    NaoVazio() .and. ExistChav("F3H", M->F3H_CODIGO,1) .and. FreeForUse("F3H",M->F3H_CODIGO)
    Código del parámetro.
    F3H_DESCC300@!DescripciónDescripción del parámetro1SiSiSi


    NAOVAZIO()
    Descripción del parámetro.
    F3H_ORDEMC2099OrdenOrden del parámetro1SiSiNo




    Orden del parámetro.
    F3H_CAMPOSC100AXXXXXXXXXCamposNombre del Campo1SiSiNo


    NaoVazio() .and.  f812VerChav("F3H",M->F3H_CAMPOS)
    Incluir el nombre del campo.
    F3H_DESCPOC25
    @!Desc. CampoDescripción del Campo1SiSiNo




    Incluir la descripción del campo.
    F3H_TIPOC1
    @!TipoTipo1SiSiNoN=Numérico;C=Caracter;D=FechaF812Valid()
    NaoVazio() .and. Pertence("NCD")  .and. f812ChkTipo(M->F3H_TIPO)

    Incluya el tipo de campo. C = Carácter, D = Fecha, N = Numérico.

    F3H_TAMANN3
    999TamañoTamaño del Campo.1SiSiNo
    F812Valid()
    NaoVazio() .and. F812ChkTaman(M->F3H_TAMAN)

    Incluir el tamaño del campo.

    Obs: si el campo fuera tipo D=Fecha,  el tamaño debe ser igual a 8.

    F3H_DECIMAN2
    99DecimalDecimal1SiNoNo
    F812Valid()
    f812ChkDec(M->F3H_DECIMA
    Incluir el número de decimales que tendrá el campo. Campos tipo: Fecha y Carácter No tiene decimales
    F3H_PICTURC450@!FormatoFormato1SiNoNo




    Digite la máscara para la exhibición del campo. Ej.: "@E 999,99

    F3H_VALIDc1200@!ValidaciónValidación del Usuario1SiNoNo




    Agregar una validación del campo si es necesario.

    Ej,: Entre("01","10",M-> F3H_TAMAN,.T.)

    En el caso que la función utilizada sea "PERTENECE", deberá informarse el campo como segundo parámetro.

    Ej.: Pertence("12",cCampo)

    F3H_PADRAOC6
    @!Cons. Estand.Consulta Estándar1NoNoNo


    f812ConsPad()
    Digite una consulta estándar para la tabla.
    F3H_VERSAOC3
    @!VersiónVersión1SiNoNo




    Versión del catálogo.
    F3H_PESQC1
    @!¿Usado Busq?¿USado en la Busqueda?1NoNoNo1=Si;2=No



    ¿Usado en la Búsqueda de la Consulta Estándar (SXB)? Informar Si para utilizar este campo como clave simples de búsqueda.
    F3I
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F3I_FILIALC20
    SucursalSucursal1SiSiNo




    Informe el código de la sucursal.
    F3I_CODIGOC40@!CódigoCódigo del parámetro1SiNoNo


    EXISTCPO("F31")

    Informe el contenido de identificación del ítem de la lista.

    Por ejemplo, si la lista de modificación es la lista de países,

    este campo corresponde al código de identificación del país.

    F3I_SEQUENC5
    99999SecuenciaSecuencia1SiNoNo




    Secuencia.
    F3I_CONTEUC250
    @!ContenidoContenido de la tabla1SiNoNo




    Informe el contenido.
    F7L
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F7L_FILIALC20
    SucursalSucursal1NoNoNo




    Digite el código de la sucursal.
    F7L_DOCC130@!No. DocNúmero de Documento0SiSiSi




    Indique el número de documento
    F7L_SERIEC30@!SerieSerie del Documento0SiSiNo




    Indique el número de Serie
    F7L_CLIENTC60@!Cod. ClienteCod. Cliente0SiSiNo




    Código del Cliente.
    F7L_LOJAC20@!TiendaTienda0SiSiNo




    Código de Tienda
    F7L_CONDC40
    Cond. PagoCond. Pago0SiSiNo




    Condiciones de Pago
    F7L_SEQC30@999Num PagoNúmero de PagoSiSiNo




    Número de Pago
    F7L_TPPAGOC20@!Tipo de PagoTipo de Pago0SiSiSi

    PAR013NaoVazio() .or. ValidF3I("S013", M->F7L_TPPAGO,1,2)
    Tipo de Pago.
    F7L_MONTON182@E 999,999,999,999,999.99Monto PagoMonto Pago0SiSiSi




    Tipo de Pago
    F7L_TPTARC10@!Tipo TarjetaTipo Tarjeta0SiNoSi

    PAR014NaoVazio() .or. ValidF3I("S014", M->F7LU_TPTAR,1,1)
    Tipo Tarjeta
    F7L_FRMPROC10@!Frm. Proc. PForma Procesamiento Pago0SiSiNo

    PAR032NaoVazio() .or. ValidF3I("S032", M->F7L_FRMPRO,1,1)
    Forma de Procesamiento Pago
    F7L_CODOPEC10@!Cod. Aut. OPCódigo Autorización. Op.0SiNoSi




    Código Autorización Op.
    F7L_NUMTRJC40@!Num. TarjetaNum. Tarjeta0SiNoNo




    Número de Tarjeta
    F7L_CODBCOC60@!Banco EmisorBanco Emisor0SiNoNo




    Banco Emisor.
    F7L_C80@!Num ChequeNumero de Cheque0SiNoSi




    Número de cheque.
    SFP
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. Sistema

    ...

    Menú

    ...

    Facturación

    ...

    Submenú

    ...

    Actualizaciones | Archivos

    ...

    Nombre de la Rutina

    ...

    Mantenimiento de Catálogos

    ...

    Programa

    ...

    FISA813

    ...

    Módulo

    ...

    Facturación

    ...

    Tipo

    ...

    Función Protheus

    ...

    Menú

    ...

    Actualizaciones

    ...

    Submenú

    ...

    Facturación

    ...

    Nombre de la Rutina

    ...

    Documentos Electrónicos

    ...

    Programa

    ...

    MATA486

    ...

    Módulo

    ...

    SIGAFAT

    ...

    Tipo

    ...

    Función del Protheus

    04. Diccionario de datos

    Totvs custom tabs box
    tabsTablas,Campos,Consultas Estándar,Parámetros, Índices, Preguntas, Tablas genéricas
    idspaso1,paso2,paso3,paso4,paso5,paso6,paso7
    Totvs custom tabs box items
    defaultyes
    referenciapaso1

    Clave

    Nombre

    Modo

    PYME

    F3HConfiguración de CatálogosCS
    F3IInformación de CatálogosCS
    F7LPagos contado Factura ElectrónicaES
    Totvs custom tabs box items
    defaultno
    referenciapaso2
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F3H
    F3H_FILIALC20SucursalSucursal1NoNoNoDigite el código de la sucursal.F3H_CODIGOC40@!CódigoCódigo del parámetro1SiSiSiNaoVazio() .and. ExistChav("F3H", M->F3H_CODIGO,1) .and. FreeForUse("F3H",M->F3H_CODIGO)Código del parámetro.F3H_DESCC300@!DescripciónDescripción del parámetro1SiSiSiNAOVAZIO()Descripción del parámetro.F3H_ORDEMC2099OrdenOrden del parámetro1SiSiNoOrden del parámetro.F3H_CAMPOSC100AXXXXXXXXXCamposNombre del Campo1SiSiNoNaoVazio() .and.  f812VerChav("F3H",M->F3H_CAMPOS)Incluir el nombre del campo.F3H_DESCPOC25@!Desc. CampoDescripción del Campo1SiSiNoIncluir la descripción del campo.F3H_TIPOC1@!TipoTipo1SiSiNoN=Numérico;C=Caracter;D=FechaF812Valid()NaoVazio() .and. Pertence("NCD")  .and. f812ChkTipo(M->F3H_TIPO)

    Incluya el tipo de campo. C = Caracter, D = Fecha, N = Numérico.

    F3H_TAMANN3999TamañoTamaño del Campo.1SiSiNoF812Valid()NaoVazio() .and. F812ChkTaman(M->F3H_TAMAN)

    Incluir el tamaño del campo.

    Obs: si el campo fuera tipo D=Fecha,  el tamaño debe ser igual a 8.

    F3H_DECIMAN299DecimalDecimal1SiNoNoF812Valid()f812ChkDec(M->F3H_DECIMAIncluir el número de decimales que tendrá el campo. Campos tipo: Fecha y Caracter No tiene decimalesF3H_PICTURC450@!FormatoFormato1SiNoNo

    Digite la máscara para la exhibición del campo. Ej.: "@E 999,99

    F3H_VALIDc1200@!ValidaciónValidación del Usuario1SiNoNo

    Agregar una validación del campo si es necesario.

    Ej,: Entre("01","10",M-> F3H_TAMAN,.T.)

    En el caso que la función utilizada sea "PERTENECE", deberá informarse el campo como segundo parámetro.

    Ej.: Pertence("12",cCampo)

    F3H_PADRAOC6@!Cons. Estand.Consulta Estándar1NoNoNof812ConsPad()Digite una consulta estándar para la tabla.F3H_VERSAOC3@!VersiónVersión1SiNoNoVersión del catálogo.F3H_PESQC1@!¿Usado Busq?¿USado en la Busqueda?1NoNoNo1=Si;2=No¿Usado en la Búsqueda de la Consulta Estándar (SXB)? Informar Si para utilizar este campo como clave simples de búsqueda.
    F3I
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F3I_FILIALC20SucursalSucursal1SiSiNoInforme el código de la sucursal.F3I_CODIGOC40@!CódigoCódigo del parámetro1SiNoNoEXISTCPO("F31")

    Informe el contenido de identificación del ítem de la lista.

    Por ejemplo, si la lista de modificación es la lista de países,

    este campo corresponde al código de identificación del país.

    F3I_SEQUENC599999SecuenciaSecuencia1SiNoNoSecuencia.F3I_CONTEUC250@!ContenidoContenido de la tabla1SiNoNoInforme el contenido.
    F7L
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F7L_FILIALC20SucursalSucursal1NoNoNoDigite el código de la sucursal.F7L_DOCC130@!No. DocNúmero de Documento0SiSiSiIndique el número de documentoF7L_SERIEC30@!SerieSerie del Documento0SiSiNoIndique el número de SerieF7L_CLIENTC60@!Cod. ClienteCod. Cliente0SiSiNoCódigo del Cliente.F7L_LOJAC20@!TiendaTienda0SiSiNoCódigo de TiendaF7L_CONDC40Cond. PagoCond. Pago0SiSiNoCondiciones de PagoF7L_SEQC30@999Num PagoNúmero de PagoSiSiNoNúmero de PagoF7L_TPPAGOC20@!Tipo de PagoTipo de Pago0SiSiSiPAR013NaoVazio() .or. ValidF3I("S013", M->AIU_TPPAGO,1,2)Tipo de Pago.F7L_MONTON182@E 999,999,999,999,999.99Monto PagoMonto Pago0SiSiSiTipo de PagoF7L_TPTARC10@!Tipo TarjetaTipo Tarjeta0SiSiSiPAR014NaoVazio() .or. ValidF3I("S014", M->AIU_TPTAR,1,1)Tipo TarjetaF7L_FRMPROC10@!Frm. Proc. PForma Procesamiento Pago0SiSiNoPAR032NaoVazio() .or. ValidF3I("S032", M->AIU_FRMPRO,1,1)Forma de Procesamiento PagoF7L_CODOPEC10@!Cod. Aut. OPCódigo Autorización. Op.0SiSiSiCódigo Autorización Op.F7L_NUMTRJC40@!Num. TarjetaNum. Tarjeta0SiSiNoNúmero de TarjetaF7L_CODBCOC60@!Banco EmisorBanco Emisor0SiSiNoBanco Emisor.
    SFP
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    FP_SERIE2C2
    @!Serie 2Serie 21SiNoNo
    !(funname() $ 'MATA467N/MATA462N/MATA465N')



    FP_FINITIMC8

    Fch. In. TimFecha de inicio Timbrado1Si
    Si




    Fecha de inicio de timbrado.
    SA1
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    A1_TIPDOCC2
    @!Tipo Dic.Tipo Documento de Identid.1SiNoNo

    PAR018Vazio() .OR. ValidF3I("S018", M->A1_TIPDOC,1,21)
    Tipo de documento de identidad.
    A1_NUMC5
    @!No. CasaNúmero de casa1SiSiNoNo



    1Número de casa.
    A1_DEPTOC2
    @!Cod. DeptoCódigo de Departamento SET1SiSiNoNo

    PAR003NaoVazio() .and. ValidF3I("S003", M->A1_DEPTO,1,2)1Código de departamento de acuerdo al SET.
    A1_DISTRC3
    @!Cod. DistritoCódigo de Distrito1SiSiNoNo

    PAR031NaoVazio() .OR. ValidF3I("S031", M->A1_DISTR,3,3)1Código de distrito de acuerdo al SET.
    A1_CIUDADC4
    @!Cod. CiudadCódigo de Ciudad1SiSiNoNo

    PAR012NaoVazio() .OR. ValidF3I("S012", M->A1_CIUDAD,6,4)1Código de ciudad de acuerdo al SET.
    A1_PFISCAC18
    @!DNIDNI1SiNoNo



    1Documento de Identidad
    SF2
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F2_SERIE2C2
    @!Serie 2Serie 21SiNoSi


    !(funname() $ 'MATA467N/MATA462N/MATA465N')
    Serie usada en la factura electrónica.
    F2_DOCC13
    @!Num de DocNumero de Documento1SiNoSi


    CtrFolios(xFilial("SF2"),M->F2_SERIE,M->F2_ESPECIE,M->F2_DOC) .AND. LXEXSER2()

    F2_SERIEC3
    @!Serie Doc.Serie del Documento1SiNoSi


    LxExSer2()

    F2_HORAC8
    99:99HoraHora1SiNoSi





    F2_NUMTIMC13
    @!TimbradoNúmero Timbrado1SiNoSi
    .F.



    F2_TIPONFC4
    @!Tipo NFTipo de Factura.1SiNoSi

    PAR019Vazio() .or. ValidF3I("S019", M->F2_TIPONF,1,4)
    Tipo de Factura conforme a catálogo No. 19
    F2_UUIDC44
    @!CDCCDC1SiNoNo




    Número del CDC.
    F2_TIPREFC2
    @!Tipo Nota de DTipo de Nota de Debito1SiNoSi

    PAR021Vazio() .OR. ValidF3I("S021", M->F2_TIPREF,1,1)
    Motivo de Emisión
    F2_VEICULOC8
    @!Vehic. TranspVehículo del Transporte1SiNoTransporte1SiNoNo

    DA3NAOVAZIO() .AND. ExistCpo("DA3",M->F2_VEICULO,1)No
    Código del Vehículo.
    F2_RASTRC20
    @!VueloNo. de Vuelo1SiNoNo




    Número de vuelo cuando es transporte aéreo.
    F2_INCOTERC3
    @!IncotermsClave de Incoterms1SiNoNo

    PAR010Vazio() .or. ValidF3I("S010", M->F2_INCOTER,1,3)
    Condiciones de negociación.
    F2_FECDSED8

    Fch Ini TrasFecha Inicio de Traslado1SiNoNo




    Fecha inicio de traslado.
    F2_FECHSED8

    Fch fin TrasFecha Fin de Traslado1SiNoNo




    Fecha fin de traslado.
    F2_KMN70@E 9,999,999Dist. EntregaDistancia de Entrega1SiNoNo




    Distancia de entrega
    F2_TPTRANSC2
    @!Tipo TransacTipo de Transacción1SiNoNo

    PAR016Vazio() .or. ValidF3I("S016", M->F2_TPTRANS,1,2)
    Tipo Transacción
    F2_MOTEMIRC2
    @!Motivo EmisMotivo Emisión1SiNoNo

    PAR022Vazio() .or. ValidF3I("S022", M->F2_MOTEMIR,1,2)
    Motivo Emisión del Remito
    F2_FECTIMBD8

    Fecha Trans.Fecha de transmisión1SiNoSi




    Fecha de transmisión del documento.
    F2_FECANTFD8

    Fch Canc envFecha cancelación envio1SiNoSi




    Fecha de cancelación del documento enviado.
    F2_FLFTEXC1

    Status TransEstatus transmisión Elec1SiNoNo0=No Enviado;1=Enviado;5=Rechazado;6=Autorizado



    Estatus de los documento electrónicos.
    F2_TPRESFLC1
    @!Resp. FleteResponsable Flete1SiNoNo

    PAR027Vazio() .OR. ValidF3I("S027", M->F2_TPRESFL,1,1)
    Responsable del flete
    SF1
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    F1_DOCC13
    @!Num de Doc.Número de Documento1SiNoSi


    CtrFolios(xFilial("SF1"),M->F1_SERIE,M->F1_ESPECIE,M->F1_DOC) .AND. LXEXSER2()

    F1_SERIEC3
    @!Serie Doc.Serie del Documento1SiNoSi





    F1_SERIE2C2
    @!Serie 2Serie 21SiNoSi


    !(funname() $ 'MATA462N/MATA465N')

    F1_NUMTIMC13
    @!TimbradoNumero de Timbrado1SiNoSi
    .F.



    F1_UUIDC44
    @!CDCCDC1SiNoNo




    Número del CDC
    F1_TIPREFC2
    @!Tipo Nota de CTipo de nota de Crédito1SiNoSi

    PAR021Vazio() .OR. ValidF3I("S021", M->F1_TIPREF,1,1)
    Motivo de Emisión
    F1_FECTIMBD8

    Fecha Trans.Fecha de transmisión1SiNoSi




    Fecha de transmisión del documento.
    F1_FECANTFD8

    Fch Canc envFecha cancelación envio1SiNoSi




    Fecha de cancelación del documento enviado.
    F1_FLFTEXC1

    Status TransEstatus transmisión Elec1SiNoNo0=No Enviado;1=Enviado;5=Rechazado;6=Autorizado



    Estatus de los documento electrónicos.
    SYA
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    YA_CODERPC3
    @!Cod. ERPCod. ERP1SiSiNoSi

    PAR005

    Clave de País de acuerdo al catálogo No. 05
    CTO
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    CTO_MOESATC3
    @!Moneda SATMoneda SAT1SiSiNoSi

    PAR004

    Clave de moneda de acuerdo al catálogo No. 04
    SAH
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    AH_COD_COC3@!
    Ori Cert Cod.FIESP Ori Certif Cod1SiSiNoSi

    PAR002Vazio() .or. ValidF3I("S002", M->AH_COD_CO,1,3)

    Clave de Unidad de Medida de acuerdo al catálogo No. 02

    SA4
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    A4_TIPCONC1
    @!Tipo ContribTipo de Contribuyente1SiNoNo1=Contribuyente;2=No Contribuyente

    Pertence("12")

    A4_TIPIDC1
    @!Tipo de IdenTipo de identificación1SiNoNoPAR020

    PAR018Vazio() .OR. ValidF3I("S020S018", M->A4_TIPOIDTIPID,1,1)

    SC5
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    C5_TIPONFC4
    @!Tipo NFTipo de Factura1SiNoSi

    PAR019Vazio() .or. ValidF3I("S019", M->C5_TIPONF,1,1)
    Tipo de Factura conforme al catálogo 19
    C5_TPTRANSC2
    @!Tipo TransacTipo de Transacción1SiNoNo

    PAR016

    Vazio() .or. ValidF3I("S016", M->C5_TPTRANS,1,2)


    Tipo Transacción
    C5_RASTRC20
    @!VuevloNo. de Vuelo1SiNoNo




    Número de vuelo cuando es transporte aéreo
    C5_INCOTERC3
    @!IncontermsInconterms1SiNoNo

    PAR010Vazio() .or. ValidF3I("S010", M->C5_INCOTER,1,13)
    Condiciones de Negociación
    C5_FECDSED8

    Fecha Ini TrasFecha Inicio de Traslado1SiNoNo




    Fecha Inicio de Traslado
    C5_FECHSED8

    Fecha Fin TrasFecha Fin de Traslado1SiNoNo




    Fecha Fin de Traslado
    C5_MODTRADC2
    @!MotivoMotivo1SiNoNo


    Vazio() .or. ValidF3I("S022", M->C5_MODTRAD,1,2)
    Motivo de Emisión
    C5_TPRESFLC1
    @!Resp. FleteResponsable Flete1SiNoNo

    PAR027Vazio() .OR. ValidF3I("S027", M->C5_TPRESFL,1,1)
    Responsable del flete
    DA3
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. SistemaFolderHelp
    DA3_MARVEIC2
    @!MarcaMarca1SiNoSi

    M6ExistCpo("SX5","M6"+M->DA3_MARVEI,1)

    DA3_TIPTRATIPTR2C1
    @!Tipo Transp.Tipo de Transporte1SiNoNo

    PAR026Vazio() .OR. ValidF3I("S026", M->DA3_TIPTRA,1,1)

    DA3_FROVEIC1
    @!FlotaFlota1SiNoNo1=Propia;2=Tercero

    Pertence("12")

    DA3_TIPIDC1
    @!Tipo VechiculoTipo de Vehiculo1SiNoNo1= Numero de identificación del vehículo;2=Numero de matricula del vehículo

    Pertence('12')

    SFB
    CampoTipoTamañoDecimalFormatoTituloDescripciónNivelUtilizadoObligatorioBrowseOpcionesWhenConsulta(F3)Val. Sistema
    Help
    FB_CODIMPC1@!Cod. ImpuestCódigo de ImpuestoNaoVazio() .OR. ValidF3I("S017", M->FB_CODIMP,1,1)1SiSiNoNo


    PAR017
    Código de Impuesto
    FB_CLASSEC1@!
    Clase Imp.Clase de impuesto1SiSiNoI=Impuesto; P=Percepción; R=Retención



    Indica clase del impuesto.
    Totvs custom tabs box items
    defaultno
    referenciapaso3

    Alias

    Tipo

    SecuenciaColumnaDescripciónContenido
    Consulta PAR001
    PAR001101RERegímenesF3I
    PAR00120101RegímenesF812SXB("S001","Codigo")
    PAR001501

    VAR_IXB
    Consulta PAR002
    PAR002101REUnidades MedidaF3I
    PAR00220101Unidades MedidaF812SXB("S002","Codigo")
    PAR002501

    VAR_IXB
    Consulta PAR003
    PAR003101REDepartamentosF3I
    PAR00320101DepartamentosF812SXB("S003","Codigo")
    PAR003501

    VAR_IXB
    Consulta PAR004
    PAR004101REMonedasF3I
    PAR00420101MonedasF812SXB("S004","Codigo")
    PAR004501

    VAR_IXB
    Consulta PAR005

    PAR005

    101REPaísesF3I
    PAR00520101PaísesF812SXB("S005","Codigo")
    PAR005501

    VAR_IXB
    Consulta PAR006

    PAR006

    101REActividad EconómicaF3I
    PAR00620101Actividad EconómicaF812SXB("S006","Codigo")
    PAR006501

    VAR_IXB
    Consulta PAR007

    PAR007

    101REAfectacionesF3I
    PAR00720101AfectacionesF812SXB("S007","Codigo")
    PAR007501

    VAR_IXB
    Consulta PAR008

    PAR008

    101RECategoría ISCF3I
    PAR00820101Categoría ISCF812SXB("S008","Codigo")
    PAR008501

    VAR_IXB
    Consulta PAR009

    PAR009

    101RETasa ISCF3I
    PAR00920101Tasa ISCF812SXB("S009","Codigo")
    PAR009501

    VAR_IXB
    Consulta PAR010

    PAR010

    101RECondiciones F3I
    PAR01020101Condiciones F812SXB("S010","Codigo")
    PAR010501

    VAR_IXB
    Consulta PAR011

    PAR011

    101RERegímenes AduanerosF3I
    PAR01120101Regímenes AduanerosF812SXB("S011","Codigo")
    PAR011501

    VAR_IXB
    Consulta PAR012

    PAR012

    101REReferencia GeográficaF3I
    PAR01220101Referencia GeográficaF812SXB("S012","Codigo")
    PAR012501

    VAR_IXB
    Consulta PAR013

    PAR013

    101RETipos de PagoF3I
    PAR01320101Tipos de PagoF812SXB("S013","Codigo")
    PAR013501

    VAR_IXB
    Consulta PAR014

    PAR014

    101REDenominación de TarjetaF3I
    PAR01420101Denominación de TarjetaF812SXB("S014","Codigo")
    PAR014501

    VAR_IXB
    Consulta PAR015

    PAR015

    101REDocumento ElectrónicoF3I
    PAR01520101Documento ElectrónicoF812SXB("S015","Codigo")
    PAR015501

    VAR_IXB
    Consulta PAR016

    PAR016

    101RETipo de TransacciónF3I
    PAR01620101Tipo de TransacciónF812SXB("S016","Codigo")
    PAR016501

    VAR_IXB
    Consulta PAR017

    PAR017

    101RETipo OperaciónF3I
    PAR01720101Tipo OperaciónF812SXB("S017","Codigo")
    PAR017501

    VAR_IXB
    Consulta PAR018

    PAR018

    101REDocumento IdentidadF3I
    PAR01820101Documento IdentidadF812SXB("S018","Codigo")
    PAR018501

    VAR_IXB
    Consulta PAR019

    PAR019

    101REIndicador de PresenciaF3I
    PAR01920101Indicador de PresenciaF812SXB("S019","Codigo")
    PAR019501

    VAR_IXB
    Consulta PAR020

    PAR020

    101REDoc Identidad Ven/TrF3I
    PAR02020101Doc Identidad Ven/TrF812SXB("S020","Codigo")
    PAR020501

    VAR_IXB
    Consulta PAR021

    PAR021

    101REMotivo de Emisión NCF3I
    PAR02120101Motivo de Emisión NCF812SXB("S021","Codigo")
    PAR021501

    VAR_IXB
    Consulta PAR022

    PAR022

    101REMotivo de Emisión ReF3I
    PAR02220101Motivo de Emisión ReF812SXB("S022","Codigo")
    PAR022501

    VAR_IXB
    Consulta PAR023

    PAR023

    101REResponsable de EmisiónF3I
    PAR02320101Responsable de EmisiónF812SXB("S023","Codigo")
    PAR023501

    VAR_IXB
    Consulta PAR024

    PAR024

    101REVenta de VehículosF3I
    PAR02420101Venta de VehículosF812SXB("S024","Codigo")
    PAR024501

    VAR_IXB
    Consulta PAR025

    PAR025

    101RETipo de CombustibleF3I
    PAR02520101Tipo de CombustibleF812SXB("S025","Codigo")
    PAR025501

    VAR_IXB
    Consulta PAR026

    PAR026

    101REModalidad de TranspF3I
    PAR02620101Modalidad de TranspF812SXB("S026","Codigo")
    PAR026501

    VAR_IXB
    Consulta PAR027

    PAR027

    101REResponsable del FleteF3I
    PAR02720101Responsable del FleteF812SXB("S027","Codigo")
    PAR027501

    VAR_IXB
    Consulta PAR028

    PAR028

    101REDocumento ImpresoF3I
    PAR02820101Documento ImpresoF812SXB("S028","Codigo")
    PAR028501

    VAR_IXB
    Consulta PAR029

    PAR029

    101RETipo de OperaciónF3I
    PAR02920101Tipo de OperaciónF812SXB("S029","Codigo")
    PAR029501

    VAR_IXB
    Consulta PAR031

    PAR031

    101REDistritosF3I
    PAR03120101DistritosF812SXB("S031","Codigo")
    PAR031501

    VAR_IXB
    Consulta PAR032

    PAR032

    101REProc. de PagoF3I
    PAR03220101Proc. de PagoF812SXB("S032","Codigo")
    PAR032501

    VAR_IXB
    Totvs custom tabs box items
    defaultno
    referenciapaso4
    Nombre de la VariableTipoDescripción
    MV_PATH814CarácterRuta de donde serán cargados los catálogos
    MV_F3HNUMCarácterAlmacena el ultimo numero del código del parámetro
    MV_CFDI_AMCarácterConfiguración de ambiente para la comunicación con  los servicios web del SIFEN: T=(Teste) Pruebas;  P= Producción
    MV_CFDSMARCarácterCarpeta local en donde se procesarán las facturas para firmar y enviar al SIFEN.
    MV_CFDI_PACarácterNombre del archivo .exe encargado de firmar XML y consumir los servicios web del SIFEN.
    MV_CFDDOCSCarácterDirectorio donde se grabaran las facturas electrónicas.
    MV_CFDI_PXCarácterNombre del archivo en formato .pfx del certificado digital.
    MV_CFDICVECarácterContraseña del certificado digital para firmado de los XML y comunicación con el SIFEN.
    MV_IDCONENCarácterIdentificador control de envío Factura electrónica.
    MV_IDCSCCarácterIdentificador del código secreto del contribuyente
    MV_CSCCarácterCódigo secreto del contribuyente
    MV_CFDUSOCarácterIndica si las facturas electrónicas se utilizaran o no, configurándose con: 0 - No utiliza Fact-E, 1-Utiliza Fact-e, 2-Indica uso de Fact-E
    MV_CFDFTSCarácterIndica el directorio donde se grabara el archivo con la estructura de factura electrónica para doc. salida.
    las facturas electrónicas.
    MV_CFDI_PXCarácterNombre del archivo en formato .pfx del certificado digital.
    MV_CFDICVECarácterContraseña del certificado digital para firmado de los XML y comunicación con el SIFEN.
    MV_IDCONENCarácterIdentificador control de envío Factura electrónica.
    MV_IDCSCCarácterIdentificador del código secreto del contribuyente
    MV_CSCCarácterCódigo secreto del contribuyente
    MV_CFDUSOCarácterIndica si las facturas electrónicas se utilizaran o no, configurándose con: 0 - No utiliza Fact-E, 1-Utiliza Fact-e, 2-Indica uso de Fact-E
    MV_CFDANULCarácterIndica el directorio donde se grabaran los CFD de facturas anuladas.  
    MV_RELACNTCarácterCuenta a ser utilizada en el envío de E-Mail para los informes.  
    MV_TIPTRANCarácterConfiguración del tipo transmisión usada con SIFEN, A= Asíncrona; S:Síncrona
    MV_ASYNLOTNúmericoMáximo de documentos en lote transmisión asíncrona
    Totvs custom tabs box items
    defaultno
    referenciapaso5
    Indica directorio y archivo que contiene la estructura de factura electrónica para documento de entrada.
    Índice OrdenClaveDescripciónPropietario
    F3H1F3H_FILIAL+F3H_CODIGOCódigoS
    F3H2F3H_FILIAL+F3H_DESCDescripciónS
    F3H3F3H_FILIAL+F3H_CAMPOS+F3H_CODIGOCampos + CódigoS
    F3I1F3I_FILIAL+F3I_CODIGO+F3I_SEQUENCódigo + SecuenciaS
    F7L1F7L_FILIAL+F7L_DOC+F7L_SERIE+F7L_CLIENT+F7L_LOJADocumento + Serie + Cliente + TiendaSMV_CFDFTECarácter
    Totvs custom tabs box items
    defaultno
    referenciapaso5
    Índice OrdenClaveDescripciónPropietario
    F3H1F3H_FILIAL+F3H_CODIGOCódigoS
    F3H2F3H_FILIAL+F3H_DESCDescripciónS
    F3H3F3H_FILIAL+F3H_CAMPOS+F3H_CODIGOCampos + CódigoS
    F3I1F3I_FILIAL+F3I_CODIGO+F3I_SEQUENCódigo + SecuenciaS
    F7L1F7L_FILIAL+F7L_DOC+F7L_SERIE+F7L_CLIENT+F7L_LOJADocumento + Serie + Cliente + TiendaS
    Totvs custom tabs box items
    defaultno
    referenciapaso6
    paso6

    MATA486

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Tipo de Documento?Numérico1MV_PAR01

    FacturaNota de DébitoNota de CréditoRemisión

    Informe el tipo de documento con el que

    se estará trabajando durante la transmisión electrónica:

    1. Factura
    2. Nota de Débito
    3. Nota de Crédito
    4. Remisión 
    02¿Serie?Carácter3MV_PAR02
    SERNF



    Informe la serie del documento.

    03¿Estatus?Carácter1MV_PAR03
    SD



    Indica el estatus del documento electrónico.

    1-No transmitido

    2-Recibido

    3-Esperando Procesamiento

    4-Documento Rechazado

    5-Documento Autorizado

    04¿Fecha Inicial?Fecha8MV_PAR04





    Indique la fecha de digitación inicial.

    05¿Fecha Final?Fecha8MV_PAR05





    Indique la fecha de digitación final.


    MATA486AMATA486

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Tipo ¿Serie de Documentola Factura?NuméricoCarácter13MV_PAR01FacturaNota de DébitoNota de CréditoRemisión

    Informe el tipo de documento con el que

    se estará trabajando durante la transmisión electrónica:

    1. Factura
    2. Nota de Débito
    3. Nota de Crédito
    4. Remisión 

    SERNF



    Informe el número de Serie de la Factura

    02¿Factura Inicial?Carácter13MV_PAR02





    Informe el número Factura Inicial

    03¿Factura Final?Carácter13MV_PAR03!Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03




    Informe el número Factura Final


    MATA486B

    la serie del documento.

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de Nota de Debito02¿Serie?Carácter3MV_PAR02PAR01
    SERNF



    Informe el número de Serie de la Nota de Débito

    02¿Nota de Débito Inicial03¿Estatus?Carácter113MV_PAR03PAR02SD

    Indica el estatus del documento electrónico.

    1-No transmitido

    2-Recibido

    3-Esperando Procesamiento

    4-Documento Rechazado

    5-Documento Autorizado

    04¿Fecha Inicial?Fecha8MV_PAR04

    Indique la fecha de digitación inicial.

    05¿Fecha Final?Fecha8MV_PAR05

    Indique la fecha de digitación final.







    Informe el número de la Nota de Débito Inicial

    03¿Nota de Débito Final?Carácter13MV_PAR03!Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03




    Informe el número de la Nota de Débito Final


    MATA486CMATA486A

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de la FacturaNota de Crédito?Carácter3MV_PAR01
    SERNF



    Informe el número de Serie de la FacturaSerie de la Nota de Crédito

    02¿Factura ¿Nota de Crédito Inicial?Carácter13MV_PAR02





    Informe el número Factura de la Nota de Crédito Inicial

    03¿Factura ¿Nota de Crédito Final?Carácter13MV_PAR03!Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03




    Informe el número Factura de la Nota de Crédito Final


    MATA486BMATA486E

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de Nota de Debitola Remisión?Carácter3MV_PAR01
    SERNF



    Informe el número de Serie de la Nota de Débitola Remisión

    02¿Nota de Débito ¿Remisión Inicial?Carácter13MV_PAR02





    Informe el número de la Nota de Débito Remisión Inicial

    03¿Nota de Débito ¿Remisión Final?Carácter13MV_PAR03!Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03




    Informe el número de la Nota de Débito Remisión Final


    MATA486CMATA486F

    el número de Serie de la Nota de Crédito la Nota de Crédito Inicial!EmptyMV_PAR03PAR02<=MV_PAR03

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de Nota de Créditodocumento?Carácter3MV_PAR01NaoVazio()SERNF



    Informe

    serie del documento.

    02¿Nota de Crédito Inicial¿Documento inicial?Carácter13MV_PAR02





    Informe el número de

    documento inicial.

    03¿Nota de Crédito Final¿Documento final?Carácter13MV_PAR03NaoVazio() .And. MV_

    Informe el número de la Nota de Crédito Final

    MATA486E

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de la Remisión?Carácter3MV_PAR01SERNF

    Informe el número de Serie de la Remisión

    02¿Remisión Inicial?Carácter13MV_PAR02

    Informe el número de la Remisión Inicial

    PAR03>=MV_PAR02




    Informe el número de documento final.

    04¿Formato?Numérico1MV_PAR04NaoVazio()
    PDF


    Informe formato de generación de representación impresa.

    Totvs custom tabs box items
    defaultno
    referenciapaso7

    SD - Estatus Documentos

    ClaveDescripción
    1NO TRANSMITIDA
    2RECIBIDO
    3ESPERANDO PROCESAMIENTO
    4DOCUMENTO RECHAZADO
    5DOCUMENTO AUTORIZADO
    8DOCUMENTO CANCELADO/INUTILIZADO

    MATA486F

    Informe formato de generación de representación impresa.

    Totvs custom tabs box items
    defaultno
    referenciapaso8

    Leyenda/Estatus

    ColorEstatusCondición
    GrisNo Transmitida(F1_FLFTEX/F2_FLFTEX = '' o F1_FLFTEX/F2_FLFTEX = '0')
    AzulRecibido (F1_FLFTEX/F2_FLFTEX = '1')
    AmarilloEsperando procesamiento(F1_FLFTEX/F2_FLFTEX = '4' o F1_FLFTEX/F2_FLFTEX = '2')
    RojoDocumento rechazado(F1_FLFTEX/F2_FLFTEX == '5' o F1_FLFTEX/F2_FLFTEX == '3')
    VerdeDocumento autorizado(F1_FLFTEX/F2_FLFTEX = '6')
    BlancoDocumento inutilizado(F1_FLFTEX/F2_FLFTEX = '8' y  F1_FECANF/ F2_FECANTF vacío).
    CaféDocumento cancelado (F1_FLFTEX/F2_FLFTEX = '8' y  F1_FECANF/ F2_FECANTF diferente de vacío (con fecha de cancelación)).



    Aviso
    titleIMPORTANTE

    Los documentos cancelados e inutilizados son identificados con el valor 8 en el campo Estatus Transmisión (F1_FLFTEX/F2_FLFTEX). Para diferenciar estos documentos, se verifica si fue informada la fecha de cancelación (F1_FECANTF/F2_FECANTF). Los documentos cancelados sí tienen informada una fecha de cancelación; y los documentos inutilizados no tienen informada fecha de cancelación. 


    Leyenda/Estatus de los documentos

    Image Added

    03¿Remisión Final?Carácter13MV_PAR03!Empty(MV_PAR03) .And. MV_PAR02<=MV_PAR03

    Informe el número de la Remisión Final

    X1_ORDEM

    X1_PERGUNTX1_TIPOX1_TAMANHOX1_VAR01X1_VALIDX1_F3X1_DEF01X1_DEF02X1_DEF03X1_DEF04X1_HELP
    01¿Serie de documento?Carácter3MV_PAR01NaoVazio()SERNF

    Informe serie del documento.

    02¿Documento inicial?Carácter13MV_PAR02

    Informe el número de documento inicial.

    03¿Documento final?Carácter13MV_PAR03NaoVazio() .And. MV_PAR03>=MV_PAR02

    Informe el número de documento final.

    04¿Formato?Numérico1MV_PAR04NaoVazio()PDF

    SD - Estatus Documentos

    Totvs custom tabs box items
    defaultno
    referenciapaso7
    ClaveDescripción
    1NO TRANSMITIDA
    2RECIBIDO
    3ESPERANDO PROCESAMIENTO
    4DOCUMENTO RECHAZADO
    5DOCUMENTO AUTORIZADO

    ...

    defaultno
    referenciapasoERROR

    ...









    05. TABLAS UTILIZADAS

    • SA1 - Clientes
    • SE4 - Condiciones de pago

    • SYA - Países
    • CTO - Monedas
    • SAH - Unidades de medida
    • SFB - Impuestos variables
    • SFP - Control de 
    • SB1 - Productos
    • SD1 - Ítems de facturas de entrada.
    • SF1 - Encabezado de facturas de entrada.
    • SD2 - Ítems de facturas de salida.
    • SF2 - Encabezado de facturas de salida.
    • AQ2 - Lotes de facturación.
    • AQ3- Detalle lotes de facturación.



    HTML
    <!-- esconder o menu --> 
    
    
    <style>
    div.theme-default .ia-splitter #main {
        margin-left: 0px;
    }
    .ia-fixed-sidebar, .ia-splitter-left {
        display: none;
    }
    #main {
        padding-left: 10px;
        padding-right: 10px;
        overflow-x: hidden;
    }
    
    .aui-header-primary    padding-right: 10px;.aui-nav,  .aui-page-panel {
        margin-left: 0px !important;
    }
    .aui-header-primary .aui-nav {
        overflowmargin-xleft: 0px hidden!important;
    }
    </style>
    
    .aui-header-primary .aui-nav,  .aui-page-panel {
        margin-left: 0px !important;
    }
    .aui-header-primary .aui-nav {
        margin-left: 0px !important;
    }
    </style>
    
    


    06. TEMAS RELACIONADOS

    DMICNS-14750 DT Transmisión asíncrona PAR

    16602764 DMICNS-16650 DT Tipo de operación PAR

    16237597 DMICNS-16301 DT Generación del XML del evento de cancelación PAR

    16158151 DMICNS-16302 DT Evento inutilización PAR

    16776831 DMICNS-16884 DT Fact Electrónica datos sucursal PAR

    DMICNS-14924 DT Retransmisión de documentos rechazados PAR

    DMICNS-15935 DT Condición de pago tipo 7 y cancelación PAR

    DMICNS-13164 DT Error log al transmitir Factura en Oracle PAR

    DMICNS-13287 DT problema con SUBSTR Oracle PAR

    16918885 DMICNS-17017 DT PDF Factura Electrónica RDMAKE PAR. 

    DMICNS-14068 DT Documentos electrónicos sin RUC para minoristas PAR

    16254964 DMICNS-16340 DT Generación de factura electrónica con bonificación PAR

    DMICNS-16024 DT Error al transmitir una NCC con factura no electrónica PAR

    18866781 DMICNS-19157 DT Leyenda en documentos cancelados/inutilizados PAR

    DT Ejecutable SIFENWS.EXE parámetros PAR

    20422822 DMICNS-20599 DT Tag iTipCont incorrecto PAR

    20421378 DMICNS-20636 DT Impresión de documentos de FCE aún no autorizadas parámetro MV_IMPKUDE PAR