Detectei a seguinte situação usando impressoras Bematech (no emulador também).
Quando estamos fazendo uma venda de um item e acaba o papel, o ACBrECF não consegue atualizar o AAC.
Isso acontece pois ao tentar puxar o GT, o ACBrECF apesar de receber o retorno correto, levanta uma exceção.
Assim o comando DoAtualizaGT não funciona.
Qual o problema disso? Se um usuário esquecer de trocar o papel, e ele acabar durante uma impressão do cupom, o ACBrAAC vai ficar diferente do valor do ECF. Normalmente, isso deveria travar o programa para vendas e etc...
A correção seria fazer o componente ignorar o sinal de SEM PAPEL, pelo menos durante o retorno do GT. Vocês podem ver como isso acontece se marcar o emulador como sem papel e tentar retornar o Grande Total.
Percebi que o código atual do TACBrECFBematech.EnviaComando_ECF já faz um tratamento similar:
PediuStatus := ( cmd = #19 ) ; { quando pede Status nao deve disparar
exceçao com erros "Pouco Papel" ou "Cupom Aberto" }[/code]
Talvez pudéssemos fazer algo parecido para os comandos que são passados por causa do RetornaInfoECF?