Olá,
Pessoal esta acontecendo uma coisa estranha: uso o exemplo da NFe2 e consegui eviar, receber e ainda gerar a nota em pdf, depois cancelei a nota tudo no modo homologação, dai parei e ao entrar novamente para continuar o projeto, dar erro exatamente no momento de assinar ou seja:
GerarNFe(vAux);
Showmessage(' gerou nota '); [color=#FF0000]ok gera pois não causa erro (depuração)[/color]
ACBrNFe1.Enviar(vNumLote,True);
Showmessage(' Enviou '); [color=#FF0000]não chega a mostrar msg.[/color]
Observando a rotina em ACBrNFe.pas:
function TACBrNFe.Enviar(ALote: String; Imprimir: Boolean): Boolean;
var
i: Integer;
begin
if NotasFiscais.Count <= 0 then
begin
if Assigned(Self.OnGerarLog) then
Self.OnGerarLog('ERRO: Nenhuma NF-e adicionada ao Lote');
raise EACBrNFeException.Create('ERRO: Nenhuma NF-e adicionada ao Lote');
exit;
end;
if NotasFiscais.Count > 50 then
begin
if Assigned(Self.OnGerarLog) then
Self.OnGerarLog('ERRO: Conjunto de NF-e transmitidas (máximo de 50 NF-e) excedido. Quantidade atual: '+IntToStr(NotasFiscais.Count));
raise EACBrNFeException.Create('ERRO: Conjunto de NF-e transmitidas (máximo de 50 NF-e) excedido. Quantidade atual: '+IntToStr(NotasFiscais.Count));
exit;
end;
showmessage('assinar'); [color=#FF0000]ok aparece esta mensagem[/color]
NotasFiscais.Assinar;
showmessage('depois de assinar'); [color=#FF0000]não aparece esta msg e da o erro abaixo relatado[/color]
NotasFiscais.Valida;
showmessage('depois de validar');
Aparece a mensagem (range check error) ou seja não assina e para nesta rotina em ACBrUtil.pas
class function NotaUtil.PosEx(const SubStr, S: AnsiString; Offset: Cardinal = 1): Integer;
var
I,X: Integer;
Len, LenSubStr: Integer;
begin
if Offset = 1 then
Result := Pos(SubStr, S)
else
begin
I := Offset;
LenSubStr := Length(SubStr);
Len := Length(S) - LenSubStr + 1;
while I <= Len do
begin
if S[I] = SubStr[1] then
begin
X := 1;
while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do [color=#FF0000]//// nesta linha esta o erro[/color]
Inc(X);
if (X = LenSubStr) then
begin
Result := I;
exit;
end;
end;
Inc(I);
end;
Result := 0;
end;
end;
Alguem ja passou por isso que possa mim dar uma luz, ja desinstalei a cadeia de certificados e instalei novamente e nada,
foi de uma hora para outra. Atualizei o ACBR com a versão mais recente e continua o mesmo erro.
Agradeço antecipadamente.