No meu caso eu estava preenchendo as propriedades
.Cedente.TipoCarteira := tctRegistrada; (1)
.Banco.LayoutVersaoArquivo := 810;
Porem, depurando, percebi que mesmo eu tendo preenchido a propriedade TipoCarteira com 1, quando chegava na procedure
function TACBrBancoSicoob.CalcularTamMaximoNossoNumero(const Carteira: String; const NossoNumero : String = ''; const Convenio: String = ''): Integer;
begin
case StrToIntDef(Carteira,0) of
1 : begin
if fpLayoutVersaoArquivo = 810 then
Result := 8
else
Result := 7
end;
9 : Result := 9;
else
Result := 7;
end;
fpTamanhoMaximoNossoNum := Result;
end;
O parâmetro Carteira chegava como 0
Se mudar a linha
case StrToIntDef(Carteira,0) of
para
case StrToIntDef(Carteira,1) of
Fica resolvido, porém optei por não mudar o fonte do ACBr para não correr risco de problema em futuras atualizações.
Sendo assim a melhor solução que encontrei foi voltar a usar o nossonumero com 7 posições.