-
Total de ítens
19 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Messias Antonio Natal
-
-
Observei que o nome da tag evtTotal esta diferente quando é o evento R2099, ela esta como evtTotalContrib
então realizei a seguinte alteração criei um variável
Tag_evtTotal: string;
e na leitura do campo
if leitor.rExtrai(4, 'evtTotal') <> '' then
Realizei a seguinte verificação:
Tag_evtTotal:='evtTotal'; if leitor.rExtrai(4, Tag_evtTotal) = '' then Tag_evtTotal:='evtTotalContrib'; if leitor.rExtrai(4, Tag_evtTotal) <> '' then
Desta forma consegui obter os dados.
Em anexo a unit pcnReinfRetEventos com a modificação para analise.
-
Estou realizando a homologação do Reinf 2.1.2 e no evento R2099 consulta de protocolo parece estar retornando a estrutura do XML diferente dos demais eventos com isso não esta carregando as informações do
evtTotal onde contem um dos dados mais importantes que é o Recibo (nrRecArqBase)
no trecho a seguir da função LerRetornoEventos:
if leitor.rExtrai(4, 'evtTotal') <> '' then
ele não encontra o evtTotal no XML, eu tentei mudar o nível e o nome conforme olhei no XML pra ver se conseguia retornar o dado correto mas sem sucesso.
Segue um exemplo da consulta de protocolo do evento R1000 onde funciona corretamente na 1ª imagem:
e segue outro exemplo da consulta de protocolo do evento R2099 onde não retorna na 2º imagem:
os fonte estão atualizados na data de hoje 30/09/2023 e o teste foi feito na minha aplicação e no ACBrReinf_Exemplo ambos ocorre o mesmo problema.
alguém já passou por isso ?
-
-
Foi criado no dia 16/08/2022 tópico para correção do erro MS1010 ID inválido: ACBrReinf Evento R-1000 - Erro MS1010 ID inválido
Conforme conversado com os consultores a correção estava certa e foi para o SVN: revision 27675 dia 06/12/2022
porem foi revertida no dia 26/12/2022 esse caso foi o mesmo do tópico: Reinf - MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante
Onde a correção aprovada subiu para o SVN dia 06/12/2022 e revertida 26/12/2022
Realizei as correções novamente, só que desta vez de uma forma diferente, ao invés de verificar se o Contribuinte é órgão publico foi verificado o tipo de documento CPF ou CNPJ, para ficar mais claro a condição.
Na função que gera a chave foi adicionado o tipo de inscrição TpInsc
function GerarChaveReinf(const emissao: TDateTime; const CNPJF: string; sequencial: Integer; --------> TpInsc: TtpInsc): String;
desta forma em todas as units de cada evento (pcnReinfR1000.pas, pcnReinfR1050.pas, pcnReinfR1070.pas, pcnReinfR2010.pas, pcnReinfR2020.pas, pcnReinfR2030.pas, pcnReinfR2040.pas, pcnReinfR2050.pas, pcnReinfR2055.pas, pcnReinfR2060.pas, pcnReinfR2070.pas, pcnReinfR2098.pas, pcnReinfR2099.pas, pcnReinfR3010.pas, pcnReinfR4010.pas, pcnReinfR4020.pas, pcnReinfR4040.pas, pcnReinfR4080.pas, pcnReinfR4099.pas, pcnReinfR9000.pas)
que usa a função foi alterada para passar o novo parâmetro
GerarChaveReinf(now, self.ideContri.NrInsc, self.Sequencial, self.ideContri.TpInsc);
e na função verificando esse tipo para definição de 1 ou 2 (Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF))
if TpInsc = tiCNPJ then Result := Result + IntToStr(1) else Result := Result + IntToStr(2);
Verificar viabilidade da correção.
Obrigado.
-
-
Em 27/02/2023 at 21:37, Renato Rubinho disse:
Boa noite @MessiasNatal13
Pode fazer um teste com essa unit mesclada com sua implementação?
Atualize os fontes, substitua a unit atual por esta, reinstale os componentes e faça novos testes.
Por favor, confirme se ficou ok para que os consultores enviem o novo fonte para o SVN.
Boa tarde !
Deu certo sim.
- 1
-
-
Em 06/12/2022 at 10:45, EMBarbosa disse:
Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
As alterações já foram para o SVN.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.Mais uma vez obrigado.
Boa tarde!
Durante a atualização do componente, a alteração que havia sido feita foi desfeita. Após verificar no SVN, constatou-se que a alteração foi removida em 26/12/2022 às 10:55:18, com a seguinte mensagem de commit: "[+] Implementação do novo layout "2.1.x" por Renato Rubinho". Infelizmente, a remoção da variável "PossuiNaturezaJuridicaNaRegra" afetou significativamente o sistema, uma vez que essa variável era fundamental para informar se determinado órgão público tinha ou não a natureza jurídica na regra. Gostaria de saber o motivo da remoção dessa variável?
-
Em 06/12/2022 at 10:44, EMBarbosa disse:
Muito obrigado pela contribuição.
Fiz a implementação baseada nela.
As alterações já foram para o SVN.
Pelo que vi está tudo certo.
Queira por favor atualizar, testar e reportar qualquer problema.Mais uma vez obrigado.
Realizei o update e fiz os testes tudo ok
Obrigado
-
Realizei a seguinte alteração pra poder conseguir gerar o arquivo
na classe TInfoEFR criei um atributo chamado PossuiNatirezaJuridicaNaRegra
TInfoEFR = class(TObject) private FideEFR: TtpSimNao; FcnpjEFR: String; FPossuiNaturezaJuridicaNaRegra: Boolean; public property ideEFR: TtpSimNao read FideEFR write FideEFR; property cnpjEFR: String read FcnpjEFR write FcnpjEFR; property PossuiNaturezaJuridicaNaRegra: Boolean read FPossuiNaturezaJuridicaNaRegra write FPossuiNaturezaJuridicaNaRegra; end;
com este campo consigo ter o controle pelo sistema analisando o CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA se determinado órgão vai gerar a tag sim ou não
procedure TevtInfoContri.GerarInfoEFR; begin if (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte in [tcOrgaoPublico]) and (infoContribuinte.infoCadastro.infoEFR.PossuiNaturezaJuridicaNaRegra) then begin Gerador.wGrupo('infoEFR'); Gerador.wCampo(tcStr, '', 'ideEFR', 1, 1, 1, SimNaoToStr(infoContribuinte.infoCadastro.infoEFR.ideEFR)); Gerador.wCampo(tcStr, '', 'cnpjEFR', 14, 14, 0, infoContribuinte.infoCadastro.infoEFR.cnpjEFR); Gerador.wGrupo('/infoEFR') end; end;
- 1
-
Ao definir na propriedade TipoContribuinte o enum tcOrgaoPublico do evento R-1000 é gerado a tag infoEFR conforme código abaixo:
procedure TevtInfoContri.GerarInfoEFR; begin if TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte in [tcOrgaoPublico] then begin Gerador.wGrupo('infoEFR'); Gerador.wCampo(tcStr, '', 'ideEFR', 1, 1, 1, SimNaoToStr(infoContribuinte.infoCadastro.infoEFR.ideEFR)); Gerador.wCampo(tcStr, '', 'cnpjEFR', 14, 14, 0, infoContribuinte.infoCadastro.infoEFR.cnpjEFR); Gerador.wGrupo('/infoEFR') end; end;
porem na regra esta faltando outra verificação de acordo com o manual de resposta do webservice:
MS1184 - O CNPJ do Ente Federativo Responsável é obrigatório se o Órgão Público {ideContri} não é o Ente Federativo Responsável e não pode ser informado caso contrário. O CNPJ informado deverá ser validado com a informação referente ao Ente Federativo Responsável (EFR) existente no cadastro do CNPJ da RFB.
MS1185 - O grupo infoEFR é Obrigatório se a Natureza Jurídica = [102-3, 103-1, 105-8, 106-6, 108-2, 117-1, 118-0, 123-6, 124-4]. Não deverá ser informado nos demais casos.
e conforme a mensagem adicionada no titulo:
MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante
a tag não deveria ser informada por conta da validação da Natureza Jurídica.
quem puder ajudar com alguma solução.
Obrigado
-
Tive este problema, cheguei a mexer no código fonte para ajustar o problema do ID veja o tópico que criei
- 1
-
Em 18/08/2022 at 22:04, Renato Rubinho disse:
Boa noite,
Em tese são suportados 100 eventos por lote.
Pela mensagem parece ter ultrapassado algum limite.
Está utilizando a produção restrita?
Se estiver, ela possui algumas restrições documentadas, pode ser também o caso do 2055.
Estou usando Produção restrita, o erro acontece quando passo de 10 realmente, pode ser validação do ambiente, irei analisar mais o documento.
-
13 minutos atrás, MessiasNatal13 disse:
Ao carregar os documentos de produtor rural, por exemplo dando 50 registros, realizo o loop e adiciono pelo New "FACBr.Eventos.ReinfEventos.R2055.New"
porem ao passar de 10 registro é retornado o erro : WebService: http://sped.fazenda.gov.br/RecepcaoLoteReinf/ReceberLoteEventos - - Inativo ou Inoperante tente novamente. - Erro Interno: 0 - Erro HTTP: 413 - URL: https://preprodefdreinf.receita.fazenda.gov.br/WsREINF/RecepcaoLoteReinf.svc - - The page was not displayed because the request entity is too large.
Acabei apertando o botão e gravou o tópico segue continuação da duvida:
A Dúvida é se o envio deve ser feito um a um como nota fiscal eletrônica, vc pode selecionar 50 notas e mandar o envio será uma de cada vez, o Reinf seria o mesmo tbm ?
-
Ao carregar os documentos de produtor rural, por exemplo dando 50 registros, realizo o loop e adiciono pelo New "FACBr.Eventos.ReinfEventos.R2055.New"
porem ao passar de 10 registro é retornado o erro : WebService: http://sped.fazenda.gov.br/RecepcaoLoteReinf/ReceberLoteEventos - - Inativo ou Inoperante tente novamente. - Erro Interno: 0 - Erro HTTP: 413 - URL: https://preprodefdreinf.receita.fazenda.gov.br/WsREINF/RecepcaoLoteReinf.svc - - The page was not displayed because the request entity is too large.
-
Estou realizando uma integração com ACBrReinf versão 1.5.1 para Órgão Público e me deparei com o erro MS1010 - ID inválido
o motivo do erro tem a ver com a validação da receita que esta no documento "Anexo II dos leiautes da EFD-Reinf - Regras de validação Versão 1.5.1" REGRA_VALIDA_ID_EVENTO
"A identificação única do evento (Id) é composta por 36 caracteres, conforme disposto a seguir: IDTNNNNNNNNNNNNNNAAAAMMDDHHMMSSQQQQQ
ID - Texto Fixo "ID";
T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF);
NNNNNNNNNNNNNN - Número do CNPJ ou CPF do contribuinte - Completar com zeros à direita. No caso de pessoas jurídicas, o CNPJ informado deve conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento R-1000, completando-se com zeros à direita, se necessário.
AAAAMMDD - Ano, mês e dia da geração do evento;
HHMMSS - Hora, minuto e segundo da geração do evento;
QQQQQ - Número sequencial da chave. Incrementar somente quando ocorrer geração de eventos na mesma data/hora, completando com zeros à esquerda. OBS.: No caso de pessoas jurídicas, o CNPJ informado deverá conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento S-1000, completando-se com zeros à direita, se necessário "
O ID gerado esta com a informação incorreta da opção T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF); esta saindo como 2 sendo que o correto é 1 o motivo disso é o seguinte:
no arquivo pcnGeradorReinf.pas linha 321 valida o tamanho da variável CNPJF:
if (Length(CNPJF) = 14) then Result := Result + IntToStr(1) else Result := Result + IntToStr(2);
Porem existe um regra para órgão público no campo nrInsc da tag ideContri "Informar o número de inscrição do contribuinte de acordo com o tipo de inscrição indicado no campo {tpInsc}. Se for um CNPJ deve ser informada a raiz/base de oito posições, exceto se a natureza jurídica do contribuinte declarante for de administração pública direta federal ([101-5], [104-0], [107- 4], [116-3], situação em que o campo deve ser informado com o CNPJ completo (14 posições). Validação: Se {tpInsc} for igual a [1], deve ser um número de CNPJ válido"
no caso órgão público se enquadra na definição de informar apenas a raiz/base de oito posições do CNPJ assim a verificação acima é definida como 2 pois a variável CNPJF não é igual a 14 assim gerando o ID incorreto.
A solução foi acrescentar nessa verificação um or com o TipoContribuinte = tcOrgaoPublico:
if (Length(CNPJF) = 14) or (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte = tcOrgaoPublico) then Result := Result + IntToStr(1) else Result := Result + IntToStr(2);
desta forma o ID é gerado corretamente, anexei o arquivo pcnGeradorReinf.pas com a correção e um comentário a respeito sobre as 8 posições
caso a correção seja a correta para atualizarem no repositório oficial.
se tiver alguma outra sugestão podem sugerir
Obrigado
- 1
-
-
Nos tópicos referente ao erro de inicialização da biblioteca LibXML2 pedem para que as dlls da pasta LibXml2 sejam distribuídos junto com o executável, no projeto que trabalho existe uma configuração de pasta para
dlls onde existe a pasta de x86 e x64.
A dúvida é existe uma forma de configurar o Acbr o caminho de leitura dessas dll assim não precisaria deixar as dll no caminho do executável ?
Obs: Seria possível estar distribuindo essas dlls nas pastas do windows "System32" e "SysWOW64" porem eu não queria fazer desta forma
Reinf Erro Consulta de Protocolo Evento R2099
em Dúvidas Gerais sobre o ACBr
Postado
OK, Obrigado.