Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 28-03-2017 em todas as áreas
-
At revision: 13103 -- ACBrNFeDANFeRL, ACBrNFeDANFeRLRetrato, ACBrNFeDANFeRLPaisagem -- [+] Ajuste para mostrar documentos referenciados em informações adicionais. http://www.projetoacbr.com.br/forum/topic/35910-mostrar-chave-da-nota-fiscal-eletronica-em-notas-de-devolução/ [*] Refatoração de informações adicionais, com o desenvolvimento de funções para eliminação de código duplicado nas danfe retrato e paisagem Por : RicardoVoigt/Henrique Leonardo3 pontos
-
Olá pessoal, Com o intuito de acabar com a dependência da CAPICOM, nos fontes do Projeto ACBr, apliquei um amplo refactoring, nas Units de ACBrDFeSSL e suas derivadas... O que é CAPICOM ? https://en.wikipedia.org/wiki/CAPICOM Porque usávamos a CAPICOM ? Usar diretamente as APIs do Windows não é uma tarefa simples.... A CAPICOM, facilita um pouco, as tarefas que podem ser feitas com a WinCrypt (ou MS Crypto), para acesso a certificados digitais instalados no Windows Quais as desvantagens da CAPICOM ? A Microsoft condenou a mesma como obsoleta. (esse é o principal motivo) Ela precisa ser registrada no Windows para funcionar Não suporta 64 bits O que será usado no lugar da CAPICOM ? Usaremos diretamente as APIs do Windows, ou seja, a WinCrypt (também conhecida como "MS Crypto" ou "CAPI"). Ou seja, encaramos o desafio e agora usamos apenas métodos da WinCrypt para acessos a Certificados Digitais no Windows. Para facilitar o acesso a API WinCrypt, estamos usando as Units do diretório: "Fontes\Terceiros\CodeGear\", mas especificamente a Unit "ACBr_WinCrypt.pas". Quais as vantagens da WinCrypt ? Ela está presente de forma nativa, em todas as versões do Windows (desde o Windows XP), ou seja, não requer instalação. Possui versões 32 e 64 bits Não requer registro da DLL Não requer a instalação de pacotes .NET ou Java Onde posso encontrar a WinCrypt ? Ela já está instalada, de forma nativa, no seu Windows... com o nome: "crypt32.dll" Se o seu Windows é 64 bits, você encontrará a mesma em: 32 bits: "C:\Windows\SysWOW64" 64 bits "C:\Windows\System32" Se o seu Windows é 32 bits, você encontrará a mesma em: "C:\Windows\System32" O suporte a Delphi7 será mantido ? SIM. Apesar de já anunciarmos o fim do Suporte a D7, tivemos o cuidado de testar as alterações no D7. Para isso, adaptamos as units da pasta "Fontes\Terceiros\CodeGear\" para o suporte a D7... Como configurar para usar a WinCrypt e não a CAPICOM ? A maneira mais simples é configurar a seguinte propriedade: ACBrNFe1.Configuracoes.Geral.SSLLib := libWinCrypt; Na verdade, a propriedade ACBrDFe.Configuracoes.Geral.SSLLib passou a ser virtual... ou seja, ela configurará de forma indireta, as 3 novas bibliotecas de TDFeSSL... Se você ler os fontes, quando rodamos o código acima, o seguinte código será executado. procedure TGeralConf.SetSSLLib(AValue: TSSLLib); case AValue of ..... libWinCrypt: begin SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsMsXml; end; end; Se você deseja uma configuração diferenciada, poderá configurar as bibliotecas individualmente...Exemplo: ACBrNFe1.Configuracoes.Geral.SSLCryptLib := cryWinCrypt; ACBrNFe1.Configuracoes.Geral.SSLHttpLib := httpWinINet; ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsXmlSec; Como remover completamente, as Units da CAPICOM dos meus fontes ? Abra o arquivo \ACBr\Fontes\ACBrComum\ACBr.inc e altere a seguinte linha: {.$DEFINE DFE_SEM_CAPICOM} para: {$DEFINE DFE_SEM_CAPICOM} Ou seja, remova o "." do inicio O que mudou em ACBrDFeSSL ? Muita coisa.... (veja abaixo o trecho do "Change-Log").. Estudar os fontes do projeto Demo "\ACBr\Exemplos\ACBrDFe\ACBrNFe\Delphi", é a melhor maneira de conhecer as modificações. Veja abaixo, um resumo ilustrado: 1 - Agora você pode criar a sua própria janela de escolha de Certificado Veja esse exemplo de código, extraído de ACBrNFe_Demo. onde usamos o método "ACBrNFe1.SSL.LerCertificadosStore", para carregar todos os certificados da Store, definida em "ACBrNFe1.SSL.StoreName", após isso, as informações dos certificados podem ser obtidas em "ACBrNFe1.SSL.ListaCertificados" ACBrNFe1.SSL.LerCertificadosStore; For I := 0 to ACBrNFe1.SSL.ListaCertificados.Count-1 do begin with ACBrNFe1.SSL.ListaCertificados[I] do begin 2 - Agora você pode selecionar as bibliotecas de TDFeSSL, individualmente CryptLib: Permite definir qual será a biblioteca de Criptografia. Ela possui métodos como:"SelecionarCertificado", "CarregarCertificado", "CalcHash". além de propriedades como "DadosCertificado" e "ListaCertificados". TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt) HttpLib: Usada para acesso HTTP e HTTPs, permitindo informar o Certificado na conexão. Possui métodos como: "Enviar" e propriedades como: "HTTPResultCode" e "InternalErrorCode" TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); XMLSignLib: Usada para validar XMLs (contra um Schema), assinar um XML, Validar a assinatura existente em um XML. Possui métodos como: "Assinar", "Validar" e "VerificarAssinatura" TSSLXmlSignLib = (xsNone, xsXmlSec, xsMsXml, xsMsXmlCapicom); 3 - Independência das configurações de segurança do I.E. Isso pode ser obtido, se você utilizar SSLHttpLib = "httpWinHttp" ou "httpOpenSSL" Você poderá definir nos seus fontes, independente das configurações do Internet Explorer, configurações como o Tipo de segurança e TimeOut da tentativa de conexão. Essa funcionalidade já estava presente nas Units de acesso que utilizavam o OpenSSL a algum tempo. e agora com a nova Unit que faz acesso a HTTPS, usando a API do Windows chamada "WinHTTP", isso também será possível. O modelo: "httpWinINet" irá usar a API do Windows, chamada "WinINet", a qual já utilizávamos, e ela depende de configurações do I.E. 4 - Carregar o certificado por ArquivoPFX ou DadosPFX, com a WinCrypt ou CAPICOM Essa funcionalidade já estava presente, quando SSLCryptLib = cryOpenSSL. e não estava disponível para CAPICOM. Mas agora isso é possível, com a SSLCryptLib = cryCapicom ou cryWinCrypt. Ou seja, Se você tem um certificado A1, você não precisa instalar o certificado no Windows. Isso pode parecer pouco importante em uma primeira impressão... Mas veja as possibilidades: O certificado A1 poderia estar em um Banco de dados, ou em um Servidor Web, e ser carregado de forma dinâmica pela sua aplicação, independente de ser instalado manualmente no Windows. 5 - Compilar seu Executável em 64 bits Lembre-se que quando você compila o seu programa em 64 bits, todas as DLLs externas de qual ele necessitar, também devem ser de 64 bits. Portanto para isso, você não poderá usar a XMLSignLib = xsMsXml, pois a biblioteca da Microsoft para assinatura de XMLs "MSXML" não possui versão 64 bits. Mas observe que agora você pode usar a biblioteca WinCrypt com a XmlSec, basta configurar corretamente as bibliotecas de criptografia. Nota: Ainda não conseguimos, fazer com que a XMLSec possa usar certificados A3, mas isso deverá ser possível no futuro, pois a XMLSec tem suporte a "MSCrypto" Diagrama de Classes Como posso ajudar ? (Tarefas a serem efetuadas) 1 - Fazer a XmlSec funcionar usando a "mscrypto" Ainda não conseguimos fazer a XMLSec, usar a MSCrypto, atualmente ele apenas usa a "openssl". Porque isso é importante ? Temos vários problemas, com a msxml, como por exemplo: A Microsoft não distribui a mesma, de forma nativa, com o Windows (arquivo msxml5.dll) Ela não suporta 64 bits A licença de uso dassa biblioteca, é valida apenas para quem tem o Office instalado... Portanto, seria ótimo se pudéssemos ficar livres da MSXML, mas para isso, precisamos fazer o ACBr conseguir usar a XMLSec com suporte a MSCrypto (hoje ele só suporta OpenSSL)... Na verdade, já podemos usar WinCrypt + XmlSec, mas apenas para certificados A1, pois o ACBr é capaz de exportar o certificado A1 do Windows, para que o mesmo seja usado pelo OpenSSL. (ele fará isso internamente, e de forma transparente para o usuário) Quando conseguirmos fazer a XmlSec usar a MSCrypto (ou WinCrypt), conseguiremos compilar a aplicação em 64 bits, e com suporte a certificados A3 2 - Compilar os fontes da XMLSec no Windows, em 32 e 64 bits Hoje o único site que distribui a XMLSec já compilada para Windows é https://www.zlatkovic.com/libxml.en.html (Thanks Igor). Entretanto, podemos notar que os binários estão defasados, e não há uma versão 64 bits, com suporte a "mscrypto" Veja como ficou o "Change-Log" do refactoring em ACBrDFeSSL -- ACBrDFeSSL -- [*] Amplo refactoring promovido, separando a classe "TDFeSSLClass" em 3 novas classes: "TDFeSSLCryptClass" - para Carregar certificados e efetuar criptografia "TDFeSSLHttpClass" - para comunicação HTTP/HTTPS com suporte a Certificados "TDFeSSLXmlSignClass" - Para Validar XMLs, validar assinaturas e Assinar XML com Certificados [+] "TSSLLib", adicionado os tipos "libWinCrypt, libCustom" [+] Criada nova classe "TDadosCertificado", para conter os dados do certificado carregado [+] Criada nova classe "TListaCertificados",para conter uma lista de Objetos do tipo TDadosCertificado, com todos os certificados de uma "Store", e após a chamada do método "TDFeSSL.LerCertificadosStore" [+] Adicionada propriedade "TDFeSSL.StoreName: String", usada apenas no Windows. Nome da Store a ser aberta, padrão "MY" [+] Adicionada propriedade "TDFeSSL.StoreLocation: TSSLStoreLocation", usada apenas no Windows. Default "slCurrentUser". TSSLStoreLocation = (slMemory, slLocalMachine, slCurrentUser, slActiveDirectory, slSmartCard); [+] Adicionado o método: "TDFeSSL.LerCertificadosStore", apenas Windows, para carregar todos os Certifcados de "TDFeSSL.StoreName" para a lista de Objetos: "TDFeSSL.ListaCertificados" [+] Adicionado a propriedade "TDFeSSL.DadosCertificado", para permitir acesso aos dados do certificado carregado [+] Adicionada a propriedade "TDFeSSL.SSLCryptLib: TSSLCryptLib" default cryNone; para definir a classe de criptografia TSSLCryptLib = (cryNone, cryOpenSSL, cryCapicom, cryWinCrypt); [+] Adicionada a propriedade "TDFeSSL.SSLHttpLib: TSSLHttpLib" default httpNone; para definir a classe de comunicação HTTP/HTTPS TSSLHttpLib = (httpNone, httpWinINet, httpWinHttp, httpOpenSSL, httpIndy); [+] Adicionada a propriedade "TDFeSSL.SSLXmlSignLib: TSSLXmlSignLib" default xsNone; para definir a classe de assinatura de validação de XML TSSLXmlSignLib = (xsNone, xsXmlSec, xsMsXml, xsMsXmlCapicom); [+] Adicionada a propriedades "TDFeSSL"SSLType: TSSLType" default LT_all; para permitir definir o tipo de criptografia em HTTPS sendo: TSSLType = (LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_TLSv1_2, LT_SSHv2) suportado apenas em TDFeHttpOpenSSL e TDFeHttpWinHttp -- ACBrDFeConfiguracoes -- [+] Adicionada as propriedades: property SSLCryptLib: TSSLCryptLib property SSLHttpLib: TSSLHttpLib property SSLXmlSignLib: TSSLXmlSignLib [*] Propriedade "SSLLib: TSSLLib" passou a ser virtual, e mantida por compatibilidade. Ajusta-la irá produzir ajustes em "SSLCryptLib", "SSLHttpLib" e "SSLXmlSignLib". Exemplo: if SSLLib = libOpenSSL then begin SSLCryptLib := cryOpenSSL; SSLHttpLib := httpOpenSSL; SSLXmlSignLib := xsXmlSec; end; -- ACBrDFe -- [+] Adicionado suporte a configurações de "SSLCryptLib", "SSLHttpLib", "SSLXmlSignLib" -- ACBrDFeOpenSSL -- [*] Amplo refactoring. Removido código referente a comunicação HTTP/HTTPs que foi migrado para "ACBrDFeHttpOpenSSL" [*] Removido código referente a assinatura digital e Validação de XML, que foi migrado para "ACBrDFeXsXmlSec" -- ACBRDFeWinCrypt -- [+] Nova Unit, para manipular Certificados do Windows e efetuar assinatura digital, usando a Win API WinCrypt (MSCrypto/CAPI) -- ACBrDFeCapicom -- [*] Refactoring, para usar boa parte do código de "ACBRDFeWinCrypt" -- ACBrDFeHttpOpenSSL -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando a Synapse e OpenSSL -- ACBrDFeHttpWinApi -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLHttpClass para comunicação http e https, usando as APIs do Windows WinHttp ou WinINet -- ACBrDFeHttpIndy, ACBrDFeCapicomDelphiSoap -- [*] Unit renomeada de "ACBrDFeCapicomDelphiSoap" para "ACBrDFeHttpIndy", e refatorada para não depender da CAPICOM -- ACBrDFeXsXmlSec -- [+] Adicionada nova Unit, derivada de ACBrDFeOpenSSL, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib XMLSEC -- ACBrDFeXsMsXml -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignClass usando a Lib MSXML -- ACBrDFeXsMsXmlCapicom -- [+] Adicionada nova Unit, derivada de ACBrDFeCapicom, criando implementação da classe de TDFeSSLXmlSignMsXml usando a Lib MSXML e CAPICOM -- ACBrDFeException -- [+] Adicionado o exception "EACBrDFeExceptionNoPrivateKey" -- ACBrDFeUtil -- [+] Adicionado o método "SignatureElement: String" (por DSA) Obrigado... e considere nos ajudar, contratando o SAC, por pelo menos 1 mês http://www.projetoacbr.com.br/forum/sacv2/sobre/ http://www.projetoacbr.com.br/forum/sacv2/questoes_importantes/ http://www.projetoacbr.com.br/forum/sacv2/cadastro/ Fique atento.... Em breve, organizaremos um Webinar sobre essas modificações2 pontos
-
2 pontos
-
Obrigado pelo bugreport... correção já está no SVN2 pontos
-
Atenção: Há atualizações das informações desta homologação nas respostas deste tópico. Revisão: 1 --- Através dos exemplos do ACBr efetivamos testes utilizando as impressoras térmicas não fiscais Elgin i9 e Elgin i7, e com bases nos resultados obtidos irei detalhar todo procedimento realizado. Todos os procedimentos de testes tomaram como foco a impressora Elgin i9, onde que a i7 foi utilizada para fins comparativos entre ambos modelos. *OBS: Manuais, Drivers, aplicativos e outros utilitários da impressora devem ser baixados através no site do fabricante acessando o link: http://www.elgin.com.br/institucional/produto.php?prod=NjEy&sessao=auto (imagem 1) Sobre a instalação: Os testes foram realizados utilizando o sistema operacional Windows 8.1 Pro com interface 64bits, onde este após a conexão como o cabo USB da impressora já ligada e com bobina, instalou seus drivers deixando a impressora pronta para o uso. De acordo com o fabricante, a impressora é disponibilizada com a interface de comunicação USB habilitada. É possível alterar a interface de comunicação para “Porta Serial Virtual”, seguindo os passos no aplicativo Utility: (Ver imagem 2) Selecionar a impressora na “Lista de Impressoras”; Ir em "Configurações Avançadas..."; Ir em "Configurações Porta USB"; Selecionar agora qual interface será utilizada e clicar em "Configurações". (imagem 2) Após isso foi necessário reiniciar a impressora, para assim instalar o driver de acordo com a comunicação selecionada. Concluída a instalação, podemos verificar o driver da impressora no gerenciador de dispositivos do Windows. A emulação da porta serial virtual trabalha com uma baud rate em 115200. Com o objetivo de outras interfaces de comunicação (USB, COM, LPT ou TCP/IP), é necessário instalar o driver disponibilizado no site do fabricante. Para utilização com o SAT Teste, é necessário que a impressora esteja instalada no Windows. Para utilização da impressora no PosPrinterTestes, é necessário que esta esteja com sua porta Virtual Serial emulada, ou caso sua comunicação seja por USB ou TCP/IP, a mesma precisa ser instalada e compartilhada no Windows. A comunicação TCP/IP também pode ser realizada através da porta TCP:IP:Porta. Nos testes utilizando o cabo Ethernet, foi necessário utilizar a versão 1.0.5.2 do driver (esta versão foi adquirida através do contato com o suporte técnico Elgin). Antes da instalação, é necessário fixar a configuração de rede na impressora, tal procedimento pode ser feito em duas maneiras distintas, sendo estas: A primeira forma de configurar a rede é através de um navegador de internet, seguindo os passos: (Ver imagem 3) O IP de fábrica da impressora utilizada é o 192.168.0.31, portanto, acessar o painel de configurações informando este IP em um navegador de internet; Em "Configuration" > "TCP/IP" colocar o IP e o Gateway na mesma faixa da rede interna utilizada; Após isso clicar em "Submit" e depois em "Reset". (imagem 3) Outra forma de configurar a rede é através do aplicativo Utility, indo em: (Ver imagem 4) Configurações Avançadas; Configurações Ethernet; Informar os dados necessários conforme sua rede interna e clicar em Escrever. (imagem 4) A instalação foi realizada seguindo os seguintes passos: (Ver imagem 5) Executar o driver; Selecionar o "Nome do Driver"; Clicar em "Criar porta ..."; Informar o IP fixado na impressora eclicar em "ESTÁ BEM"; (imagem 5) A instalação do modelo i7, que utiliza apenas comunicação via USB ou Serial Virtual, foi semelhante à instalação do modelo i9, utilizando assim o mesmo driver. Para a configuração do logotipo na impressora, seguir os passos: Utilizando o aplicativo Utility, selecionar a impressora na Lista de Impressoras e clicar em “Gerenciar Imagens”; Clicar em “Download”. (Ver imagem 6) (imagem 6) Clicar em “Adicionar” e localizar a imagem que será utilizada; Clicar em “Modo download de G”. (Ver imagem 7) (imagem 7) Após a confirmação do download, a imagem será exibida em “Lista de imagens”, sendo os dois números exibidos o KeyCode1 e KeyCode2. (Ver imagem ? (imagem ? Sobre a utilização: ACBrPosPrinter Os resultados informados abaixo foram adquiridos, em testes, utilizando o componente ACBrPosPrinter e o seu Demo PosPrinterTestes.exe. As configurações utilizadas foram: Modelo: ppEscPosEpson (o protocolo ppEscElgin não deve ser utilizado para esta impressora, pois ele é específico para o modelo Elgin VOX). Porta: Informar a COMxx emulada, ou Compartilhamento do Windows (ex: \\localhost\elgin), ou Para comunicação TCP/IP, informar TCP:IP:Porta. (ex: TCP:192.168.93.31:9100). Ajustar a Baud Rate em 38400 ou 115200. (Padrão de fábrica 115200, porém de acordo com o fabricante, ao utilizar a porta 38400, automaticamente é convertido para 115200, sendo assim funcional com ambas) Colunas: 48. Espaços: A tag 0 deixou o espaçamento entre as linhas adequado, porém foi possível aumentar o mesmo sem verificar problemas, deixando o espaçamento menor e, consequentemente, diminuindo o tamanho da impressão. Linhas a Pular: 2 (ao deixar com 0 a guilhotina foi acionada antes do término da impressão). Pag.Codigo: pc850 (a impressora é compatível com as páginas de códigos pc437, pc850, pc852, pc860, pc1252, dentre outras que podem ser verificadas no manual do usuário). Cod.Barras: Largura - 0, Altura - 0, tag Exibe Numero ativa. Logotipo: KC1 - 48, KC2 - 48 (o keycode do logotipo configurado é o 0 0, assim informar seu valor corresponde de acordo com a tabela ASCII), Fator x - 1 para logotipo reduzido ou 2 para expandido na largura, Fator y é semelhante ao Fator x, porém utilizado regular a altura. Gaveta: Gaveta - 1, On - 50, Off - 200. Resultados apresentados nas Tags de impressão: Tags de Formatação de Caracter: A impressão funcionou corretamente, com exceção da fonte itálico (não encontrado nenhuma especificação informando os tipos de fontes utilizados). (Ver imagem 9) (imagem 9) Tags de Alinhamento: Todos os três alinhamentos (esquerda, centralizado e direita) foram impressos corretamente. (Ver imagem 10) (imagem 10) Teste de Código de Barras: Os códigos EAN 8, EAN 13, CODE 39, CODE 93, CODE 128 e UPC-A foram impressos corretamente, conforme informados no manual, os códigos INT 25 e CODABAR também foram impressos, porém estes não se encontram no manual, os códigos STD 25, CODE 11 e MSI não foram impressos pois não são compatíveis. (Ver imagem 11) (imagem 11) Tags de QRCode: A impressão dos QRCodes funcionou corretamente, ajustando os alinhamentos e tamanhos. A leitura é funcional. (Ver imagem 12) (imagem 12) Tags de Logotipo: O logotipo foi impresso corretamente. (Ver imagem 13) (imagem 13) Tag de Gaveta: A comunicação com a gaveta foi efetuada corretamente. Leitura de Status: Retornos apresentados (utilizando as três formas distintas de configuração de porta): Impressora pronta para o uso, retornou a mensagem: “Nenhum Erro encontrado”. Impressora com tampa aberta, retornou a mensagem: “stOffLine, stTampaAberta”. Impressora com a bobina perto do fim, retornou a mensagem: “stPoucoPapel”. Impressora sem bobina, retornou a mensagem: “stPoucoPapel, stSemPapel, stOffLine”. SAT Teste Os resultados relatados abaixo foram levantados através do componente Fortes Report, utilizando o SATTeste.exe. As configurações de impressão utilizadas foram as seguintes: Largura: 280. Topo: 5. Fundo: 400. Esquerda: 0. Direita: 2. Resultados apresentados após as impressões: Durante os testes foram impressos extratos e extratos resumidos de cupons fiscais eletrônicos, contendo as seguintes informações descriminadas: Logotipo; Dados do consumidor; 6 itens distintos; Totalizadores; Dados para entrega; Observações do contribuinte; Valor aproximado dos tributos dos itens; Numeração do SAT; Código de barras; QRCode. Todos os campos saíram corretamente seguindo as tags de formatação de caracteres, o logotipo saiu centralizado, as quebras de linha foram acionadas no momento certo como também a guilhotina. As impressões dos extratos de vendas do SAT foram realizadas com uma média de, aproximadamente, 250 milissegundos. Os extratos resumidos de vendas do SAT foram impressos com uma média de, aproximadamente, 220 milissegundos. (imagem 14) Comparativo i9 vs i7: A impressora térmica i7 é um modelo mais simples do modelo i9, com alguns aspectos notáveis de diferença, sendo estes: Em questões físicas, o modelo i7 é menor visando sua largura e altura. O modelo i7 não possui guilhotina, BIPs informativos e nivelamento para o aviso de pouco papel. Sua comunicação é realizada apenas via USB ou Serial Virtual. A impressora i7 imprimiu extratos de vendas com uma velocidade média de, aproximadamente, 250 milissegundos, e os extratos resumidos em, aproximadamente, 230 milissegundos, mostrando que, em questões de velocidade, ambas são semelhantes, porém o modelo i9 é alguns milésimos de segundo mais rápido. Utilizando o PosPrinterTeste todas as tags obtiveram os mesmos resultados com ambas impressoras. Conclusões: A impressora térmica não fiscal Elgin i9 é uma ótima escolha, além de possuir uma boa apresentação física, os seus avisos sonoros auxiliam o usuário a se precaver, evitando transtornos durante a sua utilização. Em ambas impressoras, a troca de bobina é realizada de forma simples, possuindo uma imagem de auxílio. O procedimento de instalação é simples de ser realizado, porém este pode se tornar um pouco complicado quando feito por usuários sem familiaridade no ramo, devido à necessidade em alterar o tipo de comunicação entre Virtual Serial ou USB (dependendo da forma de utilização), e caso a utilização seja feita via TCP/IP, o driver utilizado para instalação direta deve ser solicitado junto ao suporte técnico de automação Elgin, não sendo disponibilizado para download no site (em testes, foi possível realizar a comunicação adicionando a porta TCP/IP diretamente pelo Windows, porém tal procedimento requer um conhecimento básico sobre como manusear as impressoras instaladas). Foi atualizado o Firmware de ambas as impressoras sem encontrar problemas durante o procedimento. No modelo i7, a atualização foi necessária para impressão do QRCode “Exemplo de QRCode para SAT” (imagem 12), o procedimento realizado em ambas impressoras é descrito no anexo Atualização do Firmware no término deste tópico. Ambos os modelo são rápidos e trabalham perfeitamente em ambientes de produção, porém a guilhotina existente na i9 é um diferencial notório, devido a grande agilidade pós impressão em um ambiente de grande movimentação. *Anexo Atualização do Firmware. Modelo i9: Para atualização do firmware foi utilizado o aplicativo Elgin Utility na versão 1.2.2.10, e o arquivo DFU na versão 1.3.24. (Aplicativo e DFU disponíveis para download no site). Os procedimentos executados durante a atualização foram realizados seguindo os passos descritos no arquivo “Procedimento gravação de Fw - i9_Ver 1.2.pdf”, localizado dentro do arquivo compactado “FW – i9_V1.3.24.rar”, que pode ser encontrado no site. Todo procedimento foi realizado sem localizar problemas. Modelo i7: Para atualização do firmware foi utilizado o aplicativo Elgin Utility na versão 1.2.2.10, e o arquivo DFU na versão 1.00.08. (DFU coletado diretamente com o suporte automação Elgin). A atualização procedeu seguindo os passos: Em lista de impressoras, selecionar o modelo que será atualizado (se necessário configurar o mesmo em “Adicionar Impressora”); Após a conexão ser funcional, clicar em “Atualizar FW. (Ver imagem 15) (imagem 15) Clicar em “Selecione Arquivo DFU...” Após abrir o arquivo ELGIN_i7_V1.00.08.dfu clicar em “Update”; Ao confirmar a mensagem é necessário reiniciar a impressora. (Ver imagem 16) (imagem 16) Elgin i9 x Elgin i71 ponto
-
Prezados... para relatar bugs, que a equipe de desenvolvimento possa investigar... É fundamental Demonstrar, usando o Demo do ACBr Informar como configurar o Demo Informar um passo a passo preciso Caso contrário... nada podemos fazer, e o seu bugreport será ignorado...1 ponto
-
Sim, provavelmente uma atualização de firmware resolva... o Suporte do fabricante, pode ajudar nessa configuração...1 ponto
-
Correção os campos são data e hora Ja descobri o problema esse ato-cotep é todo errado...1 ponto
-
Olá. Alterando a configuração para 40 col. funcionou, imprimiu sem quebrar a linha.. Agradeço atenção de todos.1 ponto
-
Ola eduardo.mrj! Pelo que vi no site da toptron, o seu caller ID é serial e não é mais suportado pela própria toptron. veja a pagina de downloads do fabricante: http://www.toptron.com.br/down2.htm A minha dica é tentar baixar o TopTerm2 e testar os comandos com o próprio terminal serial do fabricante, ou até mesmo o TOPNET3 (programa do próprio fabricante) para ver se está identificando as chamadas corretamente. Depois de estar funcionando no TOPNET3, ai sim tentar com o componente. Se forem comandos diferentes dos utilizados atualmente, implemente como um novo tipo, se achar que não tem conhecimento para isto, me passe os comandos que implemento e você testa. qualquer coisa é só perguntar. vlw!1 ponto
-
Boa Tarde Pela minha experiencia em boletos do acbr em sicoob acho que faltou informar a modalidade (01) no monitor1 ponto
-
@RicardoVoigt, poderia efetuar alguns testes. sugestões serão bem aceitas1 ponto
-
Você chegou a fazer a validação que o André citou ? Existem vários erros... um deles é o vItem12741=30,79 para um item que totaliza 6,99.. entre outros.1 ponto
-
Infelizmente não tenho como investigar... pois não tenho esse certificado... Tente algumas mudanças em "StoreName", e "StoreLocation"... Tente ainda, usar uma função mais genérica de abertura de Store... veja o código comentado, comente a 1a versão e tente com a 2a versão (simplificada) procedure TDFeWinCrypt.OpenSystemStore; ...... FpStore := CertOpenStore( StoreProvider, 0, 0, StoreFlag or CERT_STORE_READONLY_FLAG, LPCTSTR( FpDFeSSL.StoreName ) ); //FpStore := CertOpenSystemStore( 0, LPCTSTR(FpDFeSSL.StoreName) );1 ponto
-
Pessoal do ACBr, bom dia, Está ocorrendo erro de compilação na unit ACBrNFeWebServices na linha 709: FPDFeOwner.SSL.SSLType := LT_TLSv1_2; O tipo "LT_TLSv1_2" está contido na unit "blcksock". Porém essa unit é excluída da uses quando definido DFE_SEM_OPENSSL, gerando erro de compilação. {$IfNDef DFE_SEM_OPENSSL} blcksock, {$EndIf} Fiz uma alteração na unit apenas removendo o IFNDEF para que a unit seja incluída em ambos os casos. Anexo a unit alterada. Obrigado. ACBrNFeWebServices.pas1 ponto
-
1 ponto
-
Bom dia pessoal, Realizei o pedido hoje do equipamento da Tanca, conforme informações passadas pelo próprio setor comercial, eles estão com uma lista grande de empresas na espera e, também a uma certa demora por parte do SEFAZ/Ce em liberar a numeração dos equipamentos para fábrica, então, alerto para quem tem ideia de pedir, entre em contato com eles o mais breve possível. Fones.: 11-3831 2795 / 11-3831 26681 ponto
-
Pessoal o problema é bem simples, em alguns equipamentos tivemos este mesmo problema, existe dois passos que revolve isso. Deu muito trabalho descobrir porque em alguns equipamentos funcionava muito bem, mas em outros perdia a comunicação. Isto acontece porque em alguns computadores as USB tem velocidades não compatível com a impressora e você tem que colocar alguns parâmetros para que possa compatibilizar a velocidade com a impressora. Primeiro tente mudar o time-out de 100 para 1000 e o intervalo de 10 para 15. Esses parâmetros eu peguei no próprio software da Bematech e resolveu o problema. Se Persistir mude na ACBR o Componente ControlePorta=True e depois DEVICE e vai no Componente HANDSHAKE Coloque hsDTR_DSR no Controle da Porta.1 ponto
-
1 ponto
-
Instalação, configuração e teste no Lazarus 1.6.4 finalizado, tive alguns contratempos mas consegui resolver.1 ponto
-
Italo, o que eu pude fazer é pegar a msg de retorno que trás a Assinatura correta e cravei direto no código lá perto da linha 335 sAssinatura := '26cd21fbdd4b7e4488668f6791e9bf0157b752f1'; sAssinatura := LowerCase(sAssinatura); Gerador.wCampoNFSe(tcStr, '', 'Assinatura', 01, 2000, 1, sAssinatura, '') Fiz isso apenas para liberar meu cliente, o caso é que continuamos com erro na formação desta assinatura em alguns casos raros.1 ponto
-
1 ponto
-
Boa tarde, Sim, utilizo o trunk2 e busco as atualizações várias vezes ao dia. Meu sistema permite configurar a SSLIB, tentei com todas as opções exceto libCustom e libNone. Depois de muitos testes descobri que o problema só acontece se estiver setado para o ambiente de HOMOLOGAÇÃO, se estiver para produção o erro não acontece. Recebo um número de protocolo porém dizendo que o RPS não foi enviado para a base de dados. Mas isso irei começar a depurar agora.1 ponto
-
Estamos programando um Webinar para falar sobre o MFe, possivelmente teremos a participação de um fabricante, assim que tiver a data irei divulgar no fórum.1 ponto
-
bom dia Italo mt obrigado pela diga, deu certinho segue a função ExtractFileName(ACBrNFs.NotasFiscais.Items[0].NomeArq)); abs1 ponto
-
Fiz um teste com o Delphi Tokyo, A3, sem senha, usando a httpWinHttp... e aparentemente deu tudo certo... veja a imagem abaixo: Acredito que realmente deve depender do Gerenciador de Certificado instalado... Muito estranho o método "SetCertContextPassword" rodar com sucesso, e mesmo assim, ele solicitar a senha... Pode me dizer algo mais sobre o seu certificado ? Onde você comprou ? qual o modelo ? tem alguma página com informações sobre o mesmo ?1 ponto
-
1 ponto
-
(Solucionado) Aconteceu comigo o mesmo problema, ao passar pelo teste com operação de descontos. O que encontrei debugando os fontes do componente ACBrTEFD foi que, o registro 706-000, que indica as operações de saque e desconto, só é informado se também preenchermos as propriedades de identificação do software(701-000) e da softwarehouse(716-000) no componente. Então basicamente certifiquem-se de que a identificação está preenchida e que se permitir ambos, saque e desconto, deve desmarcar a opção de autoefetuarpagamento.1 ponto
-
Resolvi. coloquei os novos parâmetros que nao tinha no meu sistema como o tipo de certificado e etc. coloquei para para usar openssl no sslib. Funcionou. sim. muito obrigado mmcamilo. me ajudou muito o teu post. valeu mesmo!1 ponto
-
Teste de desempenho – Elgin i9 e Elgin i7 A fim de testar o desempenho das impressoras, simulamos a impressão de vários extratos do SAT, e em todas as formas de impressão, consideramos um XML de venda já emitido e carregado no componente SATTeste, realizando a impressão através deste. *Todos os valores de tempo demonstrados nesta postagem são em milissegundos. Elgin i9 Fortes Report As configurações foram as seguintes: Largura: 290 Topo: 0 Fundo: 400 Esquerda: 3 Direita: 2 Resultados apresentado: Comandos ESC/POS Serial Virtual (COM) As configurações através da porta serial virtual emulada foram as seguintes: Modelo: ppEscPosEpson Porta: COMxx Baud Rate: 115200 Buffer de Envio: 1000 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 3 Pag.codigo: pc850 Resultados apresentado: Comando RAW As configurações através do comando RAW foram as seguintes: Modelo: ppEscPosEpson Porta: RAW:elgini9 Baud Rate: 115200 Buffer de Envio: 1000 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 3 Pag.codigo: pc850 Resultados apresentado: Comunicação TCP:IP As configurações TCP:IP foram as seguintes: Modelo: ppEscPosEpson Porta: TCP:192.168.93.31:9100 Baud Rate: 115200 Buffer de Envio: 1000 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 3 Pag.codigo: pc850 Resultados apresentado: Elgin i7 Fortes Report As configurações foram as seguintes: Largura: 290 Topo: 0 Fundo: 400 Esquerda: 3 Direita: 2 Resultados apresentado: Comandos ESC/POS Serial Virtual (COM) As configurações através da porta serial virtual emulada foram as seguintes: Modelo: ppEscPosEpson Porta: COMxx Baud Rate: 115200 Buffer de Envio: 1000 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 3 Pag.codigo: pc850 Resultados apresentado: Comando RAW As configurações através do comando RAW foram as seguintes: Modelo: ppEscPosEpson Porta: RAW:elgini7 Baud Rate: 115200 Buffer de Envio: 1000 Colunas: 48 Espaços Linhas: 40 Linhas Pular: 3 Pag.codigo: pc850 Resultados apresentado: Leitura do status da gaveta. Através do PosPrinterTeste, complementamos o teste de leitura de status das impressoras, com a gaveta de dinheiro conectada à mesma. Em ambas, foi retornado o seguinte status: stGavetaAberta, A leitura de status só foi realizada utilizando as portas de comunicação “Serial Virtual (COM)” e “TCP:IP:Porta” (sendo a comunicação TCP exclusiva do modelo i9).1 ponto
-
Leonardo, Concordo com você que não existe nada que proibi esse tipo de software, mas conforme a legislação que disponibilizei deixa claro que o emitente tem que disponibilizar o XML assinado e protocolado ao destinatário, logo cabe ao mesmo cobrar do emitente o respectivo XML. É simples assim. Agora se você acha que em vez de cobrar do emitente o XML que é a Nota Fiscal propriamente dita, uma vez que o DANFE não é a nota e sim apenas um Documento Auxilar da Nota, o mais fácil é partir por baixar do site fique a vontade, a aplicação é sua, o cliente é seu. Como disse o Juliomar, você esta certo.1 ponto