Descobri a solução: o CST estava correta, o que estava errado era informar um valor tributado, ou seja, para CST 41, o valor do ICMS deve estar na coluna "Outros".
Pessoal, parece que o componente ACBrNFeDANFEFR gera o erro acima quando existe mais que um dele no projeto vejam em
Como já tinha lido o tópico acima, só mantinha um deles instanciado, mas ao que parece, mesmo assim não posso criar outro dinamicamente.
O que fiz: excluí os únicos dois componentes instanciados (TACBrNFe e ACBrNFeDANFEFR) e os criei dinamicamente com as linhas que citei e funcionou, mas ainda não me atendeu e digo porque.
Tive todo esse trabalho porque meu projeto é feito em multi camadas, ou seja, possui um TDSServerModule por onde passam todas as conexões e se um usuário abrisse mais que uma instância do executável, o objeto ACBrNFeDANFEFR mantinha em memória a última NF impressa, ou seja, não reconhecia a leitura do novo XML, lembro que isso só acontecia se eu abrisse duas instâncias do meu sistema.
Depois de muitos testes vi que o problema era resolvido de duas formas:
1a. se dentro do meu ServerContainer eu mondasse a propriedade LifeCycle do componente TDSServerClass de Session para Invocation (que destrói a instância dos objetos assim que são enviados ao cliente).
2a. se eu criasse uma nova unit simples, com os objetos instanciados lá e "simulasse" um "LifeCycle Invocation", ou seja, cada vez que eu preciso utilizar os objetos ACBR, eu crio o formulário (nem preciso dar o Show) e o destruo após a impressão do DANFE ou envio de informações.
Optei pela 2a solução, pois não tive que fazer grandes mudanças no meu código.
Bom, pessoal é isso aí, espero que possa ter ajudado alguém e se houver outra forma de resolver o problema, avisem-me.
Abraço.
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.