Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 04-01-2018 em todas as áreas

  1. Atenção: Há atualizações das informações desta homologação nas respostas deste tópico. Revisão: 1 --- Introdução: Recebemos gentilmente da Sweda, a impressora não fiscal SI-300S, para testes. Utilizando os exemplos do ACBr, PosPrinterTeste.exe e SATTeste.exe. Ambiente: Computador Desktop Dell Vostro 220s Sistema Operacional Windows 8.1 64Bit atualizado (19/12/2017) Processador Intel Pentium Dual Core Memória 2 GB USB 3.0 Porta Serial física Identificado como COM1 usando conector DB9 Impressora SI-300S Protocolo Epson Esc/Pos Meios de comunicação Serial Física usando conectores DB9 ou RJ45 Serial emulada através da porta USB USB Disposição dos Dip-Switches e Impressão do Autoteste: Antes de realizar a etapa da instalação da impressora no Sistema Operacional, é necessário definir a disposição dos dip-switches de acordo com o meio de comunicação desejado, ou seja, eles definirão se a comunicação será USB ou emular uma porta serial COM pelo USB. Um dip-switch é um componente eletrônico com várias chaves liga/desliga. Na base da impressora há uma tampa para acesso aos dois dip-switches existentes, eles permitem definir várias configurações. O DIP SW1 define as configurações de porta serial, emulada ou não. Por exemplos: velocidade em baud, tipo de paridade, tamanho da palavra, etc. O DIP SW2 define configurações gerais como: habilitar campainha, habilitar guilhotina, densidade da impressão, etc. Para realizar o acesso e a alteração dos dip-switches, recomendamos a leitura do manual de instalação do fabricante. Link: http://sistemas.sweda.com.br/downloads/535_manual_de_instalacao_si3aa.pdf Para saber qual a disposição dos dip-switches sem abrir a impressora, imprima um autoteste. Para tal, com a impressora desligada, ligue a impressora com o botão FEED pressionado: Será impresso um autoteste e nele constará a disposição atual dos dip-switches. No exemplo abaixo, a chave 8 do dip-switch 1 é a única ligada: Será exatamente esta chave que faremos alterações para alternar entre os meios de comunicações da impressora. Nos procedimentos de instalação da impressora, será exibido como a chave 8 deverá ficar. Instalação da Impressora SI-300S: Os drivers e manuais são disponibilizados em um CD que acompanha a impressora. Contudo, utilizamos o driver atualizado disponível no site da Sweda: 509_si_3aal.exe link: http://sweda.com.br/produtos/impressora-nao-fiscal/impressora-termica-sweda-si-300s/ USB/Spooler Windows: Disposição dos dip-switches: Para realizar a instalação siga as etapas abaixo: Realize o download do driver; Conecte a impressora no USB; Será exibido o dispositivo Suporte de impressão USB no Gerenciador de Dispositivos: Com o usuário administrador, execute o driver 509_si_3aal.exe Selecione SI-300S(1) e clique em Next(2? Escolha USB CONNECTION(1) e clique em Next(2? Finalize a instalação aceitando as perguntas feitas pelo instalador; Após a instalação do driver, aparecerá uma nova impressora com o nome Sweda SI-300s USB/COM Emulada: Disposição dos dip-switches: Obs.: Chave 8 ligada habilita a emulação da porta serial através do USB Para realizar a instalação siga as etapas abaixo: Realize o download do driver; Com o usuário administrador, execute o driver 509_si_3aal.exe. Quando a janela de seleção de impressoras abrir, clique em Cancel: Obs.: Esse procedimento extrai o driver da Sweda em C:\Program Files (x86)\SWEDA PrinterDriver. Ele se faz necessário porque o instalador do driver não o instala automaticamente. Conecte a impressora no USB; Será exibido o dispositivo USB To Serial Interface(1) no Gerenciador de Dispositivos; Clique com o botão direito e depois em Atualizar Driver(2? Clique em Localizar e instalar software manualmente: Clique em Procurar e selecione o caminho abaixo(1), deixe Incluir subpastas(2) selecionado e clique em Avançar(3? Após finalizar a instalação, o dispositivo serial COM7 foi instalado: Não instale o driver de spooler da impressora caso queira usá-la com comandos Esc/POS. O driver de spooler mantém a porta serial ocupada, não permitindo o uso por outro programa. USB/COMxx com Spooler do Windows: Disposição dos dip-switches: Obs.: Chave 8 ligada habilita a emulação da porta serial através do USB. Para realizar a instalação siga as etapas abaixo: Execute da etapa 1 até a 9 do procedimento USB/COMxx descrito acima; Com o usuário administrador, execute o driver 509_si_3aal.exe Selecione SI-300S(1) e clique em Next(2? Escolha SERIAL / VCOM CONNECTION(1) e clique em Next(2? Selecione a mesma porta COM exibida no Gerenciador de Dispositivos: Clique em Next: Finalize a instalação aceitando as perguntas feitas pelo instalador; Após a instalação do driver, aparecerá uma nova impressora com o nome Sweda SI-300S; COMxx: Disposição dos dip-switches: Não há necessidade de alteração. Conosco funcionou com a chave 8 do DIP-SW1 ligada e desligada. Não se faz necessário realizar quaisquer intervenção para utilizá-la no Windows. Basta conectá-la a porta serial do computador e será possível enviar impressões de texto puro (ASCII) para a impressora. Para imprimir usando os componentes do ACBr, se faz necessário configurar a porta serial no componente(1) definindo a velocidade de transmissão (Bauds/segundo). No nosso teste, estamos usando a impressora em sua velocidade máxima de transmissão, ou seja, 115200 Baud(2), portanto definimos as configurações dos componentes conforme ilustra as imagens abaixo: Obs.: As chaves 5, 6 e 7 controlam a velocidade da porta serial. Esta configuração define 115200 Baud Adicionar o Logotipo Para adicionar o logotipo na impressora, se faz necessário o programa SI-300 Tool Ver 2.03, disponível neste link: http://sistemas.sweda.com.br/downloads/SI-300_Tool_Ver_2.03.zip As etapas abaixo descreve como adicionar o logotipo: Selecione o modelo da impressora e a forma de comunicação(1); Selecione a porta serial(2) usada pela impressora e depois clique em OK(3); Clique em User Setup(4); Na aba Select Image(5), clique em Open File(6) e selecione o arquivo de imagem(7) desejado; Ao clicar em Abrir(8), será exibido o arquivo de imagem em Bitmap List(9? Na aba Upload Image(10) clique em Upload(11) e aguarde o envio do arquivo de logotipo para a impressora: Testes usando os componentes e Demos do ACBr Utilizamos o PosPrinterTeste.exe, demo do ACBrPosPrinter, parte do projeto ACBr, para efetuar testes na impressora. O PosPrinterTestes.exe está disponível neste link: https://www.projetoacbr.com.br/forum/files/file/364-posprintertesteexe/ Deixamos as configurações desta forma: Modelo: ppEscPosEpson; Porta: COM7; Colunas: 42; Pag. codigo: pc860; Demais configurações não alteramos; Testes de comunicação: Testamos os 3 tipos de comunicação com a impressora (Campo Porta): COMxx– Para comunicação serial por uma porta COM existente no computador. No nosso ambiente, o Windows a definiu como COM1; USB/COMxx(Emulada)– Para comunicação virtual serial. No nosso ambiente reconheceu COM7; RAW:nome da instalação da impressora (USB)– Para enviar a impressão ao Spool do Windows em modo RAW. (exemplo: RAW:SWEDA SI-300S) RAW:nome da instalação da impressora (USB/Serial)– Usando também o Spool do Windows, mas através do USB/COMxx; Resultados: As imagens abaixo exemplificam os resultados dos testes padrões do ACBrPosPrinter. Observe que apenas o código de barras code128c com 44 caracteres não foi impresso. Acreditamos que o motivo seja o limite de 42 caracteres por linha da impressora, pois realizamos alguns testes e chegamos a, no máximo, 41 caracteres impressos para este padrão. As demais impressões o equipamento se saiu muito bem, efetuando corretamente a impressão de acordo com os comandos suportados pelo protocolo Epson Esc/Pos: Formatação de Carácter; Alinhamento; Leitura de Informações; Logotipo; Código de Barras; QRCode; Teste de acentuação: Para realizarmos os testes de acentuação com diferentes páginas de código, procedemos da seguinte forma: Inserimos um pantograma da língua portuguesa, contendo todas as letras e acentos(1); No cabeçalho foi colocado a tag </zera>(2) para limpar as configurações a cada teste; Foi realizada uma impressão por página de código disponível na impressora(3); pc473: Alguns acentos agudos e circunflexos foram ignorados; pc850: Todos os acentos foram impressos corretamente; pc852: Todos os acentos circunflexos e o til foram ignorados; pc860: Todos os acentos foram impressos corretamente; pc1252: Todos os acentos foram impressos corretamente; Leitura de Status: A leitura de Status é funcional através das portas seriais física e emulada (COM1 e COM7 respectivamente). Abaixo alguns status retornados pela impressora: Pronta para uso: “Nennhum Erro encontrado”; Tampa aberta: “stErro, stSemPapel, stTampaAberta,”; Pouco papel: “Nenhum Erro encontrado”; Sem papel: “stErro, stSemPapel,”; Gaveta aberta: “stGavetaAberta”; Demais testes: Gulhotina: Cortou no local esperado. Suportou corte completo e destacável; Abertura de gaveta: Funcionou de forma esperada; Impressão de extratos do SAT com SATTeste: O SATTeste é um demo do ACBrSAT, parte do projeto ACBr. Realize o download neste link: https://www.projetoacbr.com.br/forum/files/file/316-sattesteexe/ Testamos a impressão usando o Spool do Windows através do Gerador de Relatórios Fortes Report, e também usando a impressão em ESC/POS. As configurações utilizadas foram as seguintes: Fortes EscPOS Largura: 277 Topo: 0 Fundo: 0 Esquerda: 1 Direita: 1 Colunas: 42 Espaço Linhas: 10 Linhas Pular: 2 Pag.codigo: pc860 Modelo: ppEscEpson Porta: COM7 Exemplo de um cupom fiscal impresso pela SWEDA SI-300S, usando comandos EscPOS(Esquerda) e Fortes (Direita): Teste de desempenho: Através de comandos EscPOS, realizamos a impressão de vários extratos de SAT com diversas quantidades de itens, coletando os tempos de impressão. Para uma medição mais precisa do tempo de impressão do equipamento nos testes envolvendo o Spooler do Windows (RAW:SWEDA SI-300), não usamos o gerenciamento de fila de impressões do Spool do Windows nos testes , devido ele usar a memória do computador para gerenciar a fila de impressões. Portanto, habilitamos a opção Imprimir diretamente na impressora na aba Avançado nas Propriedades da impressora. Desta forma, o serviço de Spooler do Windows apenas repassa a impressão diretamente para a impressora, não gerenciando a fila de impressões para o equipamento. Todas as formas de comunicação disponibilizada pela SI-380S foram testadas: USB/Spooler do Windows: As configurações foram as seguintes: Modelo: ppEscEpson Porta: RAW:SWEDA SI-300S Colunas: 42 Espaços Linhas: 10 Linhas Pular: 2 Pag. codigo: pc860 Resultados: USB/COM emulada: As configurações foram as seguintes: Modelo: ppEscEpson Porta: COM7 Colunas: 42 Espaços Linhas: 10 Linhas Pular: 2 Pag. codigo: pc860 Resultados: USB/COM emulada com Spool do Windows: As configurações foram as seguintes: Modelo: ppEscEpson Porta: RAW:SWEDA SI-300S Colunas: 42 Espaços Linhas: 10 Linhas Pular: 2 Pag. codigo: pc860 Resultados: COM física: Verificamos que ao enviar impressões em Esc/Pos, com Extratos de 500 itens na COM física, a impressora não finaliza a impressão. Acreditamos que seja algo relacionado com ao tamanho do buffer. Porém, como a impressão é feita através da porta COM, foi possível contornar esta situação, usando uma configuração específica em ACBrPosPrinter.Device, que permite configurar o tamanho máximo do buffer na porta COM. ACBrPosPrinter.Device.SendBytesCount: Determina o número máximo de bytes a serem enviados pela porta. ACBrPosPrinter.Device.SendBytesInterval: Determina o número de milissegundos a aguardar, antes de enviar o próximo Buffer de dados Para efetuar tal configuração no SATTeste, vá na aba Impressão(1), clique no ícone de configuração(2), e configure o Buffer de Envio(3) e o Espera Buffer (4) conforme imagem abaixo: Obs.: O tempo de impressão foi o mesmo usando um tamanho de Buffer alto como 8192, quando usando o valor 1024. As configurações foram as seguintes: Modelo: ppEscEpson Porta: COM1 Colunas: 42 Espaços Linhas: 10 Linhas Pular: 2 Pag. codigo: pc860 Resultados: Sobre o equipamento: A impressora Sweda SI-300S tem um gabinete bem resistente. Em sua base há alguns orifícios permitindo fixá-la na parede. A chave liga/desliga fica protegida, evitando o seu acionamento de forma acidental. O botão de avanço do papel e as luzes de sinalização de estado estão em inglês, dificultando um pouco a interpretação, por exemplo, o aviso que está acabando papel (paper out). No topo há uma alavanca para abrir o compartimento da bobina de papel, facilitando sua troca. Ela permite a comunicação por USB, porta serial física através de conectores DB9 ou RJ45, ou porta serial emulada através do USB. Em seu compartimento da bobina de papel, há ranhuras para a instalação de uma divisória permitindo bobinas de 58mm. Esta divisória é um componente opcional, portanto não acompanha a impressora. Sobre a utilização do equipamento: O processo de instalação para comunicação através do USB e porta serial física foram simples. Em poucos minutos a impressora estava pronta para o uso. Para a instalação da porta serial emulada pelo USB, foi preciso realizar a instalação de forma manual. A SI-300S demonstrou-se bastante rápida para realizar impressões. Para tal, definimos a velocidade de impressão como 220mm/sec e velocidade de comunicação do serial como 115200 bauds por segundo. Essas configurações foram feitas através da ferramenta SI-300 Tool Ver 2.03 e pelos dip-switches presentes na impressora. Ficha técnica fornecida pelo fabricante: Características de Software: Impressão de Código de Barras 1D (Inclusive Code 128) Impressão de Código de Barras 2D (Inclusive o QR Code) Impressão de Logomarca Mecanismo de Corte Automático Modo Gráfico Nativo Código de Barras Nativo Sensores Fim de Papel Tampa Aberta Temperatura da Cabeça de Impressão Drivers Linux, Windows, OPOS Protocolo ESCPOS Nativo 100% Compatível com Automatic Status Back (ASB) Tecnologia de Impressão Método de Impressão: Térmico Velocidade de Impressão: Máx. 270mm/s Resolução: 180 dpi Largura de Impressão: Papel 80 mm (Máx. 72 mm) / Papel 58 mm (Máx. 54 mm) Bobina de Papel Método de carregamento: Drop in / Easy Load Diâmetro do papel: 83 mm (max.) Largura do papel: 80 ± 1 mm Diâmetro interno do tubete: 12 mm Papel recomendado: VCP KPH 856 AM, Hansol HPK-110, Mitsubishi PB670, Mitsubishi PB770 O papel inadequado poderá diminuir a vida útil da cabeça térmica e prejudicar seu funcionamento. Confiabilidade MCBF (Mecanismo): 70 milhões de linhas Cabeça Térmica: 150 km Guilhotina: 1,5 milhão de cortes Interfaces Comunicação: Wi-Fi/ USB Nativo Conexão para Gaveta: 1 porta (+ 24V) Fonte de Alimentação Entrada: 90 ~ 264 V Saída: 24 Vdc, 2.5A Características Físicas Dimensões produto: 137 (A) x 144 (L) x 195 (P) mm Peso produto: 1,9 Kg Dimensões produto embalado: 210 (A) x 235 (L) x 255 (P) mm Peso produto embalado: 3,3 Kg
    1 ponto
  2. 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ções
    1 ponto
  3. Boa tarde, foi adicionado uma validação alguns dias atrás referente tamanho da conta... Atendendo ao CNAB240 e CNAB400. Quando possível, favor realizar testes nos arquivos de retorno...
    1 ponto
  4. Camarada, você não faz ideia do alívio que você me proporcionou com estas palavras... Forte abraço!
    1 ponto
  5. No caso da NFe, você precisa de Internet para emitir, mesmo em contingência SVC-AN, SVC-RS ou EPEC. A única forma de contingência "offline" da NFe é adquirindo a NFe pré impressa, e emitindo com tpEmis = teFSDA. Leia o MOC (postei o link mais acima).
    1 ponto
  6. Boa tarde Roberto, O método ConsultarNFSe baixa o XML da NFS-e informada, mas é destinada a quem emitiu a nota, uma vez que a NFS-e funciona de uma forma totalmente diferente da NF-e. Na NF-e geramos o XML da mesma, assinamos, validamos, enviamos e obtemos da SEFAZ o protocolo de autorização. No caso da NFS-e, o processo é totalmente diferente, é gerado o XML do RPS, este é assinado ou não, depois devemos gerar o Lote, que deverá ser assinado ou não, em seguida devemos validar o lote, enviar, consultar a situação do lote ou não, consultar o lote, se o lote foi processado com sucesso, nessa ultima consulta teremos como resposta o XML da NFS-e.
    1 ponto
  7. Obrigado Italo. Estou acompanhando por lá. Já enviei os arquivos. É que nesse post aqui eu ainda não estava com grupo Suporte SAC. Agora aderi.
    1 ponto
  8. Boa tarde Daniel... Consegui resolver junto ao suporte da TANCA. Foi vacilo meu. Estamos testanda TANCA e ELGIN... E equivocamente, coloquei o cod. de ativacao da ELGIN com o MFe da TANCA conectado.
    1 ponto
  9. Boa tarde Bruno, Esta errado da forma que o arquivo esta sendo gerado, veja: [infOutros001] [tpDoc=99] [descOutros=] [nDoc=] [vDocFisc=] [dPrev=] o correto é: [infOutros001] tpDoc=99 descOutros= nDoc= dEmi= vDocFisc= dPrev= Você esta colocando os campos entre "[" "]". Outra coisa, quando o tpDoc for 99 devemos informar a descrição do documento em descOutros. E as demais informações como numero do documento, data de emissão, valor e data prevista de entrega?
    1 ponto
  10. boa tarde , vale lembrar agora que toda informação de modal para averbação de carga , passou para o MDFe, ou seja, apenas ira conseguir averbar CTe se tiver MDFe..., sendo assim, acredito que todos deverão emitir mdfe se possuírem seguro de carga. Att
    1 ponto
  11. Pessoal, Para quem tiver o mesmo erro 400 em homologação no provedor Tinus, infelizmente parece ser apenas isso que o servidor responde mesmo. Em conversa com eles por email eles me disseram que o serviço estava fora do ar, e pelo jeito está fora do ar faz bastante tempo. Insista nos canais de suporte da Tinus que eles lhe liberam o ambiente de produção para você fazer testes (eu sei, é feio, mas é o que tem). Eu falei com o Neilton no email [email protected] Boa sorte a todos.
    1 ponto
  12. ok A principio deve ficar assim. Publica.ini
    1 ponto
  13. Bom dia Obrigado Rogerio e Italo. Com as informações de vocês neste tópico, consegui fazer o CTe Subcontratado.
    1 ponto
  14. Sim. Se não aparecer o QR-Code, será necessário atualizar a firmware da sua Bematech MP-2500.
    1 ponto
  15. Bom dia! Ele faz parte dos grupos de ICMS Dê uma olhada na NT2016.02 pág. 12 em diante, porque se o grupo de ICMS for = 00 ele terá pFCP e vFCP se o grupo for = 10 será necessário vBCFCPST, pFCPST e vFCPST, se o grupo de ICMS = 20 terá vBCFCP, pFCP e vFCP. Então terá que criar regras p/isto de acordo com a tributação.
    1 ponto
  16. Desculpem-me. Na verdade era somente a página de código que estava com valor 0 em vez de pc850. Grato
    1 ponto
  17. No caso a informação já tem a tempos da prorrogação uns 2 ou 3 meses. sinceramente nem mexi ainda no sistema da empresa pois estou vendo os demais migrarem e estar dando problemas irei aguardar mais uns meses pra mexer
    1 ponto
  18. Aparentemente para o DF você deve informar como contribuinte e preencher a tag IE com o CFDF do destinatário da NFe. Veja a explicação neste tópico:
    1 ponto
  19. O curioso... é que eles aplicaram uma correção no driver... mas não especificam qual é essa correção, e nem porque ela é necessária... Mas... se não havia problema do lado deles, porque foi necessária a correção ??
    1 ponto
  20. Muito fácil jogar a culpa em terceiros... Em nenhuma das linhas de código do ABCr, há um comando para a exclusão do certificado... É código aberto, basta pesquisar nos fontes... O ACBr abre a Store do Windows em modo "Read Only" https://www.projetoacbr.com.br/forum/topic/39653-o-mistério-da-exclusão-dos-certificados-a3/?do=findComment&comment=260783
    1 ponto
×
×
  • 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.