Vídeo apresentado ontem no Intensive Delphi 2016, demonstrando como é simples transformar sua aplicação Paf-ECF em um Emissor de NFC-e ou CF-e SAT utilizando os componentes de impressão Virtuais do ACBr com alguns poucos cliques.
Dias 16 e 17 de Abril
Belo Horizonte – MG
O Extreme Delphi vai rodar de Norte a Sul e agora chegou a vez de nós mineiros curtirmos dois dias de muito conteúdo regado a pão de queijo, o legítimo. Belo Horizonte é a cidade escolhida para reunir a comunidade de desenvolvedores Delphi do estado de Minas Gerais. A todos os mineiros: Estamos Chegando!!!!
Sem enrolação, direto ao ponto: 2 dias de programação Delphi ao extremo. Você não será o mesmo após participar deste evento único.
E para você que quer participar a parceria entre a RMFactory e o ACBr traz para vocês um cupom desconto na inscrição. Não perca tempo, utilize o link abaixo para fazer sua inscrição e garanta 10% de desconto no valor, atenção o desconto é por tempo limitado, não perca tempo, faça agora sua incrição.
Hoje foi liberado o novo componente ACBrBlocoX no repositório ACBr Trunk2, esse novo componente visa atender as necessidade de geração de arquivos XML da nova Especificação de Requisitos do Paf-ECF 02.03 que introduziu a geração de arquivos XML de estoque e reduções Z no menu fiscal .
Para maiores detalhes veja na especificação de requisitos versão 02.03 os seguintes trechos:
Requisito VII (Menu Fiscal)
Item 20 – Envio ao Fisco-REDUÇÃO Z
Item 21 – Envio ao Fisco-ESTOQUE
Requisito LVIII (Bloco X)
Requisito LIX (Bloco X)
Lembrando que o arquivo de redução Z deve ser gerado automaticamente após a redução, seja ela automática ou não e enviado ao fisco, ainda não existe a forma de envio, então os homologadores estão cobrando somente a geração correta do arquivo até que a lei seja alterada.
Requisito LVIII
2. O Arquivo com Informações da Redução Z do PAF-ECF deve ser gerado automaticamente quando o PAF-ECF comandar a emissão do documento Redução Z.
3. O Arquivo com Informações da Redução Z do
Quanto ao arquivo de estoque ele deve ser gerado até o dia definido para a entrega do SPED.
Requisito LIX
2. O Arquivo com Informações do Estoque Mensal do Estabelecimento deve ser gerado até o dia previsto para transmissão do arquivo da EFD ao SPED.
O IBPT liberou hoje as novas tabelas “De Olho no Imposto”, agora na versão 16.1.A
CONFIRA O QUE MUDOU
- Atualização da carga tributária de todos os produtos e serviços já com as alterações da MP DO BEM;
- Adequação legal das NBS E NCMs (TIPI).
Para efetuar o download vá até o site deolhonoimposto.ibpt.org.br, efetue o login e proceda com o download.
O repositório ACBr já está atualizado e o componente ACBrIBPTax já está preparado e de acordo com as novas tabelas.
![]()
Como o assunto está em alta vou escrever um artigo simples de como migrar do Trunk para o Trunk2 do ACBr, um passo-a-passo bem focado que pode ajudar aos que ainda não migraram.
Removendo o ACBr antigo
Primeiro passo é limparmos o antigo Trunk1 ACBr do Delphi, para isso vamos fazer o seguinte:
- Abra o delphi e vá até o menu Tools, Options, Library Path, remova todos os diretórios ACBr da lista;
- Ainda no delphi vá até o menu Components, Install Packages, remova todos os pacotes do ACBr da lista, clicando no pacote e depois no botão “Remove”;
- Feche o Delphi.
Baixando o Trunk2
Agora iremos remover o Trunk1 ACBr do computador e baixar uma nova cópia do Trunk2 ACBr, siga estes passos:
- Faça um backup do seu antigo diretório ACBr e apague-o;
- Crie uma nova pasta com o nome de sua preferência, por exemplo “ACBr”;
- Clique com o botão direito do mouse nesta nova pasta criada e clique na opção “Checkout” do Tortoise;
- Informe o seguinte endereço: svn://svn.code.sf.net/p/acbr/code/trunk2, continue e aguarde até que o checkout termine;
- Terminado o checkout, entre na pasta e execute o arquivo apagarACBr.bat, ele irá remover todos os arquivos e pacotes antigos do ACBr que ainda estão presentes no computador.
Instalando o Fortes Report
Agora no Trunk2 não teremos mais a quantidade de “motores” de relatórios que tinhamos no Trunk1, porque optamos por fazer isso, simples, agora podemos focar em melhor qualidade tendo uma gama menor de “motores” para nos preocupar, para o Trunk2 escolhemos dois “motores” de relatórios:
- Fortes Report, por ser gratuito, open-source e estar em plena atividade, recebendo contribuições e sendo atualizado sempre.
- Fast Report, este já é o motor padrão de relatórios do delphi a algum tempo, então todas as versões mais novas do Delphi se instaladas com as opções padrão já o tem instalado.
Vou fazer um breve parenteses e mostrar como instalar o Forte Report:
- Baixe a ultima versão do Forte Report no endereço: https://github.com/fortesinformatica/fortesreport-ce, você pode escolher baixar o arquivo .zip para seu computador utilizando a opção “donwload zip” ou baixar usando GIT ou SVN, o processo é o mesmo para baixar o ACBr se usado o SVN, você cria uma pasta, clica com o botão direito nela, checkout e informa o endereço.
- Com o Fortes em mãos, abra o Delphi;
- Clique em abrir e navegue até o diretório onde está sua cópia do Fortes, entre na pasta “\trunk\Packages” e abra o arquivo .dpk referente a sua versão do Delphi;
- No project manager, clique com o botão direito no pacote e depois em “Compile”;
- Agora ainda no project manager, clique com o botão direito novamente e depois em “Install”, uma mensagem informando que os pacotes foram instalado será mostrada;
- Abra o explorer e navegue até o diretório: “\trunk\Source”, copie os arquivos *.dcr, *.dfm, *.res;
- Navegue até a pasta binary, dentro dela foi criada uma pasta com o nome da sua versão do delphi entre na pasta e cole os arquivos copiados anteriormente;
- Pronto o seu Fortes está instalado e funcionando.
IMPORTANTE: Nós do ACBr não damos suporte ou manutenção ao Fortes, para isso utilize o site do Fortes no GitHub, abra um ticket utilizando a opção “Issue” do GitHub.
Instalando o Trunk2
Agora sim vamos ao que interessa, instalar a cópia novinha que baixamos do Trunk2 anteriormente, tudo é muito simples porque temos uma ferramenta maravilhosa chamada ACBrInstall que faz tudo para nós.
Execute o ACBrInstall_Trunk2.exe que está na raiz do diretório onde você baixou o Trunk2 ACBr, um passo-a-passo de instalação será iniciado nos guiando pelo processo de instalação do ACBr.
- Na tela de boas vindas nos apresentamos alguns links do projeto, aproveita e navegue até o link do ACBrSAC e faça sua assinatura contribuindo para a melhoria do Projeto aCBr, após isso clique em “próximo”;
- Na tela de configurações vamos configurar nossa instalação
- Verifique se o diretório de instalação está informado corretamente;
- Marque a opção “Deixar somente a pasta LibXXX no library path” se você deseja utilizar somente os arquivos compilados;
- Marque a opção “Copiar todas as Dll’s” para que o install copie as dlls do opensll e outras necessárias para o system do windows;
- Clique em “próximo”
- Na tela de seleção do que será instalado marque tudo que deseja que seja instalado, lembrando que o ACBrNFSe e ACBRGNRE ainda não estão totalmente portados, então não os marque pois poderão ocorrer erros durante a instalação se eles forem marcados, aproveite e escolha o “motores” de impressão que você deseja utilizar, clique em “próximo”
- Como baixamos uma cópia nova do repositório não é necessário fazer nenhuma atualização, clique novamente em “próximo”
- Finalmente clique no botão “Instalar”, todos os pacotes serão compilados e adicionados ao Delphi;
- Terminada a compilação clique em “próximo” e finalize o instalador.
IMPORTANTE: em caso de erros durante a instalação revise os erros abrindo o log, alguns erros são simples de resolver e geralmente tem a ver com os “motores” de impressão, na maioria das vezes o usuário marca um e ele não foi instalado, em todo caso o fórum do Projeto ACBr é nosso amigo é sempre tem gente disposta a ajudar, basta consultá-lo, antes de abrir um novo tópico faça uma busca e se não encontrar nada, abra um novo tópico que teremos o prazer de ajudar.
Principais diferenças entre o Trunk1 e Trunk2
A principal motivação para fazermos o Trunk2 do ACBr foi a reestruturação do projeto em um todo, tornando-o mais orientado a objetos, mais estruturado, flexível, expansível e de fácil manutenção, como em toda a mudança, alguns ovos são quebrados, portanto, algumas coisas as quais você estava acostumado estão diferentes, nada que vá tornar seu projeto “incompilavel”, mas que devem ser revisadas com carinho e atenção, as principais alterações são:
- Algumas units foram renomeadas para facilitar o entendimento do que elas fazem e separar quem é de quem, evitando a mistura que o antigo trunk promovia, alguns exemplos: ACBrNFeUtil virou ACBrDFeUtil, pcnConversao agora existe em dois sabores, pcnConversaoNFe e pcnConversaoCTe;
- Alguns métodos foram renomeados para nomes padronizados e seguindo a nomenclatura do projeto e do Delphi, como por exemplo “EnviarEvento”;
- As propriedades do certificado agora podem ser lidas diretamente sem necessidade de casts, basta acessar a propriedade SSL do ACBrNFe (ACBrNFE.SSLL);
- O envio de e-mail é todo baseado no componente ACBrMail, então para que o ACBrNFe consiga enviar e-mails é necessário um componente ACBrMail ligado a ele, isso é interessante pois agora basta configurar o componente ACBrMail uma vez e todos os componente ligados a ele conseguirão enviar e-mails normalmente;
- A impressão de comprovantes em impressoras não fiscais agora conta com um componente novo, o ACBrPosPrinter, ele possui todo o suporte e configurações necessárias a impressão em todos os modelos de impressoras não fiscais mais comuns do mercado, ligando ele a outros componentes é possível imprimir diretamente para impressoras não fiscais de forma muito rápida e altamente configurável, ele também aceita impressão em rede pelo endereço IP, muito útil em ambientes com uma impressora não fiscal que possui porta ethernet;
Muitas melhorias foram feitas e tudo está rodando em produção a alguns meses, não precisam ter medo de estabilidade, eu mesmo utilizo o Trunk2 em produção já a cerca de 4 meses, para os que desejam continuar utilizando o Trunk1 fica o recado, o suporte a ele foi extinto por parte do core do Projeto ACBr a cerca de 3 meses, então ele não vem sendo atualizado, quem continuar utilizando pode a longo prazo ter problemas, a NF-e é um exemplo caso haja uma mudança de endereço dos webservices, como a que ocorrerá dia 01/10/2015 próximo, o Trunk 1 já não conseguirá se comunicar com os webservices alterados.
Um conselho para quem quer migrar e migrar com calma, monte um computador ou máquina virtual, instale o Delphi ou Lazarus e o Trunk2 ACBr neste computador, faça toda a migração e testes com calma, estude os demos do ACBr, consulte o fórum, feita a migração, teste internamente e coloque em 1 ou 2 clientes essa versão migrada, quando você tiver plena certeza que seu software está 100% ai sim atualize todos os seus clientes e pare de usar o Trunk1 ACBr.
Mais uma vez, tudo isso está amplamente discutido no fórum do Projeto ACBr, basta consultá-lo, com certeza você encontrará o que procura no fórum e poderá terminar sua migração com tranquilidade.
Um recado a todos os usuários do ACBr que lerem o artigo, contribuam de alguma forma, seja com código, seja respondendo dúvidas no fórum ou até mesmo assinando o nosso ACBrSAC, hoje o nosso maior problema e não possuir um grupo dedicado full time ao projeto, nos do core dedicamos tempo livre ao ele buscando sempre melhorá-lo, com a ajuda das assinaturas do ACBrSAC podemos manter programadores em tempo integral tornando assim mais rápidas as alterações e melhorias, pense bem nisso, ajude, se você parar para pensar o ACBr traz muito mais retorno do que é cobrado no ACBrSAC, pense nisso.
Espero que este pequeno artigo possa ajudar a todos e que tão logo todos possam usufruir das melhorias que o Trunk2 vem trazendo, grande abraço e até o próximo artigo, não esqueçam de curtir e compartilhar.
ERRATA: As Urls que citei também foram atualizadas no Trunk1, como alguns usuários ainda utilizam o Trunk1, achamos por bem atualizar as Urls nele para não gerar maiores problemas a quem ainda o utiliza.
![]()
É com grande alegria que venho avisar que o Source Forge concluiu os trabalhos e o repositório ACBr está de volta, você pode tentar atualizar que agora provavelmente tudo irá ocorrer corretamente como antes.
Caso mostre erro de versão, renomeio o diretório antigo do ACBr e efetue o checkout novamente, após isso reinstale utilizando o ACBrInstall, é bom antes de tudo rodar o apagarACBr.bat primeiro.
Mais uma vez venho avisar que paramos de atualizar o Trunk então talvez está seja a hora para vocês se atualizarem e passarem a utilizar o Trunk2 que está muito melhor e cheio de novidades.
![]()
A cerca de uma semana o Source Forge, local onde o repositório ACBr está hospedado sofreu um problema de infra-estrutura, o pessoal do Source Forge está trabalhando para colocar no ar novamente todos os serviços, mas isso é demorado, neste meio tempo estamos com problemas de acesso ao repositório ACBr.
Para ajudar alguns usuários mais desatualizados criei uma pasta compartilhada no Google Drive com a copia do Trunk e Trunk2 para quem se encontrava desatualizado, está copia é o meu repositório atualizado até o dia da queda dos serviços, portanto, está bem atualizada.
Segue o link: https://goo.gl/YKJIRh
Caso você tenha interesse pode seguir os trabalhos de recuperação por aqui: https://twitter.com/sfnet_ops, o trabalho está sendo rápido e esperamos que logo tudo se normalize. Já trabalhamos com o Source Forge a 5 anos é está é a primeira grande “crise”, é um ótimo serviço que hospeda milhares de projetos open-source pelo mundo.
Foi liberada uma nova versão do ACBrValidadorPafECF contemplando a versão 02.02 da especificação de requisitos, disponível na área de downloads.
Liberada uma nova versão do validador de arquivos do Paf-ECF já contemplando a versão 02.01 da especificação de requisitos, uma ressalva é que os registros G2, S2, S3 ainda não foram implementados, assim que terminar a homologação e tiver um tempinho eu disponibilizo uma atualização com eles.
Para todo o restante está funcionando perfeitamente, mas caso alguém encontre algum bug não existe em informar.
Para baixar vá até: ACBrValidadorPafECF
O endereço do repositório ACBr foi alterado, todos os projetos hospedados no SourceForge sofreram a alteração de endereço, para não ter problemas de atualização futura, basta fazer um relocate do seu repositório normal seguindo estes passos:
- Clique com o botão direito no seu repositório ACBr local
- Clique no menu “TortoiseSVN”
- Clique no menu “Relocate”
- Digite o novo endereço: svn://svn.code.sf.net/p/acbr/code
- Clique em OK e aguarde
- Agora faça o update normalmente
Foi liberado na paleta de componentes ACBr um novo componente para baixar e manipular a tabela de impostos aproximados do IBPT, segue um exemplo de como utilizar o componente para efetuar o download e manipular os dados baixados.
Continue lendo…
Foi liberado o componente para efetuar o download e manipular a tabela de impostos disponibilizada pelo IBPT, para os usuários do ACBr, basta atualizar o componente e recompilar o pacote ACBrTCP que o novo componente ACBrIBPTax vai aparecer na paleta de componente. Também foi liberado o demo de uso mostrando as funcionalidades do componente.
Devido a vários usuários me procurarem perguntando qual o formato de envio da alíquota para o método VendeItem do ACBrECF, resolvi montar um pequeno tópico demonstrando os formatos válidos.
Por Valor da alíquota
Utilize o valor da alíquota diretamente, neste formato o ACBrECF vai utilizar a primeira alíquota encontrada da lista de alíquotas programadas no ECF que corresponda ao valor informado.
Ex: “18”, “12,00”, “2,56”
Por Valor da alíquota com sufixo
Neste formato é possível informar ao ACBrECF qual é o tipo da alíquota que se deseja utilizar especificando o Tipo como sufixo (T = ICMS, ou S = ISS),
Ex: “18T”, “2,5S”
Por Índice
Neste formato é utilizado o índice da alíquota no ECF especificando o Tipo como sufixo (T = ICMS, ou S = ISS),
Ex: “T01”, “T03”, “TA”, “TT01”, “S01”
O indice deve ser no mesmo formato retornado pela propriedade “Aliquotas[n].Indice” e varia para cada modelo de ECF.
Produtos/Serviços não tributados
Para produtos que não possuem alíquotas utilize a seguinte tabela:
I – Isento
N – Não tributado
F – Substituição Tributária
Quando a impressora possuir mais de uma alíquota do mesmo tipo:
I1 – Isento 1
I2 – Isento 2
N1 – Não tributado 1
N2 – Não tributado 2
F1 – Substituição Tributária 1
F2 – Substituição Tributária 2
Para Serviços utilize:
IS – Serviço Isento
NS – Serviço Não Tributado
FS – Serviço Substituição Tributária
Quando a impressora possuir mais de uma alíquota do mesmo tipo:
IS1 – Serviço Isento 1
IS2 – Serviço Isento 2
NS1 – Serviço Não Tributado 1
NS2 – Serviço Não Tributado 2
FS1 – Serviço Substituição Tributária 1
FS2 – Serviço Substituição Tributária 2
Atualize o exemplo que demonstra como ler os dados da redução Z utilizando o ACBr, acrescentando um botão que utiliza o método “DadosReducaoZ”, assim o usuário é capaz de comparar os dados retornados pelos dois métodos e tirar suas conclusões de qual deve utilizar e quando. Se você já baixou baixe novamente o aplicativo de exemplo com códigos fontes disponibilizados na área de downloads do blog.
Um dos vários requisitos do Paf-ECF obrigatórios e a recomposição do Valor do GT ou Número de Série do ECF no arquivo auxiliar cripotografado. A suíte de componentes ACBr já possui a um bom tempo o componente ACBrAAC que quando é ligado ao componente ACBrECF permite a geração, controle e manipulação do arquivo criptografado automaticamente, conforme se vai utilizando o ECF, facilitando em muito a vida de quem programa para Paf ECF.
Continue lendo…
Visto a dificuldade de grande parte dos usuários e a necessidade que temos de gravar os dados da Redução Z emitida para fins de geração do Sintegra, SPED, Arquivo de Movimento entre outros, resolvi postar esse exemplo de código completo para leitura dos dados da Redução Z utilizando o ACBrECF.
Continue lendo…
Não existe ainda uma norma que regulamente a impressão da Carta de Correção ou de qualquer evento relacionado a nota eletrônica, o ACBrNFe possui algumas métodos para a impressão de eventos que foram implementadas com base nas sugestões de nossos usuários, segue abaixo a forma de utilização de cada uma delas.
Segue um exemplo de utilização da carta de correção eletrônica utilizando o ACBrNFe, a carta de correção é disciplinada pela Nota Técnica 2011.003 e alguns pontos devem ser observados, segue texto:
A Carta de Correção é disciplinada pelo § 1º-A do art. 7º do Convênio S/N, de 15 de dezembro de 1970 e pode ser utilizada para regularização de erro ocorrido na emissão de documento fiscal, desde que o erro não esteja relacionado com:
I – as variáveis que determinam o valor do imposto tais como: base de cálculo, alíquota, diferença de preço, quantidade, valor da operação ou da prestação;
II – a correção de dados cadastrais que implique mudança do remetente ou do destinatário; III – a data de emissão ou de saída.
Devido as alterações que entrarão em vigor em breve, estou postando aqui um trecho de código demostrando como cancelar uma nota utilizando o ACBrNFe e eventos, adicione a unit pcnConversao ao uses porque foram utilizados alguns conversores dessa unit.
E impressora fiscal ao final da redução Z imprime um código de barras 3D que pode levar o componente ACBrECF ao erro de TimeOut, para que isso não acontece siga o exemplo a seguir: