Quando gero remessa no formato cnab 240 na carteira 17/19 nosso número no segmento P da linha de remessa deveria ser gerado '00000000000000000000' pois nessa carteira é o banco quem gera o nosso número, porém o ACBRboleto está executando essa função que concatena com o número do convênio:
function TACBrBancoBrasil.FormataNossoNumero(const ACBrTitulo :TACBrTitulo): String;
var
ANossoNumero, AConvenio, wNossoNumero : String;
wTamNossoNum: Integer;
begin
with ACBrTitulo do
begin
AConvenio := ACBrBoleto.Cedente.Convenio;
ANossoNumero := IntToStr(StrToInt64(OnlyNumber(NossoNumero)));
wNossoNumero := OnlyNumber(NossoNumero);
wTamNossoNum := CalcularTamMaximoNossoNumero(Carteira,wNossoNumero);
if ((ACBrTitulo.Carteira = '16') or (ACBrTitulo.Carteira = '18')) and
(Length(AConvenio) = 6) and (wTamNossoNum = 17) then
ANossoNumero := padR(ANossoNumero, 17, '0')
else if Length(AConvenio) <= 4 then
ANossoNumero := padR(AConvenio, 4, '0') + padR(ANossoNumero, 7, '0')
else if (Length(AConvenio) > 4) and (Length(AConvenio) <= 6) then
ANossoNumero := padR(AConvenio, 6, '0') + padR(ANossoNumero, 5, '0')
else if (Length(AConvenio) = 7) and (ACBrTitulo.Carteira = '11') then
ANossoNumero := padR('0', 7, '0') + padR(ANossoNumero, 10, '0')
else if (Length(AConvenio) = 7) and ((ACBrTitulo.Carteira <> '11')) then
ANossoNumero := padR(AConvenio, 7, '0') + padR(ANossoNumero, 10, '0');
end;
Result := ANossoNumero;
end;