Usuário com melhor resposta
erro de validação do mfd

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.txtArquivo 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?
obrigadoestou usando c# e impressora bematech
Software Lagos Automação Comercial Cabo Frio - RJ
Respostas
-
Neste código são suas chaves?
Se forem, remova o códigostring pubKey = "D0DDC7FAE1D4B9C9BF233F7C85AE3470DD93C342C96A670514EA98B84198D77FCCFB3F4ACBEDB5C993A272C74CB34F25EE235C45480924121DD77E620BE48ECB674E320C85A31EE8DCE2B332565A2F8F4B1932B2ACD9C8A6702EF95897B6A1ACB94068D8AB56B74DDB15BFFBEC3D45742EBF9825F0F9464C51A7ED05B13C7ED5"; string privKey = "EF152BD8DC29E3DBB63685C25CEDCA47464754404264E7EDCCA72718E1D64F1EEE44940E239043DEB129FEA0EB423CAEC4F8C2D7B18A84790D553C2AE2D38B7FDFA5428955469832A82F8A945421B74C871581043CE1E231ABBDF04F3FA9233D70E4F9D0863554AB88F5C04543AABF187E0B248623B96DBE631603BCF9AE2FAB";
int ret2 = genkkey(ref pubKey, ref privKey);
Senão vai ficar sempre gerando as chaves.
T+
- Sugerido como Resposta Fábio Vendramin Guimarães Rosini quinta-feira, 3 de fevereiro de 2011 16:52
- Marcado como Resposta thiago pires pereira quinta-feira, 3 de fevereiro de 2011 17:23
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 -
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+
- Sugerido como Resposta Fábio Vendramin Guimarães Rosini quarta-feira, 2 de fevereiro de 2011 17:24
-
-
Boa tarde!
Vc colocou o xml:
Dentro da pasta SHouse e esta utilizando ela para validar?<?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>
-
-
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);}}}}
-
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+
- Sugerido como Resposta Fábio Vendramin Guimarães Rosini quinta-feira, 3 de fevereiro de 2011 10:27
-
-
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+
- Sugerido como Resposta Fábio Vendramin Guimarães Rosini quinta-feira, 3 de fevereiro de 2011 14:07
-
-
Neste código são suas chaves?
Se forem, remova o códigostring pubKey = "D0DDC7FAE1D4B9C9BF233F7C85AE3470DD93C342C96A670514EA98B84198D77FCCFB3F4ACBEDB5C993A272C74CB34F25EE235C45480924121DD77E620BE48ECB674E320C85A31EE8DCE2B332565A2F8F4B1932B2ACD9C8A6702EF95897B6A1ACB94068D8AB56B74DDB15BFFBEC3D45742EBF9825F0F9464C51A7ED05B13C7ED5"; string privKey = "EF152BD8DC29E3DBB63685C25CEDCA47464754404264E7EDCCA72718E1D64F1EEE44940E239043DEB129FEA0EB423CAEC4F8C2D7B18A84790D553C2AE2D38B7FDFA5428955469832A82F8A945421B74C871581043CE1E231ABBDF04F3FA9233D70E4F9D0863554AB88F5C04543AABF187E0B248623B96DBE631603BCF9AE2FAB";
int ret2 = genkkey(ref pubKey, ref privKey);
Senão vai ficar sempre gerando as chaves.
T+
- Sugerido como Resposta Fábio Vendramin Guimarães Rosini quinta-feira, 3 de fevereiro de 2011 16:52
- Marcado como Resposta thiago pires pereira quinta-feira, 3 de fevereiro de 2011 17:23