none
erro de validação do mfd RRS feed

  • Pergunta

  • gerei esse arquivo porem na hora de usar o eecf para vlidar ele disse que tem 65 erros:

    00000001 - BEMATECH IND E COM DE EQUIP ELETRONICOS S/A

    00000002 - Estrada de Santa Candida, 263 Santa Candida

    00000003 - 82.630-490 Curitiba - Parana

    00000004 - CNPJ:82.373.077/0001-71  

    00000005 - IE:10181465-30                             UF:PR

    00000006 - IM:ISENTO              

    00000007 - ------------------------------------------------

    00000008 - 02/02/2011 14:31:09                   COO:000007

    00000009 - ------------------------------------------------

    00000010 -  LEITURA MEMÓRIA FISCAL 

    00000011 -          DATA: 01/01/2011 a 01/02/2011

    00000012 - Contador Geral de Operação Não-Fiscal:    000001

    00000013 - Contador de Reduções Z:                     0000

    00000014 - Contador de Reinício de Operação:            001

    00000015 - Contador de Fita-Detalhe:                 000000

    00000016 - ---REINÍCIO OPERAÇÃO----

    00000017 - CRO                       Data       Hora

    00000018 - 001                     02/01/2006 15:05:44 

    00000019 - -IMPRESSÃO FITA DETALHE-

    00000020 - CFD    DATA       HORA       COOi   COOf

    00000021 - CNPJ:

    00000022 - --------USUÁRIOS--------

    00000023 - Usuário:0001    CRO:001     02/01/2006 15:05:44 

    00000024 - CNPJ: 82.373.077/0001-71  

    00000025 - IE: 10181465-30         

    00000026 - IM: ISENTO              

    00000027 - GT:                                         0,00

    00000028 - ----REDUÇõES DIÁRIAS----

    00000029 -                   Usuário:0001

    00000030 - CRZ   CRO   COO                 DATA     HORA

    00000031 - VENDA BRUTA DIÁRIA  R$

    00000032 - DT=desconto ICMS           DS=desconto ISSQN

    00000033 - AT=acréscimo ICMS          AS=acréscimo ISSQN

    00000034 - CT=canc.ICMS               CS=canc. ISSQN

    00000035 - ON=operação não-fiscal

    00000036 - ------------------------------------------------

    00000037 - ------------------------------------------------

    00000038 - Total do mês 01 de 2006

    00000039 - Venda Bruta ( R$)                           0,00

    00000040 - 

    00000041 - ------------------------------------------------

    00000042 - ------------------------------------------------

    00000043 - Total do período:

    00000044 - Venda Bruta ( R$)                           0,00

    00000045 - 

    00000046 - ------------------------------------------------

    00000047 - ------------------------------------------------

    00000048 - Número de Reduções Restantes:               2045

    00000049 - ------------------DADOS GERAIS------------------

    00000050 - SOFTWARE BÁSICO

    00000051 - 01.00.01                    02/01/2006 15:04:26 

    00000052 - MOEDA:  R                   02/01/2006 15:05:01 

    00000053 - QUANTIDADE: 03              02/01/2006 15:05:01 

    00000054 - VALOR UNITÁRIO: 03          02/01/2006 15:05:01 

    00000055 - MFD:

    00000056 - MFD                                           

    00000057 - Codificação GT a partir de: 02/01/2006 15:05:01 

    00000058 - 0=Q, 1=W, 2=E, 3=R, 4=T, 5=Y, 6=U, 7=I, 8=O, 9=P

    00000059 - ------------------------------------------------

    00000060 - BEMATECH        MP-2100 TH FI        ECF-IF 

    00000061 - VERSÃO:01.00.01                  ECF:001 LJ:0001

    00000062 - QQQQQQQQQQQQQQQQQQ          02/02/2011 14:31:09 

    00000063 - FAB:EMULADOR                                 BR

    00000064 - ------------------------------------------------

    00000065 - 

    00000066 - 

    00000067 - 

    00000068 - 

    00000069 - 

    00000070 - 

    00000071 - 

    00000072 - EADE117FB2C4CDE43914C9FD5A2E450502A10D44E1CA274EA6FC551DCE8103691F2A7B684FD2373857CC7BBCB8F30496DB055C5604FDE7BC68DCB85BBCFBFB8AAC5A2A15E31745725EEFC1AB5778021D2A4676DF142FA624CBEB856BFB5FD02DECEEEFFA8F2D7B63EECC1A0E69E0F2950768F9EAB142928F5D32DD12317A31E75CB

    00000073 - 




    ele gera essa tela de erro:

    --------------------------------------------------------------------------------------------
    VALIDAÇÃO DE ARQUIVO ATO COTEPE 17/04                                           eECFc v3.14

    Arquivo cotepe: C:\Users\Thiago\Desktop\IMFC.txt
    Arquivo de log de saída: C:\Users\Thiago\Desktop\IMFC.txt.log

    Data/hora de geração do log: 02/02/2011   14:46:21
    --------------------------------------------------------------------------------------------

    Linha 1: Tipo de registro desconhecido.
    Linha 2: Tipo de registro desconhecido.
    Linha 3: E02 -> Tamanho de registro inválido. Esperado 272 caracteres e o registro apresenta 28 caracteres.
    Linha 4: Tipo de registro desconhecido.
    Linha 5: Tipo de registro desconhecido.
    Linha 6: Tipo de registro desconhecido.
    Linha 7: Tipo de registro desconhecido.
    Linha 8: E02 -> Tamanho de registro inválido. Esperado 272 caracteres e o registro apresenta 48 caracteres.
    Linha 9: Tipo de registro desconhecido.
    Linha 10: Tipo de registro desconhecido.
    Linha 11: Tipo de registro desconhecido.
    Linha 12: Tipo de registro desconhecido.
    Linha 13: Tipo de registro desconhecido.
    Linha 14: Tipo de registro desconhecido.
    Linha 15: Tipo de registro desconhecido.
    Linha 16: Tipo de registro desconhecido.
    Linha 17: Tipo de registro desconhecido.
    Linha 18: E01 -> Tamanho de registro inválido. Esperado 166 caracteres e o registro apresenta 44 caracteres.
    Linha 19: Tipo de registro desconhecido.
    Linha 20: Tipo de registro desconhecido.
    Linha 21: Tipo de registro desconhecido.
    Linha 22: Tipo de registro desconhecido.
    Linha 23: Tipo de registro desconhecido.
    Linha 24: Tipo de registro desconhecido.
    Linha 25: Tipo de registro desconhecido.
    Linha 26: Tipo de registro desconhecido.
    Linha 27: Tipo de registro desconhecido.
    Linha 28: Tipo de registro desconhecido.
    Linha 29: Tipo de registro desconhecido.
    Linha 30: Tipo de registro desconhecido.
    Linha 31: Tipo de registro desconhecido.
    Linha 32: Tipo de registro desconhecido.
    Linha 33: Tipo de registro desconhecido.
    Linha 34: Tipo de registro desconhecido.
    Linha 35: Tipo de registro desconhecido.
    Linha 36: Tipo de registro desconhecido.
    Linha 37: Tipo de registro desconhecido.
    Linha 38: Tipo de registro desconhecido.
    Linha 39: Tipo de registro desconhecido.
    Linha 41: Tipo de registro desconhecido.
    Linha 42: Tipo de registro desconhecido.
    Linha 43: Tipo de registro desconhecido.
    Linha 44: Tipo de registro desconhecido.
    Linha 46: Tipo de registro desconhecido.
    Linha 47: Tipo de registro desconhecido.
    Linha 48: Tipo de registro desconhecido.
    Linha 49: Tipo de registro desconhecido.
    Linha 50: Tipo de registro desconhecido.
    Linha 51: E01 -> Tamanho de registro inválido. Esperado 166 caracteres e o registro apresenta 48 caracteres.
    Linha 52: Tipo de registro desconhecido.
    Linha 53: Tipo de registro desconhecido.
    Linha 54: Tipo de registro desconhecido.
    Linha 55: Tipo de registro desconhecido.
    Linha 56: Tipo de registro desconhecido.
    Linha 57: Tipo de registro desconhecido.
    Linha 58: Tipo de registro desconhecido.
    Linha 59: Tipo de registro desconhecido.
    Linha 60: Tipo de registro desconhecido.
    Linha 61: Tipo de registro desconhecido.
    Linha 62: Tipo de registro desconhecido.
    Linha 63: Tipo de registro desconhecido.
    Linha 64: Tipo de registro desconhecido.
    Linha 69: Tipo de registro desconhecido.

    --------------------------------------------------------------------------------------------
    63 erro(s) encontrado(s).

    Fim da validação do arquivo.



    o que eu estou fazendo de errado?


    obrigado
    estou usando c# e impressora bematech

     


    Software Lagos Automação Comercial Cabo Frio - RJ
    quarta-feira, 2 de fevereiro de 2011 16:47

Respostas

  • Neste código são suas chaves?

    string pubKey = "D0DDC7FAE1D4B9C9BF233F7C85AE3470DD93C342C96A670514EA98B84198D77FCCFB3F4ACBEDB5C993A272C74CB34F25EE235C45480924121DD77E620BE48ECB674E320C85A31EE8DCE2B332565A2F8F4B1932B2ACD9C8A6702EF95897B6A1ACB94068D8AB56B74DDB15BFFBEC3D45742EBF9825F0F9464C51A7ED05B13C7ED5";
    string privKey = "EF152BD8DC29E3DBB63685C25CEDCA47464754404264E7EDCCA72718E1D64F1EEE44940E239043DEB129FEA0EB423CAEC4F8C2D7B18A84790D553C2AE2D38B7FDFA5428955469832A82F8A945421B74C871581043CE1E231ABBDF04F3FA9233D70E4F9D0863554AB88F5C04543AABF187E0B248623B96DBE631603BCF9AE2FAB";
    
    Se forem, remova o código

     int ret2 = genkkey(ref pubKey, ref privKey);
    

    Senão vai ficar sempre gerando as chaves.

    T+

    quinta-feira, 3 de fevereiro de 2011 16:52

Todas as Respostas

  • Olá Thiago,

    Provavelmente vc deve ter utilizado uma opção que valida o arquivo no formato AC17/04 e, neste caso, o arquivo precisa estar com os registro do tipo E (E01, E02, E03 ...). Deve haver uma opção que valida o arquivo no formato texto e assinado, conforme vc deseja.

    Ats,
    André Munhoz

    quarta-feira, 2 de fevereiro de 2011 17:03
  • Boa tarde!

    Ao abrir o eECFc há um botão chamado Validar Assinatura PAF-ECF . Depois de vc clicar neste botão vai abrir os xml que estão na pasta SHouse com a chave publica e expoente. Depois de vc selecionar a sua empresa, tem um botão para vc selecionar seu arquivo para validação. Depois de selecionado o arquivo o programa irá validar o EAD.

    T+

    quarta-feira, 2 de fevereiro de 2011 17:24
  • tentei dessa forma porem esta dando assinatura invalida
    Software Lagos Automação Comercial Cabo Frio - RJ
    quarta-feira, 2 de fevereiro de 2011 17:44
  • Boa tarde!

    Vc colocou o xml:

    <?xml version="1.0"?>
    <empresa_desenvolvedora>
    
    	<nome>Sua Empresa</nome>
    
    	<chave>
    		<modulo>Chave Pública de 256 Caracteres</modulo>
    		<expoente_publico>3</expoente_publico>
    	</chave>
    
    </empresa_desenvolvedora>
    
    Dentro da pasta SHouse e esta utilizando ela para validar?

    quarta-feira, 2 de fevereiro de 2011 18:02
  • essa chave publica eu pego aonde? meu codigo ta gerando um a chave publica toda vez que gera um novo arquivo, isso ta certo?
    Software Lagos Automação Comercial Cabo Frio - RJ
    quarta-feira, 2 de fevereiro de 2011 20:23
  • estou usando esse codigo, tem algo errado?


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Bematech;
    using Bematech.Fiscal.ECF;
    using Bematech.Fiscal.ECF.CupomFiscal;
    using Bematech.Fiscal.ECF.OperacoesNaoFiscais;
    using Bematech.Fiscal.ECF.RelatoriosFiscais;
    using Bematech.Fiscal.ECF.Informacoes;
    using System.Runtime.InteropServices;
    using System.IO;
    using System.Text;


    namespace Loja.UIWindows
    {
        public partial class lmfcForm : Form
        {
            public lmfcForm()
            {
                InitializeComponent();
            }
            [DllImport("BemaFI32.dll", EntryPoint = "Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional", SetLastError = false,
                CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
            public static extern Int32 Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional([MarshalAs(UnmanagedType.VBByRefStr)] ref string dataUsuario,
               [MarshalAs(UnmanagedType.VBByRefStr)] ref string dataSWBasico, [MarshalAs(UnmanagedType.VBByRefStr)] ref string MFAdicional);



            [DllImport("sign_bema.DLL", EntryPoint = "setLibType", SetLastError = false,
                 CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
            public static extern Int32 setLibType(Int32 type);


            [DllImport("sign_bema.DLL", EntryPoint = "genkkey", SetLastError = false,
                 CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
            public static extern Int32 genkkey([MarshalAs(UnmanagedType.VBByRefStr)] ref string pubkey,
               [MarshalAs(UnmanagedType.VBByRefStr)] ref string privatekey);



            [DllImport("sign_bema.DLL", EntryPoint = "generateEAD", SetLastError = false,
                 CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
            public static extern Int32 generateEAD(string filename, string publicKey, string privateKey,
                    [MarshalAs(UnmanagedType.VBByRefStr)] ref string ead,
                    Int32 sign);

            [DllImport("sign_bema.DLL", EntryPoint = "validateFile", SetLastError = false,
                 CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
            public static extern Int32 validateFile(string filename, string publicKey, string privateKey);





            public string textBoxprivate;
            public string textBoxpublic;

           

            
            public void gerar_chave()
            {

                string pubKey = "D0DDC7FAE1D4B9C9BF233F7C85AE3470DD93C342C96A670514EA98B84198D77FCCFB3F4ACBEDB5C993A272C74CB34F25EE235C45480924121DD77E620BE48ECB674E320C85A31EE8DCE2B332565A2F8F4B1932B2ACD9C8A6702EF95897B6A1ACB94068D8AB56B74DDB15BFFBEC3D45742EBF9825F0F9464C51A7ED05B13C7ED5";
                string privKey = "EF152BD8DC29E3DBB63685C25CEDCA47464754404264E7EDCCA72718E1D64F1EEE44940E239043DEB129FEA0EB423CAEC4F8C2D7B18A84790D553C2AE2D38B7FDFA5428955469832A82F8A945421B74C871581043CE1E231ABBDF04F3FA9233D70E4F9D0863554AB88F5C04543AABF187E0B248623B96DBE631603BCF9AE2FAB";

                int ret2 = genkkey(ref pubKey, ref privKey);
               
                    textBoxprivate = privKey;
                    textBoxpublic = pubKey;
                

    ImpressoraFiscal BematechFiscal = ImpressoraFiscal.Construir();
    string fiscal;
                string nome_arquivo = "C:\\Users\\Thiago\\Desktop\\IMFC.txt";
                fiscal = BematechFiscal.RelatoriosFiscais.ReceberLeituraMemoriaFiscal(Convert.ToDateTime(DataIni_text.Text),Convert.ToDateTime(DataFinal_text.Text), false, 30);
               // fiscal = BematechFiscal.RelatoriosFiscais.ReceberLeituraMemoriaFiscal(new DateTime(2006, 6, 1), new DateTime(2006, 6, 15), true);


                
                    System.IO.File.Delete(@"C:\\Users\\Thiago\\Desktop\\IMFC.txt");
                    if (!System.IO.File.Exists(nome_arquivo))
                        System.IO.File.Create(nome_arquivo).Close();
                    System.IO.TextWriter arquivo = System.IO.File.AppendText(nome_arquivo);
                    Int32 sign = setLibType(1);
                    string ead = SetLength(256);
                    Int32 ret = generateEAD(nome_arquivo, textBoxpublic,
                        textBoxprivate, ref ead, sign);
                   
                    
                    arquivo.WriteLine(fiscal);
                    arquivo.WriteLine(ret);
                   
                            //checkBoxAppend.Checked ? 1 : 0;
                       
                        
                       // Int32 ret = generateEAD(arquivo, textBoxpublic,textBoxprivate, ref ead, sign);
                       // if (ret == 1)
                     /*   {
                            MessageBox.Show(ead, "EAD generated:");
                        }
                        else
                        {
                            MessageBox.Show("Failed to generate EAD, err code:  " + ret2.ToString());
                        }
                    */

                    arquivo.Close();


                }
               



            

           
          
            private void button1_Click(object sender, EventArgs e)
            {


                gerar_chave();


                ImpressoraFiscal BematechFiscal = ImpressoraFiscal.Construir();
                try
                {
                    
                    BematechFiscal.RelatoriosFiscais.ImprimirLeituraMemoriaFiscal(Convert.ToDateTime(DataIni_text.Text), Convert.ToDateTime(DataFinal_text.Text), false, 30);
                }

                catch (FiscalException MensagemErro)
                {
                    MessageBox.Show("Mensagem Erro: " + MensagemErro.Message);
                } 
                
                }

            private void lmfcForm_Load(object sender, EventArgs e)
            {
                
            }

            public string SetLength(int Tamanho)
            {
                int i;
                string Retorno = "";
                for (i = 0; i < Tamanho; i++)
                    Retorno = Retorno + " ";
                return (Retorno);
            }


            private void button2_Click(object sender, EventArgs e)
            {

                          ImpressoraFiscal BematechFiscal = ImpressoraFiscal.Construir();
                try
                {
                    if (DataIni_text.Text.Trim().Length == 0)
                    {

                        if (DataFinal_text.Text.Trim().Length == 0)
                        {
                            MessageBox.Show("campo de data esta vazio ou inválidos");
                        }
                    }
                    else
                    {
                        BematechFiscal.RelatoriosFiscais.ImprimirLeituraMemoriaFiscal(Convert.ToDateTime(DataIni_text.Text), Convert.ToDateTime(DataFinal_text.Text), true, 30);

                    }
                    }

                catch (FiscalException MensagemErro)
                {
                    MessageBox.Show("Mensagem Erro: " + MensagemErro.Message);
                } 
            }
        }
    }

    quarta-feira, 2 de fevereiro de 2011 22:48
  • Bom dia!

    A Chave Pública e Privada vc vai gerar somente UM ÚNICA VEZ. Então vc gere fora do seu programa sistema a chave Publica e Privada e coloque estaticamente dentro do seu programa de forma a utilizar sempre estas mesmas chaves. Desta forma, vai funcionar, pois no eECFc vc vai passar a chave publica que será sempre a mesma dentro do seu programa, blz?

    T+

    quinta-feira, 3 de fevereiro de 2011 10:27
  • entendi, porem estou usando esse codigo acima, tem algo errado pq ta me retornando 0 em vez da assinatura, pq??

     

     

    obrigado


    Software Lagos Automação Comercial Cabo Frio - RJ
    quinta-feira, 3 de fevereiro de 2011 13:44
  • Bom dia!

     

    System.IO.TextWriter arquivo = System.IO.File.AppendText(nome_arquivo);
    Int32 sign = setLibType(1);
    string ead = SetLength(256);
    Int32 ret = generateEAD(nome_arquivo, textBoxpublic,
    textBoxprivate, ref ead, sign);
    

     

    Na linha 1 vc está escrevendo no arquivo (o nome do arquivo, mas isso não é o problema), onde este fica protegido para escrita e na linha 4 vc esta utilizando a função para gerar o EAD que tenta escrever no arquivo que esta protegido para gravação. Então é necessário vc fechar o arquivo (arquivo.Close()) antes de utilizar a função generateEAD.

    T+

    quinta-feira, 3 de fevereiro de 2011 14:07
  • eu fiz a modificação, o ead ta no arquivo porem ele nao esta validando, o que eu errei??

    obrigado e boa tarde


    Software Lagos Automação Comercial Cabo Frio - RJ
    quinta-feira, 3 de fevereiro de 2011 15:57
  • Neste código são suas chaves?

    string pubKey = "D0DDC7FAE1D4B9C9BF233F7C85AE3470DD93C342C96A670514EA98B84198D77FCCFB3F4ACBEDB5C993A272C74CB34F25EE235C45480924121DD77E620BE48ECB674E320C85A31EE8DCE2B332565A2F8F4B1932B2ACD9C8A6702EF95897B6A1ACB94068D8AB56B74DDB15BFFBEC3D45742EBF9825F0F9464C51A7ED05B13C7ED5";
    string privKey = "EF152BD8DC29E3DBB63685C25CEDCA47464754404264E7EDCCA72718E1D64F1EEE44940E239043DEB129FEA0EB423CAEC4F8C2D7B18A84790D553C2AE2D38B7FDFA5428955469832A82F8A945421B74C871581043CE1E231ABBDF04F3FA9233D70E4F9D0863554AB88F5C04543AABF187E0B248623B96DBE631603BCF9AE2FAB";
    
    Se forem, remova o código

     int ret2 = genkkey(ref pubKey, ref privKey);
    

    Senão vai ficar sempre gerando as chaves.

    T+

    quinta-feira, 3 de fevereiro de 2011 16:52