Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2449 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa noite,

Pessoal, estou gerando a GNRE em ambiente de homologação via AcbrMonitor e está retornando essa mensagem abaixo:

GNRE.GerarGuia([Emitente]
tipo=1
id=08.797.179/0001-61
RazaoSocial=DSG Distribuidora de Alimentos Ltda
IE=
Endereco=Rua Salatiel Marques Fontes, 695
Cidade=Sousa
UF=PB
Cep=58806470
Telefone=8335212697

[Complemento]
detalhamentoReceita=1
produto=1
tipoDocOrigem=10
docOrigem=001001161098

[Referencia]
ufFavorecida=RN
receita=100099
ValorPrincipal=406,61
dataVencimento=01/03/2018
convenio=PROTOCOLO 50/2015
dataPagamento=01/03/2018
referenciaMes=02
referenciaAno=2018
referenciaParcela=1

[Destinatario]
tipo=1
id=04.982.974/0001-79
IE=200911724
RazaoSocial=Gilson Gomes de Medeiros - Me
cidade=Jucurutu

)
ERRO: ID Inválido. Impossível Salvar XML

 

O meu código está assim:

procedure TfrmDIS_AcompCarga.btnGnreClick(Sender: TObject);
var
  {sPathGNRe,} MvNFeAmbiente, MvNfeTpEmis: String;
  i, nLote: Integer;
  cmdGNRe: TComandoMonitor;
  IniGNRE: TMemIniMonitor;
  QA1s: TDefDataSet;
begin
  MvNFeAmbiente := Copy(sLeParametro('MV_NFeAMBIENTE'), 1, 1);
  if MvNFeAmbiente = '' then
    MvNFeAmbiente := '2';   // Homologação

  //Cria diretorio para armazenar localmente os arquivos INI de eventos
  sDir := CriaPastaLocalINI('GNRe', '');

  //Configura UF, Doc. fiscal, ambiente, versão e forma de emissão
  pConfiguraMonitor(StrToInt(MvNFeAmbiente), 'NFE', MvNfeTpEmis);

  if MvNFeAmbiente = '2' then
    InfoMessageBox('Você está em ambiente de HOMOLOGAÇÃO, sem efeito fiscal.' + #13#10
      + 'Quando quiser alterar para o ambiente de PRODUÇÃO, basta informar a opção "1" no parâmetro "MV_NFeAMBIENTE" no módulo "Configurador".', Application.Title, [smbOK], smsInformation);

  pNewDataSet(QA1s);
  QA1s.CommandText := 'select A1_CIDADE, A1_IE from TA1 '
    + 'where (A1_FILIAL = :TA1_FILIAL) '
    + 'and (A1_CODIGO = :cod) and (A1_LOJA = :loj)';

  //Cria arquivo INI para carregar dados da GNRE
  nLote := fnc_CriaLote('LOT', 'GNRE');
  IniGNRE := TMemIniMonitor.Create(sDir + '\AddGNRE_' + IntTostr(nLote) + '.ini');

  with dbgNotas do
    for i := FixedRows to (RowCount - 1) do
    begin

      QA1s.Close;
      QA1s.ParamByName('cod').AsString := Cells[nColCli, i];
      QA1s.ParamByName('loj').AsString := Cells[nColLoj, i];
      QA1s.Open;

      // emitente
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Emitente', 'tipo', '1')
      else
        IniGNRE.WriteString('Emitente', 'tipo', '2');
      IniGNRE.WriteString('Emitente', 'id', xTransform(RemoveInvalid('0123456789', App_Var_CNPJ), '99.999.999/9999-99'));
      IniGNRE.WriteString('Emitente', 'RazaoSocial', App_Var_NomeCliente);
      //IniGNRE.WriteString('Emitente', 'IE', RemoveInvalid('0123456789', App_Var_IE));
      IniGNRE.WriteString('Emitente', 'IE', '');
      IniGNRE.WriteString('Emitente', 'Endereco', App_Var_EndTipoLogra + ' ' + App_Var_EndLogra + ', ' + App_Var_EndNumero);
      IniGNRE.WriteString('Emitente', 'Cidade', App_Var_EndCidade);
      IniGNRE.WriteString('Emitente', 'UF', App_Var_EndUF);
      IniGNRE.WriteString('Emitente', 'Cep', App_Var_EndCEP);
      IniGNRE.WriteString('Emitente', 'Telefone', App_Var_EndTel1);

      IniGNRE.WriteString('Complemento', 'detalhamentoReceita', '1');
      IniGNRE.WriteString('Complemento', 'produto', '1');
      IniGNRE.WriteString('Complemento', 'tipoDocOrigem', '10');
      IniGNRE.WriteString('Complemento', 'docOrigem', Cells[nColNfs, i] + Cells[nColNfn, i]);

      IniGNRE.WriteString('Referencia', 'ufFavorecida', Cells[nColUF, i]);
      IniGNRE.WriteString('Referencia', 'receita', '100099');
      IniGNRE.WriteString('Referencia', 'ValorPrincipal', Cells[nColVlr, i]);
      //c10_valorTotal := StrToReal(dbgNotas.Cells[nColVlr, ARow]);
      IniGNRE.WriteString('Referencia', 'dataVencimento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'convenio', 'PROTOCOLO 50/2015');
      IniGNRE.WriteString('Referencia', 'dataPagamento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'referenciaMes', StrZero(MonthOf(Now), 2));
      IniGNRE.WriteString('Referencia', 'referenciaAno', IntToStr(YearOf(Now)));
      IniGNRE.WriteString('Referencia', 'referenciaParcela', '1');

      // destinatário
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Destinatario', 'tipo', '1')
      else
        IniGNRE.WriteString('Destinatario', 'tipo', '2');
      IniGNRE.WriteString('Destinatario', 'id', Cells[nColDOC, i]);
      IniGNRE.WriteString('Destinatario', 'IE', QA1s.FieldByName('A1_IE').AsString);
      IniGNRE.WriteString('Destinatario', 'RazaoSocial', Cells[nColFan, i]);
      IniGNRE.WriteString('Destinatario', 'cidade', RemoveAcento(QA1s.FieldByName('A1_CIDADE').AsString));

      // Campos Extras
      //camposExtras.Add;
      //camposExtras.Items[0].CampoExtra.codigo := 45;  // minas gerais, ler manual GNR-e

      cmdGNRe := Monitor_Exec('GNRE.GerarGuia(' + IniGNRE.TextoIni + ')');

      if cmdGNRE.OK then
      begin
        cmdGNRE.CriaIniRet;
        showmessage('recibo:' + cmdGNRE.ReadChaveSolta('recibo') );
      end;

      //limpa ini para adicionar nova GNRE
      IniGNRe.Clear;
    end;

  QA1s.Close;
  FreeAndNil(QA1s);

end;
 

  • Membros Pro
Postado

Pessoal, alguém poderia fornecer um código completo pra gerar a GNRE com sucesso? pois pelo que vi o código disponibilizado no manual não está completo e não sei onde buscar essa informação.

Obrigado!

  • Membros Pro
Postado
8 minutos atrás, Italo Jurisato Junior disse:

Bom dia Josenildo,

Desculpa não entendi, você esta usando o ACBrMonitor, mas esta gerando o arquivo INI através de uma aplicação feita em Delphi é isso?

Isso Mesmo. Diretamente de minha aplicação que é Delphi.

Em 28/02/2018 at 21:26, josenildo.bandeira disse:

Boa noite,

Pessoal, estou gerando a GNRE em ambiente de homologação via AcbrMonitor e está retornando essa mensagem abaixo:

GNRE.GerarGuia([Emitente]
tipo=1
id=08.797.179/0001-61
RazaoSocial=DSG Distribuidora de Alimentos Ltda
IE=
Endereco=Rua Salatiel Marques Fontes, 695
Cidade=Sousa
UF=PB
Cep=58806470
Telefone=8335212697

[Complemento]
detalhamentoReceita=1
produto=1
tipoDocOrigem=10
docOrigem=001001161098

[Referencia]
ufFavorecida=RN
receita=100099
ValorPrincipal=406,61
dataVencimento=01/03/2018
convenio=PROTOCOLO 50/2015
dataPagamento=01/03/2018
referenciaMes=02
referenciaAno=2018
referenciaParcela=1

[Destinatario]
tipo=1
id=04.982.974/0001-79
IE=200911724
RazaoSocial=Gilson Gomes de Medeiros - Me
cidade=Jucurutu

)
ERRO: ID Inválido. Impossível Salvar XML

 

O meu código está assim:

procedure TfrmDIS_AcompCarga.btnGnreClick(Sender: TObject);
var
  {sPathGNRe,} MvNFeAmbiente, MvNfeTpEmis: String;
  i, nLote: Integer;
  cmdGNRe: TComandoMonitor;
  IniGNRE: TMemIniMonitor;
  QA1s: TDefDataSet;
begin
  MvNFeAmbiente := Copy(sLeParametro('MV_NFeAMBIENTE'), 1, 1);
  if MvNFeAmbiente = '' then
    MvNFeAmbiente := '2';   // Homologação

  //Cria diretorio para armazenar localmente os arquivos INI de eventos
  sDir := CriaPastaLocalINI('GNRe', '');

  //Configura UF, Doc. fiscal, ambiente, versão e forma de emissão
  pConfiguraMonitor(StrToInt(MvNFeAmbiente), 'NFE', MvNfeTpEmis);

  if MvNFeAmbiente = '2' then
    InfoMessageBox('Você está em ambiente de HOMOLOGAÇÃO, sem efeito fiscal.' + #13#10
      + 'Quando quiser alterar para o ambiente de PRODUÇÃO, basta informar a opção "1" no parâmetro "MV_NFeAMBIENTE" no módulo "Configurador".', Application.Title, [smbOK], smsInformation);

  pNewDataSet(QA1s);
  QA1s.CommandText := 'select A1_CIDADE, A1_IE from TA1 '
    + 'where (A1_FILIAL = :TA1_FILIAL) '
    + 'and (A1_CODIGO = :cod) and (A1_LOJA = :loj)';

  //Cria arquivo INI para carregar dados da GNRE
  nLote := fnc_CriaLote('LOT', 'GNRE');
  IniGNRE := TMemIniMonitor.Create(sDir + '\AddGNRE_' + IntTostr(nLote) + '.ini');

  with dbgNotas do
    for i := FixedRows to (RowCount - 1) do
    begin

      QA1s.Close;
      QA1s.ParamByName('cod').AsString := Cells[nColCli, i];
      QA1s.ParamByName('loj').AsString := Cells[nColLoj, i];
      QA1s.Open;

      // emitente
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Emitente', 'tipo', '1')
      else
        IniGNRE.WriteString('Emitente', 'tipo', '2');
      IniGNRE.WriteString('Emitente', 'id', xTransform(RemoveInvalid('0123456789', App_Var_CNPJ), '99.999.999/9999-99'));
      IniGNRE.WriteString('Emitente', 'RazaoSocial', App_Var_NomeCliente);
      //IniGNRE.WriteString('Emitente', 'IE', RemoveInvalid('0123456789', App_Var_IE));
      IniGNRE.WriteString('Emitente', 'IE', '');
      IniGNRE.WriteString('Emitente', 'Endereco', App_Var_EndTipoLogra + ' ' + App_Var_EndLogra + ', ' + App_Var_EndNumero);
      IniGNRE.WriteString('Emitente', 'Cidade', App_Var_EndCidade);
      IniGNRE.WriteString('Emitente', 'UF', App_Var_EndUF);
      IniGNRE.WriteString('Emitente', 'Cep', App_Var_EndCEP);
      IniGNRE.WriteString('Emitente', 'Telefone', App_Var_EndTel1);

      IniGNRE.WriteString('Complemento', 'detalhamentoReceita', '1');
      IniGNRE.WriteString('Complemento', 'produto', '1');
      IniGNRE.WriteString('Complemento', 'tipoDocOrigem', '10');
      IniGNRE.WriteString('Complemento', 'docOrigem', Cells[nColNfs, i] + Cells[nColNfn, i]);

      IniGNRE.WriteString('Referencia', 'ufFavorecida', Cells[nColUF, i]);
      IniGNRE.WriteString('Referencia', 'receita', '100099');
      IniGNRE.WriteString('Referencia', 'ValorPrincipal', Cells[nColVlr, i]);
      //c10_valorTotal := StrToReal(dbgNotas.Cells[nColVlr, ARow]);
      IniGNRE.WriteString('Referencia', 'dataVencimento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'convenio', 'PROTOCOLO 50/2015');
      IniGNRE.WriteString('Referencia', 'dataPagamento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'referenciaMes', StrZero(MonthOf(Now), 2));
      IniGNRE.WriteString('Referencia', 'referenciaAno', IntToStr(YearOf(Now)));
      IniGNRE.WriteString('Referencia', 'referenciaParcela', '1');

      // destinatário
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Destinatario', 'tipo', '1')
      else
        IniGNRE.WriteString('Destinatario', 'tipo', '2');
      IniGNRE.WriteString('Destinatario', 'id', Cells[nColDOC, i]);
      IniGNRE.WriteString('Destinatario', 'IE', QA1s.FieldByName('A1_IE').AsString);
      IniGNRE.WriteString('Destinatario', 'RazaoSocial', Cells[nColFan, i]);
      IniGNRE.WriteString('Destinatario', 'cidade', RemoveAcento(QA1s.FieldByName('A1_CIDADE').AsString));

      // Campos Extras
      //camposExtras.Add;
      //camposExtras.Items[0].CampoExtra.codigo := 45;  // minas gerais, ler manual GNR-e

      cmdGNRe := Monitor_Exec('GNRE.GerarGuia(' + IniGNRE.TextoIni + ')');

      if cmdGNRE.OK then
      begin
        cmdGNRE.CriaIniRet;
        showmessage('recibo:' + cmdGNRE.ReadChaveSolta('recibo') );
      end;

      //limpa ini para adicionar nova GNRE
      IniGNRe.Clear;
    end;

  QA1s.Close;
  FreeAndNil(QA1s);

end;
 

Acredito que esse erro " ERRO: ID Inválido. Impossível Salvar XML" se deve a montagem do arquivo INI que não está completa.

  • Membros Pro
Postado
8 horas atrás, Italo Jurisato Junior disse:

Josenildo,

Neste caso porque você não utiliza o componente ACBrGNRe na sua aplicação Delphi?

Temos um programa exemplo que você pode estudar para poder usar o componente na sua aplicação.

Estou utilizando via Monitor e por mais que li o código exemplo no acbr não encontrei as tags da chave de acesso da NF-e que tem que constar na GNR-e por exemplo.

Postado (editado)

Olá Josenildo essa tag da NFE tem que ir no CampoExtra seria na extrutura      ACBrGNRE.Guias.Items[0].GNRE.camposExtras

Nesse camarada você tem a opção do código solicitado na GNRE / Tipo / Valor que seria a chave da NF-e ou CT-e

Pode até ter mais de uma chave de NF-e ok?

O ID que está reclamando o ACBR utiliza o campo c42_identificadorGuia para gravar o nome do arquivo

Editado por Ernaniw
  • Membros Pro
Postado
Em 13/03/2018 at 07:38, Ernaniw disse:

Olá Josenildo essa tag da NFE tem que ir no CampoExtra seria na extrutura      ACBrGNRE.Guias.Items[0].GNRE.camposExtras

Nesse camarada você tem a opção do código solicitado na GNRE / Tipo / Valor que seria a chave da NF-e ou CT-e

Pode até ter mais de uma chave de NF-e ok?

O ID que está reclamando o ACBR utiliza o campo c42_identificadorGuia para gravar o nome do arquivo

Alguém poderia pelo menos postar um XML completo de uma GNR-e pra eu me basear, pois repito, o manual está desatualizado.

  • Moderadores
Postado
Em 14/03/2018 at 11:44, josenildo.bandeira disse:

Alguém poderia pelo menos postar um XML completo de uma GNR-e pra eu me basear, pois repito, o manual está desatualizado.

Boa tarde. Veja no manual (Tecla F1) que na tag "Complemento" tem o o campo "IdentificadorGuia", no seu arquivo não tem esse campo. Deve ser informado um número de controle.

 

ENT.txt

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 2449 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.