Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 10-01-2023 em todas as áreas
-
Após reunião realizada com o Secretário da Fazenda, junto a alguns técnicos voluntários para representar os setores de Software Houses e Contábil. O SesconDF divulgou em seu Instagram alguns prazos que foram estabelecidos para resolver alguns problemas que foram levantados. Erros de validação com relação ao CEP e telefone do contribuinte; Prazo: 10/01 CNAES genéricos serão liberados como paliativo com alíquota de 5% (caso o item e subitem esteja em grupo que contém as duas alíquotas); Prazo: 10/01 O suporte do nota control irá trabalhar na resolução do problema de Time out; Prazo: sem definição de prazo, no entanto vamos tratar hoje novamente. Cadastros de empresas que não deveriam estar constando no log. O prazo para atualização da base vai ser discutido em nova reunião a ser realizada amanhã (10/01) Impossibilidade de emitir notas fiscais para condomínios, os condomínios estão listados na responsabilidade tributária de recolher o ISS, logo todo condomínio é obrigado a efetuar a sua inscrição no CF; Rejeição L082 - O senhor Alexandre da empresa Sempre Tecnologia irá enviar email com o XML que será analisado pela empresa Nota Control; Prazo: 10/01 Empresa do SIMPLES NACIONAL, no campo de alíquota será permitida a digitação da alíquota, até para atender às disposições da Lei Complementar 123/2006 e suas alterações; Prazo: 10/01 QR CODE, não é vinculado a lugar nenhum, então foi solicitado a exclusão, até que ele realmente esteja alinhado de forma correta; Prazo: 10/01 Web Service - cancelamento, consulta e substituição, não funciona; Prazo: 10/01 RPS - liberação de quantidades superiores a 1000 RPS, as empresas de software podem enviar diretamente a solicitação para o email do suporte; Prazo: 10/01 Nota legal - este item é complementar ao item número 01, deixando somente o CPF; Prazo: 10/01 Link para a publicação no Instagram do SesconDF: https://www.instagram.com/p/CnPFpp4u-Wh/?igshid=MDJmNzVkMjY%3D2 pontos
-
Boa tarde, Muito provável que seja um problema específico no ambiente de homologação deles. Não vi outros relatos deste problema nesse município. Envie o RPS para suporte do provedor para verificarem se tem algo específico nele que gerou a excessão ou se o ambiente de homologação está com problema generalizado.2 pontos
-
2 pontos
-
A Busca em si é rápida, pois ele carrega apenas uma vez, a lista de dispositivos USB compatíveis... mas usar apenas o texto "USB", fará com que ele pegue sempre a primeira encontrada, e pode dar confusão, se houver mais de uma impressora USB na máquina Use o método abaixo, para obter uma lista dos dispositivos encontrados, e exibir para o usuário selecionar ACBrPosPrinter1.Device.AcharPortasUSB( AStringList );2 pontos
-
2.9. PSP Bradesco Ambiente de Homologação - Para a integração com a API Pix Bradesco é necessário possuir uma conta na instituição; - Solicite ao seu gerente as credenciais CLIENT_ID e CLIENT_SECRET, para utilização da API PIX de acordo com o "MANUAL_API_PIX_261.pdf", anexo ao tópico; - Será necessário enviar um certificado ".pem"(extraído de um certificado .pfx)) por e-mail ao banco; - Após esse procedimento você receberá as credenciais para utilizar nas requisições; - Preencha as credenciais(Client ID, Secret Key, Certificado e Chave Privada) direto no componente ou no aplicativo de demonstração, como nos exemplos: ACBrPSPBradesco1.ChavePIX := ''; ACBrPSPBradesco1.ClientID := ''; ACBrPSPBradesco1.ClientSecret := ''; ACBrPSPBradesco1.ArquivoPFX := ''; ACBrPSPBradesco1.SenhaPFX := ''; Ambiente de Produção - Após todos os testes em ambiente de homologação, entre em contato novamente com o gerente da conta e solicite a alteração do ambiente para suas credenciais. Manual_API_Pix_261.pdf2 pontos
-
Olá usuários do ACBr! Devido a grande ajuda de toda comunidade o componente ACBrPIXCD não para de crescer! Informamos que acabamos de disponibilizar o PSP Bradesco. Este PSP estava sendo solicitado já a algum tempo por diversos usuários do nosso fórum e Discord. Ficamos muito animados em oferecer mais essa integração e esperamos que ela seja muito útil para vocês. Já realizamos os testes em homologação e agora convidamos vocês a testarem também. Dessa vez agradecemos especialmente ao @wendelswl que nos disponibilizou a documentação, credenciais e certificado para que fosse possível efetuar os testes iniciais deste novo PSP. Em caso de dúvida e/ou problemas durante o processo de testes, fiquem à vontade para entrar em contato conosco através do Discord ou abrindo um novo tópico aqui no fórum. Abraços!1 ponto
-
Desinstalei e instalei tudo de novo do zero e funcionou , obrigado.1 ponto
-
Boa tarde, Muito obrigado pela colaboração, já inclui na minha lista de tarefas para analise. TK-34751 ponto
-
Douglas, Favor atualizar os fontes, reinstale o ACBr e faça novos testes.1 ponto
-
OI Italo, vou atualizar e te falo, vou fazer um teste.1 ponto
-
Estou tendo o mesmo problema, porém o se você tentar acessar o link de homologação, está com mensagem de manutenção: https://testechapeco.meumunicipio.online/ISS/contribuinte/login.php Chamei o suporte pelo WhatsApp a algumas horas atrás, e não informaram até agora a previsão de voltar a funcionar, ignorado com sucesso hehehee. Só aguardar.1 ponto
-
Então você esta com os fontes desatualizados, veja: procedure TNFSeW_Ginfes.Configuracao; begin inherited Configuracao; NrOcorrAliquota := 0; NrOcorrValorPis := 1; NrOcorrValorCofins := 1; NrOcorrValorInss := 1; NrOcorrValorIr := 1; NrOcorrValorCsll := 1; NrOcorrValorIss := 1; DivAliq100 := True; <=== essa linha diz que a aliquota tem que ser divida por 100 PrefixoPadrao := 'ns4'; end; No seu XML o percentual da alíquota não consta dividida por 100.1 ponto
-
Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-34741 ponto
-
Boa tarde, Você poderia anexar o XML do Rps que foi processado com sucesso pelo provedor?1 ponto
-
Boa tarde, Antes o componente usava a série do Rps como sendo a série da nota, agora ele utiliza o numero da nota mais a série da mesma. Só que esta estranho, pois ao ler o XML da nota, o mesmo não é para conter a série da nota, logo o arquivo deveria ser apenas 1621 e não 16211. Você esta com todos os fontes atualizados? Não tem nenhuma unit com uma bolinha vermelha no ícone? Caso tenha, favor deletar e atualizar novamente.1 ponto
-
Tente atualizar novamente efaça um revert se tiver alterações locais e no instalador marque remover tudo antes de instalar1 ponto
-
1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Boa tarde! A TK consta em nossa fila de Backlog. Os consultores vão atendendo as demandas conforme necessidade/disponibilidade e devido a Notas técnicas recentes e manutenções em outros projetos não foi possível iniciar ela. Caso tenha urgência, você mesmo pode realizar a implementação e colaborar com a comunidade. Considere também aderir ao PRO, é uma contribuição simbólica que ajuda o projeto a crescer e atender mais demandas.1 ponto
-
Perfeito, vou ajustar meu fonte aqui, muito obrigado pela atenção de todos, fórum pode ser dado como resolvido.1 ponto
-
Bom dia Ítalo. Não recebi resposta da referida prefeitura. Sinceramente, já havia previsto isso. Tenho um contato deles lá que nem responde as mensagens enviadas, ler, mas não responde. Já prevendo isso como mencionei, semana passada mesmo estava realizando teste no servidor dessa prefeitura via SoapUI. Nele, conseguimos alterar o XML da forma que precisava. Obtive alguns resultados que passarei abaixo: >>> TAG <NaturezaOperacao> Essa TAG recebe um valor fixo, conforme cadastro da empresa na prefeitura. No “Sistema Auditor” temos uma configuração no cadastro da filial para alimentar a informação dessa TAG. >>> TAG <LocalPrestacao> * Ela não pode ser atrelada a “NaturezaOperacao”, pois NaturezaOperacao é fixa conforme acima. * Ela depende de onde é prestado o serviço. No “Sistema Auditor”, na emissão da nota, informamos se o serviço foi prestado no município do emitente da nota. Ai temos algumas condições a seguir: > Se marcado o sistema entende que o serviço prestado foi “Dentro do Município”. Não validamos mais nada. > Se desmarcado, verificamos de onde é o tomador do serviço. - Se o tomador for também do município de Anchieta (Igual do Prestador). O sistema entende que é “Dentro do Município”. - Se o tomador for de fora do município de Anchieta (Diferente do Prestador). O sistema entender que é “Dentro do Município”. Essa TAG é alimentada conforme essas condições. – Verificado nesses testes, uma outra TAG apareceu. A TAG <IssRetido> deve informar de quem a responsabilidade pela retenção do ISS. Essa TAG, é o ERP que deve definir seu valor. Obs.: No caso dessa prefeitura, existem alguns códigos, o CFPS (Código Fiscal de Prestação de Serviço) que definem quem retem o ISS. Porem esses códigos, nessa prefeitura não são enviados no XML, servem somente para identificar onde se paga o ISS, quem paga esse ISS. Quando o TOMADOR e do mesmo município do PRESTADOR se usa: - 511 - PRESTAÇÃO DE SERVIÇO NO MUNICÍPIO - SEM RETENÇÃO NA FONTE - 512 - PRESTAÇÃO DE SERVIÇO NO MUNICÍPIO - COM RETENÇÃO NA FONTE 511 – PRESTADOR responsável pela retenção 512 – TOMADOR responsável pela retenção Quando o TOMADOR e do município diferente do PRESTADOR se usa: - 611 - PRESTAÇÃO DE SERVIÇO EM OUTRO MUNICÍPIO - SEM RETENÇÃO NA FONTE - 612 - PRESTAÇÃO DE SERVIÇO EM OUTRO MUNICÍPIO - COM RETENÇÃO NA FONTE 611 – PRESTADOR responsável pela retenção 612 – TOMADOR responsável pela retenção Se necessário, envio o projeto SOAP dessa prefeitura.1 ponto
-
Bom dia meu amigo, blz? Bem legal... Só precisava realmente dessa confirmação se existe a possibilidade de ocorrer essa lentidão que eu mencionei ou não pra saber se vale a pena usar esse suporte nativo, pois realmente é muito mais prático só escrever na porta o valor "USB".1 ponto
-
Bom dia. Depois de pesquisar no forum do acbr, o erro acima foi resolvido comentando a linha ACBrEAD1.CalcularHash(hsh, Hash_H); O componente gera o QRcode para NFCe automaticamente, sem decessidade de nenhuma chamada Agradeço a todos pela colaboração em mais um aprendizado.1 ponto
-
Os repositórios SVN estão atualizados ? Competência passou ano 2146?1 ponto
-
Boa noite, Veja se assim resolve: Se foi preenchido infEvento.tpEvento para verificar se foi o evento de cancelamento Ou NFE.InutNFe.nNFIni ou NFE.InutNFe.nNFFin, por exemplo, para identificar se é inutilização.1 ponto
-
Oi @Daniel Simoes Funcionou... Então basicamente nessa Elgin i8 se eu deixar o logo ativado eu tenho que configurar o KeyCode1 e o KeyCode2, senão ele imprimi esse tal de "OE"... Correto? Creio que sim, pois mesmo gravando uma logo ele continuou imprimindo o OE. Aí configurei o KeyCode1 como 1 e o KeyCode2 como 0, aí ele passou a imprimir o logo. Depois apaguei o logo e ele não imprimiu nada... Mas mesmo sem logo, se o ACBrPosPrinter ficar com os valores padrões (KeyCode1 - 32, KeyCode2 - 32) ele imprime o tal do OE. Esse tópico me ajudou bastante, pois todas as impressoras XingLings dos clientes saem esse tal de "OE", assim como na Elgin i8. Creio que essa solução será válida pra essas impressoras também... E esse lance de achar automaticamente a impressora na porta USB é fantástico... Não sabia disso kkkkkkkkkkk Uma peculiaridade no teste de logo que ninguém reparou no vídeo, mesmo com o comando </ce> a imagem não centralizou. Abraços a todos1 ponto
-
1 ponto
-
1 ponto
-
Você precisaria programar um Logo antes... lembrando que esse equipamento só suporta KC1=1, KC2=0 Veja esse vídeo: Ou ainda, desabilitar o suporte a Logo, no ACBrPosPrinter1 ponto
-
Olá pessoal, como vocês estão indo neste começo de ano? Sem querer me alongar nessa introdução, mas não poderia deixar de agradecer a todos os nossos ouvintes de 2022. Beleza, vamos lá... às novidades! 1. Frequência semanal alterada para 2 sessões por semana, ocorrendo na terça e quinta. A ideia que acompanha essa decisão, é a de trazer mais planejamento, relevância e também audiência para os podcasts. Alguns usuários também relatavam, que ficava muito difícil acompanhar tudo, com 3 sessões por semana. Pois é, se estava difícil conciliar o tempo para acompanhar, imagina para produzir? Por esses motivos, nós vamos agora realizar as sessões na terça e quinta. O intervalo da quarta ajudará muito também o time do ACBr com as nossas outras demandas, como a produção e manutenção dos componentes e atendimento de nossos assinantes do ACBr Pro. Para alguns, essa mudança pode não soar muito como vantagem. Nós compreendemos, por isso, temos mais uma novidade à seguir! 2. Sessões com convidados presenciais, com câmeras ao vivo, transmitidas no YouTube! É isso mesmo! Nós vamos convidar as pessoas para gravarem ao vivo conosco diretamente de nossa sede no interior de São Paulo. Será um formato que você provavelmente já viu por aí em outros podcasts maiores, com câmeras gravando as expressões e gestos dos participantes e interação com o Chat ao vivo. Essas sessões ocorrerão com menos frequência, sendo sessões especiais, que vamos divulgar com muita antecedência para todos os interessados não perderem. A ideia é dar mais espaço para nossos convidados e agregar mais conteúdo com os recursos visuais que vamos ter. Assim como em uma palestra do Dia do ACBr, as sessões presenciais do Papo Pro ACBr vão ser um show de conhecimento, cultura e destaque das tendências sobre o nosso mercado, a automação comercial do Brasil! Estamos muito empolgados com as novidades que estão por vir, e vocês deverão receber mais informações em breve sobre as primeiras sessões presenciais. Por isso, fique conectado conosco, no Discord, nas redes sociais e é claro, aqui na nossa casa, o fórum do ACBr, onde você sempre será bem-vindo. Até mais, uma boa semana!1 ponto
-
Do nosso cliente tiramos da usb, tiramos a bateria, ligamos ele na internet, ai sim colocamos o cabo usb e bateria, parou de dar esse erro e normalizou! aconselho testar ver se volta! logico se não tiver trocado ja, dando a dica pra quem passar novamente por essa falha!1 ponto
-
Esta é uma questão que inicialmente imaginamos que não seria possível, afinal parece fazer pouco sentido e de fato há divergência sobre ser recomendado ou não tal tipo de emissão.. Mas vamos ao ponto aqui, o fato é que uma NFe deste tipo pode sim ser validada pela SEFAZ, desde que não exceda ao prazo de 30 dias ou o limite definido pela UF (para aquelas que permitem tal situação). Nosso colega Matias Pontes também compartilhou conosco o resultado da consulta diretamente a SEFAZ-CE1 ponto
-
Provavelmente possuem layout próprio, entra em contato com eles e pega a documentação, com mais informações pode ser que alguém do fórum consiga ajudar de alguma forma, eu pelo menos nunca ouvi falar deste provedor e não consta nada dele nos fontes do ACBr.1 ponto
-
Segue correção A TAG infoPgtoExt deve ser gerada somente para residentes no Exterior https://www.gov.br/esocial/pt-br/documentacao-tecnica/manuais/leiautes-esocial-v-1-1-beta/index.html#evtPgtos informar o código do país de residência para fins fiscais, quando no exterior, conforme Tabela 06. Somente informar este campo caso o país de residência para fins fiscais seja diferente de Brasil. Se não informado, implica que o país de residência fiscal é Brasil. unit pcesS1210 linha 1150 if VersaoDF >= veS01_01_00 then begin if objInfoPgto.Items[i].paisResidExt <>'' then Begin if (StrToInt(objInfoPgto.Items[i].paisResidExt) > 0) and (StrToInt(objInfoPgto.Items[i].paisResidExt) > 105) and ((StrToInt(Copy(Self.ideEvento.perApur,1,4))*100)+StrToInt(Copy(Self.ideEvento.perApur,6,2)) >= 202303) then begin Gerador.wCampo(tcStr, '', 'paisResidExt', 1, 3, 1, objInfoPgto.Items[i].paisResidExt); if (objInfoPgto.Items[i].InfoPgtoExtInst()) then GerarInfoPgtoExt(objInfoPgto.Items[i].InfoPgtoExt); end; End; end; ps. o forum não esta deixando eu envia arquivos > 8k , não conseguir enviar nem a unit zipada 8k1 ponto
-
Bom dia! Primeiro de tudo, muito obrigado pela intenção em contribuir. Toda contribuição é mais do que bem vinda. A informação no manual para a tag paisResidExt que consequentemente orquestra a geração das demais é: Na sua contribuição, além das validações já existentes você adiciona mais um teste verificando se o valor da property paisResidExt é diferente de vazio. if objInfoPgto.Items[i].paisResidExt <>'' then Begin if (StrToInt(objInfoPgto.Items[i].paisResidExt) > 0) and (StrToInt(objInfoPgto.Items[i].paisResidExt) > 105) and ((StrToInt(Copy(Self.ideEvento.perApur,1,4))*100)+StrToInt(Copy(Self.ideEvento.perApur,6,2)) >= 202303) then begin Gerador.wCampo(tcStr, '', 'paisResidExt', 1, 3, 1, objInfoPgto.Items[i].paisResidExt); if (objInfoPgto.Items[i].InfoPgtoExtInst()) then GerarInfoPgtoExt(objInfoPgto.Items[i].InfoPgtoExt); end; end; Simplifiquei isso usando as validações que já existiam. Substitui o primeiro StrToInt por StrToIntDef(paisResidExt, 0), dessa forma, mesmo que o valor seja vazio, a função vai converter para zero e a condição será falsa. if (StrToIntDef(objInfoPgto.Items[i].paisResidExt, 0) > 0) and (StrToInt(objInfoPgto.Items[i].paisResidExt) > 105) and ((StrToInt(Copy(Self.ideEvento.perApur,1,4))*100)+StrToInt(Copy(Self.ideEvento.perApur,6,2)) >= 202303) then begin Gerador.wCampo(tcStr, '', 'paisResidExt', 1, 3, 1, objInfoPgto.Items[i].paisResidExt); if (objInfoPgto.Items[i].InfoPgtoExtInst()) then GerarInfoPgtoExt(objInfoPgto.Items[i].InfoPgtoExt); end; Commit: Rev-28046 Por favor, atualize seus fontes, reinstale o ACBr e faça novos testes.1 ponto
-
Boa tarde Guilherme, As Units que anexei acima para você realizar os testes, já se encontram no SVN.1 ponto
-
Bom dia, Anexei nesse tópico referente ao problema do LerCidades uma possível solução. Favor testar.1 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Sim e tu tem que entrar em contato com eles pra te mandar o módulo pra tu poder testar e depois programar os evento no ACBrTEFD1 ponto
-
O ACBr suporta impressoras USB ? Durante muito tempo, a resposta a essa pergunta foi: NÃO, você precisa usar a Porta COM, Spool do Windows (RAW), Compartilhamento de Rede ou algum outro método... Porém agora isso mudou... Agora componentes que usam o ACBrDevice, como por exemplo o ACBrPosPrinter (para Impressoras Não Fiscais) e o ACBrETQ (para Impressoras de Etiquetas), possuem suporte a portas USB de maneira nativo do Windows... Ou seja, sem a necessidade de DLLs externas... Isso significa que caso o seu equipamento esteja conectado ao PC, por uma Porta USB... Você poderá conectar os componentes do ACBr, simplesmente definindo na Propriedade Porta algo como "USB" Exemplos de uso: ACBrPosPrinter1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Bobinas plugada na USB e faz uso dela, se encontrar.. ACBrPosPrinter1.Porta := 'USB:Elgin' - Tenta conexão em alguma Impressora USB, listada como sendo do Fabricante 'Elgin' ACBrPosPrinter1.Porta := 'USB:Sweda, SI-300S' - Tenta conexão na Impressora USB, do Fabricante "Sweda" e do Modelo "SI-300S". ACBrETQ1.Porta := 'USB' - Tenta descobrir qual é a Primeira Impressora de Etiquetas plugada na USB e faz uso dela, se encontrar.. ACBrETQ1.Porta := 'USB:Zebra, GC420t' - Tenta conexão com a Impressora USB do Fabricante "Zebra", e modelo "GC420t" Observe que essa nova implementação é totalmente diferente do método de Hook, onde usávamos a DLL do Fabricante, como túnel USB... Nesse novo cenário a comunicação USB é feita diretamente usando a API do Windows, ou seja, sem necessidade de DLLs externas. Para compreender um pouco mais, sobre esse método veja esse artigo O método de Hook ainda está disponível, usando o prefixo de porta, 'DLL:' Como os Equipamentos são identificados ? Todo Equipamento USB, possui um código de identificação do Fabricante, chamado de Vendor ID (VID), e também do Produto chamado de Product ID (PID). Essa numeração é controlada pela USB.ORG, e você pode encontras uma lista de Todos os "Vendors ID", nesse link A classe TACBrUSBIDDataBase, mantêm um Banco de Dados interno, chamado ACBrUSBID.ini, com o mapeamento dos principais Equipamentos do Mercado Brasileiro.. Esse Banco de Dados é um simples Arquivo do tipo INI, que é compilado como resource e adicionado ao componente... Clique aqui para ver o layout do Banco de Dados no Formato INI, observe os comentários no inicio do arquivo, com algumas instruções de como inserir novos equipamentos nele. Se você distribuir o arquivo ACBrUSBID.ini, na mesma pasta do Executável da sua aplicação, a classe TACBrUSBIDDataBase fará uso desse arquivo, ao invéz de usar o resource interno... Isso pode ser muito útil para atualizar a lista de Dispositivos conhecidos, sem necessitar compilar uma nova versão do programa, apenas atualizando o ACBrUSBID.ini Como posso listar os equipamentos identificados pelo ACBr ? Use a Força, leia os fontes... Vamos ver trechos de código, do Demo PosPrinterTeste {$IfDef MSWINDOWS} // Os métodos abaixo, somente estão disponíveis para compilação em Windows // Carrega a lista de Impressoras detectadas em: ACBrPosPrinter1.Device.WinUSB.DeviceList ACBrPosPrinter1.Device.WinUSB.FindUSBPrinters(); // Varre a lista de Impressoras USB detectadas, e adiciona as mesmas, nas opções de Porta for K := 0 to ACBrPosPrinter1.Device.WinUSB.DeviceList.Count-1 do cbxPorta.Items.Add('USB:'+ACBrPosPrinter1.Device.WinUSB.DeviceList.Items[K].DeviceName); {$EndIf} Como o ACBr nomeia os dispositivos ? O "DeviceName" será calculado, de acordo com as informações disponíveis no banco de Dados... Primeiro o ACBr usa a API do Windows para captura informações do VID (Vendor ID ou Fabricante) e o PID (Product ID ou Modelo), dos Equipamentos listados... Se o ACBr falhar nessa tarefa, o equipamento será ignorado (não será listado) Se for capturado com sucesso a descrição em FriendlyName, então ela será usada.. Caso contrário, o ACBr tentará compor o nome, baseado no VID e PID Se o VID do Fabricante for encontrado na sessão [Vendors] de ACBrUSBID.ini, então o VID será substituído pela Descrição do Fabricante... Observe que na sessão [Vendors], temos vários fabricantes que não são conhecidos no mercado Brasileiro, mas são de equipamentos OEM, de Empresas nacionais... Nós procuramos manter o nome Original do Fabricante, de acordo com a tabelas de VID da OSB.ORG Se o VID não tiver equivalência na relação de [Vendors] de ACBrUSBID.ini, então ele será listado com o próprio número VID, que são 4 algarismos em Hexadecimal... Exemplo: "0b1b" Procuramos pelo PID do Equipamento, na sessão específica do Fabricante. Se não houver uma chave com o PID, então o ACBr usará o próprio número PID, para Nomear o Modelo. O PID também é composto do 4 algarismos em Hexadecimal... Exemplo: "0001" Se encontrar uma entrada com o PID, dentro da sessão do Fabricante, então o ACBr usará a Descrição do Modelo, e poderá desprezar a descrição do Fabricante, se a Descrição do modelo possuir uma vírgula, Exemplo: 7008=Elgin, I9;1;1... Nesse caso será desprezada a descrição do Fabricante "20d1-Dascom" e será usada apenas a descrição do Modelo, "Elgin, I9". Detecção automática de Porta e Protocolo Como agora temos um Banco de Dados, que informa além da Descrição do equipamento, qual é o Tipo do mesmo e qual o protocolo que ele usa, então os componentes ACBrPosPrinter e ACBrETQ, podem fazer uso dessas informações... Ou seja, se o equipamento for detectado com sucesso, no momento da Ativação da Porta (durante a chamada ao método "Ativar"), será usado o Protocolo Definido no Banco de Dados. Se for detectado que o equipamento USB é na verdade uma porta COM virtual, então o ACBr irá preferir fazer uso da Porta COM virtual, chaveando para mesma, de forma transparente... Pois dessa forma ele tem um melhor suporte a leitura de informações do equipamento. Se for detectado que a porta USB possui um equipamento incompatível com o componente em questão, isso também será alertado... Exemplo, você tentar conectar em uma porta 'USB:Zebra, GC420t' no componente TACBrPosPrinter, então um erro será emitido, pois esse equipamento não é uma impressora de Bobinas Como a mágica funciona ? Reparem que foi adicionado ao repositório a Unit ACBrWinUSBDevice.pas, essa Unit implementa chamadas a SetupAPI do Windows, para detectar os Dispositivos USB que estão listados em uma determinada Classe de Equipamentos (Class GUID)... O estudo desse artigo, foi fundamental, para a criação dessa Unit. Uma vez capturada o nome da Interface do Equipamento USB (em TACBrUSBWinDevice.DeviceInterface), podemos acessá-lo usando funções de manipulação Arquivos da API do Windows, como: CreateFile, WriteFile, ReadFile. Nem todos os dispositivos USB implementam suporte aos métodos ReadFile ou WriteFile... ou seja, pode não funcionar em alguns dispositivos.. Se você souber qual é o nome da Interface USB do equipamento, poderá informar ela diretamente na propriedade "Porta" dos componentes... Exemplo: ACBrPosPrinter1.Porta := '\\?\usb#vid_1c8a&pid_3002#0000000000022#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}'; Para dúvidas, suporte ou correções, por favor crie um novo tópico, clicando aqui Para testar, baixe uma nova versão do PosPrinterTeste.exe1 ponto