Saudações,
Estou com um situação que imagino ter algo de errado na geração do arquivo. Estou gerando remessa com tipo de registro de 240 posições, o código do convênio tem 7 dígitos e a carteira dele é '17'. No fonte para o Banco do Brasil temos a função:
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;
O meu caso então é o último desta função. Porém o banco me pede o Nosso Número todo preenchido com zeros, pois a Característica do Título é Vinculada e Responsabilidade de Emissão é o Banco quem emite.