Ir para conteúdo
  • Cadastre-se

gobbo

Membros
  • Total de ítens

    97
  • Registro em

  • Última visita

  • Days Won

    2

Tudo que gobbo postou

  1. Pessoal, bom dia. Estou para homologar meu PDV em SC (Unochapecó) nesta semana e a homologadora exigiu que saíssem os "DADOS DO EMITENTE" na impressão de DAV por ECF, citando o seguinte: requisito IV item 4: "...emitir DAV, impresso no ECF, como Relatório Gerencial, conforme definido no inciso III do art. 1º, observando o requisito VI, exceto quanto: a) ao tamanho mínimo previsto no item 2 do requisito VI; ao modelo estabelecido no Anexo II; c) às expressões previstas na alínea "a" do item 2 do requisito VI." requisito VI item 2: ".... c) a denominação e o CNPJ do estabelecimento emitente, devidamente consistido; d) a denominação e o CNPJ, devidamente consistido, ou o nome e o CPF, devidamente consistido, do destinatário; e) a discriminação da mercadoria, valor unitário e o total, no caso de DAV utilizado para orçamento ou pedido." fonte: http://www.fazenda.gov.br/confaz/confaz ... 005_12.htm Porém a função "DAV_Abrir( )" não possui os parâmetros para os dados do emitente, somente para os dados do destinatário. Com isso, tive que usar o parâmetro "OBSERVAÇÃO" e incluir os dados do emitente da seguinte forma: vObservacao := sLineBreak; vObservacao := vObservacao + 'IDENTIFICACAO DO EMITENTE' + sLineBreak; vObservacao := vObservacao + '' + sLineBreak; vObservacao := vObservacao + 'CNPJ/CPF: ' + vCnpjEmitente + sLineBreak; vObservacao := vObservacao + 'Nome: ' + vNomeEmitente + sLineBreak; vObservacao := vObservacao + 'Endereço: ' + vEnderecoEmitente + sLineBreak; vObservacao := vObservacao + sLineBreak; ACBrECF.DAV_Abrir( vEmissaoDAV, vTipoDAV, vNumeroDAV, 'Aberto', vVendedor, vObservacao, vCnpjCpfDestinatario, vNomeDestinatario, vEnderecoDestinatario ); Não sei se alguma outra homologadora exige isso, caso seja exigido, talvez seria interessante incluir esses parâmetros para os dados do emitente na função Dav_Abrir( ). O que acham? Outro detalhe: Também não permitiram a emissão do DAV de forma concomitante a impressão em ECF (como faz o ECF.Demo), onde a cada digitação de um item, o mesmo já é impresso no ECF. Eles entendem como concomitância para a emissão do DAV somente a visualização do item na tela (sem a impressão no ECF), ou seja, primeiro se faz toda a digitação do DAV (com os itens sendo mostrados na tela) para somente no final da digitação este DAV ser impresso no ECF "de uma única vez". Art. 1º Para fins deste Ato, considera-se: ... III - Documento Auxiliar de Venda (DAV): o documento emitido, e a critério da unidade federada parametrizado para impressão, antes de concretizada a operação ou prestação, para atender as necessidades operacionais do estabelecimento usuário de ECF na emissão e impressão de orçamento, pedido, ordem de serviço ou outro documento de controle interno do estabelecimento. IV - Emissão de documentos no ECF: a geração e concomitante impressão no equipamento Emissor de Cupom Fiscal (ECF). V - Emissão do Documento Auxiliar de Venda (DAV): a geração e concomitante gravação pelo PAF-ECF. fonte: http://www.fazenda.gov.br/confaz/confaz ... 006_08.htm
  2. Obrigado Juliomar. No aguardo de (boas) notícias.
  3. Regys, boa noite. Como eu previa, a homologadora (Unochapecó) não aceitou sair o MD5 depois da numeração do DAV e/ou Pré-Venda. Enviamos os modelos de cupons em anexo e responderam o seguinte: "Ressalto que a PV e o DAV , não podem sair antes do MD-5 no CF. Favor revisarem." Então isso inviabiliza o uso do IdentificaPAF em nosso sistema, teremos que voltar a usar o ECF.InfoRodapeCupom.MD5 := 'XXXX'. Infelizmente cada homologador interpreta a lei de uma forma diferente. Cupom Fiscal.pdf
  4. Sintegra, Sped e bloco VII já dominados, implementados e validados... Era só esta dúvida do MD5 mesmo. Obrigado.
  5. Regys Quanto ao Cupom Mania e Minas Legal, era só testes. De fato estou usando corretamente, de acordo com a UF da Empresa Usuária (RJ ou MG) exatamente como você sugeriu. Atualizei o ACBr agora (revision 3469) e de fato está saindo o texto "MD5:". Estava com a versão de 04/04/12 (revision 3427), pois já havia testado todo o roteiro nesta versão e estava tudo certo (homologação prevista para 17/05), não queria correr risco de fazer um update no ACBr e perder algum teste. Como ficou agora um cupom fiscal: BEMATECH IND E COM DE EQUIP ELETRONICOS S/A Estrada de Santa Candida, 263 Santa Candida 82.630-490 Curitiba - Parana CNPJ:82.373.077/0001-71 IE:10181465-30 UF:PR IM:ISENTO ------------------------------------------------ 22/04/2012 11:50:01 CCF:000002 COO:000006 ------------------------------------------------ CNPJ/CPF consumidor:00000000000 NOME:CONSUMIDOR PF END:RUA X, 123 - BAIRRO Y - FLORIANOPOLIS - SC - 88000001 - ------------------------------------------------ CUPOM FISCAL ITEM CÓDIGO DESCRIÇÃO QTD.UN.VL_UNIT( R$) ST VL_ ITEM( R$) ------------------------------------------------ 001 100001 REVESTIMENTO 20x20 INCEPA 1CX X 200,00 F1 200,00g TOTAL R$ 200,00 Dinheiro 200,00 ------------------------------------------------ Vendedor: VENDEDOR PADRAO ------------------------------------------------ Aplicativo:MD-5:660ECE6FD1C1AC0810A2D51D715231C0 Pdv.exe ------------------------------------------------ BEMATECH MP-2100 TH FI ECF-IF VERSÃO:01.00.01 ECF:001 LJ:0001 QQQQQQQQQQQQQTQQQQ 22/04/2012 11:50:10 FAB:EMULADOR BR ------------------------------------------------ Vamos mandar esse exemplo de cupom fiscal para a homologadora (Unochapecó) e ver se eles tem alguma restrição. Obrigado pela ajuda e paciência.
  6. Régys, entendido onde deve ser impresso o MD5. As dúvidas agora estão quanto a impressão dos número de DAVs e Pré-vendas (assim como DAV-OS, Cupom Mania e Minas Legal). A lei diz: Pré-venda Requisito V - Item 2 2.1) concretizada a operação: a) imprimir no Cupom Fiscal respectivo o número do registro de pré-venda que originou a operação, da seguinte forma, conforme o modelo de ECF: a1) no campo "informações suplementares", a partir do primeiro caracter, com o seguinte formato: PV“N”, onde N representa o número do registro de pré-venda, devendo ser adotado sistema de numeração seqüencial única com controle centralizado por estabelecimento, com 10 (dez) caracteres, iniciada em 0000000001 a 9999999999 e reiniciada quando atingindo o limite. a2) no campo "mensagens promocionais", a partir do primeiro caracter imediatamente seguinte à identificação prevista no requisito IX, com o seguinte formato: PV“N”, onde N representa o número do do registro de pré-venda, devendo ser adotado sistema de numeração seqüencial única com controle centralizado por estabelecimento, com 10 (dez) caracteres, iniciada em 0000000001 a 9999999999 e reiniciada quando atingindo o limite. DAV Requisito VI - Item 5 5.1) concretizada a venda: a) imprimir no Cupom Fiscal respectivo o número do DAV que originou a operação, da seguinte forma, conforme o modelo de ECF: a1) no campo "informações suplementares", a partir do primeiro caracter ou a partir do caracter imediatamente seguinte ao registro do PV”N”, quando for o caso, com o seguinte formato: DAV“N”, onde N representa o número do Documento Auxiliar de Venda; a2) no campo "mensagens promocionais", a partir do primeiro caracter seguinte à identificação prevista no requisito IX ou a partir do caracter imediatamente seguinte ao registro do PV”N”, quando for o caso, com o seguinte formato: DAV“N”, onde N representa o número do Documento Auxiliar de Venda; MD5 Requisito IX - Item 1 O PAF-ECF deve, a cada inicialização: ... c) ... devendo este código ser impresso no Cupom Fiscal, no campo: c1) "informações complementares", no caso de ECF que disponibilize este campo, devendo utilizar este campo para esta informação e iniciando a impressão na primeira coluna, disponibilizada pelo software básico do ECF, da primeira linha, precedido pela mensagem “MD-5:” c2) "mensagens promocionais", no caso de ECF que não disponibilize o campo "informações complementares", devendo utilizar a primeira linha para esta informação e iniciando a impressão na primeira coluna disponibilizada pelo software básico do ECF, precedido pela mensagem “MD-5:” fonte: http://www.fazenda.gov.br/confaz/confaz ... 005_12.htm No meu caso (ECF MP-3000), os campos são definidos assim pelo fabricante (Bematech): 1) Mensagem Complementar é implementada através do comando “ESC 62 64″ (Programa ID Aplicativo) para protocolo direto ... para os modelos de impressoras fiscais térmicas a partir da MP-2100 TH FI. O parâmetro deste comando/função permite até 84 caracteres e pode ser usado a qualquer momento na impressora, desde que o cupom esteja fechado. => equivale ao IdentificaPAF( NomePAF, MD5); 2) Mensagem Suplementar é implementada através do comando “ESC 34″ (Termina o Fechamento do Cupom Fiscal) para protocolo direto ... para todos os modelos de impressoras fiscais Bematech. O campo de texto referente à mensagem, possui 8 linhas por 48 colunas (formato padrão). => equivale ao FechaCupom( mensagemPromo ); fonte: http://partners.bematech.com.br/2011/03 ... plementar/ Como estou utilizando: a) Iniciei o aplicativo => IdentificaPAF( NomePAF, MD5); Isso grava os dados na memória do ECF para ser usado em fechamentos diversos. Ao ser gravado, sai impresso no ECF estes dados (não é um relatório gerencial nem nada, simplesmente o ECF imprime: "Identificação do aplicativo: E7CC7B3BBFD5B2E1F1EA479E944DDB79 Pdv.exe"; Finalizando uma venda => ECF.InfoRodapeCupom.PreVenda := numeroPV; ECF.InfoRodapeCupom.Dav := numeroDav; ECF.InfoRodapeCupom.CupomMania := true; ECF.InfoRodapeCupom.MinasLegal := true; ECF.FechaCupom( 'Nome do Vendedor: fulano de tal ' ); Desta forma, um cupom fiscal fica aparentemente assim (usei o Emulador, mas numa MP-3000 é muito parecido): BEMATECH IND E COM DE EQUIP ELETRONICOS S/A Estrada de Santa Candida, 263 Santa Candida 82.630-490 Curitiba - Parana CNPJ:82.373.077/0001-71 IE:10181465-30 UF:PR IM:ISENTO ------------------------------------------------ 21/04/2012 20:07:59 CCF:000002 COO:000005 ------------------------------------------------ CUPOM FISCAL ITEM CÓDIGO DESCRIÇÃO QTD.UN.VL_UNIT( R$) ST VL_ ITEM( R$) ------------------------------------------------ 001 111222333 TESTE DE PRODUTO 1UN X 1,00 N1 1,00g TOTAL R$ 1,00 Dinheiro 1,00 ------------------------------------------------ PV0000000003DAV0000000001DAV-OS0000000002 CUPOM MANIA, CONCORRA A PRÊMIOS ENVIE SMS P/ 6789: 10181465210412000005001 PROCON - R da Ajuda 5 - RJ - (21) 151 ALERJ - R 1º de Março s/n - RJ - (21) 25881418 MINAS LEGAL: 82373077000171 21042012 100 Nome do Vendedor: fulano de tal ------------------------------------------------ Aplicativo:E7CC7B3BBFD5B2E1F1EA479E944DDB79 Pdv.exe ------------------------------------------------ BEMATECH MP-2100 TH FI ECF-IF VERSÃO:01.00.01 ECF:001 LJ:0001 QQQQQQQQQQQQQEQWQQ 21/04/2012 20:08:34 FAB:EMULADOR BR ------------------------------------------------ Isso está 100% correto de acordo com o que diz a lei? P.S. Desculpe o tamanho do post, mas é melhor sobrar que faltar...
  7. Pessoal, ainda sobre essa função IdentificaPAF( NomePAF, MD5 ) Executei esta função num ECF da BEMATECH de testes que temos na empresa. A partir disso, o MD5 passou a ser informado de forma diferente nos cupons fiscais, no final do cupom (que parece ser o correto), mas sem levar em conta os números de DAVs e PVs que deveriam ser impressos já na sequencia deste MD5. Antes: MD5:12345678901234567890123456789012PV0000000003DAV0000000001DAV-OS0000000002 CUPOM MANIA, CONCORRA A PRÊMIOS ENVIE SMS P/ 6789: 10181465210412000015001 PROCON - R da Ajuda 5 - RJ - (21) 151 ALERJ - R 1º de Março s/n - RJ - (21) 25881418 MINAS LEGAL: 82373077000171 21042012 100 Agora: MD5:12345678901234567890123456789012PV0000000003DAV0000000001DAV-OS0000000002 CUPOM MANIA, CONCORRA A PRÊMIOS ENVIE SMS P/ 6789: 10181465210412000015001 PROCON - R da Ajuda 5 - RJ - (21) 151 ALERJ - R 1º de Março s/n - RJ - (21) 25881418 MINAS LEGAL: 82373077000171 21042012 100 ------------------------------------------------ Aplicativo: 12345678901234567890123456789012 Pdv.exe ------------------------------------------------ A minha dúvida é a seguinte: Tem como reprogramar essa função IdentificaPAF, revertendo os dados do ECF para não mostrar mais esse quadro "Aplicativo: " ??? O máximo que consegui fazer é programar o ECF informando os seus parâmetros em branco IdentificaPAF( ' ', ' ' ). Pelo menos não fica "errado" ao olhos dos homologadores... MD5:12345678901234567890123456789012PV0000000003DAV0000000001DAV-OS0000000002 CUPOM MANIA, CONCORRA A PRÊMIOS ENVIE SMS P/ 6789: 10181465210412000015001 PROCON - R da Ajuda 5 - RJ - (21) 151 ALERJ - R 1º de Março s/n - RJ - (21) 25881418 MINAS LEGAL: 82373077000171 21042012 100 ------------------------------------------------ Aplicativo: ------------------------------------------------
  8. Eu acho que entendi o seu questionamento... a) No componente AAC: => "ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5" => existe a propriedade e funciona => "ACBrAAC1.IdentPAF.ArquivoListaAutenticados.Nome" => existe a propriedade e não funciona Com isso dá pra salvar/buscar o MD5 mas não dá pra salvar/buscar o nome do arquivo. Esse nome do "arquivo com a lista dos autenticados" é sempre o mesmo, nunca muda (inclusive é uma CONST no meu sistema). Então, no meu caso, esse nome não precisa ser gravado no arquivo criptografado para futuras consultas: uma coisa a menos pro AAC ficar criptografando/decriptografando a cada venda. CONST cNomeArquivoListaAutenticados = 'lista_arquivos_autenticados.txt'; //salvado na pasta da aplicação cNomeArquivoAuxiliarCriptografado = 'pdv_arquivo_auxiliar_criptografado.ini'; //salvado numa pasta "inacessível" ao usuário
  9. No meu caso funciona assim: 1. As formas de pagamento selecionadas pelo operador de caixa são gravadas numa "tabela temporária" no banco de dados (não são enviadas pro ECF ainda); 2. Quando o operador confirma a finalização do cupom com todas as formas de pagamento que ele desejar (e o cliente solicitar), eu mando estas formas de pagamento pro ECF uma a uma; 3. Para cada forma de pagamento que seja registrada com sucesso no ECF, os dados desta forma de pagamento são gravados numa outra tabela (Registros R07), útil para a geração do menu fiscal "Movimento por ECF". Caso haja algum problema, consigo cancelar o cupom, estornando as formas de pagamento registradas, e reiniciar um novo cupom aproveitando os dados deste último cancelado. Veja uma imagem da minha tela de finalização de venda:
  10. Ou entendendo melhor a sua dúvida... Você quer saber quais formas de pagamento já foram registradas "durante a venda" ??? ACBrECF1.SubtotalizaCupom( X, '' ); ACBrECF1.EfetuaPagamento( '01', X-Y, '' , '' ); => dinheiro ACBrECF1.EfetuaPagamento( '02', Y, '' , '' ); => cartao => aqui você quer saber quais foram as formas de pagamento já registradas? ACBrECF1.FechaCupom( '', 0 );
  11. Giuliano Existe sim como consultar as formas de pagamentos do ECF. Veja no ECFTeste (menu Variáveis / Formas de Pagamento / Carrega Formas de Pagamento) procedure TForm1.FormasdePagamento1Click(Sender: TObject); var A : Integer ; begin ACBrECF1.CarregaFormasPagamento ; for A := 0 to ACBrECF1.FormasPagamento.Count -1 do begin if ACBrECF1.FormasPagamento[A].Descricao <> '' then mResp.Lines.Add( 'Forma Pagto: '+ACBrECF1.FormasPagamento[A].Indice+' -> '+ ACBrECF1.FormasPagamento[A].Descricao+' Permite Vinculado: '+ IfThen( ACBrECF1.FormasPagamento[A].PermiteVinculado,'S','N')); end ; mResp.Lines.Add('---------------------------------'); end;
  12. Se for isso, perfeito. Somente conheço a Unochapecó e lá é uma Software House por homologador/técnico de cada vez, não ficam várias SH com o mesmo homologador/técnico no mesmo ambiente. No ano passado, na minha última homologação, até conseguiam homologar duas SH ao mesmo tempo por existirem dois homologadores/técnicos habilitados, mas isso acontecia em ambientes diferentes (em salas diferentes).
  13. A única coisa que me preocupou foi o seguinte: § 3º A Análise Funcional de PAF-ECF deverá ser realizada: I - no estabelecimento situado no endereço cadastrado no CNPJ constante no Ato COTEPE/ICMS relativo ao credenciamento do órgão técnico ou no estabelecimento usuário ou desenvolvedor do PAF-ECF; e II – de forma individualizada e exclusiva, de modo que um técnico faça os testes em um programa sem que outro desenvolvedor esteja presente no mesmo ambiente da análise.”; Já que não poderei mais ficar presente durante a homologação (eu, o desenvolvedor), terei que "treinar" o técnico/homologador para usar o meu sistema antes de começar a homologação??? Que venha logo o "Cupom Fiscal Eletrônico" que não aguento mais ver tanta bobagem...
  14. Vejam o que diz esta cláusula: Cláusula quarta Este convênio entra em vigor na data da sua publicação no Diário Oficial da União produzindo efeitos a partir do primeiro dia do segundo mês subseqüente ao da publicação. fonte: http://www.fazenda.gov.br/confaz/confaz ... 014-12.htm Edit: Publicado no DOU de 09.04.12 Então isso passa a valer em 01/06/2012 ou em 10/06/2012 ou em 01/07/2012 ??? Mas como esses burocratas gostam de complicar o que é simples...
  15. Aqui também tudo funcionando com esta nova atualização. O erro no ECF com "FIM DE PAPEL" somente mostra a mensagem ao operador. Antes, na minha aplicação, isso resultava em mostrar a mensagem de erro e em "fechar a tela de venda", o que poderia ser constrangedor para o operador de caixa na frente do cliente. Agora está perfeito.
  16. Complementando... Essa função pode ser utilizada em todo o Menu Fiscal, somente fique atento nos menus "ESTOQUE TOTAL" e "ESTOQUE PARCIAL", pois o header destes arquivos (E1) são diferentes dos demais headers (P1, D1 etc). Veja um exemplo: procedure TForm6.PreencherHeader_RegistroE1(Header: TRegistroX1); begin //preenche o arquivo com o cabeçalho-padrão Self.PreencherHeader( Header ); //complementa o header com os dados específicos do registro E1 (paramentro "Header" deve ser um "ACBrPAF.PAF_E.RegistroE1") Header.NUM_FAB := edtNumFab.Text; Header.MF_ADICIONAL := edtMFAdicional.Text; Header.TIPO_ECF := edtTipo.Text; Header.MARCA_ECF := edtMarca.Text; Header.MODELO_ECF := edtModelo.Text; Header.DT_EST := edtDataEstoque.Text; end; Leandro Gobbo
  17. André Este SPED fiscal (assim com o SINTEGRA) realmente é o mais complexo, exigente de conhecimentos específicos. Normalmente "emperramos" no seu desenvolvimento até que tudo seja perfeitamente compreendido, implementado, testado e validado. Isso tão complexo que levei umas 2 semanas só para ler e compreender tudo que deveria ser feito no SPED, fora todo o tempo para repensar a minha estrutura de banco de dados para o devido armazenamento de tudo o que era necessário. Isso é tão desumano (não quero que ninguém sofra o tanto que sofri), que vai ai "na faixa" a minha função para gerar o "VENDAS DO PERÍODO", com o SINTEGRA + SPED. Muita coisa é busca de dados no bd, mas pelo menos dá pra entender a estrutura hierárquica que utilizei para gerar os 2 arquivos (com os blocos e registros mínimos necessários, com o SPED fixo para o perfil . Leandro Gobbo Menu Fiscal - Vendas do Período - SINTEGRA e SPED.txt
  18. André A função "PreencheHeader()" é uma função que você precisa implementar no seu aplicativo, ela não vem "pronta" no componente ACBrPAF. Veja no "DemoPAF" como esta função está implementada: procedure TForm6.PreencherHeader(Header: TRegistroX1); begin // o header dos relatórios PAF a maioria são todos iguais Header.UF :=edtUF.Text; Header.CNPJ :=edtCNPJ.Text; Header.IE :=edtIE.Text; Header.IM :=edtIM.Text; Header.RAZAOSOCIAL:=edtRAZAO.Text; end; Leandro Gobbo
  19. Rodrigo Eu "acho" que um certificado digital do tipo "eCpnj" não serve para assinar os seus executáveis para distribuição, seja ele do tipo A1 ou A3. Mas mesmo assim verifique se esse seu certificado foi habilitado para assinatura de código. Para saber se um certificado está habilitado para assinatura de código, revise as propriedades do certificado no snap-in de Certificados. Caso ele não esteja habilitado para assinatura de código, o jeito é encarar um certificado específico para essa finalidade (que parece ser um pouco mais caro que o normal): - Serasa http://serasa.certificadodigital.com.br ... ra-codigo/ - Comodo http://www.comodobr.com/produtos/certif ... igning.php - Certsolutions http://www.certsolutions.com.br/solucoe ... odigo.html - Symantec http://www.symantec.com/pt/br/produtos-de-autenticacao Leandro Gobbo
  20. Rodrigo, veja nos links abaixo se é essa a sua intenção em assinar seus executáveis: http://www.ericksasse.com.br/como-assin ... licativos/ http://www.comodobr.com/produtos/certif ... igning.php Leandro Gobbo
  21. Essa questão das mensagens retornadas pelo ECF está sim no Ato Cotepe 06/08 (ER 01.10): http://www.fazenda.gov.br/confaz/confaz ... 006_08.htm Requisito XVI Item 1 Quando a operação não puder ser realizada, o PAF-ECF deve exibir na tela mensagem de erro retornada pelo software básico do ECF, efetuando o devido tratamento da informação e impedindo o registro. Então, em todas as minhas chamadas para o componente ACBrECF, utilizo um bloco "try... except...", como no exemplo abaixo: try ACBrECF.AbreCupom( ); except on E: Exception do begin ShowMessage(E.Message); editCodigoCliente.SetFocus; Abort; end; end;{try} Caso algum erro ocorra, a mensagem mostrada é a informação proveniente do próprio ECF: => "ShowMessage(E.Message)" e não da minha programação. Como todos os tipos possíveis de mensagens de erro do ECF foram devidamente programadas no ACBr, não me preocupo com o texto que devo apresentar para o usuário. P.S. Observe as units de cada ECF, nelas já existem todas as mensagens de erros possíveis retornadas pelo ECF. Como só uso Bematech, veja alguns exemplos de mensagens no "ACBrECFBematech.pas": const ErrosST1 : array[0..7] of string = ('Número de parâmetros de CMD inválido', 'Cupom aberto', 'Comando inexistente', 'Primeiro dado de CMD não foi ESC (27d)', 'Impressora em erro', 'Erro no relógio', 'Pouco papel', 'Fim de papel') ; const ErrosST2 : array[0..7] of string = ('Comando não executado', 'CGC/IE do proprietário não programados', 'Cancelamento não permitido', 'Capacidade de alíquotas programáveis lotada', 'Alíquota não programada', 'Erro na Memória RAM CMOS não volátil', 'Memória fiscal lotada', 'Tipo de parâmetro de CMD inválido') ; ErrosST3: array [0 .. 218] of string = ( { 0 } 'Comando ok', { 1 } 'Comando inválido', { 2 } 'Erro desconhecido', { 3 } 'Número de parâmetro inválido', { 4 } 'Tipo de parâmetro inválido', { 5 } 'Todas alíquotas já programadas', { 6 } 'Totalizador não fiscal já programado', { 7 } 'Cupom fiscal aberto', { 8 } 'Cupom fiscal fechado', { 9 } 'ECF ocupado', { 10 } 'Impressora em erro', { 11 } 'Impressora sem papel', { 12 } 'Impressora com cabeça levantada', { 13 } 'Impressora off line', . . . Leandro Gobbo
  22. Veja o Ato Cotepe 17/04 que trata da geração destes arquivos: http://www.fazenda.gov.br/confaz/confaz ... 017_04.htm 5.1.2.1 - MF - Leit. Dados da Memória Fiscal (equivale aos LMFC do menu fiscal) deve gerar os seguintes registros: E01, E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12, E13 5.1.2.2 - MFD - Leit. Dados da Memória Fita-Detalhe (equivale ao Arq.MFD do menu fiscal) deve gerar os seguintes registros: E01, E02, E14, E15, E16, E17, E18, E19, E20 e E21 Então o ACBr está gerando o arquivo corretamente. O seu bematool está gerando o arquivo errado (ou gerando com o parâmetro "5.1.2.3 - TDM - Leit. Dados das Memórias do ECF"). Quanto a geração do arquivo, tem que ser gerado um único arquivo contendo os dados do período informado. Não deve ser gerado um arquivo para cada dia. Quanto ao "Menu Fiscal", veja se você está usando as rotinas adequadas do ACBrECF: LX: => ECF.PafMF_LX_Impressao; LMFC: => ECF.PafMF_LMFC_Impressao( DataInicial, DataFinal) ou ECF.PafMF_LMFC_Impressao( CrzInicial, CrzFinal); => ECF.PafMF_LMFC_Espelho( DataInicial, DataFinal, NomeArquivoDestino ) ou ECF.PafMF_LMFC_Espelho( CrzInicial, CrzFinal, NomeArquivoDestino ); => ECF.PafMF_LMFC_Cotepe1704( DataInicial, DataFinal, NomeArquivoDestino ) ou ECF.PafMF_LMFC_Cotepe1704( CrzInicial, CrzFinal, NomeArquivoDestino ); LMFS: => ECF.PafMF_LMFS_Impressao( DataInicial, DataFinal ) ou ECF.PafMF_LMFS_Impressao( CrzInicial, CrzFinal ); => ECF.PafMF_LMFS_Espelho( DataInicial,vDataFinal, NomeArquivoDestino ) ou ECF.PafMF_LMFS_Espelho( CrzInicial, CrzFinal, NomeArquivoDestino ); EspelhoMFD: => ECF.PafMF_MFD_Espelho( DataInicial, DataFinal, NomeArquivoDestino ) ou ECF.PafMF_MFD_Espelho( CooInicial, CooFinal, NomeArquivoDestino ); ArqMFD: => ECF.PafMF_MFD_Cotepe1704( DataInicial, DataFinal, NomeArquivoDestino ) ou ECF.PafMF_MFD_Cotepe1704( CooInicial, CooFinal, NomeArquivoDestino ); Tab. Prod.: => implementar por conta própria, veja exemplo do DemoECF; Estoque Total: => implementar por conta própria, veja exemplo do DemoECF; Estoque Parcial: => implementar por conta própria, veja exemplo do DemoECF; Movimento Por ECF: => implementar por conta própria, veja exemplo do DemoPAF; Meios De Pagamento: => implementar por conta própria, veja exemplo do DemoECF; DAV Emitidos: => implementar por conta própria, veja exemplo do DemoECF; Identificação Do PAF-ECF: => implementar por conta própria, veja exemplo do DemoECF; Vendas Do Período: => implementar por conta própria, veja exemplo do DemoSINTEGRA; => implementar por conta própria, veja exemplo do DemoSPED; Tab. Índice Técnico Produção: => implementar por conta própria, veja exemplo do DemoECF; Parâmetros De Configuração: => implementar por conta própria, veja exemplo do DemoECF; Leandro Gobbo
  23. http://www.softwareexpress.com.br/ArqCl ... efdial.htm Leandro Gobbo
  24. O interessante é que na minha última homologação em jan/2011, com a versão do ACBr e as DLLs da Bematech daquela época, tudo funcionava sem esse problema. Vai entender... Mas obrigado pela atenção. Somente tive a intenção de alertar algum usuário que tenha o mesmo problema que este meu. Leandro Gobbo
  25. Régys Sim, já tentei de tudo que foi jeito: - somente o INI no System32 e as DLLs na pasta do programa; - tudo no System32 (INI + DLLs); - tudo na pasta do programa (INI + DLLs). De qualquer jeito acontece o mesmo erro do meu post anterior. Parece ser problema no tamanho do PATH configurado, que extrapola alguma quantidade máxima de caracteres. Por isso que quando inicio com o PATH=C:\ tudo funciona perfeitamente. Leandro Gobbo P.S. O log gerado é da função ArquivoMFD, mas esse erro também acontece com o EspelhoMFD (título e objeto deste tópico). Ambas usam as DLLs da Bematech. As outras funções que usam comunicação direta via porta serial não ocorrem problemas, posso gerar os arquivos em qualquer pasta sem erros.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.