Realizando a alteração abaixo dentro do arquivo ACBrBancoSafra.pas o boleto foi gerado conforme as orientações para homologação.
function TACBrBancoSafra.MontarCampoNossoNumero(const ACBrTitulo: TACBrTitulo): string;
begin
with ACBrTitulo do
begin
Result := PadLeft(RightStr(NossoNumero,8),9,'0'); // + '-' + CalcularDigitoVerificador(ACBrTitulo);
end;
end;
function TACBrBancoSafra.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): string;
var
CodigoBarras, FatorVencimento, DigitoCodBarras: string;
begin
with ACBrTitulo.ACBrBoleto do
begin
FatorVencimento := CalcularFatorVencimento(ACBrTitulo.Vencimento);
CodigoBarras := IntToStr(Banco.Numero) + '9' + FatorVencimento +
IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) +
'7' + Cedente.Agencia + Cedente.AgenciaDigito + Cedente.Conta + Cedente.ContaDigito +
PadLeft(RightStr(ACBrTitulo.NossoNumero,8),9,'0') + '2';
//PadLeft(RightStr(ACBrTitulo.NossoNumero,8),8,'0') + CalcularDigitoVerificador(ACBrTitulo) + '2';
DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
end;
Result := IntToStr(Numero) + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);
end;