-
Total de ítens
59 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Sérgio Caldeira Silva
-
-
26 minutos atrás, Sérgio Caldeira Silva disse:
O if executa o seguinte método: function CryptExportKey; external Advapi32 name 'CryptExportKey';
Dá-se a entender que a AdvApi32.dll está corrompida, porém, o erro ocorreu em dois computadores de desenvolvimento e no computador de produção do cliente. Não acredito que seja dll corrompida.
Aos mantenedores do ACBr, segue sugestão de alteração para que a msg apareça para os operadores / desenvolvedores:
except
{ Não foi capaz de Exportar/Copiar a Chave para o nosso Provedor
de Criptografia, então vamos usar o Provedor de Criptografia do
Certificado }
on E: Exception do
begin
CryptReleaseContext(mCryptProvider, 0);
mCryptProvider := mCryptProviderCert;
pfCallerFreeProv := False;
raise;
end;
end;
-
16 minutos atrás, Sérgio Caldeira Silva disse:
Srs., avancei um pouco e cheguei na unit ACBrDFeWinCryp, ao executar o if (em negrito), retorna false e cai no else onde gera a exceção (em negrito), daí pula para o except que não inicia mensagem alguma.
if CryptExportKey( hRSAKey, hSessKey, PRIVATEKEYBLOB, 0, Nil, mBytesLen ) then // Calcula mBytesLen
begin
Memory := AllocMem(mBytesLen); // Aloca a memória para receber o Blob
try
if CryptExportKey( hRSAKey, hSessKey, PRIVATEKEYBLOB, 0, Memory, mBytesLen ) then
begin
if not CryptImportKey(mCryptProvider, Memory, mBytesLen, hSessKey, 0, hExpKey ) then
raise Exception.Create('CryptImportKey');
end
else
raise Exception.Create('CryptExportKey');
finally
Freemem(Memory);
end;
end
else
raise Exception.Create('CryptExportKey - len');
except
{ Não foi capaz de Exportar/Copiar a Chave para o nosso Provedor
de Criptografia, então vamos usar o Provedor de Criptografia do
Certificado }CryptReleaseContext(mCryptProvider, 0);
mCryptProvider := mCryptProviderCert;
pfCallerFreeProv := False;
end;
O if executa o seguinte método: function CryptExportKey; external Advapi32 name 'CryptExportKey';
Dá-se a entender que a AdvApi32.dll está corrompida, porém, o erro ocorreu em dois computadores de desenvolvimento e no computador de produção do cliente. Não acredito que seja dll corrompida.
-
Srs., avancei um pouco e cheguei na unit ACBrDFeWinCryp, ao executar o if (em negrito), retorna false e cai no else onde gera a exceção (em negrito), daí pula para o except que não inicia mensagem alguma.
if CryptExportKey( hRSAKey, hSessKey, PRIVATEKEYBLOB, 0, Nil, mBytesLen ) then // Calcula mBytesLen
begin
Memory := AllocMem(mBytesLen); // Aloca a memória para receber o Blob
try
if CryptExportKey( hRSAKey, hSessKey, PRIVATEKEYBLOB, 0, Memory, mBytesLen ) then
begin
if not CryptImportKey(mCryptProvider, Memory, mBytesLen, hSessKey, 0, hExpKey ) then
raise Exception.Create('CryptImportKey');
end
else
raise Exception.Create('CryptExportKey');
finally
Freemem(Memory);
end;
end
else
raise Exception.Create('CryptExportKey - len');
except
{ Não foi capaz de Exportar/Copiar a Chave para o nosso Provedor
de Criptografia, então vamos usar o Provedor de Criptografia do
Certificado }CryptReleaseContext(mCryptProvider, 0);
mCryptProvider := mCryptProviderCert;
pfCallerFreeProv := False;
end;
-
Boa tarde Srs.!
Esta semana as NFS-e enviadas à Prefeitura de Vila Velha - ES estão retornando exceção, mas sem mensagem de erro.
Ao debugar, identifiquei que o erro é gerado no código abaixo da unit ACBrNFSeWebServices, mas não consegui identificar o motivo:
Result := FEnviarLoteRPS.Executar;
if not (Result) then
FEnviarLoteRPS.GerarException( FEnviarLoteRPS.Msg );Poderiam me dar um "norte" para facilitar o processo de debug?
-
Em 23/04/2021 at 09:38, Italo Giurizzato Junior disse:
Bom dia Sérgio,
Não devemos alterar a unit pcnLeitor pois esta é utilizada por todos os componentes que emitem Documentos Fiscais Eletrônicos.
Peço mais uma vez, anexe o XML de retorno que contem a data fora do padrão para que a equipe ACBr possa analisar e com isso decidir se há necessidade de alterar algo no pcnLeitor ou não.
Evite ao máximo misturar assuntos em uma mesma postagem.
Respondendo a sua ultima postagem que não tem nada haver com o assunto que esta sendo tratado, a resposta é: toda vez que você ADD os dados de um RPS na lista NotaFiscais o valor de Count é incrementado automaticamente.
Se você envia um Rps por vez, e o Count esta sendo incrementado, isso significa que você não esta limpando a lista antes de ADD o novo Rps.
Boa tarde Ítalo!
As alterações já foram anexadas nos posts anteriores.
-
2 horas atrás, Sérgio Caldeira Silva disse:
Bom dia Ítalo!
Fiz novos testes com o tratamento de data e deu tudo certo, contudo, não consegui identificar a origem, o WS está retornando a seguinte mensagem:
"ERRO: Conjunto de RPS transmitidos (máximo de 1 RPS) excedido. Quantidade atual: 18)
Você tem ideia do que pode ser?
Senhores,
Alguém sabe me informar como a propriedade NotasFiscais.Count é alimentada?
Pergunto porque envio uma NFS-e por vez, mas a cada envio, esta propriedade é incrementada, por isto o erro da mensagem acima.
-
Em 15/04/2021 at 14:52, Sérgio Caldeira Silva disse:
Ítalo, referente ao item 3 do post acima, consegui resolver. O erro vem da data no formato UTC, resolvi da forma descrita abaixo, porém, percebi que se alterar o tipo da tag para tcDatHorCFe possivelmente resolverá... é uma alternativa que ao meu ver, causará impacto em outros provedores, por isto fiz a alteração abaixo. Anexei a unit também.
function TLeitor.rCampo(const Tipo: TpcnTipoCampo; TAG: string; const TAGparada: string = ''): variant;var
ConteudoTag: string;
inicio, fim, inicioTAGparada: integer;
Ano, Mes, Dia: word;
begin
...tcDatVcto:
begin
if length(ConteudoTag)>0 then
begin
(* 15/04/2021. Sérgio Caldeira: a variágel "ConteudoTag" vem no formato
UTC, portanto, a formatação abaixo incorre em erro.
Substitui pelo tratamento abaixo.result := EncodeDate(StrToInt(copy(ConteudoTag, 07, 4)), StrToInt(copy(ConteudoTag, 04, 2)), StrToInt(copy(ConteudoTag, 01, 2)));
*)
{Verifica o formato da data para decodificá-la com o método correto.}
if Pos('T', ConteudoTag) > 0 then
begin
DecodeDate(ISO8601ToDate(ConteudoTag, false), Ano, Mes, Dia);
end
else if Pos('-', ConteudoTag) > 2 then
begin
Ano := StrToInt(copy(ConteudoTag, 1, 4));
Mes := StrToInt(copy(ConteudoTag, 6, 2));
Dia := StrToInt(copy(ConteudoTag, 9, 2));
end
else if Pos('/', ConteudoTag) > 2 then
begin
Ano := StrToInt(copy(ConteudoTag, 1, 4));
Mes := StrToInt(copy(ConteudoTag, 6, 2));
Dia := StrToInt(copy(ConteudoTag, 9, 2));
end
else begin
Ano := StrToInt(copy(ConteudoTag, 7, 4));
Mes := StrToInt(copy(ConteudoTag, 4, 2));
Dia := StrToInt(copy(ConteudoTag, 1, 2));
end;
result := EncodeDate(Ano, Mes, Dia);
end
else
Result := 0;
end;
....Bom dia Ítalo!
Fiz novos testes com o tratamento de data e deu tudo certo, contudo, não consegui identificar a origem, o WS está retornando a seguinte mensagem:
"ERRO: Conjunto de RPS transmitidos (máximo de 1 RPS) excedido. Quantidade atual: 18)
Você tem ideia do que pode ser?
-
Em 31/03/2021 at 13:36, Sérgio Caldeira Silva disse:
Boa tarde Ítalo!
As alterações de leiaute para prefeitura de Vila Velha - ES, passaram, mas ainda encontrei a necessidade de ajustar o código para esta prefeitura. Segue abaixo as observações, sendo que os itens 1 e 2 foram solucionados e o item 3 está pendente - ainda não consegui resolver.
1. O campo "InscricaoMunicipal" deverá ser preenchido com o CCM que a prefeitura fornece... no meu caso, substitui a inscrição por este código, já que não encontrei um campo que correspondesse ao CCM;
2. Na unit "pnfsEnvLoteRpsResposta", foi preciso alterar o método "function TretEnvLote.LerXml_ABRASF: Boolean;", visto que o campo DataRecebimento vem no formato UTF:
// Alguns provedores retornam apenas a data, sem o horário
if Length(Leitor.rCampo(tcStr, 'DataRecebimento')) > 10 then
begin
if FProvedor = proSmarAPDv23 then
begin
xData := Leitor.rCampo(tcstr, 'DataRecebimento');(* 31/03/2021. Sérgio Caldeira: o campo "DataRebimento" vem no formato
UTF, portanto, a formatação abaixo incorre em erro.
Substitui pela função ISO8601ToDate() do próprio Delphi.
infRec.FDataRecebimento := StrToDate(Copy(xData, 1, 10)) +
StrToTime(Copy(xData, 12, 8));
*)
infRec.FDataRecebimento := ISO8601ToDate(xData);
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDatHor, 'DataRecebimento');
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDat, 'DataRecebimento');
3. Na unit "pnfsNFSeR", no método "function TNFSeR.LerNFSe: Boolean;", o atributo LayoutXML, está sendo iniciado com o valor loABRASFv2, e no código abaixo está dando erro... imagino que seja pelo valor, na medida em que o leiaute foi alterado para a versão 2.03.
Empaquei aqui, ainda não identifiquei onde alterar. Se algum moderador quiser ajudar, estou com o ambiente todo preparado para auditar o código.
Ítalo, referente ao item 3 do post acima, consegui resolver. O erro vem da data no formato UTC, resolvi da forma descrita abaixo, porém, percebi que se alterar o tipo da tag para tcDatHorCFe possivelmente resolverá... é uma alternativa que ao meu ver, causará impacto em outros provedores, por isto fiz a alteração abaixo. Anexei a unit também.
function TLeitor.rCampo(const Tipo: TpcnTipoCampo; TAG: string; const TAGparada: string = ''): variant;var
ConteudoTag: string;
inicio, fim, inicioTAGparada: integer;
Ano, Mes, Dia: word;
begin
...tcDatVcto:
begin
if length(ConteudoTag)>0 then
begin
(* 15/04/2021. Sérgio Caldeira: a variágel "ConteudoTag" vem no formato
UTC, portanto, a formatação abaixo incorre em erro.
Substitui pelo tratamento abaixo.result := EncodeDate(StrToInt(copy(ConteudoTag, 07, 4)), StrToInt(copy(ConteudoTag, 04, 2)), StrToInt(copy(ConteudoTag, 01, 2)));
*)
{Verifica o formato da data para decodificá-la com o método correto.}
if Pos('T', ConteudoTag) > 0 then
begin
DecodeDate(ISO8601ToDate(ConteudoTag, false), Ano, Mes, Dia);
end
else if Pos('-', ConteudoTag) > 2 then
begin
Ano := StrToInt(copy(ConteudoTag, 1, 4));
Mes := StrToInt(copy(ConteudoTag, 6, 2));
Dia := StrToInt(copy(ConteudoTag, 9, 2));
end
else if Pos('/', ConteudoTag) > 2 then
begin
Ano := StrToInt(copy(ConteudoTag, 1, 4));
Mes := StrToInt(copy(ConteudoTag, 6, 2));
Dia := StrToInt(copy(ConteudoTag, 9, 2));
end
else begin
Ano := StrToInt(copy(ConteudoTag, 7, 4));
Mes := StrToInt(copy(ConteudoTag, 4, 2));
Dia := StrToInt(copy(ConteudoTag, 1, 2));
end;
result := EncodeDate(Ano, Mes, Dia);
end
else
Result := 0;
end;
.... -
Em 12/04/2021 at 15:37, Sérgio Caldeira Silva disse:
Boa tarde Ítalo!
O erro está justamente ao ler o retorno, pelo menos foi isto que entendi.
Se tiver algum método que grave o retorno, me informe que eu faço o teste novamente. Se não tiver, podemos combinar um horário para testar, porque meu ambiente está todo preparado para isto, você conectando em meu computador realiza o procedimento rapidinho.
Quanto ao Delphi 7, não tenho como testá-lo... infelizmente.
Ítalo, analisei a unit System.DateUtils, onde se encontram os métodos, nela não está documentado compatibilidade de versão ou data em que foi criada. Pelo que li, acredito não ser compatível. Contudo, esta unit poderia ser incorporada ao projeto ACBr com outro nome mantendo a compatibilidade com versões antigas e o lazarus, que acha?
Com as integrações com sistemas web e sistemas globais, entendo que esbarraremos com este formato inúmeras vezes.
-
Em 12/04/2021 at 08:42, Italo Giurizzato Junior disse:
Bom dia Sérgio,
Você sabe me dizer esse no Delphi 7 temos a função: ISO8601ToDate ?
Precisamos manter compatibilidade desde o Delphi 7.
Por favor anexe o XML de retorno para que eu possa verificar como esta sendo retornado a data de recebimento.
Bom dia Ítalo!
Segue a pasta onde os xml foram gerados.
-
Bom dia Ítalo!
A empresa reclamou que estamos fazendo os testes em ambiente de produção, contudo, confirmei na parametrização e em debug, que o parâmetro está Producao = snNao;
Sabe me dizer em qual unit debugo isto? Assim eu confirmo qual WS está sendo chamado e informo o Gerente de TI da empresa cliente que está querendo saber.
Grato pela atenção de sempre.
-
6 horas atrás, Italo Giurizzato Junior disse:
Bom dia Sérgio,
Você sabe me dizer esse no Delphi 7 temos a função: ISO8601ToDate ?
Precisamos manter compatibilidade desde o Delphi 7.
Por favor anexe o XML de retorno para que eu possa verificar como esta sendo retornado a data de recebimento.
Boa tarde Ítalo!
O erro está justamente ao ler o retorno, pelo menos foi isto que entendi.
Se tiver algum método que grave o retorno, me informe que eu faço o teste novamente. Se não tiver, podemos combinar um horário para testar, porque meu ambiente está todo preparado para isto, você conectando em meu computador realiza o procedimento rapidinho.
Quanto ao Delphi 7, não tenho como testá-lo... infelizmente.
-
5 horas atrás, Italo Giurizzato Junior disse:
Bom dia Sérgio,
Não esta mais disponível para download a unit que você fez alteração.
Por favor anexe novamente as units alteradas para que possamos analisar.
Boa tarde Ítalo!
Segue conforme solicitado. Se der problema novamente, a alteração que fiz, está em um post anterior.
-
17 horas atrás, rodrigo4t disse:
Sérgio, bati no mesmo problema que você.
Engraçado que no mês de março meu cliente conseguiu emitir todas as notas da maneira como estava o componente. Esse mês começou a dar erro e agora ele tem 300 notas esperando pra serem emitidas e esse maledeto provedor SmaraPD sem rodar.
Na unit pnfsEnvLoteRpsResposta eu apliquei a mesma correção que você, convertendo do formato ISO 8601:
infRec.FDataRecebimento := ISO8601ToDate(xData)
Com isso consegui passar desse ponto, mas acredito ter chegado no mesmo ponto em que você parou:
Nesse trecho da pnfsNFSeR, no método TNFSeR.LerNFSe_ABRASF_V2: (linha 2286)
if FProvedor in [proSmarAPDv23, proAEG] then
NFSe.DataEmissaoRps := Leitor.rCampo(tcDatVcto, 'DataEmissao') <--- aqui
else
NFSe.DataEmissaoRps := Leitor.rCampo(tcDat, 'DataEmissao');O erro é que o conteúdo de 'DataEmissao' está voltando -1
E aqui empaquei. Você conseguiu avançar desse ponto ? Alguém tem alguma ideia ?
Bom dia Rodrigo!
Não avancei neste ponto, fiquei na dúvida se criava um método novo para o leiaute 2.3 ou se era possível tratar no leiaute 2 da Abrasf.
Apesar de não conhecer profundamente os fontes, vou tentar hoje à tarde. O ruim é que as NFS-e dos clientes vão acumulando... a pressão é grande, a gente não tem paz nem para raciocinar (rsrsrs).
Assim que conseguir alguma coisa, posto aqui.
-
3 horas atrás, Sérgio Caldeira Silva disse:
Boa tarde Ítalo!
As alterações de leiaute para prefeitura de Vila Velha - ES, passaram, mas ainda encontrei a necessidade de ajustar o código para esta prefeitura. Segue abaixo as observações, sendo que os itens 1 e 2 foram solucionados e o item 3 está pendente - ainda não consegui resolver.
1. O campo "InscricaoMunicipal" deverá ser preenchido com o CCM que a prefeitura fornece... no meu caso, substitui a inscrição por este código, já que não encontrei um campo que correspondesse ao CCM;
2. Na unit "pnfsEnvLoteRpsResposta", foi preciso alterar o método "function TretEnvLote.LerXml_ABRASF: Boolean;", visto que o campo DataRecebimento vem no formato UTF:
// Alguns provedores retornam apenas a data, sem o horário
if Length(Leitor.rCampo(tcStr, 'DataRecebimento')) > 10 then
begin
if FProvedor = proSmarAPDv23 then
begin
xData := Leitor.rCampo(tcstr, 'DataRecebimento');(* 31/03/2021. Sérgio Caldeira: o campo "DataRebimento" vem no formato
UTF, portanto, a formatação abaixo incorre em erro.
Substitui pela função ISO8601ToDate() do próprio Delphi.
infRec.FDataRecebimento := StrToDate(Copy(xData, 1, 10)) +
StrToTime(Copy(xData, 12, 8));
*)
infRec.FDataRecebimento := ISO8601ToDate(xData);
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDatHor, 'DataRecebimento');
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDat, 'DataRecebimento');
3. Na unit "pnfsNFSeR", no método "function TNFSeR.LerNFSe: Boolean;", o atributo LayoutXML, está sendo iniciado com o valor loABRASFv2, e no código abaixo está dando erro... imagino que seja pelo valor, na medida em que o leiaute foi alterado para a versão 2.03.
Empaquei aqui, ainda não identifiquei onde alterar. Se algum moderador quiser ajudar, estou com o ambiente todo preparado para auditar o código.
Corrigindo... data no formato UTC: UTC time zone ou ISO 8601.
-
2 horas atrás, Juliana Tamizou disse:
Boa tarde.
Por favor anexe as units alteradas.
Att.
Boa tarde Juliana!
Segue a unit, porém, é preciso verificar se esta função do Delphi está disponível em todas as versões do Delphi e do Lazarus... por isto não subi os fontes. Não tenho o Lazarus para testar e nem versões anteriores a 10.3 do Delphi.
A alteração está com a data de 31/03/2021 e com meu nome para facilitar a sua localização.
-
13 minutos atrás, Sérgio Caldeira Silva disse:
Boa tarde Ítalo!
As alterações de leiaute para prefeitura de Vila Velha - ES, passaram, mas ainda encontrei a necessidade de ajustar o código para esta prefeitura. Segue abaixo as observações, sendo que os itens 1 e 2 foram solucionados e o item 3 está pendente - ainda não consegui resolver.
1. O campo "InscricaoMunicipal" deverá ser preenchido com o CCM que a prefeitura fornece... no meu caso, substitui a inscrição por este código, já que não encontrei um campo que correspondesse ao CCM;
2. Na unit "pnfsEnvLoteRpsResposta", foi preciso alterar o método "function TretEnvLote.LerXml_ABRASF: Boolean;", visto que o campo DataRecebimento vem no formato UTF:
// Alguns provedores retornam apenas a data, sem o horário
if Length(Leitor.rCampo(tcStr, 'DataRecebimento')) > 10 then
begin
if FProvedor = proSmarAPDv23 then
begin
xData := Leitor.rCampo(tcstr, 'DataRecebimento');(* 31/03/2021. Sérgio Caldeira: o campo "DataRebimento" vem no formato
UTF, portanto, a formatação abaixo incorre em erro.
Substitui pela função ISO8601ToDate() do próprio Delphi.
infRec.FDataRecebimento := StrToDate(Copy(xData, 1, 10)) +
StrToTime(Copy(xData, 12, 8));
*)
infRec.FDataRecebimento := ISO8601ToDate(xData);
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDatHor, 'DataRecebimento');
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDat, 'DataRecebimento');
3. Na unit "pnfsNFSeR", no método "function TNFSeR.LerNFSe: Boolean;", o atributo LayoutXML, está sendo iniciado com o valor loABRASFv2, e no código abaixo está dando erro... imagino que seja pelo valor, na medida em que o leiaute foi alterado para a versão 2.03.
Empaquei aqui, ainda não identifiquei onde alterar. Se algum moderador quiser ajudar, estou com o ambiente todo preparado para auditar o código.
Opa! Me esqueci de incluir o código:
case LayoutXML of
loABRASFv1: Result := LerNFSe_ABRASF_V1;
loABRASFv2: Result := LerNFSe_ABRASF_V2;
loEL: Result := LerNFSe_EL;
loEGoverneISS: Result := False; // Falta implementar
loEquiplano: Result := LerNFSe_Equiplano;
loGoverna: Result := LerNFSe_Governa;
loInfisc: Result := LerNFSe_Infisc;
loISSDSF: Result := LerNFSe_ISSDSF;
loCONAM: Result := LerNFSe_CONAM;
loAgili: Result := LerNFSe_Agili;
loSP: Result := LerNFSe_SP;
loSMARAPD: Result := LerNFSe_Smarapd;
loIPM: Result := LerNFSe_IPM;
loSigIss: Result := LerNFSe_SigIss;
loElotech: Result := LerNFSe_Elotech;
loSiat: Result := LerNFSe_Siat;
loGiap: Result := LerNFSe_Giap;
else
Result := False;
end;
-
Boa tarde Ítalo!
As alterações de leiaute para prefeitura de Vila Velha - ES, passaram, mas ainda encontrei a necessidade de ajustar o código para esta prefeitura. Segue abaixo as observações, sendo que os itens 1 e 2 foram solucionados e o item 3 está pendente - ainda não consegui resolver.
1. O campo "InscricaoMunicipal" deverá ser preenchido com o CCM que a prefeitura fornece... no meu caso, substitui a inscrição por este código, já que não encontrei um campo que correspondesse ao CCM;
2. Na unit "pnfsEnvLoteRpsResposta", foi preciso alterar o método "function TretEnvLote.LerXml_ABRASF: Boolean;", visto que o campo DataRecebimento vem no formato UTF:
// Alguns provedores retornam apenas a data, sem o horário
if Length(Leitor.rCampo(tcStr, 'DataRecebimento')) > 10 then
begin
if FProvedor = proSmarAPDv23 then
begin
xData := Leitor.rCampo(tcstr, 'DataRecebimento');(* 31/03/2021. Sérgio Caldeira: o campo "DataRebimento" vem no formato
UTF, portanto, a formatação abaixo incorre em erro.
Substitui pela função ISO8601ToDate() do próprio Delphi.
infRec.FDataRecebimento := StrToDate(Copy(xData, 1, 10)) +
StrToTime(Copy(xData, 12, 8));
*)
infRec.FDataRecebimento := ISO8601ToDate(xData);
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDatHor, 'DataRecebimento');
end
else
infRec.FDataRecebimento := Leitor.rCampo(tcDat, 'DataRecebimento');
3. Na unit "pnfsNFSeR", no método "function TNFSeR.LerNFSe: Boolean;", o atributo LayoutXML, está sendo iniciado com o valor loABRASFv2, e no código abaixo está dando erro... imagino que seja pelo valor, na medida em que o leiaute foi alterado para a versão 2.03.
Empaquei aqui, ainda não identifiquei onde alterar. Se algum moderador quiser ajudar, estou com o ambiente todo preparado para auditar o código.
-
1 hora atrás, rodrigo4t disse:
Sérgio, você teve problemas com a senha ?
Depois de muita luta eu consegui fazer o envio, mas recebo mensagem de "senha inválida" mesmo utilizando a senha que meu cliente usa pra fazer a emissão pelo portal. Estou aguardando o Italo liberar os fontes atualizados, mas desconfio que terei problemas com a senha ainda.
Bom dia Rodrigo!
Na validação, não houve nenhuma msg de erro referente a senha.
Mas não consegui registrar a NFS-e por questões de leiaute.
Atenciosamente,
- 1
-
2 horas atrás, Italo Giurizzato Junior disse:
Bom dia Sérgio,
A cidade de Vila Velha/ES trocou de provedor, ainda hoje vou estar disponibilizando as alterações.
Mas necessito dos schemas (arquivos XSD), pois a cidade agora esta usando o provedor SmarAPD que implementou um webservice que se utiliza da versão 2.03 do layout da ABRASF.
Logo eu necessito dos schemas da versão 2.03 que esse provedor esta utilizando.
Bom dia Ítalo!
Grato pelo retorno.
Pesquisei no site da prefeitura e eles não atualizaram ainda, lá continua informando a versão 2.01: https://nfse.vitoria.es.gov.br/doc/documentacao.cfm
Pesquisei no site da Abrasf e encontrei a documentação atualizada: http://www.abrasf.org.br/pagina_publica.php
Há algum local em que eu possa pesquisar sobre a liberação desta atualização? Pergunto só para evitar downloads desnecessários.
Grato pela atenção.
-
Boa tarde Ítalo!
O suporte da NFS-e de Vitória, finalmente respondeu. Seria possível me orientar como proceder?
Uma ANOTAÇÃO foi adicionada a esta tarefa. ---------------------------------------------------------------------- (0269941) (Gerente) - 24/02/2021 14:46 https://centraldeajuda.vitoria.es.gov.br/ ---------------------------------------------------------------------- A estrutura está faltando informar o método utilizado. Ao que parece, estão tentando enviar utilizando o GerarNfseEnvio. Ao invés do xml iniciar com: <?xml version="1.0" encoding="UTF-8"?> <Rps xmlns="http://www.abrasf.org.br/nfse.xsd"> <InfDeclaracaoPrestacaoServico Id="2734E"> Deveria iniciar com: <?xml version="1.0" encoding="utf-8"?> <GerarNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"> <Rps> <InfDeclaracaoPrestacaoServico Id="2734E"> ----------------------------------------------------------------------
-
Em 19/02/2021 at 08:52, Italo Giurizzato Junior disse:
Bom dia Sérgio,
Qual método você executou?
Em 18/02/2021 at 11:59, Sérgio Caldeira Silva disse:Bom dia Italo!
Após preencher todos os campos, eu executo o seguinte método:
{05/11/2020. Sérgio: Há vários métodos de envio de acordo com cada tipo de provedor.}
Enviar(StrToInt(NotasFiscais.NumeroLote));Porém, ele não gerou a tag LoteRps, seria porque só estou testando com um RPS ou tenho que executar mais algum procedimento?
Pelo exemplo da unit Frm_ACBrNFSe, parece que está tudo correto.
Boa tarde Ítalo!
Usei este método acima (Enviar), porém, já testei com todos os outros.
Qual o critério o ACBr usa para definir se o xml será em lote ou uma única NFS-e? Talvez seja isto que está faltando.
-
Italo, grato pelo retorno.
Só gerou o arquivo 3220082950229800011056000000000002734-rps.xml na pasta C:\temp\PastaDeCompilacao\NFSe\CaixaDeEntrada\202008\NFSe\Recibos.
-
Bom dia Italo!
Após preencher todos os campos, eu executo o seguinte método:
{05/11/2020. Sérgio: Há vários métodos de envio de acordo com cada tipo de provedor.}
Enviar(StrToInt(NotasFiscais.NumeroLote));Porém, ele não gerou a tag LoteRps, seria porque só estou testando com um RPS ou tenho que executar mais algum procedimento?
Pelo exemplo da unit Frm_ACBrNFSe, parece que está tudo correto.
NFS-e de Vila Velha, Envio falha sem msg de erro
em ACBrNFSe
Postado
Boa noite Ítalo!
Estou fazendo a conversão, mas não encontrei a propriedade abaixo, poderia me ajudar?
// Para o provedor ISSDigital deve-se informar também:
Prestador.Senha := NfePrmPreSen;