Ir para conteúdo
  • Cadastre-se

dev botao

Ct-E Criando Chaves De Acessos Diferentes Para O Mesmo Número?


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 4001 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá pessoal!

 

Está acontecendo algo muito intrigante no ACBrNFeMonitor2 0.7.17.2 - CAPICOM com CT-e, esta é

a versão que estou usando.

 

Na NF-e, está tudo perfeito, por exemplo, eu crio um novo xml, valido, assino, transmito, o mesmo é

autorizado, tudo certo. Quando Crio novamente, ele gera a mesma chave de acesso, aí consulto

e ele autoriza normalmente.

 

Mas o mesmo não acontece com o CT-e, por exemplo, Criei, validei, assinei e transmiti um CT-e

de teste número 106 com a seguinte chave de acesso:

 

41131205294337000172570010000001061594978542

 

Beleza ele transmite normalmente e autoriza, mas se em seguida, tento criar novamente, o

mesmo CT-e 106, ele gera uma chave de acesso diferente:

 

41131205294337000172570010000001061092010452

 

Aí a consulta retorna em erro logicamente, mas porque isto acontece só com o CT-e?

Porque na NF-e isto não ocorre?

 

Fico no aguardo e desde já agradeço pessoal!

Pablo Ferreira .·.

Programador Delphi/Visual Basic

Atlantis Informática

Postado

Olá Régys obrigado pela resposta:

 

Fiz como você disse, veja em ENTNFE.TXT:

 

CTE.CriarCTe("[ide]

cCT=1

CFOP=5352

natOp=Prestacao de servico de transporte a estabelecimento industr

forPag=0

...

 

E ele gerou o Ct-e com esta chave de acesso:

 

41131205294337000172570010000001071000000010

 

Autorizou ok, mas quando fui consultar não deu certo, na Receita ficou a seguinte chave:

 

41130505294337000172570010000001071458724823

 

Então a consulta retorna o seguinte erro;

 

[CONSULTA]

Versao=PR-v1_1_5

TpAmb=1

VerAplic=PR-v1_1_5

CStat=216

XMotivo=Chave de Acesso difere da cadastrada

CUF=41

ChCTe=

DhRecbto=30/12/1899

NProt=

DigVal=

 

Por que na Receita está esta chave bem diferente?

 

Fico no aguardo, obrigado.

Pablo Ferreira .·.

Programador Delphi/Visual Basic

Atlantis Informática

  • Moderadores
Postado

Você está informando cCT o correto é cNF 

 

Você não está passando um valor para a tag cNF, então o monitor gera uma nova a cada processo, porque o cNF deve ser um número aleatório controlado pelo aplicativo.

Basta informa a tag cNF sempre que a chave será igual.

 

CTE.CriarCTe("[ide]

cCT=1
CFOP=5352
natOp=Prestacao de servico de transporte a estabelecimento industr
forPag=0
...

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

Olá Régys obrigado pela resposta,

 

Infelizmente o problema persiste, veja abaixo o ENTNFE.TXT:

 

CTE.CriarCTe("[ide]
cNF=1
CFOP=5352
natOp=Prestacao de servico de transporte a estabelecimento industr
forPag=0
mod=57
serie=1
nCT=113
dhEmi=11/12/2013

...

 

Chave gerada na Autorização:

41131205294337000172570010000001131528943609

 

Chave gerada na Consulta:

41131205294337000172570010000001131348170261

 

Estranho não? Fico no aguardo.

Pablo Ferreira .·.

Programador Delphi/Visual Basic

Atlantis Informática

  • Consultores
Postado

Boa noite a todos,

 

Chequei os fontes do ACBrNFeMonitor e não encontrei nada de anormal.

 

O campo correto é cCT no caso do CT-e.

 

Foi informado cCT=1 e esse valor foi utilizado na montagem da chave, correto?

 

O XML salvo em disco a chave é: 41131205294337000172570010000001071000000010 ?

 

Esse CT-e foi assinado, enviado e protocolado como autorizado?

 

Foi dito que ao consultar "não deu certo", será que não esta sendo enviado novamente o mesmo CTe so que agora com o cCT=0 ?

 

Para mim é a unica resposta por estar gerando a chave: 41130505294337000172570010000001071458724823

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Régys e Italo obrigado pelas respostas.

 

Italo na verdade o cCT=1, este valor de um coloquei aleatoriamente, eu nem sei qual deveria

ser o valor correto, o número que coloquei não foi utilizado na montagem da chave, não

sei nem como se faz isso, tem alguma regra para criação deste número? Qual seria?

Acredito que seja este o problema.

 

Fico no aguardo, obrigado!

Pablo Ferreira .·.

Programador Delphi/Visual Basic

Atlantis Informática

  • Consultores
  • Solution
Postado

Bom dia Pablo,

 

Entre varias informações no CT-e temos:

 

nCT = Numero do CT-e que é utilizado na montagem da chave e possui um tamanho máximo de 9 digitos, o numero é sequencial e vai de 1 até 999.999.999

 

serie = Série do CT-e que é utilizado na montagem da chave e possui um tamanho máximo de 3 digitos, a série é sequencial e vai de 1 até 999, avançamos para a série seguinte quando o nCT atinge o seu limite máximo, ou seja, 999.999.999 e consequentemente o nCT volta para 1.

 

cCT = Código do CT-e que é utilizado na montagem da chave e possui um tamanho máximo de 8 digitos, a SEFAZ orienta aos desenvolvedores que o código seja um numero aleatório.

 

Quando atribuimos o valor zero ao cCT ( cCT=0 ) o componente se encarrega de gerar esse numero aleatório, por outro lado se você informar um numero diferente de zero, o componente se utiliza desse numero para a montagem da chave.

 

Eu não utilizo o ACBrNFeMonitor para emitir o CT-e, pois desenvolvo em Delphi logo utilizo diretamente o componente, componente este também utilizado pelo monitor.

 

A diferença é que o Monitor se lê um arquivo txt para poder alimentar o componente e gerar o XML, já a minha aplicação lê as informações do banco de dados.

 

No meu caso, a tabela (banco de dados) que contem os dados pertinentes ao transporte da carga tem um campo chamado: CodigoCT, a rotina responsável por salvar as informações digitadas pelo usuário nessa tabela, gera um código aleatório e ele é armazenado no campo CodigoCT.

 

A rotina que alimenta o componente para posteriormente gerar o XML, atribui o conteudo do campo CodigoCT (banco de dados) ao campo cCT (componente), algo do tipo:

 

cCT := CodigoCT;

 

Desta forma o componente vai utilizar o numero informado, logo não é para ele gerar.

 

Existem desenvolvedores que atribuem ao campo cCT o mesmo valor de nCT, ou seja, se o numero do CT-e é 456 o código também será 456.

 

Não recomendo fazer desta forma, por dois motivos:

 

1. A SEFAZ recomenda que seja um código aleatório;

2. O tamanho em digitos do nCT é maior do que cCT.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Muito obrigado Italo problema resolvido!

 

Apesar de não ser recomendado como você disse, o que me resolveu foi usar o mesmo nCT no cCT.

 

Agora gera sempre a mesma chave de acesso.

 

Abraço à todos, e se não conversarmos mais, um feliz natal!!!!!

  • Curtir 2

Pablo Ferreira .·.

Programador Delphi/Visual Basic

Atlantis Informática

×
×
  • 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.

The popup will be closed in 10 segundos...