Ir para conteúdo
  • Cadastre-se

CarlosSolla

Membros Pro
  • Total de ítens

    61
  • Registro em

  • Última visita

Tudo que CarlosSolla postou

  1. Bom dia! Após a atualização do ACBR referente revisão 16797 , está apresentando o erro "List index out of bounds (0)' ao tentar carregar o xml do evento S-5011. var S5011: TS5011; begin S5011 := TS5011.Create; S5011.Xml := S1299XML5011.AsString; .... end; verifiquei os fontes e ao que parece o problema é no treco abaixo (linha 778 da unit pcesS5011.pas), onde, após adicionar um item no comando InfoCREstab.add, o InfoCREstab.Count permanece = 0. Não consegui entender o porque, talvez eu esteja fazendo algo errado while Leitor.rExtrai(4, 'infoCREstab', '', j + 1) <> '' do begin infoCS.ideEstab.Items[i].infoCREstab.Add; infoCS.ideEstab.Items[i].infoCREstab.Items[j].FtpCR := leitor.rCampo(tcInt, 'tpCR'); infoCS.ideEstab.Items[i].infoCREstab.Items[j].FvrCR := leitor.rCampo(tcDe2, 'vrCR'); infoCS.ideEstab.Items[i].infoCREstab.Items[j].FvrSuspCR := leitor.rCampo(tcDe2, 'vrSuspCR'); inc(j); end; Obrigado a todos!
  2. Bom dia Anderson, Acredito que são códigos da tabela 19 do eSocial - Motivos de Desligamento
  3. Boa tarde a todos! Referente ao nº do DI, é necessário ficar atento à quantidade de zeros à esquerda que vem especificado no documento, após o ano e antes do digito final. Um cliente precisou fazer uma nota de importação hoje, na qual o nº do DI no documento recebido da transportadora era no formato: AANNNNNNNNND, onde: AA -> Ano com 2 posições (18) NNNNNNNNN -> nº do documento de importação com zeros à esquerda até completar 9 dígitos. D -> Digito Verificador. Para dar certo na validação do ACBR tive que retirar os zeros à esquerda do nº do documento, ficando no formato TAANNNNNNND, onde: T -> Tipo de documento = 2 - Documento de Importação (DI) AA -> Ano com 2 posições = 18 NNNNNNN -> nº do documento com zeros a esquerda até completar 7 dígitos D -> dígito verificador.
  4. Bom dia Mariana O código que você postou apenas carrega as informações de um evento que será adicionado na lista de eventos que será incluída no lote. Você precisa cuidar para que não seja adicionado mais que 50 eventos, que é o máximo permitido por lote. Dentro de seu while, para cada evento você ainda precisa chamar o comando evtTabRubrica.GerarXML, onde o ACBR vai carregar o ID do evento (caso não tenho sido atribuido) e assinar. O arquivo na verdade será criado quando você chamar o comando ACBreSocial.Enviar(egIniciais), que é quando o arquivo XML será salvo na pasta especificada nas configurações do ACBR, isso se a opção de salvar o XML também estiver ativada, e o XML contendo os eventos carregados no lote (através dos comandos ACBreSocial.Eventos.Tabelas.S1010.Add) serão transmitidos. Logo após a transmissão deve-se esperar um tempinho através do comando Sleep(3000) e efetuar a consulta do protocolo do lote: var RetornoEnvioLote: TRetEnvioLote; DataHoraDaRecepcaoDoLote: string; VersaoDoAplicativoNaRecepcao: string; ProtocoloDoEnvioDoLote: string; begin RetornoEnvioLote := ACBreSocial.WebServices.EnvioLote.RetEnvioLote; if RetornoEnvioLote.Status.cdResposta in [201, 202] then begin DataHoraDaRecepcaoDoLote := RetornoEnvioLote.dadosRecLote.dhRecepcao; VersaoDoAplicativoNaRecepcao := RetornoEnvioLote.dadosRecLote.versaoAplicRecepcao; // ProtocoloDoEnvioDoLote deverá ser usado para obter depois o resultado do processamento do lote ProtocoloDoEnvioDoLote := RetornoEnvioLote.dadosRecLote.Protocolo; end; end;
  5. Boa tarde! Como sugestão estão postando uma adaptação que fiz na emissão da Danfe em Fast. Criei uma nova propriedade chamada de ExibirTotalTributosItem, que indica se a informação sobre os tributos deve ser impressa sempre ou apenas para o consumidor final. Incluída também na mesma unit ACBrNFeDANFEFR.pas uma correção na função PrepareReportEvento, pois em uma lista de NFes, o evento estava sendo impresso sempre referente à primeira NFe da lista. Desculpem se fiz algo errado, não tenho conhecimento da estrutura das classes do ACBr como um todo. Abraço! ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas
  6. Olá Rogério, boa tarde! Sim, realmente só podemos enviar lotes com no máximo 50 eventos. Dê uma olhada no tópico,abaixo que tem várias sugestões sobre como fazer o envio:
  7. Boa tarde Anderson, Creio que, mesmo utilizando certificado A3, você precisa carregar o nº de série do certificado para o componente ACBRESocial, da seguinte forma: ACBreSocial.Configuracoes.Certificados.NumeroSerie := wNumeroDeSerieDoCertificadoA3;
  8. Boa tarde! Valeu, Joao Jr, consegui enviar no modo Produção Restrita criando um numero usando o CPF sem o digito + um nro sequencial + digito gerado pelo site que você passou. Ainda bem que podemos simular o CAEPF, pois a caixa informou por email: Muito obrigado!
  9. Transmissão de empresa CEI Boa tarde! Alguém sabe qual o procedimento para a transmissão do eSocial para empresas (propriedades rurais) que são vinculadas à matricula CEI (o qual deve ser convertido para CAEPF). Alguém sabe como emitir o CAEPF? O certificado da empresa é um e-CPF do proprietário.
  10. Aqui também deu o mesmo erro , estou tentando desde as 15 horas , enviar eventos S-1010 e S-1020, ainda continua dando o mesmo erro.
  11. Também estou com o mesmo problema
  12. Boa tarde Não sei se entendi bem o que você precisa, mas seria algo assim: ... uses ... , pcesS1250; ... procedure TFExemploEsocial.GerareSocial1250_Trecho; var TempIdeProdutorItem: TIdeProdutorItem; begin with ACBreSocial1.Eventos.Periodicos.S1250.Add do begin EvtAqProd.Sequencial := 0; EvtAqProd.IdeEvento.indRetif := tpIndRetificacao(0); EvtAqProd.IdeEvento.NrRecibo := '65.5454.987798798798'; EvtAqProd.IdeEvento.IndApuracao := tpIndApuracao(iapuMensal); EvtAqProd.IdeEvento.perApur := '2015-06'; EvtAqProd.IdeEvento.TpAmb := taProducaoRestrita; EvtAqProd.IdeEvento.ProcEmi := TpProcEmi(0); EvtAqProd.IdeEvento.VerProc := '1.0'; EvtAqProd.IdeEmpregador.TpInsc := tiCPF; EvtAqProd.IdeEmpregador.NrInsc := '0123456789'; EvtAqProd.InfoAquisProd.IdeEstabAdquir.tpInscAdq := tiCNPJ; EvtAqProd.InfoAquisProd.IdeEstabAdquir.nrInscAdq := '12345678910001'; with EvtAqProd.InfoAquisProd.IdeEstabAdquir.TpAquis.Add do begin indAquis := tpIdAquis(0); vlrTotAquis := 520000.80; TempIdeProdutorItem := IdeProdutor.Add; TempIdeProdutorItem.tpInscProd := tiCNPJ; TempIdeProdutorItem.nrInscProd := '98765432100015'; TempIdeProdutorItem.vlrBruto := 4000.54; TempIdeProdutorItem.vrCPDescPR := 3850.32; TempIdeProdutorItem.vrRatDescPR := 500.30; TempIdeProdutorItem.vrSenarDesc := 2500.30; with TempIdeProdutorItem.Nfs.Add do begin serie := '00004'; nrDocto := '64896549898789'; dtEmisNF := Now; vlrBruto := 4000.54; vrCPDescPR := 3850.32; vrRatDescPR := 500.30; vrSenarDesc := 2500.30; end; end; ... end; end; (Trecho extraído da unit uExemploEsocial.pas, alterado para demonstração)
  13. Bom dia Italo, Unit com a alteração anexada. pcesS1050.pas
  14. Bom dia a todos! Estava incluindo algumas tabelas de horários com 2 intervalos , e estava dando o seguinte erro: First chance exception at $750F08F2. Exception class EArgumentOutOfRangeException with message 'Argument out of range'. Como não detectei nenhum problema na carga dos eventos, tentei alterar a procedure pcesS1050.TEvtTabHorTur.GerarHorarioIntervalo , conforme abaixo, e parou de dar o erro. Alguém já passou por isso, ou eu fiz alguma coisa errada? procedure TEvtTabHorTur.GerarHorarioIntervalo; var i: Integer; objHorarioIntervalo: THorarioIntervaloCollectionItem; begin if InfoHorContratual.dadosHorContratual.horarioIntervalo.Count > 99 then Gerador.wAlerta('', 'horarioIntervalo', 'Lista de Horário de Intervalo', ERR_MSG_MAIOR_MAXIMO + '99'); for i := 0 to InfoHorContratual.dadosHorContratual.horarioIntervalo.Count - 1 do begin objHorarioIntervalo := InfoHorContratual.dadosHorContratual.horarioIntervalo.Items[i]; //try Gerador.wGrupo('horarioIntervalo'); Gerador.wCampo(tcStr, '', 'tpInterv', 1, 1, 1, eSTpIntervaloToStr(objHorarioIntervalo.tpInterv)); Gerador.wCampo(tcStr, '', 'durInterv', 1, 3, 1, objHorarioIntervalo.durInterv); if (objHorarioIntervalo.tpInterv = tinHorarioFixo) then begin Gerador.wCampo(tcStr, '', 'iniInterv', 4, 4, 1, objHorarioIntervalo.iniInterv); Gerador.wCampo(tcStr, '', 'termInterv', 4, 4, 1, objHorarioIntervalo.termInterv); end; Gerador.wGrupo('/horarioIntervalo'); //finally //FreeAndNil(objHorarioIntervalo); //end; end; for i := InfoHorContratual.dadosHorContratual.horarioIntervalo.Count - 1 downto 0 do begin objHorarioIntervalo := InfoHorContratual.dadosHorContratual.horarioIntervalo.Items[i]; FreeAndNil(objHorarioIntervalo); end; end;
  15. Bom dia Italo! Muito obrigado pela resposta. Realmente era isso, eu estava carregando o CNPJ da empresa com 8 dígitos, isso é que estava causando o problema. Agora pouco li sobre isso no post abaixo, estava vindo postar que tinha encontrado quando vi sua resposta. Valeu!
  16. Amigos, boa tarde! Estou fazendo testes com o envio do evento S-1000 na produção restrita, e estou recebendo o erro 609. Pelo que pesquisei é o 1 digito da ID do evento, que está como '2', quando deveria ser '1'. Como posso acertar isso?
  17. Boa tarde! Acredito que sim, uso esta lógica para nomear os arquivos XML já há bastante tempo. Salvo no banco de dados apenas o conteúdo do XML, o nome do arquivo sempre gero na hora de salvar o arquivo XML em disco.
  18. Aqui montamos manualmente o nome do arquivo XML, no momento de salva-lo: List := TStringList.Create; try List.Text := XMLCartaCorrecao; List.SaveToFile(IncludeTrailingPathDelimiter(CaminhoParaSalvar) + '110110-' + ACBrNFe.NotasFiscais.Items[0].NFe.infNFe.ID +'-'+ SequenciaCartaCorrecao + '.xml', TEncoding.UTF8); finally List.Free; end;
  19. CarlosSolla

    XML com Tags estranhos

    Foi baixado um xml do site da receita, com os tags estranhos. Aí não dar certo ler o xml no componente ACBR. Procurei no forum mas não encontrei nada sobre isso Baixo com os tags asim (todos os tags com esse texto: xmlns="http://www.portalfiscal.inf.br/nfe">) <CNPJ xmlns="http://www.portalfiscal.inf.br/nfe">00000000000000</CNPJ> <xNome xmlns="http://www.portalfiscal.inf.br/nfe">NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN</xNome> O correto seria <CNPJ>00000000000000</CNPJ> <xNome>NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN</xNome> alguem sabe o que pode ter acontecido? Grato.
  20. Bom dia! Eu apenas estava em dúvida quanto a sequencia correta de chamada das rotinas, após a carga dos atributos. Agora estou chamando GerarNFE, logo após a carga dos atributos, a qual já gera o ID (e deve gerar também o XML). Grato.
  21. Boa noite Estou com uma dúvida, carreguei o componente ACBRNFe com as informações, atribuindo os valores ao atributos; Se eu gerar o xml, a chave de acesso é gerada normalmente. Mas como faço para obter a chave de acesso antes de gerar o xml?
  22. Olá, Tive o mesmo problema passando o valor '2421268,06' para a tag vprod. Após a chamada em pcnNFeW: Gerador.wCampo(tcDe2, 'I11 ', 'vProd ', 00, 15, 1, nfe.Det.Prod.vProd, DSC_VPROD); a unit pcnGerador recebia '2421268.0600' em valor. Porém, a linha ConteudoProcessado := FormatFloat('0.0000000000', valor), gerava '2421268.0600000001' causando erro na geração do XML. Após a correção do colega ademar-datalan, o problema deixou de ocorrer. Porém eu baixei a versão atualizada da unit pcnGerador e as linhas ref. a esta correção estão comentadas. Porque?
  23. É isso mesmo Italo, não é possível obter informações através da consulta, pois a inutilização se refere apenas ao número de uma ou mais notas que foram puladas na sequencia de números de nota.
  24. Olá amigos do fórum, Eu já procurei no fórum e não encontrei nenhuma resposta que me ajudasse. Eu preciso buscar e salvar o xml de uma inutilização que já foi homologada anteriormente. Como a inutilização já está homologada, eu executo o comando ACBrNFe1.WebServices.Inutilizacao, e o mesmo retorna falso, com a seguinte mensagem: Rejeicao: Ja existe pedido de Inutilizacao com a mesma faixa de inutilizacao [nProt: xxxxxx] Eu consigo pegar o nro. do protocolo na mensagem de erro, mas as propriedades abaixo ficam todas vazias: ACBrNFe1.WebServices.Inutilizacao.Protocolo ACBrNFe1.WebServices.Inutilizacao.XML_ProcInutNFe ACBrNFe1.WebServices.Inutilizacao.RetWS ACBrNFe1.WebServices.Inutilizacao.dhRecbto O que ocorre é que no momento da inutilização, apesar da mesma ter sido homologada na SEFAZ, ocorreu um erro e o sistema não salvou estas informações, e agora eu precisaria obter ao menos o XML. Grato pela atenção!
  25. Olá , era também um espaço, já está ok agora. Obrigado a todos
×
×
  • 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.