|
Usuários |
|
54 Usuários Online
|
|
[Artigos]
Gerando o EFD-Contribuições Escrituração Fiscal Digital PIS/COFINS |
Publicado por rboaro : Sexta, Agosto 31, 2012 - 02:39 GMT-3 (884 leituras)
comentar Enviar para um amigo Versão para impressão
|
Sobre o SPED
O SPED – Sistema Público de Escrituração Digital, instituído em 22 de janeiro de 2007, pelo Decreto nº 6.022, faz parte do Programa de Aceleração do Crescimento do Governo Federal (PAC 2007-2010) e constitui-se em mais um avanço na informatização da relação entre o fisco e os contribuintes.
O formato das informações utilizadas pelo SPED tem como base os layouts fiscais de processamento de dados instituídos através dos chamados Atos Cotepe conforme informações descritas no site oficial www1.receita.fazenda.gov.br (o link é com “www1” mesmo).
O SPED iniciou com três grandes projetos, o SPEDFiscal, o SPEDContábil e a Nota Fiscal Eletrônica, detalhados no site oficial do projeto e cuja descrição é apresentada a seguir:
• A Nota Fiscal Eletrônica é um modelo nacional de nota fiscal eletrônica que serve para transporte de mercadorias, por meio de um sistema integrado entre as empresas e os fiscos estaduais e federais;
• O SPEDContábil nada mais é do que a substituição dos livros da escrituração mercantil, também conhecidos como livros fiscais, pelos seus equivalentes digitais.
• O SPEDFiscal, tema deste artigo, constitui um conjunto de escriturações de documentos fiscais e de outras informações de interesse do fisco, bem como de registros de apuração de impostos referentes às operações e prestações praticadas pelo contribuinte.
Atualmente o SPED conta também com diversos outros projetos, tais como, Conhecimento de Transporte Eletrônico (CTe), Nota Fiscal de Serviço Eletrônico (NFSe), FCont e o EFD-Contribuições, o qual iremos abordar neste artigo
O EFD-Contribuições (SPED-PIS/COFINS) é um sistema de escrituração digital, instituído pelo SPED, que deve ser utilizado pelas pessoas jurídicas de direito privado na escrituração da Contribuição para o PIS/Pasep e da Cofins, nos regimes de apuração não-cumulativo e/ou cumulativo, com base no conjunto de documentos e operações representativos das receitas auferidas, bem como dos custos, despesas, encargos e aquisições geradores de créditos da não-cumulatividade. Conforme a Instrução Normativa RFB nº 1.052 de 5 de julho de 2010, estão obrigadas a adotar a EFD-PIS/Cofins, conforme cronograma atualizado pela Instrução Normativa RFB nº 1.218, de 2011. E em sua última Instrução Normativa RFB nº 1.252/2012 publica no dia 02/03/2012, renomeou a "EFD-PIS/Cofins" para "EFD-Contribuições".
De forma geral podemos dividir o EFD-Contribuições em três partes:
1. Convênio que define o formato e padrão do arquivo de texto a ser gerado pelo desenvolvedor em seu software gerencial.
2. Geração do arquivo digital constando de todos os registros devidamente formatados.
3. Programa validador do arquivo digital, que o usuário utiliza para verificar os erros ocorridos na forma e conteúdo do arquivo gerado.
Neste artigo vamos abordar as fases descritas acima, exemplificando os passos para a padronização dos valores que serão passados para a geração do arquivo digital e sua posterior validação, buscando facilitar ao máximo o entendimento do leitor através da “tradução” do processo descrito na legislação que rege o tema para uma linguagem simples e menos “burocrática” acessível a todos os desenvolvedores.
Estrutura do Arquivo EFD-Contribuições
Do ponto de vista do desenvolvedor, o EFD-Contribuições pode ser visto como um arquivo de texto, com cerca de 150 registros e mais de 1000 campos com as mais diversas informações acerca das Contribuições Federais, formatado segundo um padrão pré-definido, onde cada linha do arquivo corresponde a um Registro que contém vários campos com tamanho e formato também pré-definidos de acordo com o seu tipo. Tal arquivo é gerado a partir da base de dados da empresa de acordo com o layout estabelecido, informando todos os documentos fiscais e outras informações de interesse dos fiscos federal e estadual, referente ao período de apuração. Depois de gerado pelo sistema gerencial, deve então ser validado pelo Programa Validador oficial disponibilizado pela Secretaria da Fazenda antes de ser entregue à Receita através de Programa de Envio, também oficial e disponível para download (http://www1.receita.fazenda.gov.br/sistemas/efd-contribuicoes/download/download.htm).
Alguns pontos importantes relacionados à estrutura de arquivos do EFD-Contribuições são:
1. A linha do arquivo digital deve conter os campos na exata ordem em que estão listados nos respectivos registros;
2. A separação dos campos se dá através de barras verticais ”|” (Pipe) utilizadas como caractere delimitador, conforme mostrado na Figura 01.
a. O caractere delimitador não deve ser incluído como parte integrante do conteúdo de quaisquer campos numéricos ou alfanuméricos.
b. Na ausência de informação, o campo vazio (campo sem conteúdo; nulo; null) deverá ser iniciado com caractere "|" e imediatamente encerrado com o mesmo caractere "|" delimitador de campo.
c. Campos alfanuméricos representados pela letra "C" terão tamanho máximo de 255 caracteres, exceto se houver indicação distinta e podem conter todos os caracteres das posições da Tabela ASCII, exceto os caracteres "|" (Barra Vertical: caractere 124 da Tabela ASCII) e os caracteres não-imprimíveis (caracteres 00 a 31 da Tabela ASCII).
d. Campos numéricos representados pela letra "N" podem conter algarismos numéricos (caracteres 48 a 57 da Tabela ASCII) sem restrição de tamanho máximo e deverão ser preenchidos sem os separadores de milhar, sinais ou quaisquer outros caracteres (tais como: ".", "-", "%"), devendo a vírgula ser utilizada como separador decimal (Vírgula: caractere 44 da Tabela ASCII).
e. Campos de data devem ser informados conforme o padrão "diamêsano" (ddmmaaaa), excluindo-se quaisquer caracteres de separação (tais como: ".", "/", "-", etc.). Para campos onde data representa período, devem ser informadas conforme o padrão "mêsano" (mmaaaa), também excluindo-se quaisquer caracteres de separação.
3. Os registros são identificados pelo primeiro campo da linha, contido entre as duas primeiras barras verticais utilizadas como caractere delimitador. São valores contendo 4 caracteres onde o primeiro caractere indica o bloco a que o registro pertence e os demais indicam o tipo de registro, conforme mostrado na Figura01.

Figura 01: Início de registro. Primeiro caractere representa bloco e demais caracteres representam tipo do registro.
4. No SPED, para fins de organização tendo em vista o grande volume de informações, o leiaute fiscal de processamento de dados foi dividido em blocos de informações que, por sua vez, estão organizados em registros que contém dados. A seguir é apresentada a estrutura geral dos registros.
a. Bloco 0 – Identificação e referências (apenas o registro 0000);
Blocos A, C, D, F, M, P e 1 - registros de dados;
Bloco 9 – Controle e Encerramento do arquivo (registro de dados).
b. A listagem completa dos blocos disponíveis pode ser vista na Tabela 01.
5. Dentre os registros de cada bloco há os registros de abertura e fechamento do bloco que devem ser usados no início e fim de cada bloco, respectivamente. A seguir é apresentada a estrutura geral de abertura e fechamento dos blocos.
a. Registro 0000 - Abertura do arquivo;
Registro 0001 - abre o Bloco 0
Registros 0100 a 0600: informa os dados
Registro 0990 - encerra o Bloco 0
...
Registro 9001 - abre o Bloco 9
Registro 9900: informa os dados
Registro 9990 - encerra o Bloco 9
Registro 9999 - encerramento do arquivo
6. Mantendo o padrão original, os registros mantêm a organização hierárquica da seqüencia de informações de apresentação dos registros. Sendo assim, os registros devem ser chamados de forma ordenada, de acordo com sua seqüencia de apresentação na legislação, bem como continua existindo as relações de registro em modo PAI-FILHO.
7. Mantendo o padrão original, todos os registros devem conter no final de cada linha do arquivo digital, após o caractere delimitador Pipe acima mencionado, os caracteres "CR" (Carriage Return) e "LF" (Line Feed) correspondentes a "retorno do carro" e "salto de linha" (CR e LF: caracteres 13 e 10, respectivamente, da Tabela ASCII).
A Tabela 1 apresenta a seguir lista de registros, níveis, ocorrência e obrigatoriedades.











Ocorrência de Registros
Registros Obrigatórios
Na geração do arquivo EFD-Contribuições, todos os blocos, salvo quando houver especificação em contrário, têm por obrigatoriedade que conter no mínimo os registros de abertura e fechamento do próprio bloco, sendo esses registros os de número ?001 e ?990 onde “?” representa o caractere de indicação do bloco em questão. Além, é claro, dos registros 0000 e 9999 que também são obrigatórios e têm maior importância na geração do arquivo digital por representarem a abertura e fechamento do arquivo como um todo.
A legislação do EFD-Contribuições indica em uma tabela a obrigatoriedade de cada registro conforme a seguinte sistemática:
• O = O registro é sempre obrigatório.
• OC = O registro é obrigatório, se houver informação a ser prestada. Ex. Registro C100 – só deverá ser apresentado se houver movimentação ou operações utilizando os documentos de códigos 01, 1B, 04 ou 55.
• O(...) = O registro é obrigatório se atendida a condição. Ex. Registro C191 – O (Se existir C190) – O registro é obrigatório sempre que houver o registro C190.
• N = O registro não deve ser informado. Ex. Registro C490 – se for informado o Registro C400.
Todos os registros obrigatórios de serem informados possuem a indicação “Obrigatoriedade do Registro” contido no Anexo Único, como pode ser visto na Figura 01, que apresenta o a relação de Blocos e Registro conforme consta na legislação.

Figura 01: Legislação com atenção para a indicação de registros obrigatórios
Ocorrência de Registros
Conforme mostrado na Figura 02, além dos registros obrigatórios há outros tipos de ocorrência de registros no arquivo magnético, são eles:
1. Os registros que contiverem a indicação "Ocorrência - um (por arquivo)", somente devem figurar uma única vez no arquivo digital.
2. Os registros que contiverem itens de tabelas, totalizações, documentos (dentre outros) podem ocorrer uma ou mais vezes no arquivo por determinado tipo de situação. Estes registros trazem a indicação "Ocorrência - vários (por arquivo)", "Ocorrência - um (por período)", "Ocorrência - vários (por período), etc.".
3. Um registro "Registro Pai" (cabeçalho de documento) pode ocorrer mais de uma vez no arquivo e traz a indicação "Ocorrência - vários por arquivo".
4. Um registro dependente ("Registro Filho") detalha o registro principal e traz a indicação "Ocorrência - 1:1", significando que somente deverá haver um único registro filho para o respectivo registro pai; quando o registro dependente traz a indicação "Ocorrência - 1:N" significa que poderá haver vários registros filhos para o respectivo registro pai.
5. A geração do arquivo requer a existência de pelo menos um "Registro Filho" quando houver um "Registro Pai" correspondente e, reciprocamente, de um "Registro Pai" quando houver pelo menos um "Registro Filho".
6. Poderá ocorrer uma indicação do número máximo de registros dependentes em relação ao respectivo registro principal: "Ocorrência - 1:N” (máximo de ‘n’ registros).

Figura 02: Legislação com atenção para a indicação dos níveis e ocorrência.
A listagem completa dos registros disponíveis em cada bloco, bem como a ocorrência de cada um deles e seus campos e formatações, podem ser obtidas no que descreve o Anexo Único à Instrução Normativa RFB nº 787, de 19 de novembro de 2007, com a redação data pela Instrução Normativa RFB nº 926, de 11 de março de 2009 disponível em http://www1.receita.fazenda.gov.br/sistemas/efd-contribuicoes/default.htm.
Os registros do SPED Fiscal podem ser gerados utilizando a SpedFiscal32dll,disponível em http://www.igara.com.br/produto.php?cod_produto=134, desenvolvida totalmente de acordo com a nova legislação do SPED e suas alterações subseqüentes, se destacando por ser mais uma vez pioneiro e atualmente a única disponível para este tipo de aplicação. A DLL é uma solução que visa facilitar e agilizar o processo de tratamento das informações relativas ao SPED, com base na legislação pertinente, possibilitando que o desenvolvedor abstraia quase que completamente a camada de geração do arquivo magnético, log de geração de registros e log de erros de geração de registros.
Podendo ser usada em conjunto com qualquer linguagem de programação a SPEDContribuicoes32dll.dll representa uma solução muito eficiente e eficaz, capaz de reduzir drasticamente o tempo de programação necessário à implementação e adequação do seu sistema aos novos requisitos do EFD-Contribuições, que já estão em vigor.
Dentre as muitas vantagens da SPEDContribuicoes32dll.dll destacam-se:
• Velocidade na implementação e adaptação do seu software à legislação do EFD-Contribuições;
• Validação e formatação automática dos campos de acordo com os padrões da legislação vigente;
• Validação de informações genéricas como: Datas, CNJP, CPF, UF e CEP;
• Log de erros de geração de registros automático e completo contendo inúmeras informações pertinentes a respeito do processo de geração e dos problemas detectados;
• Log de geração de registros automático e completo contendo percentuais e quantidades de registros gerados.
A dll é composta por inúmeras funções disponíveis ao desenvolvedor que serão chamadas de acordo com a necessidade específica da implementação em questão. As funções são muito intuitivas, utilizam a mesma nomenclatura de registros e campos apresentada na legislação permitindo assim um fácil uso da mesma. De forma geral a SPEDContribuicoes32dll.dll é dividida em 3 blocos de funções:
A função Inicia_SPED indica à dll que o uso da mesma será iniciado, o que faz com que todos os seus contadores sejam zerados e a dll esteja pronta para ser usada. Esta função deve ser chamada antes de serem chamadas as funções que irão gerar os registros do EFD-Contribuições. Ela contém a relação de arquivos (municipio.res, cfop.res, ncm.res e pais.rex) que devem estar presentes no diretório de entrada da DLL, esses arquivos possuem a lista de códigos válidos utilizados durante a validação dos referidos campos. Nesta função é também definido o diretório de saída dos arquivos gerados - erro.txt, log.txt e spedcontribuicoes.txt –, bem como, o nome do arquivo digital (spedfcont.txt) que contém as informações relativas a escrituração, que podem ser observador na Figura03.

Figura 3: Função Inicia_SPEDContribuicoes
As funções de RegistroXXXX, são as funções principais da dll onde “XXXX” representa o registro a ser gerado. Elas recebem os parâmetros necessários para a criação do registro, retornando uma Integer que informa a correta geração do registro solicitado ou a presença de erros no processo. A Figura04, retirada do Demo do produto, apresenta os valores em formato de string enviados para a DLL e que simula a passagem das strings vindas do banco de dados, ou seja, é informando cada parâmetro que é o campo respectivo do banco de dados.

Figura 04: Código referente a chamada do Registro 0200
A função Finaliza_SPED, Figura05, indica à dll que o uso da mesma será finalizado e o processo de geração como um todo será concluído, deixando disponíveis ao usuário final o arquivo magnético do SPEDContribuicoes gerado e os demais arquivos de log de geração.

Figura 05: Função Finaliza_SPED
Os logs de geração listam os possíveis erros encontrados durante a geração do arquivo e as estatísticas dos registros (mostrando a porcentagem de registros gerados, erros e observações encontradas durante a geração do arquivo erro.txt, conforme mostrado na Figura06.

Figura 06: Arquivo de log
Validação do Arquivo Digital
A validação do arquivo digital gerado é feita através do Programa Validador e Assinador da Escrituração Fiscal Digital do PIS/Pasep e da Cofins, mostrado na Figura07, que encontra-se disponível para download em www1.receita.fazenda.gov.br/sistemas/fcont/download.htm. O programa é mono-usuário e deve ser instalado em cada estação de trabalho onde for utilizado. A instalação é feita por meio de um assistente, que orienta o usuário a cada passo do processo e como pré-requisito, é necessário que a Máquina Virtual Java (JVM – Java Virtual Machine) já esteja na estação de trabalho. Este programa possibilitará:
• Importar o arquivo com o leiaute da EFD-PIS/Cofins definido pela RFB;
• Validar o conteúdo da escrituração e indicar dos erros e avisos;
• Editar via digitação os registros criados ou importados;
• Emissão de relatórios da escrituração;
• Geração do arquivo da EFD-PIS/Cofins para assinatura e transmissão ao Sped;
• Assinar do arquivo gerado por certificado digital;
• Comandar a transmissão do arquivo ao Sped.
Figura 07: Programa Validador e Assinador da Escrituração Fiscal Digital do PIS/Pasep e da Cofins
A barra de ferramentas está disposta horizontalmente logo abaixo da barra de menus e permite acessar rapidamente as seguintes funções do programa:
Importar Nova Escrituração: Esta função permite importar um arquivo digital no leiaute estabelecido.
Abrir Escrituração: Esta função permite abrir um arquivo digital previamente importado.
Verificar Pendências da Escrituração: Esta função permite verificar pendências um arquivo digital que estiver no estado "Em Edição".
Gerar Arquivo de Escrituração para Entrega: Esta função permite gerar arquivo pronto para transmissão a partir de uma escrituração que estiver no estado "Validado".
Editar Escrituração: Esta função permite editar um arquivo digital previamente aberto.
Fechar Escrituração: Esta função permite fechar o arquivo digital em uso.
Assinar Escrituração: Esta função permite assinar a escrituração que já esteja pronta para a transmissão.
Excluir Assinatura da Escrituração: Esta função permite excluir a assinatura de uma escrituração assinada.
Transmitir Escrituração: Esta função permite transmitir a escrituração.
Consultar Situação da Escrituração no Sped: Esta função permite consultar a situação da escrituração nas bases do SPED.
Excluir Escrituração: Esta função permite excluir determinada escrituração da base de dados do sistema.
Gerar Cópia de Segurança: Permite gerar cópia de segurança de escriturações que constam na base de dados do sistema.
Restaurar Cópia de Segurança: Permite restaurar escriturações por meio de um arquivo de cópia de segurança gerado anteriormente pelo sistema.
Sair: Permite sair do programa SPED EFD PIS/Cofins.
Para validar o arquivo, o usuário deverá importar o arquivo através do botão “Importar Nova Escrituração”, em seguida deve-se fazer a verificação do arquivo em busca de erros e pendências na escrituração, através do botão “Verificar Pendências da Escrituração”. Havendo erros e/ou pendência é apresentado relatório completo e detalhado conforme mostrado na Figura8.
Figura 8: Tela de Relatório de Erros de Importação
Depois de verificado e corrigido todos os erros, ou seja, depois de validado o arquivo importando, o próximo passo é a assinatura do arquivo, realizado através do botão “Assinar Escrituração”, lembrando que é necessário possuir o Certificado Digital emitido pelo órgão credenciado a Receita Federal, e em seguida efetuar a transmissão do arquivo assinado através do botão “Transmitir Escrituração” ao SPED.
Os arquivos gerados pela DLL são completos e funcionais estando prontos para serem gerados, validados e transmitidos.
A SPEDContribuicoes32dll.dll vem acompanhada da documentação completa sobre como utilizar suas funções e quais os tipos de erros retornados por cada função. Há ainda uma aplicação demo completo implementado em Delphi que demonstra como conectar a dll ao seu programa e testar a saída da mesma para todos os registros disponíveis conforme apresentado na Figura09.
Figura 09: Aplicativo demo da SPEDContribuicoes32dll.dll
Conclusão
Com este artigo, cobrimos os conceitos gerais a cerca do EFD-Contribuições e suas respectivas alterações, bem como apresentando a SPEDContribuicoes32dll.dll , solução voltada para o público desenvolvedor de software e baseada na já consagrada SpedFiscal32dll que permite a completa abstração da camada de geração do arquivo magnético do SPED conforme os requisitos da nova legislação vigente.
Victory Fernandes é Engenheiro, Professor do Departamento de Engenharia da UNIFACS – Universidade Salvador e diretor técnico da TKS Software - Soluções de Automação e Softwares Dedicados, responsável pela criação do projeto Sintegra32dll e Supersintegra32dll. Pode ser contatado através dos sites www.igara.com.br e www.tkssoftware.com/victory
Eliene Araujo é mestranda em Gestão de Tecnologia Industrial pelo SENAI/CIMATEC e graduada em Administração pela UNIME, e auxiliar de programação da TKS Software - Soluções de Automação e Softwares Dedicados. Pode ser contatada em eliene@igara.com.br
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|