Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation since 07-12-2012 em Posts

  1. 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
    91 pontos
  2. Depois de muita conversa interna e requisição de uma parte dos usuários ACBr, resolvemos estender o suporte ao Delphi 7 até Janeiro de 2017. Por que? Nossa principal motivação foi porque muita gente está pensando que quando chegasse o fim de agosto a compatibilidade com o Delphi 7 será simplesmente removida e seus aplicativos vão parar de funcionar. Infelizmente, algumas pessoas estão usando isso com um oportunismo, fazendo "terrorismo" nos usuários do projeto ACBr. Queremos que entendam que não é fácil manter a compatibilidade do projeto em tantas versões diferentes. E não estamos recebendo muita ajuda nessa área. É difícil manter compatibilidade com versões UNICODE quando nós mesmos não usamos. Mas então em janeiro meu aplicativo Delphi 7 deixará de funcionar com o ACBr? Não!!!! Seu aplicativo vai continuar funcionando. Isso é mentira, falácia, balela, uma grande prosopopéia para acalentar bovinos (conversa pra boi dormir). Então o ACBr não vai mais enviar alterações e correções de acordo com a legislação? Claro que vamos continuar enviando alterações e correções. Então não entendi... Pois é... Isso é o que a gente está tentando esclarecer... Deixa eu tentar... Como é o processo atualmente: Sempre que antes de enviar uma correção, alteração ou inclusão de nova característica, precisamos avaliar se vai funcionar no Delphi 7. Mas a maioria de nós não utiliza mais o Delphi 7. Então depois fazemos a correção, testamos na versão que utilizamos. Daí precisamos, por exemplo disparar uma máquina virtual, esperar ela carregar, copiar o novo código para a VM, fazer os testes no Delphi 7, voltar a máquina normal e só depois enviar ao SVN. Como queremos que seja o processo após janeiro de 2017: Fazemos a correção que precisamos, testamos nas versões que suportamos, e enviamos ao SVN. Mas e o Delphi 7? Os componentes até essa data vão continuar funcionando no seu Delphi 7. Mas a partir dessa data você deverá ter cautela para atualizar via SVN. Eventualmente, sem intenção, uma quebra de compatibilidade pode acontecer. Neste caso você sempre terá a opção de voltar para uma revisão que esteja funcionando. Mas se preferir poderá fazer algo: Corrigir você mesmo o problema; Encontrar algum voluntário para corrigir; Atualizar para uma IDE suportada; Quais as IDE suportadas? Lazarus ou Delphi 2009 ou posterior.
    40 pontos
  3. É com prazer que anunciamos que o Dia do ACBr já tem data para acontecer. Em virtude das eleições que deverão ocorrer em outubro, sendo o primeiro turno no dia 07/10 e o segundo no dia 28/10, foi decidido que nosso encontro passará a ocorrer no dia 10/11/2018, desta forma todos poderão realizar seu voto e participar de nosso evento. O Dia do ACBr será realizado nas dependências do Parque Tecnológico de Sorocaba (PTS) situado na cidade de Sorocaba-SP, o qual conta com um amplo e moderno espaço. Vocês não podem perder, reserve esta data na sua agenda. O Evento Contaremos com palestras e workshops com diversos assuntos relacionados aos componentes ACBr, Object Pascal(Delphi/Lazarus), além do ACBrMonitorPlus e nossa novidade, a ACBrLib, entre outros temas relacionados ao nosso universo. Abaixo estão relacionados os palestrantes já confirmados: Daniel S. de Almeida (Fundador do Projeto ACBr) Italo Jurisato Jr (Responsável pelos componentes ACBrNFSe, ACBrBPe, ACBrCTe e ACBrMDFe) Rafael Teno Dias (Responsável pelo ACBrFramework e ACBr libs) José M. S. Junior (Responsável pelo ACBrBoleto e atual mantenedor do ACBrMonitorPlus) Juliomar Marchetti (MVP Embarcadero) Régys Borges da Silveira (MVP Embarcadero) Marcos Douglas B. Santos, responsável pelo blog Object Pascal Programming. Um momento que deverá ser bastante interessante é o Pergunte ao Desenvolvedor, no qual os participantes terão a oportunidade de realizar perguntas diretamente a vários moderadores do projeto ACBr. Além da oportunidade de um dia focado no universo ACBr, será uma grande oportunidade para conhecer os principais mantenedores do projeto, além de ampliar ainda mais seu Networking e conhecer casos de sucesso com o projeto ACBr. Sugestões de Palestras e Palestrantes Os usuários do fórum podem se candidatar para realizar palestras ou sugerir temas que gostariam que fossem abordados durante o evento, assim como indicação de palestrantes. Para se candidatar a palestras você deverá: Enviar resumo do assunto da palestra Descrever a relevância do tema proposto para a comunidade Opcionalmente enviar vídeo e outros materiais sobre o tema proposto Breve Currículo pessoal Para sugerir um tema/palestrante você deverá: Descrever a relevância do tema para a comunidade. Indicar o palestrante que gostaria que realizasse a palestra* (opcional). *Nota: As sugestões de palestrantes não garantem que os mesmos estarão palestrando no evento, somente sinaliza a equipe de organização o interesse da comunidade em ouvir o mesmo. Fique atento, em breve lançaremos nossa página para inscrições e noticias do Dia do ACBr.
    36 pontos
  4. Para evitarmos diversos tópicos sobre o mesmo assunto, as alterações relativas a versão 4.00 da NFe/NFCe deverão ser concentradas neste tópico. Os fontes do componente já foram atualizados para permitir gerar os XMLs para essa nova versão. Também já foram ajustados para não gerar o SOAP Header quando configurado para a versão 4.0(ve400). Assim que os schemas e webservices forem disponibilizados pelo SEFAZ, iniciaremos os testes com o componente. Mais informações sobre as mudanças podem ser obtidas na NT 2016.002 - http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=c4S6yXTKpXY= Apenas como informação, neste manual fiquei com dúvida em dois campos: descANP - Campo numérico com tamanho de 2 - 95? O campo tem a seguinte descrição: Descrição do produto conforme ANP, então provavelmente deve ser do tipo carácter e não numérico. O campo vBCFCPSTRet possui o mesmo ID de outro campo na versão 3.10 - N27a - V3.10 vICMSDeson / V4.00 vBCFCPSTRet
    31 pontos
  5. Olá pessoal, Acabei de enviar para o SVN, modificações para que o ACBrDFe e ACBrDFeOpenSSL suportem comunicação segura usando TLS 1.2 O componente ACBrNFe, já irá tentar ajustar a comunicação para TLS 1.2, se detectar que a versão é superior a 3.1 Atualizando o OpenSSL Para usar TLS 1.2, é necessário ter a versão do OpenSSL superior a 1.0.1, normalmente a versão usada é a 0.9.8.14, e portanto ela precisa ser substituída. Se você tentar utilizar uma versão inferior, o ACBrDFeOpenSSL acusará o seguinte erro: Porém não basta apenas baixar e copiar uma nova versão das DLLs do OpenSSL (libeay32.dll e ssleay32.dll). O problema, é que a libxmlsec, que se encontra na pasta: "ACBr\DLLs\XMLSec", não é compatível com OpenSSL superior a 0.9.8... e se você simplesmente atualizar as Libs do OpenSSL no seu sistema, provavelmente o ACBrNFe, passará a acusar Exceptions no momento de assinar o XML A solução, é utilizar um novo conjunto de DLLs, da OpenSSL e libXmlSec, libXML, e demais... você pode achar essas DLLs em: ftp://ftp.zlatkovic.com/libxml/ Essas DLLs foram compiladas com "MinGW", e portanto elas precisarão das DLLs de RunTime, da MinGW. Para sua conveniência, copiamos todas as DLLs necessárias para a pasta: \ACBr\\DLLs\XMLSec\MinGW. Observe que temos a versão 32 e 64 bits dessas DLLs... quais eu devo usar ? Em resumo, use 32 se o seu Compilador é 32 bits, e 64 apenas se você estiver usando um Compilador que gere .EXE em 64 bits... Leia esse tópico, para compreender melhor: Copie TODAS as DLLs (e não somente algumas) da pasta "\ACBr\DLLs\XMLSec\MinGW\32" ou "\ACBr\trunk2\DLLs\XMLSec\MinGW\64" (conforme o seu compilador), para o seu diretório de DLLs... (se não tem certeza para onde você deve copiar as DLLS, leia com atenção o Post indicado anteriormente) Outro problema, é que a MinGW, gera as DLLs com uma nomenclatura ligeiramente diferente do VisualC, exemplo: libxmlsec1.dll com MinGW, e "libxmlsec.dll" com VisualC. Portanto, o ACBr teria dificuldades em encontrar essas DLLs e carrega-las de forma dinâmica. Precisamos portanto, informar ao ACBr, que usaremos o conjunto de DLLs no formato da MinGW... Isso é feito, editando o arquivo: ACBr.inc. Repare que lá no final do ACBr.inc, temos a seguinte linha: {.$DEFINE USE_MINGW} Apenas remova o ".", alterando para: {$DEFINE USE_MINGW} Pronto... com isso você estará pronto para usar o ACBr com OpenSSL e TLS 1.2, seja em 32 ou 64 bits... Obrigado... e considere nos ajudar, contratando o SAC ocasionalmente: 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/
    26 pontos
  6. Porque a minha aplicação, quando compilada no Trunk2 exige as DLLs do XMLSec ? O Trunk2, tem a habilidade de suportar OpenSSL (XMLSec) e CAPICOM, na mesma aplicação... e no ACBrNFe, existe a Classe TDFeSSL, que permite configurar qual será a biblioteca de SSL em Design ou Run-time Para isso, basta mudar a configuração usando comandos como abaixo: ACBrNFe1.Configuracoes.Geral.SSLLib := libOpenSSL; ACBrNFe1.Configuracoes.Geral.SSLLib := libCapicom; ACBrNFe1.Configuracoes.Geral.SSLLib := libCapicomDelphiSoap; // Mesmo que "libCapicom", mas usando a Indy Porém, para efetuar essa "magica", precisamos compilar todas as Units que dão suporte a CAPICOM e OpenSSL\XMLSec, e elas injetam a dependência de DLLs externas Porque eu usaria o suporte a OpenSSL ? O OpenSSL é ótimo para certificados do tipo A1... pois você não precisa instalar o certificado no Windows... basta apontar o caminho do arquivo PFX e a Senha: ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := edtCaminho.Text; ACBrNFe1.Configuracoes.Certificados.Senha := edtSenha.Text; Porque remover o suporte a uma das bibliotecas de SSL ? A desvantagem, é que a sua aplicação agora ficou dependente de mais DLLs, e para alguns pode ser um problema, distribuir e instalar as mesmas Onde eu encontro as DLLs ? \ACBr\DLLs\OpenSSL \ACBr\DLLs\XMLSec Para onde eu copio essas DLLs ? Você deve copiar TODAS as DLLs das pastas acima indicadas (e não apenas algumas). Você pode copiar para a mesma pasta da sua aplicação .EXE ou para o "System" do Windows Observe que, essas DLLs são 32 bits, e portanto só funcionarão para aplicações compiladas com um compilador 32 bits (que é o padrão para Delphi e Lazarus)... Uma aplicação 32 bits roda em um S.O. 64 bits, mas o oposto não ocorre... Considerando que essa DLLs são 32 bits, então: Se o seu Windows for 32 bits, copie para a pasta: C:\Windows\System32 Se o seu Windows for 64 bits, copie para a pasta: C:\Windows\SysWOW64 Se você estiver instalando DLLs de 64 bits em um Windows 64 bits, então a pasta correta é: C:\Windows\System32 (vai entender... pergunte pra Microsoft) Como eu removo a dependência ? Nunca usou o OpenSSL ? Nunca deseja usar ? Então você pode remover o suporte do ACBr ao OpenSSL/XMLSec, e com isso, remover a dependência de sua aplicação das DLLs do XMLSec.. Edite o ACBr.inc... Observe que no inicio do mesmo, existem as linhas abaixo: {.$DEFINE DFE_SEM_OPENSSL} {.$DEFINE DFE_SEM_CAPICOM} Apenas remova o ".", se quiser ativar a remoção... {$DEFINE DFE_SEM_OPENSSL} Por que mesmo assim, a sua aplicação fica dependente das DLLs do OpenSSL (libeay32.dll, ssleay32.dll) ? O ACBr usa o OpenSSL para várias outras tarefas, como: criptografia e assinatura (ACBrEAD), comunicação segura (ACBrMail, ACBrHttp)... e outras... Então hoje, elas sempre serão necessárias... essa dependência já existia no "Trunk1"
    23 pontos
  7. Regras e orientações gerais do Fórum Olá Pessoal, Com o objetivo de deixar o nosso fórum mais dinâmico e organizado para cumprir o objetivo de ser uma ajuda a todos os usuários do projeto ACBr, estamos deixando aqui algumas regras e orientações para todos nós. Todos devem se familiarizar com essas. Também queremos lembrar que essas são regras e orientações gerais para todo o fórum. Para regras específicas do ACBrSAC, queira ver esse tópico sobre o funcionamento do SAC. As orientações estão no próximo post desse tópico. Então vamos primeiro às regras: 1 - Assumiremos boa fé - Vamos procurar assumir boa fé ao lidar com violações, isto é, que o usuário não teve má intenção. Vamos procurar advertir ou banir apenas usuários que repetidamente ou flagrantemente violam as regras. Contudo, isso não dá direito a nenhum usuário abusar dessa liberdade. 2.1 - Não faça SPAM - Temos uma área específica para Classificados, então qualquer propaganda ou requisição de produtos e serviços deve ser postada lá. Usuários que postarem spam fórum terão suas mensagens removidas e podem ser banidos imediatamente sem prévio aviso. Se um post que é considerado apropriado incluir links consideradas spam, esses links serão removidos. 2.2 - Permaneça no assunto - Quando tiver uma dúvida diferente do assunto no tópico, poste em novo tópico. Não use algo equivalente a "aproveitando o gancho... [dúvida não relacionada com o tópico aqui]". 3.1 - Não faça flooding - Inundar o fórum com posts repetidos, com a mesma dúvida ou as mesmas palavras é chamado de flooding. Isso é proibido. Apenas um post feito no lugar certo é suficiente. Pesquise antes de postar, talvez sua dúvida já está respondida em outro post. 3.2 - Não faça "bump" de forma excessiva (postar simplesmente para que um tópico vá para o topo da lista). Isso é considerado flooding. 3.3 - Use o botão "Editar"- Não faça posts seguidos para corrigir algo que acabou de escrever. Para isto existe o botão "Editar" logo abaixo de seu post. Isso também é considerado flooding. 4 - Proteja sua privacidade - Não publique qualquer informação sensível. Moderadores poderão remover informações pessoais de mensagens para proteger sua privacidade. 5.1 - Respeite os direitos autorais - Não há objeção de se postar algum trecho de algo para desenvolver o seu post. No entanto, em vez de publicar em sua totalidade um texto de outra pessoa, coloque um link para o conteúdo. A não ser, é claro, que você seja o detentor ou tenha a permissão do detentor dos direitos autorais. 5.2 - Nada de pirataria - É proibido fornecer ou pedir informações sobre como obter ou fornecer ilegalmente qualquer coisa, seja software ("warez", "Crackz"), música, produtos, etc. 6.1 - Respeite os outros membros - Não use linguagem obscena, racista, discriminatória, indecente, lasciva, suja, ou excessivamente violenta. Isso também inclui as imagens e assinaturas dos usuários que podem ser alteradas ou removidas pela equipe de moderação. 6.2 - Não assedie, insulte, provoque, humilhe, constranja ou ataque pessoalmente outros. Seja amigável mesmo que os outros não sejam. 6.3 - Mostre respeito pelo modo de escrever. Escreva de modo claro, gramaticalmente e semanticamente correto. Não escreva TUDO EM MAIÚSCULAS ou tudo em negrito. Isso é lido como se estivesse gritando e é considerado rude. 6.4 - Assinaturas: É permitido o uso de uma imagem nas assinaturas. Apenas mantenha a imagem com no máximo 175 pixels de altura e 540 pixels de largura. O motivo destas limitações é que não queremos assinaturas que tirem a atenção dos posts nem que quebrem o layout do fórum (mesmo o layout mobile). Somos um fórum de programação e automação comercial, não de design. 7 - Ajude os moderadores - Se você observar alguém quebrar uma regra, ou se comportando de uma ou outra forma questionável, alerte um moderador ou um administrador. Há opções de denúncia nos posts. Não tente lidar com eles sozinho. 8 - Os administradores e moderadores usarão bom senso e têm a palavra final na interpretação e execução destas regras. 9 - Os administradores poderão modificar essas regras para que se tornem mais práticas e/ou claras para todos. Não seja um chato: Ou adicionaremos algumas imagens e mensagens bem constrangedoras ao seu perfil e avisaremos a todos os seus amigos por e-mail, facebook e twitter... Brincadeirinha: Mas tenham certeza que vamos fazer as regras valerem. Mesmo que isso inclua punições. Como podem ver não criamos uma lista extensa de regras. Acreditamos que o bom senso e um ambiente profissional é do desejo de todos os usuários do ACBr e confiamos que todos tem se esforçado pra fazer o melhor. Assim esperamos que isso não se torne necessário. Agradecemos sua cooperação. Equipe de Moderação.
    21 pontos
  8. Olá pessoal, Depois de um empolgante trabalho em conjunto entre a equipe do ACBr e do Fortes Report CE... Temos o orgulho de apresentar a nova versão do Fortes Report CE, trazendo os seguintes benefícios: Diversos bugs corrigidos Suporte a Lazarus Suporte a D7 a Tokyo 10.2.2 em um único Package Instalador automatizado (frceInstall.exe) O Fortes Report CE poderá ser baixado pelo SVN ou GIT, ou ainda, baixado pelo FRCEInstall.exe, usando a integração com o SVN Para baixar o Fortes Report CE por SVN, use o endereço: https://github.com/fortesinformatica/fortesreport-ce/trunk Para baixar o Fortes Report CE por GIT, use o endereço: https://github.com/fortesinformatica/fortesreport-ce.git Lembre-se que você precisará remover qualquer outra versão do Fortes Report que existir em sua máquina antes de instalar a nova versão... Isso implica em: Remover o Package da versão antiga do Delphi Remover os diretórios da versão antiga do Lib Path do Delphi Apagar os fontes e DCUs, e BPLs da versão antiga Todos os pacotes do ACBr, que fazem referencia ao Fortes Report, estão nesse momento, sendo alterados para fazer uso do novo nome de pacote adotado pelo Fortes Report CE Delphi: frce.dpk; Lazarus: frce.lpk
    20 pontos
  9. Não é justo. Não é lícito. Não é aceitável. Quando você bombardeia este fórum com questionamentos relativos aos componentes da suíte ACBr, com certeza, você não conhece o mínimo necessário e aceitável que lhe dê embasamento para tal. Com toda certeza, você já recebeu algum benefício aqui, mesmo que seja na forma de resposta à sua dúvida imbecil, afinal, quem de nós “magros” conhecedores do “object pascal” não fez um questionamento, torpe? Eu mesmo, fiz muitos, e, por inúmeras vezes o erro estava tão perto de mim que, minha “ânsia” por solução transferia algo que não poderia defender-se uma culpa que só minha. · Vejo hoje, questionamentos como os que um dia fiz, e, para você que impugna um componente merecedor de todos os méritos dos quais faz jus, é prudente que leia a história desta suíte, especialmente destes baluartes que o criaram, em especial, Daniel Simões, André de Freiras Moraes, Isaque Pinheiro, entre outros, e, dentre os quais posso destacar, Ítalo, Juliomar, EMBarbosa, Rafael Dias, Regys Silveira e, não poderia faltar a musa moderadora Juliana Tamizou. · Para aqueles que são moderadores e que não mencionei, meu respeito, minha admiração. Para você que está chegando agora, calma, muita calma, aqui não tem nenhum empregado seu, aqui tem sim, colaboradores, pessoas como você, e, muito diferente de você, pessoas que despende muito do seu tempo para permitir que você consiga se destacar no seu segmento. Por favor, não me queira mal, eu já fui assim igual a você, que, ao ler um texto como este pense, “que babaca”, mas é isso mesmo, sou babaca, sou assim, sou ACBr. Antes de tecer suas críticas, pense no quando estes caras que fiz questão de frisar lhe permitiram auferir lucros e, nem por isso lhe cobram um centavo se quer. Pense nisso!
    20 pontos
  10. Altere essas configurações no internet explorer
    19 pontos
  11. Olá amigos, depois de mais um cliente ter perdido o certificado resolvi que ia tentar descobrir oque estava causando isso, e depois de muita peleja(são 4:00 da manhã ), acho que consegui chegar ao causador do problema, pelo menos tive sucesso em excluir um certificado por diversas vezes assinando um XML. E como muito se falava, não é diretamente o ACBR que está excluindo o certificado, pelo que constatei é a MSXML que está "reiniciando" o certificado e somando isso a mais algum problema está causando a exclusão. Se você assinar um XML e deixar o administrador do token aberto, verá que no momento da assinatura, no trecho "xmldsig.sign(dsigKey, CERTIFICATES);" o token muda de: Operacional >> Ausente >> Presente >> Operacional, como se o cartão fosse removido e inserido novamente. Pensei aí tem coisa! Tentei remover o cartão durante a assinatura mas não consegui simular a exclusão do certificado, imaginei que não estava sendo rápido o suficiente. Então coloquei um loop no trecho do ACBR que pega a chave privada do certificado, antes de executar a assinatura, percebi que até aí o PIN do certificado não era solicitado, somente mais a frente quando ocorre a assinatura com "xmldsig.sign(dsigKey, CERTIFICATES);". Porém quando removi o certificado da leitora e inseri novamente dentro do loop(o mesmo que a MSXML faz durante a assinatura) foi me solicitado o PIN e logo depois veio a mensagem: "O conjunto de chaves não está definido", olhando no administrador do token que estava aberto pude ver o certificado sendo excluído: O PIN que ele me solicitou foi para excluir o certificado! O que imagino que esteja acontecendo é que se você chamar o método Assinar repetidamente, antes de dar tempo do cartão ficar operacional novamente, o certificado pode ser excluído. Isso explicaria o porque da exclusão ser esporádica e também não acontecer com todos os sistemas, pois dependeria da lógica usada por cada um para assinar, como assinaturas em sequência ou mesmo mais de uma thread acessando o certificado. Fiz um vídeo mostrando o momento da exclusão, note que não consegui excluir na primeira tentativa, porque demorei muito pra inserir o cartão, estava com uma mão ocupada filmando, ia editar isso mas tô com muito sono. MODERAÇÃO: vídeo removido a pedido do usuário Vou dormir um pouco e amanha ver se me aprofundo no problema.
    18 pontos
  12. Bom dia pessoal. Como todos sabem, na maioria das vezes em que o windows se atualiza ele marca aquelas opções de certificados revogados em "Opções da internet > Avançado" e, pelo menos comigo, gera uma grande quantidade de suporte à clientes. O correto é ficar assim: ( ) Usar SSL 2.0 (x) Usar SSL 3.0 (x) Usar TSL 1.0 ( ) Usar TSL 1.1 ( ) Usar TSL 1.2 ( ) Verificar revogação de certificados servidor* (x) verificar se ha assinaturas em programas baixados ( ) Verificar se há revogação de certificados do editor Então no final do ano passado até cheguei a comentar em um tópico se teria como modificar esses dados diretamente pelo delphi, pra facilitar nossa vida, mas não tinha ninguém com essa informação. Pois bem, essa semana tive um tempinho e comecei a mexer com isso e creio que encontrei uma solução, segue abaixo programação para alterar o registro do windows com as opções corretas. Já testado em alguns clientes e até o momento funcionando perfeitamente. (Testado em windows XP, 7, 2003 server) uses Registry; procedure TFPrincipal.FormCreate(Sender: TObject); var Registro: TRegistry; begin //acertando opções da internet (revogados / SSL / TSL) //verificar revogação de certificados do servidor Registro := TRegistry.Create(KEY_WRITE); Registro.RootKey := HKEY_CURRENT_USER; if registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', true) then begin Registro.WriteInteger('CertificateRevocation', 0); end; registro.CloseKey; //verificar se há certificados revogados do fornecedor if registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing', true) then begin Registro.WriteInteger('State', 146944); end; registro.CloseKey; //Usar SSL 3.0 / Usar TSL 1.0 if registro.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', true) then begin Registro.WriteInteger('SecureProtocols', 160); end; registro.CloseKey; registro.Free; end; Espero ajudar o pessoal do ACBr com essa contribuição. Um abraço a todos.
    17 pontos
  13. Olá pessoal, Compartilho com vocês, os Planos de Expansão do Projeto ACBr. Em anexo, está o PDF da apresentação Apresentação - ACBr - Planos de Expansão.pdf
    16 pontos
  14. Recentemente recebemos uma Impressora Não Fiscal Bematech MP-100S TH e após diversos testes utilizando nos exemplos do ACBr temos alguns comentários sobre a mesma. Todos os Drivers 32 Bits ou 64 Bits e o Manual da Bematech MP-100S TH podem ser encontrados em: http://www.bematech.com.br/suporte/equipamento/mp-100s-th Sobre a instalação da Bematech MP-100S TH: Foi utilizada a impressora em uma máquina com Windows 10 e nessa máquina, não foi necessário realizar instalação de driver do fabricante, apenas conectando a impressora (já ligada e com papel) e a mesma já emulou uma porta COM automaticamente, ficando assim, pronta para uso com ACBrPOSPrinter. Obs: Caso seja necessário realizar a instalação do Driver USB, o mesmo poderá ser encontrado no site do fabricante, mencionado anteriormente. Para realizar o uso da impressora com Fortes Report, foi necessário primeiramente instalar a Bematech no Windows, utilizando o Driver "BematechSpoolerDrivers", disponível no site do fabricante. Após instalada a impressora no Windows, foi necessário alterar o tipo de formulário disponível em Iniciar > Dipositivos e Impressoras > Selecionado impressora MP-100S TH > Clique com botão direito do mouse e selecionado "Propriedades da Impressora" > aba "Configurações do dispositivo" > Atribuição de Formulário a Bandeja > Selecionado opção "Print width 80mm 30cm" > OK. Sobre a utilização da MP-100S TH: Como já citado anteriormente, os testes foram realizados utilizando os exemplos do ACBr. Para o testes utilizando o componente ACBrPOSPrinter foi utilizado o Demo PosPrinterTeste.exe e para os testes utilizando o Fortes Report, foi utilizado o Demo SATTeste.exe. Testes Demo PosPrinterTeste.exe configurado com modelo ppEscBematech, 48 colunas, e página de código pc850 - A impressão de Tags de Caracter funcionou corretamente, com exceção da Fonte Invertida. OBS: não foi localizado nenhuma informação sobre compatibilidade com a Fonte Invertida no Manual do equipamento. - A impressão de Tags de Alinhamento, Tags Inválidas e Tags de Página de código funcionaram corretamente. - Para as tags de Código de Barras, os códigos STD25, CODE11 e MSI não foram impressos, já os demais imprimiram corretamente e a leitura dos mesmos foi efetuada normalmente também. OBS: o código MSI no aplicativo do fabricante foi impresso corretamente. Os códigos STD25 e CODE11 não aparecem na lista do aplicativo do fabricante e na lista de códigos compatíveis do manual. - As tags de QR Code foram impressas corretamente e a leitura foi efetuada corretamente. - A tag de impressão de logotipo foi impresso corretamente (após ter configurado logotipo pelo aplicativo do fabricante). - A impressão é realizada rapidamente, porém, não possui o corte automático. Testes Demo SATTeste.exe configurado com Largura: 296, Margens - Topo: 2, Rodapé: 20, Esquerda: 0 e Direita: 5 - As impressões realizadas durante esses testes foram cupons de venda com emulador de SAT, onde possui logo, fonte negrito e normal, código de barras, QR Code, caracteres com acentos, quebra de linha e todos os detalhes mencionados foram impressos corretamente. - A impressão é realizada rapidamente. Comparativo MP-100S TH X MP-4200 TH: - Em ambos os modelos a impressão é realizada rapidamente, o tempo de impressão pode ser considerado igual para ambas, pois a diferença encontra-se na MP-4200, que é alguns milésimos de segundos mais rápida. - Em ambos os modelos a Fonte Invertida e os códigos de barras STD25, CODE11 e MSI não são impressos. - Em questão de agilidade, a MP-100S perde um pouco por não possuir o corte automático. O que não faz com que a mesma deixe de ser uma boa opção, uma vez que, ambas funcionam da mesma maneira.
    16 pontos
  15. Você esta desenvolvendo um programa comercial e nem sabe usar sua IDE corretamente. Eu vi o topico ao qual você se refere, e acho um absurdo uma pessoa que se "diz" programador fazer uma pegunta como aquela, se você le-se a menssagem de erro veria que o delphi esta reclamando que não achou o pacote do quick report Required package 'QR5RunDXE4' not found ou seja não tem nada haver com o component ACBr. Então em resumo antes de reclamar de INSATISFAÇÂO lembre-se o forum e o componente é Open-source ou seja o codigo ta ai para você fazer modificação se achar necessario. E não fale que não tem boa vontande pois se não houve-se você estaria fazendo seu componente NFe e não baixando um já pronto que a comunidade e os desenvolvedores do projeto mantém.
    16 pontos
  16. Bom dia a todos, Nesta postagem irei listar somente os provedores que estão funcionando 100% com o componente ACBrNFSe - Trunk2. Peço a todos que realizaram testes com um determinado provedor e obteve sucesso, ou seja, todas as funcionalidades oferecidas pelo provedor estão funcionando, por favor envie um e-mail para mim informando que o provedor xyz esta funcionando 100%. Não é para enviar duvidas ou relatar problemas, o fórum serve para essa finalidade. Antes de enviar o e-mail favor verificar se na lista abaixo consta o provedor em questão, só envie se não constar. Desde já o meu muito obrigado. Provedores funcionando 100%: 4R / Ábaco / ABase / Betha / BHISS / Ciga / Conam / Coplan / DBSeller / Digifred EGoverneISS / EL / Equiplano / FISSLex / Ginfes / Governa / GovDigital / ISSCuritiba / ISSNet / NFSeBrasil Pronim / Pronimv2 / Publica / PVH / Saatri / SimplISS / SystemPro / Thema / Tiplan / WebISS. No arquivo Cidades.ini temos 699 cidades e seus respectivos provedores.
    15 pontos
  17. Agnaldo, em nome da equipe agradecemos suas palavras, as vezes não damos uma resposta da qual o usuário espera, pois as vezes esperamos deles pelo ao menos esforço no aprendizado, já que não exigimos conhecimentos para manutenção ou desenvolvimento dessa Suite (ACBr). Do nosso lado, como todos, não somos também "magos" do "object pascal", mas nos esforçamos muito para nosso próprio aprendizado, e conseguirmos o conhecimento para manter tal projeto, pois estudamos a linguagem, a ferramenta (Delphi, Lazarus), e ainda os enormes manuais e Leis para cada um dos componentes, para que os mesmos atenda dentro dos padrões estabelecidos, e para tirar nosso estresse, ainda ajudamos nas dúvidas e aqui no fórum. Então em nome do ACBr gostaríamos que pelo ao menos, víssemos nas perguntas, clareza nas dúvidas, e enxergarmos que ela aconteceu mas deixou transparecer que houve esforço de quem a está fazendo antes de posta-la, pois aqui não ensinamos Delphi, Lazarus, Leis, aqui desenvolvemos componentes e a ajudamos a usa-lo, e seus usuários deviam pelo ao menos conhecer e dominar sua ferramenta de trabalho.
    15 pontos
  18. Já foi liberada a versão do ACBr funcional no RAD Studio 10 Seattle, todos os pacotes estão compilando e funcionando normalmente. Lembrando que as alterações foram liberadas somente no TRUNK2 como já foi amplamente divulgado.
    15 pontos
  19. Por favor leia com atenção o documento "Bem_Vindo_ao_Trunk2.pdf" Pessoal, O ACBr usa o SourceForge desde a sua fundação em 2005... Ou seja, o S.F. nos serviu muito bem, (e gratuitamente), por mais de 10 anos... O ACBr foi especialmente mais afetado, porque optamos por não criar ZIPs, com os fontes (Tags)... Na verdade, fazíamos isso no do projeto... mas é muito difícil fechar um Tag em um projeto com o tamanho do ACBr... então dotamos a premissa de usarmos o Trunk, e os "commiters" só devem subir para o Trunk código que esteja compilando sem erros... (mesmo isso é difícil quando se suporta várias IDEs e plataformas) O problema recente, em que estamos a mais de uma semana se acesso ao repositório dos fontes é realmente muito chato... Muitos estão vendo apenas um lado da estória, que é: "Eu quero baixar os fontes"... Mas acredite, não é simples migrar um repositório de fontes do tamanho do ACBr... Perderíamos todo o nosso histórico do SVN, e precisaríamos fazer ampla divulgação do novo endereço.... Vários dos serviços do Source Forge já estão no ar... e eles definiram como próxima tarefa restaurar os repositórios: http://sourceforge.net/blog/category/sitestatus/ Em virtude dos 10 anos de excelentes serviços prestados pelo Source Forge, ao nosso projeto, estou disposto a aguardar mais alguns dias pela resolução do problema... porém se isso não se concretizar, realmente teremos que iniciar o processo de migração para outro Host...
    15 pontos
  20. 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 i7
    14 pontos
  21. Caros companheiros de fórum : Hoje tomei conhecimento da Nota Técnica 2016.002 Alteração Leiaute da NF-e , baixei e dei uma rápida analise. Muitas dúvidas e é claro que será necessário muito esforço do grupo do ACBr para atender. Pretendo na próxima reunião da empresa que trabalho propor a eles retornar o pagamento do SAC como forma de ajuda e de reconhecimento ao esforço do team ACBr. Gostaria de fazer um apelo a todos os demais que ajudássemos também desta forma, pois vai tomar tempo fazer muitas dessas mudanças. Abraço a todos.
    14 pontos
  22. Vamos acalmar os ânimos ok? Não há o que possamos fazer para trazer toda a rede do Slashdot e Source Forge ao normal. Estamos fazendo o que podemos no momento. E ter um pouco de paciência não vai matar ninguém.
    14 pontos
  23. Desculpe, mas ser profissional para você é trabalhar de graça, veja nem o Linux é de graça. Quanto a perguntas não respondidas, já tentou ajudar alguém a responder, até onde sei o Isaque e muito outros tiram tempo todo o dia para ajudar a muitos que sequer respondem algo, fora a codificação que todos nós e vários usuários que contribuem fazem todos os dias, tirando tempo de suas empresas para isso, deixando de ganhar dinheiro, isso não é ser profissional? Quanto a sua pergunta sobre a continuidade do projeto, sim o projeto é e sempre será gratuito, Daniel, André, Isaque, Eu e vários outros contribuímos diariamente para manter tudo gratuito, doando tempo, conhecimento e inclusive dinheiro do próprio bolso, temos a área reservada como forma de usuários que desejam contribuir possam contribuir e manter toda a estrutura. Agora você acha mesmo que toda a estrutura por trás desse "pequeno" projeto é gratuita, a hospedagem, manutenção, desenvolvimento, etc, etc, tudo isso cai do céu? Vamos a alguns número, hoje mais de 7.000 usuários utilizam o fórum ACBr, não tenho números exatos sobre quantos utilizam, mas com certeza é mais do que isso. Temos pouco mais de 100 usuários do ACBrSAC. Por favor, cuidado com suas palavras, antes de criticar, veja o tamanho da coisa toda e o que essas pessoas fazem todos os dias para te ajudar.
    12 pontos
  24. Graças aos esforços do @edunucleo e @JoãoDJ, estamos agora operando em HTTPS... Estamos usando um Certificado com criptografia TLS, Gratuito, fornecido pela Let's Encrypt
    11 pontos
  25. Acabei de comitar as alterações para compatibilizar o ACBrSAT com o MFe, tive tempo de testar apenas os comandos compatíveis com o SAT, os comandos de pagamento ainda serão desenvolvidos. Abaixo um passo-a-passo para utilizar o integrador fiscal fornecido pela SEFAZ do Ceará com o ACBrSAT: Baixe o instalador em http://cfe.sefaz.ce.gov.br/mfe/informacoes/downloads#/ Faça a instalação do mesmo e ao executar pela primeira vez utilize os seguintes dados na tela de configuração/opções: CNPJ do Estabelecimento: 30146465000116 Inscrição Estadual do Estabelecimento: 065911482 CNPJ da Software House: 98155757000159 Código de Validação do Aplicativo Comercial: MD2Nof/O0tQMPKiYeeAydSjYt7YV9kU0nWKZGXHVdYIzR2W9Z6tgXni/Y5bnjmUAk8MkqlBJIiOOIskKCjJ086k7vAP0EU5cBRYj/nzHUiRdu9AVD7WRfVs00BDyb5fsnnKg7gAXXH6SBgCxG9yjAkxJ0l2E2idsWBAJ5peQEBZqtHytRUC+FLaSfd3+66QNxIBlDwQIRzUGPaU6fvErVDSfMUf8WpkwnPz36fCQnyLypqe/5mbox9pt3RCbbXcYqnR/4poYGr9M9Kymj4/PyX9xGeiXwbgzOOHNIU5M/aAs0rulXz948bZla0eXABgEcp6mDkTzweLPZTbmOhX+eA== Selecione o checkbox "Servidor" (Talvez seja necessário alterar o campo IsServer para True no arquivo Integrador.cnf - Use o SQLiteStudio -http://sqlitestudio.pl/) Atualize seu fontes do ACBr e no demo do ACBrSAT para Lazarus(E:\delphi\ACBr\trunk2\Exemplos\ACBrSAT\Lazarus) configure a nova aba MFE, escolha o modelo "MFe_Integrador_XML" e clique em inicializar. Para o MDK da TANCA use os seguinte dados na criação do XML de Venda: Código de Ativação: 12345678 CNPJ do Contribuinte: 08.723.218/0001-86 IE do Contribuinte: 562.377.111.111 CNPJ da Software House: 16.716.114/0001-72 Assinatura da Software House: SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT Pontos de atenção: Como tratar um comando com erro? Em todos os comandos existe o campo IDENTIFICADOR, mas ao enviar um comando com erro, a resposta não vem com este campo, então fica difícil saber se o XML que está na pasta se refere ao último comando enviado. Exemplo do arquivo de resposta a um comando com erro: 7b96d469f63c4973af180a991804f0ec20170425220009.xml
    11 pontos
  26. Adicionei os seguintes itens, no tópico anterior: Como configurar para usar a WinCrypt e não a CAPICOM ? Como remover completamente, as Units da CAPICOM dos meus fontes ? Como posso ajudar ? (Tarefas a serem efetuadas)
    11 pontos
  27. Realizamos recentemente testes de homologação do SAT Tanca TS-1000 utilizando a aplicação do ACBr, SATTeste.exe e a aplicação do fabricante, SAT_Ativação.exe. Instalação do SAT: Drivers, manual e aplicativos do fabricante, podem ser facilmente encontrados em: http://www.tanca.com.br/drivers.php?cat=24&sub=43 A instalação do Driver do equipamento não requer nenhuma configuração específica. Em algumas máquinas, o equipamento é reconhecido e instalado automaticamente. Caso isso não ocorra, o driver encontra-se no CD que acompanha o equipamento ou no site do fabricante, já mencionado anteriormente, e para sua instalação, basta localizar o item “Gadget Serial V2.4” no gerenciador de dispositivos do computador, clicar com o botão direito sobre o mesmo e, em seguida em “Atualizar Driver”. Após isso, selecione a opção “Procurar software de driver no computador”, informe a pasta onde o driver encontra-se e clique em Avançar. O Driver do fabricante não é assinado digitalmente, e isso pode causar problemas na instalação em Sistemas Operacionais mais recentes, como o Windows 10, onde apenas drivers assinados são aceitos. No Windows 8.1, será exibida uma janela de segurança, onde será necessário clicar na opção “Instalar este software de driver mesmo assim”, em seguida, o driver já deverá estar instalado com o nome “SAT TANCA”, basta clicar em fechar para concluir. Ativação do SAT e Associação de Assinatura: Para realizar a Ativação do SAT e a Associação de Assinatura, existem duas maneiras: pelo aplicativo do fabricante ou pelo SATTeste.exe. Para realizar o processo utilizando o aplicativo do fabricante SAT_Ativação.exe, basta localizá-lo no CD que acompanha o equipamento ou no site do fabricante, e seguir o passo a passo do documento Manual SAT Tanca TS-1000. Após realizar o processo de ativação, ao consultar SAT, deverá ser retornada a mensagem “SAT em operação” Para realizar o processo de Ativação e Associação de Assinatura pela aplicação SATTeste.exe, basta executar o aplicativo e ir até a aba Ativação e, em seguida, clicar na opção a ser realizada. Para isso, os dados de Configuração devem estar devidamente preenchidos em todas as abas, da seguinte maneira: Inicialização Selecione a opção “satDinamico_stdcall” Dados do SAT Cfe Arq.Log: ACBrSAT.log (será salvo na mesma pasta do executável) Nome DLL: Diretório da DLL “sat.dll” do fabricante Ambiente: taHomologação Código de Ativação: 12345678 Página de Código: Marcar a opção UTF8 (65001) Versão: 0,07 As opções Formatar XML e Remover Acentos não são necessárias para esse modelo de SAT. As opções de Salvar XMLs deverão ser marcadas conforme necessidade. Dados Emitente CNPJ: 08723218000186 IE: 149626224113 Regime Tributário: RTRegimeNormal Regime Trib. ISSQN: RTISSNenhum Ind.Rat.ISSQN: irNao Dados Sw.House CNPJ: 16716114000172 Assinatura Sw.House: SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT Configuração de Rede: O SAT Tanca TS-1000 funciona corretamente tanto para redes com proxy como para redes sem proxy, basta realizar a configuração da rede no mesmo. A configuração de rede pode ser realizada no aplicativo do fabricante ou no SATTeste.exe. SAT_Ativação (Aplicativo do Fabricante) SATTeste.exe (Aplicativo ACBr) O Equipamento O equipamento é um aparelho compacto em plástico ABS anti-chama, fácil de realizar a instalação e configuração. O equipamento possui as seguintes características: - Processador Seguro de 400 MHz - Equipamento Exclusivo para Certificado AC-SAT - Memória de Armazenamento de 4GB - Dispositivo Visual com 9 indicadores - Botão de Reset protegido contra acionamento acidental - Dimensões de 110 x 90 x 26mm - Peso de 145 gramas TS-1000 Versão Sw.Básico 02.02.00 Layout XML Entrada 0.07 Fonte Externa Não Portas de Eth 2 Chave Liga/Desliga Não Wi-Fi Não Tipo Cabo USB USB 2.0 Tipo Gabinete Plástico ABS Anti-chama Fixação Gabinete Sim Trava Antifurto Não Sinalização Leds Ótimo Software de Ativação Bom Suporte a Windows 32/64 Suporte a Linux 32/64 Utilização do SAT Tanca TS-1000: O equipamento possui autodiagnóstico de rede, o que pode facilitar o processo de ativação e configuração do equipamento. Com relação ao consumo de energia, o equipamento funciona com um único Cabo USB. Apesar de o equipamento não possuir fonte externa, o mesmo tem um baixo consumo de energia, portanto, não apresenta problemas, mesmo quando conectado a USB de baixa potência. Quando detectado uma queda de energia, é finalizado o Software Básico do SAT antes do desligamento geral do SAT. Quando o equipamento está em uso, pode-se identificar facilmente o que está ocorrendo apenas observando os Leds de sinalização do equipamento, que possuem legenda de simples entendimento. O equipamento sinaliza para o contribuinte sobre os cupons não transmitidos para a Sefaz. Tal sinalização é realizada através do LED “CF-e SAT Pendente”, que pisca de acordo com o número de dias que os cupons estão na memória pendente de transmissão para a Sefaz. Nota: O tempo máximo para realizar o envio é de 10 dias, portanto, se o Led começar a piscar diversas vezes pode ser um sinal de problemas na rede. Foram realizadas diversas vendas com várias quantidades de itens, para verificar o tempo médio (em segundos) de envio e resposta utilizando SAT TS-1000. O resultado pode ser verificado na tabela abaixo: * A quantidade máxima permitida para venda com SAT é 500 itens, portanto os resultados para 501 itens, é o tempo de resposta de rejeição. Nota: O tempo que medimos nesse teste, é computado desde o início da transmissão do XML para o SAT, até a recepção do XML de Venda, gerado como resposta pelo SAT... Ou seja, é uma medição diferente do que a Especificação Técnica do SAT preconiza, onde apenas o tempo de Geração do XML da Venda é considerado. SuperLog TANCA: O SuperLog TANCA é um trecho do log onde ficam concentradas as principais configurações e informações sobre o estado do equipamento, que não são possíveis de serem encontradas via comandos do SAT. As informações contidas no SuperLog podem auxiliar desenvolvedores e facilitar o suporte. Para analisar o SuperLog Tanca, basta utilizar a opção “Extrair Logs” do SAT, a opção está pelo aplicativo do fabricante (necessário informar o código de ativação) ou pelo SATTeste (necessário informar o local onde será salvo o arquivo com o log). O SuperLog é gerado automaticamente após o equipamento ser ligado ou quando alguma informação de rede for alterada manualmente. Abaixo, será exibido um exemplo do SuperLog Tanca do equipamento utilizado nos testes: 20161024174206|SAT|info|================= SuperLog TANCA ================== 20161024174206|SAT|info| Versão do Software Básico: 02.02.00 (Rev. 74_020200a/2016) – Versão vigente do SB 20161024174206|SAT|info| Número de Série: 900007064-34 – Número de Série do equipamento 20161024174206|SAT|info| CNPJ do Contribuinte: 08.723.218/0001-86 – Dados do Contribuinte 20161024174206|SAT|info| IE do Contribuinte: 149.626.224.113 – Dados do Contribuinte 20161024174206|SAT|info| Razão Social: TANCA INFORMATICA EIRELI – Dados do Contribuinte 20161024174206|SAT|info| Endereco: RUA MARECHAL FLORIANO PEIXOTO, 166 – Dados do Contribuinte 20161024174206|SAT|info| VILA MARCONDES - PRESIDENTE PRUDENTE – Dados do Contribuinte 20161024174206|SAT|info| Cert. Digital válido até: 18/12/2020 – Validade do certificado digital do SAT 20161024174206|SAT|info| No. do próximo CFe: 000098 – Número do próximo CFe a ser emitido 20161024174206|SAT|info| DH último CFe transmitido: 24/10/2016-15:04:05 – Data e hora do último CFe transmitido à Sefaz 20161024174206|SAT|info| Último CFe transmitido: 35161008723218000186599000070640000977845102 – Chave do último CFe transmitido 20161024174206|SAT|info| DH última comunicação SEFAZ: 24/10/2016-17:40:00 – Data e hora da última comunicação com Sefaz 20161024174206|SAT|info| Último CFe emitido: 35161008723218000186599000070640000977845102 – Chave do último CFe emitido 20161024174207|SAT|info| Qde. de cupons a transmitir: 0 – Quantidade de cupons emitidos e não transmitidos 20161024174207|SAT|info| Tempo até Bloq. Autonomo: 416d16h36m – Tempo restante de operação sem comunicação com Sefaz 20161024174207|SAT|info| Horário de verão: Sim – Se o SAT está ou não no horário de verão 20161024174207|SAT|info|Configurações da rede: 20161024174207|SAT|info| Interface: ETHERNET – Tipo de Conexão de rede em que o SAT foi configurado 20161024174207|SAT|info| Tipo de Rede: DHCP 20161024174207|SAT|info| Proxy: COM CONFIGURACAO 20161024174207|SAT|info| IP do Proxy: 192.168.92.1 20161024174207|SAT|info| Porta do Proxy: 3128 20161024174207|SAT|info| Usuario do Proxy: leticia 20161024174207|SAT|info| Senha do Proxy: possui 11 caracter(es) 20161024174207|SAT|info|Diagnosticos de rede (Testes executados em 24/10/2016-17:27:41): Diagnóstico na Rede do contribuinte baseado nas portas requeridas pela Sefaz para comunicação 20161024174207|SAT|info| Comunicação com o gateway: OK 20161024174207|SAT|info| Porta 43-UDP (DNS): OK 20161024174207|SAT|info| Porta 123-UDP (NTP): OK 20161024174207|SAT|info| Porta 443-TCP (HTTPS): OK (Proxy) 20161024174207|SAT|info|Parametrizações de Uso em vigor (Recebidas em: 19/10/2016): Parametrização do SAT enviada pela Sefaz no momento da ativação, sem este recurso do Log o contribuinte somente tem acesso a estas informações no portal da Sefaz acessando com seu certificado digital. 20161024174207|SAT|info| Nível do Log: [2] 20161024174207|SAT|info| transmissao: [tempo|00h06m00s] – Intervalo de tempo para transmissão dos cupons à Sefaz 20161024174207|SAT|info| verificacao: [tempo|00h01m00s|0001m] 20161024174207|SAT|info| comandos: [tempo|00h06m00s] – Tempo que o SAT acessa o WebService para transmitir ou receber informações 20161024174207|SAT|info| autoBloqueio: [conexao|9999h99m] – Tempo máximo parametrizado para operar offline sem bloqueio 20161024174207|SAT|info|Estado atual: Ativado e desbloqueado – Status atual deste SAT 20161024174207|SAT|info| SAT associado a Software House - CNPJ: 16.716.114/0001-72 – CNPJ do Desenvolvedor do Software 20161024174207|SAT|info|=================================================== Visão geral sobre a experiência de uso do SAT Tanca TS-1000: De maneira geral, a utilização do SAT Tanca TS-1000 foi uma boa experiência, pois o mesmo foi instalado e configurado facilmente seguindo as instruções do Manual do Fabricante. Durante a utilização realizando vendas, não houve problemas ou falhas, tornando-o um SAT com boa performance. O equipamento possui gabinete constituído de material ABS anti-chama, o que faz com que o mesmo embora seja de plástico, não aparente ser frágil. O equipamento possui ótima sinalização dos Leds, identificando de maneira prática o que está ocorrendo com o mesmo. Outro ponto interessante do modelo TS-1000 é o tamanho e peso, o mesmo é bastante compacto e leve (apenas 145 gramas), sendo assim possível fixá-lo facilmente em pequenos espaços, ou mesmo utilizá-lo em cima da mesa sem perda de espaço. Outro fator bastante positivo, é o fato do mesmo sinalizar o tempo (em dias) que possui cupons pendentes de transmissão à Sefaz, piscando o LED “CFe SAT Pendente”, isso facilita muito para o próprio contribuinte se atentar para não ultrapassar o limite de dias permitido pela Sefaz (máximo 10 dias). E por último, não posso deixar de citar o SuperLog TANCA, que é uma ótima funcionalidade de ajuda aos desenvolvedores e principalmente, ao suporte para prestar possíveis atendimentos ao cliente futuramente. Ferramenta InteliSAT A Tanca disponibiliza uma ferramenta de auxílio aos desenvolvedores, chamada InteliSAT. A aplicação é bastante simples e prática de utilizar. Nela, é possível selecionar a versão do layout e o comando a ser verificado. Ao selecionar um comando, serão exibidas três abas: Comando, Resposta e Descrição. Comando: exibe um modelo de como o comando deverá ser acionado. É possível preencher os parâmetros e realizar testes, ao clicar em mostrar para exibir o comando preenchido. É possível ainda, analisar se os dados preenchidos estão OK e Executar o comando exibido. Resposta: Exibe a resposta do comando executado. Descrição: Explicação detalhada do comando com exemplos e possíveis retornos da Sefaz. Cupom de venda gerado pelo SAT Cupom de cancelamento gerado pelo SAT Xml de envio e xml de retorno da venda e do cancelamento anexos abaixo: XML de Envio (Venda): AD20161025112403-379493-env.xml XML de Retorno (Venda): AD35161008723218000186599000070640001585366570.xml XML de Envio (Cancelamento): ADC35161008723218000186599000070640001585366570-env.xml XML de Retorno (Cancelamento): ADC35161008723218000186599000070640001599414512.xml SDK Tanca TS-1000 SAT Tanca ACBr TS-1000 Exemplo de SAT com cupons pendentes há dois dias
    11 pontos
  28. Faça o seguinte: Baixe os 3 repositórios: 1. JCL: https://github.com/project-jedi/jcl/trunk/jcl 2. JVCL: https://github.com/project-jedi/jvcl/trunk/jvcl 3. JEDI: https://github.com/project-jedi/jedi/trunk (este repositório possui arquivos .inc que são necessários para compilar a JCL corretamente) Após baixar copie os arquivo do passo 3 para: <jcl>\source\include\jedi Execute o arquivo "Install.bat" que está na raiz do repositório JCL baixado, tudo normal sem nada diferente, siga o que ele indicar, talvez na aba 64 bits falte o diretóri, mas basta criar ele conforme ele informa. Execute o arquivo "install.bat" que está na raiz do repositório JVCL baixado, também tudo normal conforme indicado pelo instalador. Se seguir este passo-a-passo não tem erro, tudo funcionará normalmente.
    11 pontos
  29. Foi criado novo recurso para atender a diversidade de fuso horário, em certas regiões do Brasil, a qual o Windows não conseguia administrar a mudança correta do horário de verão, nesses casos poderá ser parametrizado agora direto no seu sistema, resolvendo assim problemas de emissão de DFe, o qual o problema impedia a transmissão do mesmo. 1) tzSistema: O componente pegará o fuso horário do windows (que era o padrão do Trunk2); 2) tzPCN: O componente calculará automaticamente o fuso horário (que era o padrão do Trunk1); 3) tzManual: O componente pegará o fuso horário indicado em TimeZoneStr; 4) O default será tzSistema; 5) preenchimento do TimeZoneStr (Ex.: "-03:00")
    11 pontos
  30. Vimos comunicar aos usuários ACBr que estamos trabalhando para sempre trazer melhorias ao Projeto e por consequência a nossos usuário, este post tem por finalidade informar que além das novas versões de NF-e, CT-e, lançamento de SAT-e, NFC-e ,estamos trabalhando para que o projeto ACBr possa ser utilizado na plataforma Firemonkey, no 1o momento não vamos nos preocupar com multi-plataform, vamos usar o que temos e ajusta-lo para que uma aplicação feita em Firemonkey possa usa-la. Como é um caminho novo para nós também, estamos encontrando obstáculos, e não sabemos até onde podemos chegar realmente, mas de 1a mão anuncio que temos 80% dos componentes podendo ser compilados em uma aplicação Firemomkey, como mostra a imagem em anexo. Hoje faltando os componentes ACBrECF (falta bem pouco para esse), todos os eletrônicos NFe, CTe, NFSe, MDF-e, NFC-e se não esqueci de algum são esses. Em anexo segue os fontes alterados, para quem queira fazer algum teste, nesse 1o passo ajustaremos os fontes para que possam ser compilados, num segundo passo converteremos os demos para Firemonkey, não daremos tempos para conversão, o que fizemos até o momento é fruto de tempo disponível que tiramos do nosso tempo de trabalho ou folga, então conto com a compreensão e também ajuda para que possamos o mais breve possível conseguir essa e novação ao Projeto ACBr. Fontes_FMX.zip
    11 pontos
  31. Passamos por instabilidade no fórum recentemente... Acredito que os problemas já foram sanados... Alguns tópicos podem ter sido repetidos, mas acredito que não houve perda de informação
    11 pontos
  32. Boa tarde a todos, Só para fechar com chave de ouro esse assunto. Se não me falha a memória a NF-e foi instituída em 30 setembro de 2005 através do AJUSTE SINIEF 07/05. Pois muito bem o meu sistema possui um módulo chamado: Controle de Entrada (implantado em 2005), a sua finalidade é simples, lançar as notas de compra de materiais. Quando começou a obrigatoriedade da emissão das NF-e, alguém lembra? Pois muito bem nesse meio tempo e até hoje o almoxarifado não digita nenhuma nota, detalhe importante, apesar de recebermos os XMLs dos fornecedores os mesmos não são importados. Resumindo tudo: Recebo por e-mail os XML das Notas; Não tenho nenhuma rotina para importar os dados das mesmas; O funcionário do almoxarifado da entrada nas notas sem a necessidade de digita-las. Para não dizer que ele não digita nada, ele digita o CNPJ do fornecedor e o numero do pedido de compra emitido pelo departamento de compras. Em vez de criar mecanismos obscuros para minimizar o trabalho, que tal desenvolver um módulo de compra de material que se integra com o de entrada?
    11 pontos
  33. No dia de ontem, passamos por problemas técnicos com o nosso provedor de Hospedagem, a Locaweb... Inicialmente o problema afetava apenas a comunicação Segura de nosso servidor com Servidores externos a Locaweb... Isso afetou serviços como o Sistema de Licenciamento do Invision Power Board (este fórum), e também afetou a comunicação do nosso servidor com o PagSeguro, o que pode ter indisponibilizado a contratação do SAC do ACBr Como a Locaweb demorou a reconhecer o problema, perdemos muito tempo imaginando ser algo na configuração do nosso servidor... No período da tarde o problema na Locaweb se estendeu, e nosso servidor ficou literalmente inacessível.. A situação na Locaweb somente foi normalizada por volta das 22:00hs no dia de ontem Pedimos sinceras desculpas pelo ocorrido, e estamos fazendo planos para termos uma alternativa que nos permita subir o Projeto ACBr em outro Servidor, a fim de diminuir o Downtime, caso o problema volte a ocorrer.
    10 pontos
  34. Boa tarde a todos Seguindo alguns tópicos que encontrei no fórum, fiz um resumo da conversão que fiz para quem estiver migrando para o trunk 2, espero que possa ajudar alguém: CTe ** CTe * Valida De: ACBrCTe1.Conhecimentos.Valida; Para: ACBrCTe1.Conhecimentos.Validar; * Configuracoes.Geral.PathSalvar De: ACBrCTe1.Configuracoes.Geral.PathSalvar Para: ACBrCTe1.Configuracoes.Arquivos.PathSalvar * EnviarEventoCTe De: ACBrCTe1.EnviarEventoCTe(idLote); Para: ACBrCTe1.EnviarEvento(idLote); * De: if ACBrCTe1.Conhecimentos.Items[i].Confirmada then Para: if ACBrCTe1.Conhecimentos.Items[i].Confirmado then * De: ACBrCTe1.Conhecimentos.Items[i].SaveToFile(cFileName); Para: ACBrCTe1.Conhecimentos.Items[i].GravarXML(cFileName); * De: DFEUtil.LimpaNumero(cDocumento) Para: OnlyNumber(cDocumento) * De: ACBrCTe1.Configuracoes.Certificados.DataVenc Para: ACBrCTe1.SSL.CertDataVenc NFe ** NFe * De: cNroSerieCertificado := ACBrNFe1.Configuracoes.Certificados.SelecionarCertificado; Para: cNroSerieCertificado := ACBrNFe1.SSL.SelecionarCertificado; * De: ACBrNFe1.NotasFiscais.Valida; Para: ACBrNFe1.NotasFiscais.Validar; * De: ACBrNFe1.Configuracoes.Geral.PathSalvar; Para: ACBrNFe1.Configuracoes.Arquivos.PathSalvar; * De: ACBrNFe1.EnviarEventoNFe(idLote); Para: ACBrNFe1.EnviarEvento(idLote); * De: cSituacao := SituacaoNFeToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items[idx].resNFe.cSitNFe); Para: cSituacao := SituacaoDFeToStr(AcbrNFe1.WebServices.ConsNFeDest.retConsNFeDest.ret.Items[idx].resNFe.cSitNFe); * De: ACBrNFe1.NotasFiscais.Items[i].SaveToFile(cFileName); Para: ACBrNFe1.NotasFiscais.Items[i].GravarXML(cFileName); * Removidos: ( não existe mais DPEC) ACBrNFe1.WebServices.EnviarDPEC.Executar ACBrNFe1.WebServices.ConsultaDPEC.NFeChave ACBrNFe1.WebServices.ConsultaDPEC.Executar; * De: NFe.Det[idx].Prod.nItemPed := 0; Para: NFe.Det[idx].Prod.nItemPed := ''; * Disponível NFe.Det[idx].Prod.CEST ( trunk 2 ) * Remover Componentes ACBrNFeDANFERave1 e ACBrNFeDANFERaveCB1 * De: ACBrNFe1.NotasFiscais.Items[idx].SaveToFile(cFileName ); Para: ACBrNFe1.NotasFiscais.Items[idx].GravarXML(cFileName); * De: ACBrNFe1.Configuracoes.Certificados.DataVenc Para: ACBrNFe1.SSL.CertDataVenc NFSe ** NFSe * De: ACBrNFSe1.Configuracoes.Arquivos.PastaMensal := True Para: ACBrNFSe1.Configuracoes.Arquivos.SepararPorMes := True * De: ACBrNFSe1.Configuracoes.WebServices.CodigoMunicipio := 9999 Para: ACBrNFSe1.Configuracoes.Geral.CodigoMunicipio := 9999 * De: ACBrNFSe1.Configuracoes.WebServices.SetConfigMunicipio(ACBrNFSe1.Configuracoes.Geral.PathSchemas); Para: ACBrNFSe1.Configuracoes.Geral.SetConfigMunicipio; * De: ACBrNFSe1.Configuracoes.WebServices.SenhaWeb := cSenhaWeb; Para: ACBrNFSe1.Configuracoes.Geral.SenhaWeb := cSenhaWeb; * De: ACBrNFSe1.Configuracoes.WebServices.UserWeb := cUserWeb; Para: ACBrNFSe1.Configuracoes.Geral.UserWeb := cUserWeb; * De: cProvedor := ACBrNFSe1.Configuracoes.WebServices.xProvedor; Para: cProvedor := ACBrNFSe1.Configuracoes.Geral.xProvedor; * De: ACBrNFSe1.Configuracoes.Geral.PathSalvar; Para: ACBrNFSe1.Configuracoes.Arquivos.PathSalvar; * De: ACBrNFSe1.NotasFiscais.Items[0].NFSe.NaturezaOperacao := noTributacaoNoMunicipio; ACBrNFSe1.NotasFiscais.Items[0].NFSe.NaturezaOperacao := StrToNaturezaOperacao(ok, cNaturezaOperacao); Geral * pcnConversao ( ainda existe ) - especializado para pcnConversaoNFe e pcteConversaoCTe adicionem no uses pcnConversaoNFe e pcteConversaoCTe junto com pcnConversao * ACBrDFeUtil // Unificado: ACBrNFeUtil-ACBrNFEsUtil-ACBrCTeUtil ( não existem mais ) remover ACBrNFeUtil-ACBrNFEsUtil-ACBrCTeUtil e deixem ACBrDFeUtil * Added novo uses ACBrUtil * EstaVazio De: if DFeUtil.EstaVazio(cPathSalvar) then Para: if EstaVazio(cPathSalvar) then
    10 pontos
  35. Comentário totalmente desnecessário... Acha que nós não estamos ocupados com outras atribuições ? Experimente fazer o seu próprio componente OpenSource para Boletos... e gerencie-o como acha que deve ser feito...
    10 pontos
  36. Boas Novas: Consegui assinar usando a MScrypto sem MSXML e LibXMLSec. Amanhã vou refatorar e testar se não causa nenhum problema no certificado.
    10 pontos
  37. Olá para todos... Acabei de subir para o SVN, uma novo componente, ACBrMTER -- ACBrMTer -- [+] Adicionado novo componente ACBrMTer, que atua como servidor de MicroTerminais TCP/IP, suportando atualmente os protocolos: VT100, StxEtx, PMTG (por: Elias César Vieira e DSA) Alguns Links para estudo: Emulador Wilbor (protocolos VT100 e Stx/Etx) - http://www.gradual.com.br/prod/programas/Emulador Terminal.zip Manual Terminal Wilbor (contém manual protocolo VT100 e Stx/Stx) - http://www.gradual.com.br/prod/manuais/Terminal_Ethernet.pdf Emulador Will Tech (Protocolo VT100) - http://www.willtech.com.br/download/Emulador_2016.rar Manual Terminal WillTech (contem manual protocolo VT100) - http://www.willtech.com.br/download/MANUAL_TC_V1.80_2013.pdf Emulador Gertec (Protocolo PMTG) - http://www.gertec.com/Modulos/Container/PopUpDownload.aspx?codDownload= 541&codIdioma= 1 Manual de Comunicação Protocolo PMTG http://www.gertec.com/Modulos/Container/PopUpDownload.aspx?codDownload= 245&codIdioma= 1 Manual Bematech FIT (VT100 e Stx/Etx) http://www.bematech.com.br/equipamentos/produto/fit-basico Não deixe de ler este tópico:
    10 pontos
  38. Saíram as novas tabelas IBPT versão 16.2.A com validade de 01/07/2016 a 31/12/2016. Leia mais em: https://regys.com.br/ibpt-novas-tabelas-disponiveis-versao-16-2/
    10 pontos
  39. Esta é a primeira vez que participo do projeto ACBr. A oportunidade surgiu quando comecei a trabalhar para DJSystem. Com a supervisão e sugestões do Daniel Simões, foi desenvolvido o componente ACBrMail que, como o nome já sugere, é para o envio de e-mails. Funciona no Lazarus (Windows e Linux) e no Delphi. O componente ACBrMail usa as classes da biblioteca Synapse para montar e enviar os e-mails. No desenvolvimento do código, tomou-se por base: os conceitos e exemplos apresentados no site do projeto Synapse , o projeto xmailer do Sílvio Clécio e os métodos e propriedades do projeto PHPmailer. FUNCIONALIDADES: Cliente SMTP com suporte a SSL e TLS; Suporte ao envio de múltiplos e-mails; Suporte a envios TO, CC, BCC e Reply-To; Confirmação de leitura; Suporte a Charset; Mensagens em texto puro, HTML ou ambos; Mensagens com múltiplos anexos; Anexos por arquivo ou Stream; Imagens anexadas em linha para usar em mensagens html; Três eventos para acompanhar o processo de envio; O componente já está no svn do projeto, faz parte do pacote ACBrTCP e acompanha exemplo de uso (um exemplo mais elaborado está sendo produzido).
    10 pontos
  40. Testamos o SAT Nitere NSAT-4200, utilizando o exemplo do ACBr, SATTeste.exe, e o programa de Ativação do Fabricante. Sobre a instalação e ativação do SAT Nitere NSAT-4200: O manual de instalação, driver e o aplicativo de ativação podem ser encontrados em: http://www.nitere.com.br/suporte-downloads-nitere. O site do fabricante é bastante intuitivo, e não tivemos dificuldades em encontrar as bibliotecas e programas do SAT. O SAT foi testado em uma máquina com Windows 8.1, e o próprio Windows identificou um driver genérico (ELMO GMAS), segundo o fabricante não é necessário instalar o driver neste caso, o próprio que foi identificado é suficiente, porém foram testados tanto o driver genérico quanto o driver do próprio fabricante (seguindo o manual disponível no site citado anteriormente). Os dados de código de ativação padrão, encontravam-se em uma folha, junto ao manual, na caixa do equipamento. Dados de Ativação: CNPJ do contribuinte: 10.261.693/0001-20 Código de ativação: 12345678 Associar Assinatura: CNPJ do contribuinte: 10.261.693/0001-20 CNPJ da software house: 16.716.114/0001-72 Assinatura do AC: SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT Para realizar a ativação do SAT é muito simples, basta seguir os seguintes passos: Instalar drivers-dll-nsat-4200-ev9sm.exe disponível no site. Após instalado, será criado uma pasta com o nome: sygmansat na unidade C. Abrir o sygma_nsat.exe que encontra-se nesta pasta. Em Configurar Rede SAT (Passo 01), deverá ser preenchido com os dados corretos e clicar em Enviar. A interface de rede já será configurada neste passo. Nota: As configurações de Proxy deverá ser configurada no caso dessa configuração existir na rede local. Após o envio dos dados do passo 01, clicar em Ativar SAT (Passo 02), preencher corretamente os dados e clicar em Enviar. Pronto seu SAT está ativado. Agora é necessário associar a assinatura, em Associar Assinatura SAT, preencher corretamente os dados de clicar em Enviar. Após a configuração, os leds que deverão ficar acessos são: Equipamento energizado, Equipamento operando e/ou em comunicação com o AC e Parametrização Instalada. O processo de ativação, também pode ser realizado pelo SATTeste.exe. Basta seguir os seguintes passos para ativar o SAT: O ACBrSAT deverá estar configurado da seguinte maneira: Em inicialização, deverá estar na opção: satDinamico_stdcall; Página de código: UTF8 ou 65001; Versão: 0,07; Formatar XML deverá estar desmarcado. (veja tópico: “Sobre a Utilização”, abaixo) Remover Acentos deverá estar marcado. (veja tópico: “Sobre a Utilização”, abaixo) Configurar na aba Dados do SAT CFe, no nosso caso, os dados necessários encontravam-se em uma folha junto ao manual Configurar no campo “Nome DLL” o caminho para a dllsat.dll (veja nota 1). Clicar em Inicializar. Ir no menu Ativação, e clicar em Ativar SAT. Para associar assinatura: Clicar em Ativação > Associar Assinatura É possível também configurar a Interface de Rede pelo SATTeste. Para o tipo de interface ETHERNET: Escolher a opção ETHE, dentro da aba Rede > Tipo Rede. Escolher conforme as configurações de sua rede entre DHCP/PPPoE/IPIFIX Em Configuração de Proxy, configurar caso haja proxy em sua rede. Nota 1: A DLL encontra-se na pasta sygmansat conforme instalação. Sobre o equipamento SAT NSAT-4200: O equipamento funciona bem e suas configurações são simples. Sua apresentação física é boa, e seu gabinete é de material plástico ABS. Seus Leds podem confundir um pouco o usuário, pois não há descrição de cada led, e é necessário consultar o manual para compreender os símbolos, principalmente quando a luz do equipamento comunicando com o fisco estiver acessa, dando a impressão de que o estado de rede local está acessa também. O equipamento é alimentado pela porta USB, o cabo usado é o USB-B (o mesmo utilizado pela maioria das Impressoras), possui também duas portas para Rede, para permitir a redistribuição do cabo a outro equipamento. NSAT-4200 Versão Sw.Básico 02.00.03 Layout XML Entrada 00.07 Fonte Externa Não Portas de Eth 2 Chave Liga/Desliga Não Wi-Fi Não Tipo Cabo USB USB-B Tipo Gabinete Plástico ABS Fixação Gabinete Não Trava Antifurto Sim Sinalização Leds Bom Software de Ativação Bom Suporte a Windows 32/64 Suporte a Linux* 32/64 * Foi necessário entrar em contato com o fabricante, e o mesmo disponibilizou a Lib utilizada no sistema operacional Linux. Sobre a utilização do SAT NSAT-4200: Para a utilização do SAT, no primeiro momento, deixamos com o driver genérico. Neste cenário, apontamos para a DLL da pasta de instalação do próprio programa da Nitere, não houve erros. Notamos que o SAT não aceita XMLs com espaços, e portanto quando a opção “Formatar XML” estiver ligada, ao realizar uma venda, ocorreu o erro: “Resposta:949632|06010|1999|Erro nao identificado||”, porém desmarcando essa opção, funcionou corretamente. Detectamos um problema em relação a Tag “Dest.xNome”. No XML gerado pelo SATTeste.exe, é definido campo “Dest.xNome” com a seguinte descrição. Dest.xNome := 'D.J. SYSTEM ÁÉÍÓÚáéíóúÇç teste de nome Longo muito LONGO'; O Objetivo é testar como o SAT se comporta com caracteres acentuados, e com uma Descrição com o limite próximo do máximo permitido pelo campo xNome (60 caracteres). O SAT da Nitere está recusando o XML, com o erro: “Resposta:418632|06010|1999|Erro nao identificado||”. Observamos que se a opção “Remover Acentos”, estiver marcada, o XML é enviado com sucesso. O problema ocorre, pois caracteres acentuados em UTF8 podem consumir até 2 bytes, e a validação do SAT está erroneamente considerando o número de Bytes e não de caracteres. O problema foi reportado ao Fabricante, que nos informou que já existe uma correção para o mesmo, e que será lançada na próxima atualização do Software Básico. Foram realizadas diversas vendas com o aplicativo SATTeste.exe, e os XMLs com retorno das vendas foram geradas corretamente. Realizado testes de tempo de envio pelo próprio SATTeste, conforme imagem abaixo. O tempo que medimos nesse teste, é computado desde o início da transmissão do XML para o SAT, até a recepção do XML de Venda, gerado como resposta pelo SAT... Ou seja, é uma medição diferente do que a Especificação Técnica do SAT preconiza, onde apenas o tempo de Geração do XML da Venda é considerado. Tempo em Segundos * Venda máxima de quantidade de itens para a venda com o SAT é de 500, acima dessa quantidade o SAT retorna “Erro não identificado”, o tempo calculado neste caso, foi do retorno do erro. As seguintes informações abaixo, nos foram recebidas pela engenharia do Fabricante: Nosso SAT possui alguns diferenciais sobre os demais SATs de mercado que têm sido bastante elogiados em outras avaliações semelhantes à sua, dentre eles podemos citar: – Possui bateria interna que permite o desligamento seguro do SAT, evitando-se a corrupção do sistema. –Tempo de processamento dos cupons inferior à média dos concorrentes, graças ao processador de performance superior, 800Mhz contra 350MHz em média dos demais. – 3 sistemas de watchdog, sendo um deles com hardware independente, que monitoram e garantem o funcionamento do sistema sem travamentos. Cupom gerado pelo SAT XML que foi enviado e o XML de retorno anexo abaixo. XML de Envio: AD20161011150701-625430-env.xml XML de Resposta: AD31161010261693000120599000096000000171043879.xml SAT NSAT-4200
    9 pontos
  41. Para remover manualmente o ACBr do computador quando necessário sigam os procedimentos abaixo: 1) Apague todos os arquivos seguintes: ACBr*.bpl ACBr*.dcp ACBr*.dcu PCN*.bpl PCN*.dcp PCN*.dcu SYNA*.bpl SYNA*.dcp SYNA*.dcu Nota importante: Visto que o Delphi busca os arquivos para compilar em diretórios diferentes é necessário apagar os arquivos na pasta do ACBr, na pasta do seu aplicativo, nas pastas públicas ou de default do Delphi (Documentos públicos), nas pastas que estiverem no PATH do Windows, etc... Assim aconselhamos a apagar os arquivos mencionados logo do computador inteiro. 2) Remova as entradas antigas dos pacotes no registro do sistema. Seguindo um dos seguintes modos: 2.a - Removendo manualmente do registro do Windows que fica em uma destas chaves, dependendo da versão do Delphi: HKEY_CURRENT_USER\Software\Borland\<versao>\Known Packages HKEY_CURRENT_USER\Software\CodeGear\BDS\<versao>\Known Packages HKEY_CURRENT_USER\Software\Embarcadero\BDS\<versao>\Known Packages Lembrando que pode variar dependendo e versão, procure sempre por "Known Packages" que são os pacotes instalados no Delphi. 2.b - Ou pode-se abrir o Delphi e dizer não para os erros de pacote não encontrados, automaticamente o delphi não os carregará mais. Após isso, reinstale utilizando o ACBrInstall.
    9 pontos
  42. Olá pessoal, Eu e André estamos trabalhando para concluir os ECFs Virtuais de SAT e NFCe Com o ECF Virtual, será possível que uma aplicação adaptada para o ACBrECF consiga comandar um SAT ou NFCe de forma (quase) transparente... Já está no SVN, uma primeira implementação do ECF Virtual para SAT... Modifiquei o ECFTeste (para Lazarus), para que o mesmo possa demonstrar o funcionamento... Apenas a título de curiosidade, um ECF Virtual ligado no Emulador de SAT do governo, conseguiu passar na rotina de "Teste de Velocidade", (que gera um cupom fiscal completo de 10 itens)... em apenas 0,7 segundos !!! Por enquanto apenas o ECFTeste em Lazarus está sendo atualizado... em breve subimos uma implementação para o NFCe... Você pode baixar e instalar o Lazarus livremente... Acesse: http://www.lazarus.freepascal.org/ (use a versão 32 bits) Para usar os ECFVirtual eles devem ser associados a um ACBrECF... Exemplo: 1 - Em um formulário, insira os seguintes componentes: ACBrECF, ACBrECFVirtualSAT, ACBrSAT, ACBrSATExtratoEscPOS 2 - Conecte os componentes... Em ACBrECF1: Modelo := ecfECFVirtual ECFVirtual := ACBrECFVirtualSAT1 Em ACBrECFVirtualSAT1: SAT := ACBrSAT1 ECF := ACBrECF1 Em ACBrSAT: Extrato := ACBrSATExtratoEscPOS 3 - No ACBrSAT1, ajuste corretamente os parâmetros de configuração, de acordo com o seu equipamento SAT ou Emulador 4 - Programe os eventos em ACBrECFVirtualSAT1, para informar dados adicionais (PIS, COFINS, etc) no CFe que será gerado: QuandoAbrirDocumento = procedure(CFe: TCFe) of object; QuandoVenderItem = procedure(Det: TDetCollectionItem) of object; QuandoEfetuarPagamento = procedure(Det: TMPCollectionItem) of object; 5 - Use o ACBrECF1 e proceda como um ECF normal..
    9 pontos
  43. Segue conforme solicitação a alguns amigos de como implementar ACBrTEFD em projetos sem o uso do ACBrECF @Italo Jurisato JuniorPor gentileza, poderia "comitar" esse exemplo no trunk? Considerações importantes Esse demo não é indicado para quem usa o ACBrECF, pois já existe o Demo ACBrECFTeste, onde explorar o conjunto (ps: aconselho verificar o demo feito em lazarus pois o mesmo está completo o exemplo, em relação ao demo em Delphi. Configurar o componente ACBrTEFD para [AutoFinalizarCupom = False] [MultiplosCartoes=True] [NumeroMaximoCartoes=3] Foi utilizada uma lógica em emular o estados possíveis do ECF. (Enumerado:tEstadoEcfSimulado) Estudar o evento ACBrTEFDComandaECF, ACBrTEFDInfoECF e ACBrTEFDComandaECFSubtotaliza onde os mesmo manipulam tEstadoEcfSimulado Assinar os Eventos ACBrTEFDComandaECFAbreVinculado, ACBrTEFDComandaECFImprimeVia e ACBrTEFD1ExibeMsg Ambiente de Teste Teste realizado no sistema modular SitDemo-Sitef(Software Express) Venda com múltiplos cartões Venda em 2 formas de pagamento(Dinheiro + Cartão) Extras Método finalizarCupomNFCe existe um tratamento para emissão em (OFF-LINE Contingência) caso houver qualquer erro na emissão da mesma Sequência na impressão(imprimer o NFCe > Posteriormente os Cupons Vinculados) Inicia Venda Informe o valor de pagamento e Selecione a forma de pagamento Armazena em Buffer as formas de pagamento Após a totalização das formas de pagamento haverá o enviar da NFCe ao SEFAZ Estadual imprime a NFCe e os Vinculados Finaliza a sequência com os EstadoEcfSimulado = Livre Delphi - TEF.rar
    9 pontos
  44. Olá, estou terminando um componente de suporte ao SNGPC exigido pela ANVISA. Para quem não sabe SNGPC significa Sistema Nacional de Gerenciamento de Produtos Controlados. As farmácias são obrigadas a enviar alguns dados para a Anvisa em formato xml quando fazem movimento de medicamentos controlados e antibióticos. O xml pode ser enviado pelo site ou através dos webservices disponíveis. Caso alguém se interesse posso disponibilizar os fontes do projeto e se alguém se interessar em colaborar eu agradeço.
    9 pontos
  45. Atenção! Queremos informar que este subfórum será fechado. Faremos isso até sexta feira 11/03/2016. O motivo é que como não damos mais suporte ao trunk, e até mesmo estamos removendo o trunk, não há mais necessidade destes tópicos serem separados num subfórum trunk2. Na verdade, é melhor que novos tópicos voltem a ser criados em seus respectivos subfóruns apropriados. Após o fechamento, os tópicos aqui já criados serão movidos gradualmente para os respectivos subfóruns.
    9 pontos
  46. Vou deixar minha experiência, eu migrei do D7 para D2007, depois Delphi 2010, e então XE7, XE8 e agora Seattle, porque estás versões? Porque segui a linha do que era estável para mim, agora com as versões XE7 em diante basta recompilar o projeto, não tem segredo. Quando migrei de D7 para D2010 eu tinha essa mesma cabeça de não mudar porque daria trabalho, era milhões de linhas de código para revisar, centenas de tabelas em um BD Firebird e muita, muita regra de negócio, mas não foi um bicho de 7 cabeças. O ganho com o uso de novas versões foi enorme, hoje o Delphi e Lazarus suportam muitos features de linguagem que o D7 nem sonha ter, coisas que facilitam em muito o dia-a-dia, principalmente para quem pensa em programar multi-plataforma e suportar mobile. A dificuldade sempre vai existir, isso é um fato, migrar um sistema não é fácil quando se vem de uma linguagem muito antiga, mas manter Delphi 7 só tem atrasado o projeto ACBr, sempre que vamos fazer algo temos que pensar na limitações do Delphi 7 e nivelar por ela, isso traz transtornos enormes, um exemplo foi alguns dias atrás quando fui implementar a API IBPT no componente ACBrIBPTax, o retorno a API é em JSON uma tecnologia extremamente corriqueira é que é usada em tudo que diz respeito a troca de informações web, mas o Delphi 7 não tem suporte nativo, já Lazarus e versões mais novas do Delphi sim, tive que implementar uma leitura básica de JSON para suprir a necessidade do Delphi 7 para que não tivéssemos que agregar bibliotecas de terceiros e inchar o ACBr com mais uma biblioteca. Este é um exemplo simples, imaginem todo o resto que temos que passar, leitura de XML, listas e afins que já são suportados nativamente em versões mais novas e temos que sermpre fazer tudo manualmente por conta de limitações do D7. Seu problema é dinheiro, acha caro uma nova versão do Delphi, o Lazarus é tão bom quanto, fora a IDE, ele suporta tudo que uma versão de Delphi mais nova suporta e é GRÁTIS e praticamente idêntico ao Delphi 7 em termos de funcionalidades e IDE.
    9 pontos
  47. Para Remover o Fortes4Lazarus e instalar o Fortes Report CE Package -> Install/UnInstall package Ache o Fortes4Lazarus clique nele e em: "Uninstall selection" Save and Exit Package -> Package Links Ache o Fortes4Lazarus Selecione o Fortes4Lazarus Clique em "Delete Selected" Package -> Open Package file Abra o arquivo "frce.lpk" Compile Use -> Install Reconstrua o Lazarus Os Pacotes do ACBr para Lazarus, que faziam usam do Fortes4Lazarus, já foram migrados para o Fortes Report CE (frce.lpk)
    9 pontos
  48. Para baixar o TRUNK2, use o seguinte endereço no seu SVN https://svn.code.sf.net/p/acbr/code/trunk2/ ATENÇÃO!! O trunk2 não é 100% compatível com o "trunk", de maneira que você precisará de ajustes nos seus projetos.... Portanto considere usar uma V.M. ou manter uma cópia do ACBr antigo em outra máquina. Leia o documento em anexo, para ver mais informações sobre o trunk2... Porque ele existe ? O que mudou ? como me adaptar ? Preciso realmente dele ? O trunk2 está em desenvolvimento, nos componentes ACBrNFe e semelhantes, houve um grande refactoring, e milhares de linhas de código foram suprimidas e unificadas... Por favor use essa área para reportar Bugs relacionados apenas aos fontes do trunk2 Bem_Vindo_ao_Trunk2.pdf
    9 pontos
  49. Sem comentário a essa pergunta Amigo, nós do projeto ACBr somos profissionais...
    9 pontos
×
×
  • 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.