Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 11-06-2021 em todas as áreas
-
Olá, Acabamos de enviar para o SVN do ACBr, no commit 22076 um importante ajuste, para o componente ACBrPosPrinter conseguir identificar corretamente, todas as impressoras EPSON de Bobina. Após a atualização dos fontes do ACBr, toda a Linha de impressoras da EPSON, que utilizam Esc/Pos, podem ser identificadas e acessadas pelo ACBr, simplesmente configurando a Porta com a string: 'USB'. Explicando um pouco mais... As impressoras da linha de Ponto de Venda, da EPSON, podem ser configuradas em modos PrinterClass, e VendorClass Este vídeo da EPSON, fala um pouco mais sobre os Modos PrinterClass e VendorClass Antes, se usássemos a sintaxe de Porta = 'USB', o ACBr somente conseguia encontrar as impressoras da EPSON, se elas estivessem configuradas no modo PrinterClass... mas agora também conseguimos encontrar e acessar as impressoras EPSON em modo VendorClass Portanto, todas as Impressoras das fotos abaixo, são acessíveis, apenas usando: ACBrPosPrinter.Porta := 'USB'; Acessando a Impressora diretamente pela USB, o ACBrPosPrinter também conseguirá, ler status e informações da impressora... Impressoras das Fotos, da Esquerda para a Direita: TM-H6000IV, TM-88V, TM-L90, TM-T20 e TM-T20X9 pontos
-
Olá! Tudo bem? Pessoal,para quem enfrenta problemas com o erro Erro: 12029 - Conexão com o Servidor falhou ou 13157 em ambiente de homologacao do ACBRMonitor para emitir nfe no windows 7 service Pack 1,descobri 2 soluções para o caso. 1ª Opção : Deve ser atualizado o Windows 7 com todas as atualizações disponiveis no site da microsoft e baixar o AIO Runtimes (All in one contem todos os microsoft framework e demais necessarios ) e atualizar o Internet Explorar para o 11 sendo que precisa baixar as atualizações dele. 2 ª opção : Atualizar o windows 7 para o windows 10 e baixar as atualizações,esse segundo metodo deve ser utilizado o atualizador da microsoft que muda a versao do windows 7 ou 8,8.1 para o Windows 10. Espero ter ajudado.5 pontos
-
Boa tarde! Atualizei o repositório do ACBr para a última revisão (22027), e creio ter encontrado um erro que invalida o arquivo XML no envio do evento S-3000 do eSocial, caso a versão do layout seja menor ou igual a 2.5. Houve uma alteração que acabou retirando a inclusão do campo "indApuracao" no grupo "ideFolhaPagto" para exclusão do evento S-1210. Porém este campo só se tornará opcional na versão simplificada do layout. Assim, coloquei uma condição para gerar o referido campo caso a versão do eSocial seja menor ou igual a 2.5. Em anexo está o arquivo conforme alterei. pcesS3000.pas2 pontos
-
Bom dia, Com certeza algo esta errado no Ambiente Nacional, pois comparei o XML de envio do evento com a NT e não tem nada que possa esta provocando essa rejeição. Outra coisa, quando ocorre a rejeição 999 ou é falha no webservice ou algo consta no XML de envio que o webservice não compreendei ou não tem uma regra de validação especifica.2 pontos
-
Oi Ítalo, Meu cliente testou e funcionou! Obrigado a você e toda equipe do ACBr pela rápida resposta Pode encerrar o chamado! Abraço a todos! Sergio2 pontos
-
Leiaute informa que em caso de CNO o FAP deve ser informado independente de ter ou não processo judicial para o FAP. Em caso de CNO e não ser informado o FAP ocorre erro no retorno do eSocial: "Campo de preenchimento obrigatório: FAP" Segue abaixo os fontes atualizados. pcesS1005.paspcesGerador.pas1 ponto
-
Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2399 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 04/06/2021, abaixo tb estará disponível function TEvtTSVTermino.LerArqIni(const AIniString: String): Boolean; var INIRec: TMemIniFile; Ok: Boolean; sSecao, sFim: String; I, J, K, L, M: Integer; begin Self.VersaoDF := TACBreSocial(FACBreSocial).Configuracoes.Geral.VersaoDF; //04/06/2021 Result := True; INIRec := TMemIniFile.Create(''); ------------------------------------------------------------------------------------- sSecao := 'ideTrabSemVinculo'; ideTrabSemVinc.CpfTrab := INIRec.ReadString(sSecao, 'cpfTrab', EmptyStr); ideTrabSemVinc.NisTrab := INIRec.ReadString(sSecao, 'nisTrab', EmptyStr); ideTrabSemVinc.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); ideTrabSemVinc.matricula := INIRec.ReadString(sSecao, 'matricula', EmptyStr); //04/06/2021 -- ------------------------------------------------------------------------------------- with detVerbas.New do begin codRubr := sFim; ideTabRubr := INIRec.ReadString(sSecao, 'ideTabRubr', ''); qtdRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'qtdRubr', ''), 0); fatorRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'fatorRubr', ''), 0); vrUnit := StringToFloatDef(INIRec.ReadString(sSecao, 'vrUnit', ''), 0); vrRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'vrRubr', ''), 0); indApurIR := eSStrToTpindApurIR(ok,INIRec.ReadString(sSecao, 'indApurIR', '')); //04/06/2021 Eduardo / Keli pcesS2399.pas1 ponto
-
Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2300 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 01/06/2021, abaixo tb estará disponível procedure TEvtTSVInicio.GerarFGTS(obj: TFGTS); begin if obj.dtOpcFGTS > 0 then begin if VersaoDF <= ve02_05_00 then Gerador.wGrupo('fgts') else Gerador.wGrupo('FGTS'); if VersaoDF <= ve02_05_00 then //01/06/2021 Gerador.wCampo(tcStr, '', 'opcFGTS', 1, 1, 1, eSOpcFGTSToStr(obj.OpcFGTS)); //if VersaoDF <= ve02_05_00 then //01/06/2021 Gerador.wCampo(tcDat, '', 'dtOpcFGTS', 10, 10, 0, obj.dtOpcFGTS); if VersaoDF <= ve02_05_00 then Gerador.wGrupo('/fgts') else Gerador.wGrupo('/FGTS'); end; end; -------------------------------------------------------------------------------- sSecao := 'infoTSVInicio'; infoTSVInicio.cadIni := eSStrToSimNao(Ok, INIRec.ReadString(sSecao, 'cadIni', 'S')); infoTSVInicio.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); infoTSVInicio.dtInicio := StringToDateTime(INIRec.ReadString(sSecao, 'dtInicio', '0')); infoTSVInicio.natAtividade := eSStrToNatAtividade(Ok, INIRec.ReadString(sSecao, 'natAtividade', '1')); infoTSVInicio.matricula := INIRec.ReadString(sSecao, 'matricula', ''); //01/06/2021 -------------------------------------------------------------------------------- sSecao := 'FGTS'; if INIRec.ReadString(sSecao, 'opcFGTS', '') <> '' then begin infoTSVInicio.infoComplementares.FGTS.OpcFGTS := eSStrToOpcFGTS(Ok, INIRec.ReadString(sSecao, 'opcFGTS', '1')); infoTSVInicio.infoComplementares.FGTS.DtOpcFGTS := StringToDateTime(INIRec.ReadString(sSecao, 'dtOpcFGTS', '0')); end; infoTSVInicio.infoComplementares.FGTS.DtOpcFGTS := StringToDateTime(INIRec.ReadString(sSecao, 'dtOpcFGTS', '0')); //01/06/2021 Grato Eduardo / Keli pcesS2300.pas1 ponto
-
Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2306 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 01/06/2021, abaixo tb estará disponível sSecao := 'infoComplementares'; if INIRec.ReadString(sSecao, 'codCargo', '') <> '' then begin infoTSVAlteracao.infoComplementares.cargoFuncao.CodCargo := INIRec.ReadString(sSecao, 'codCargo', ''); infoTSVAlteracao.infoComplementares.cargoFuncao.CodFuncao := INIRec.ReadString(sSecao, 'codFuncao', ''); end; infoTSVAlteracao.infoComplementares.cargoFuncao.nmCargo := INIRec.ReadString(sSecao, 'nmCargo', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.CBOCargo := INIRec.ReadString(sSecao, 'CBOCargo', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.nmFuncao := INIRec.ReadString(sSecao, 'nmFuncao', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.CBOFuncao := INIRec.ReadString(sSecao, 'CBOFuncao', ''); //01/06/2021 --------------------------------------------------------------------------- sSecao := 'ideTrabSemVinculo'; ideTrabSemVinc.CpfTrab := INIRec.ReadString(sSecao, 'cpfTrab', EmptyStr); ideTrabSemVinc.NisTrab := INIRec.ReadString(sSecao, 'nisTrab', EmptyStr); ideTrabSemVinc.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); ideTrabSemVinc.matricula := INIRec.ReadString(sSecao, 'matricula', EmptyStr); //01/06/2021 --------------------------------------------------------------------------- procedure TEvtTSVAltContr.GerarInstEnsino(obj: TinstEnsino); begin Gerador.wGrupo('instEnsino'); Gerador.wCampo(tcStr, '', 'cnpjInstEnsino', 14, 14, 0, obj.cnpjInstEnsino); if (obj.cnpjInstEnsino = '') then //01/06/2021 -- Preenchendo somente se não tiver CNPJ begin Gerador.wCampo(tcStr, '', 'nmRazao', 1, 100, 1, obj.nmRazao); Gerador.wCampo(tcStr, '', 'dscLograd', 1, 80, 0, obj.dscLograd); Gerador.wCampo(tcStr, '', 'nrLograd', 1, 10, 0, obj.nrLograd); Gerador.wCampo(tcStr, '', 'bairro', 1, 60, 0, obj.bairro); Gerador.wCampo(tcStr, '', 'cep', 1, 8, 0, obj.cep); Gerador.wCampo(tcInt, '', 'codMunic', 7, 7, 0, obj.codMunic); Gerador.wCampo(tcStr, '', 'uf', 2, 2, 0, obj.uf); end; Gerador.wGrupo('/instEnsino'); end; Grato Eduardo / Keli pcesS2306.pas1 ponto
-
Olá Pessoal, É com grande alegria e satisfação que a Equipe ACBr depois de quase 1 ano de trabalho comunica que já se encontra disponível para todos o novo componente para emissão de NFS-e. Por conta de varias melhorias e quebra de código optamos por manter o componente atual e disponibilizar o novo com um outro nome: ACBrNFSeX e também um novo componente para impressão do DANFSE: ACBrNFSeXDANFSERL (Fortes Report). Já esta disponível no repositório Trunk2 os fontes dos componentes bem como os pacotes de instalação (para o Delphi e Lazarus) e o programa exemplo para o Delphi). Em breve vai estar disponível o DANFSE feito em Fast Report, programa exemplo para o Lazarus e a atualização do ACBrInstall com a opção de instalação do novo componente. Estamos também elaborando um manual de migração que terá como objetivo ajudar os desenvolvedores que utilizam o componente atual a migrar para o novo. Esse manual vai apresentar as propriedades de configuração bem como os campos que não existem mais ou que tiveram seus nomes alterados e varias outras informações valiosas. Acreditamos que com o manual e o programa exemplo do novo componente qualquer desenvolvedor vai ser capaz de migrar a sua aplicação para o novo componente em uma semana, digo isso pois sempre aconselhamos que todos estudem o programa exemplo. O que esperar do novo componente: 1. Código mais limpo, removemos a maioria dos IF e CASE que antes eram utilizados para sanar a falta de padronização entre os provedores; 2. Um único método de emissão de NFS-e, que detecta automaticamente o modo de envio correto para cada provedor; 3. Leitura dos retornos padronizado; 4. Mais veloz; 5. Eliminação dos arquivos INI de provedores e o Cidades.ini, simplificando bastante os arquivos a serem distribuídos juntamente com o executável. 6. A implementação de novos provedores que seguem a versão 1 ou 2 do layout da ABRASF tendo todas as informações necessárias se faz em menos de 1 hora. O que vem pela frente: 1. Inclusão da NFS-e no ACBrMonitor Plus, desta forma os desenvolvedores que se utilizam dessa ferramenta em fim vão poder emitir também a NFS-e. 2. Desenvolvimento da ACBrLibNFSe, uma DLL para os desenvolvedores que preferem usar a DLL em vez do ACBrMonitor. Noticia: Nós achamos que o Projeto ACBr tem os melhores componentes disponíveis pelo melhor preço: grátis. Se você concorda, por favor espalhe essa noticia.1 ponto
-
Boa tarde. Depois do meu primeiro tópico aqui no fórum, onde eu buscava uma solução para a importação do BLOCO_G gerado por empresa terceirizada, Agora venho lhes trazer a aplicação que desenvolvi para tal função. Essa aplicação não só importa o Bloco G, mas também insere o crédito no Registro E110, calcula o valor do ICMS apurado e atualiza o valor do ICMS a ser pago no Registro E110 e no E116, também insere o código de Ajuste RS... no Registro E111 (Vale lembrar que este código varia de UF para UF). De quebra, como o ERP que usamos não zera as DANFEs REFERENCIADAS de cupons fiscais ao exportar o arquivo do SPED, então criei uma rotina para zerar as Danfes com CFOP 5929. Registros C100 e C190 de saída. Estou deixando aqui a minha contribuição para com esta comunidade que me foi muito útil, deixo os fontes (COMENTADOS) da aplicação e a atualização do ACBrEFDBloco_G_Importar. ACBrEFDBloco_G_Importar.pas Ciap.dpr Ciap.dproj Ciap.dproj.local Ciap.identcache Ciap.res Ciap_Icon.ico Principal.dfm Principal.pas1 ponto
-
Inclua esse trecho pra saber que o documento retornado se trata de um evento e não de uma NFe ou resumo de NFe. O trecho em vermelho não faz sentido porque o evento também pode ser um cancelamento, carta de correção, MDFe autorizado, registro de passagem, e muitos outros... Note também que dessa forma você pode capturar as manifestações feitas pelos destinatários das notas que você emitiu, mas não é retornado pelo webservice qual manifestação você já emitiu pra uma nota emitida por outro. (Espero que tenha ficado claro)1 ponto
-
Boa tarde! Atualizei e aparentemente deu certo. Muito obrigado! Passei para nosso setor de homologação. Att., Vinícius César.1 ponto
-
Boa tarde Rômulo, Muito obrigado pela colaboração, já inclui na minha lista de tarefas.1 ponto
-
Boa tarde Paulo Obrigada pelo interesse em contribuir, queira por favor nos atualizar aqui para que possamos iniciar a análise dos seus fontes. Att.1 ponto
-
Pode ser isso mesmo. Agora, eu abri os dois xml e não recebi diferença na identação, eu abro com o navegador IE ou notepad++ (este último com plugin para mostrar o xml com quebras de linhas, para ficar mais legível.). Obrigado pela explicação.1 ponto
-
Carlos, Esse é o problema de querer gerar o XML através da nossa aplicação. Abra esses dois XMLs que você anexou através do Bloco de notas. Você vai notar que você esta gerando o seu XML de forma identada, já o gerado pelo ACBrMonitor segue a recomendação que consta no manual, ou seja, o XML não deve ter quebras de linhas e muito menos estar identado. Como o XML do MDF-e tem duas tags <UF> uma do veiculo e outra do proprietário se o XML estiver identado (que esta errado conforme o manual) teremos problemas na leitura dessa tag.1 ponto
-
1 ponto
-
Bom dia Diego, Muito obrigado pela colaboração, já enviei para o repositório.1 ponto
-
Bom dia, Favor atualizar os fontes e faça um novo teste.1 ponto
-
Bom dia Magno. Este arquivo pas trata-se do mesmo disponibilizado neste outro tópico? Att.1 ponto
-
Pelo que entendi vc não quer que dê erro se passar de 50 e sim que ele consiga enviar fragmentado. Se for isso, não vejo como essa regra poderia ser implementada dentro do ACBr, pois se você iniciou o envio ele seria responsável por separar e enviar cada 50 em um lote, teria que saber qual deu certo e qual deu erro, lembre-se que a comunicação é assincrona, pode ser que um lote consiga ser enviado e o outro não... ao meu ver seria algo muito elaborado. No meu caso faço a tratativa antes, mando para o componente apenas os 50 registros, no segundo envio mando os outros 50. Entendo que essa regra deva ficar na aplicação cliente.1 ponto
-
Você está fazendo o envio na versão errada A versão simplificada ainda não entrou em produção e o correto é: v02_05_00 é possível configurar a versão no componente ACBreSoc.Configuracoes.Geral.VersaoDF1 ponto
-
Bom dia @Dércio Luis Zanatta Conseguimos recriar o caso, está sendo analisado pelo consultor @Juliomar Marchetti1 ponto
-
Então precisamos de um padrão. e também cuidar para não repetir. eu subi do 1200 em outro post seu. favor rever esses arquivos e anexar novamente veja que é posto ao final do nome da classe o registro1 ponto
-
Bom dia, Só para contribuir... O erro ocorreu aqui também. Acontece porque na linha 6093 de todos os arquivos .csv, na tabela 21.1.H e agora também na 21.1.I , traz um texto com duas aspas duplas repetidas. 39233090;01;0;""Ex" 01 - Isso faz com que o quebralinha gere um erro. A solução que adotamos foi -> VLinha := StringReplace(VLinha,'""Ex"','"Ex',[rfReplaceAll]), direto na nossa aplicação, sem mexer nos fontes Acbr. Obrigado1 ponto
-
Bom dia de acordo com a nota orientativa o eSocial tem um período de convivência entre uma versão e outra.1 ponto
-
Bom dia, Moderadores, por favor podem fechar o tópico. Não implementei, mas seguem algumas informações, caso sejam úteis para quem tiver a mesma necessidade. 1. Encontrei um exemplo de como fazer em c# https://www.codeproject.com/Articles/99362/Scan-and-Read-the-Barcode-from-PDF-File 1.1. Primeiro o pdf é convertido para imagem via ghostscript. * Outra opção para converter o pdf para imagem: https://github.com/renancostab/XPdfSharp 1.2. Tento a imagem, existe exemplo de como ler o código de barras . * Outra opção para ler o código de barras utilizando o ZXing: https://foxlearn.com/windows-forms/how-to-read-a-barcode-from-an-image-in-csharp-464.html Obs: Para fazer via Delphi, acredito que seja possível: 1. Converter o Pdf para Imagem via GhostScript: Se foi feito em c# via dll via Delphi também é possível 2. Ler o código de barras via ZXing: Verificar https://github.com/Spelt/ZXing.Delphi1 ponto