Sim consegui Resolver na linha comentada dos fontes do Acbr
// FPDadosMsg := {FTagI + }GerarDadosMsg.Gera_DadosMsgSubstituirNFSe{ + FTagF};
coloquei devolta a tag
FPDadosMsg := FTagI + GerarDadosMsg.Gera_DadosMsgSubstituirNFSe + FTagF;
Segue código abaixo:
procedure TNFSeSubstituirNFSe.DefinirDadosMsg;
var
i: Integer;
Gerador: TGerador;
Identificador: string;
begin
FCabecalhoStr := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.CabecalhoStr;
FDadosStr := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.DadosStr;
FTagGrupo := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.TagGrupo;
FTagElemento := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.TagElemento;
FDocElemento := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.DocElemento;
FInfElemento := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.InfElemento;
FxsdServico := FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoSubstituir;
Identificador := '';/// FPConfiguracoesNFSe.Geral.ConfigGeral.Identificador;
if Identificador <> '' then
Identificador := ' ' + Identificador + '="sub' +
TNFSeSubstituirNfse(Self).FNumeroNFSe + '"';
InicializarDadosMsg(FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.IncluiEncodingCab);
GerarDadosMsg := TNFSeG.Create;
try
if FTagGrupo <> '' then
FTagGrupo := FPrefixo3 + FTagGrupo;
if FdocElemento <> '' then
FdocElemento := FPrefixo3 + FdocElemento;
if FPConfiguracoesNFSe.Geral.ConfigAssinar.RPS then
begin
for I := 0 to FNotasFiscais.Count - 1 do
GerarLoteRPScomAssinatura(FNotasFiscais.Items.XMLAssinado);
end
else begin
for I := 0 to FNotasFiscais.Count - 1 do
GerarLoteRPSsemAssinatura(FNotasFiscais.Items.XMLOriginal);
end;
case FProvedor of
proEquiplano,
proPublica: FURI:= '';
proDigifred: FURI := 'CANC' + TNFSeSubstituirNfse(Self).FNumeroNFSe;
proSaatri: FURI := 'Cancelamento_' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ;
proIssIntel,
proISSNet: begin
FURI := '';
FURIRef := 'http://www.w3.org/TR/2000/REC-xhtml1-20000126/';
end;
proTecnos: FURI := '2' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ +
IntToStrZero(StrToInt(TNFSeSubstituirNfse(Self).FNumeroNFSe), 16);
else
FURI := 'pedidoCancelamento_' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ +
FPConfiguracoesNFSe.Geral.Emitente.InscMun +
TNFSeSubstituirNfse(Self).FNumeroNFSe;
end;
InicializarTagITagF;
if FProvedor in [proIssDSF] then
begin
Gerador := TGerador.Create;
try
Gerador.ArquivoFormatoXML := '';
for i := 0 to FNotasFiscais.Count-1 do
begin
with FNotasFiscais.Items do
begin
Gerador.wGrupoNFSe('Nota Id="nota:' + NFSe.Numero + '"');
Gerador.wCampoNFSe(tcStr, '', 'InscricaoMunicipalPrestador', 01, 11, 1, FPConfiguracoesNFSe.Geral.Emitente.InscMun, '');
Gerador.wCampoNFSe(tcStr, '#1', 'NumeroNota', 01, 12, 1, OnlyNumber(NFSe.Numero), '');
Gerador.wCampoNFSe(tcStr, '', 'CodigoVerificacao', 01, 255, 1, NFSe.CodigoVerificacao, '');
Gerador.wCampoNFSe(tcStr, '', 'MotivoCancelamento', 01, 80, 1, TNFSeSubstituirNfse(Self).FMotivoCancelamento, '');
Gerador.wGrupoNFSe('/Nota');
end;
end;
FvNotas := Gerador.ArquivoFormatoXML;
finally
Gerador.Free;
end;
end;
InicializarGerarDadosMsg;
with GerarDadosMsg do
begin
NumeroNFSe := TNFSeSubstituirNfse(Self).NumeroNFSe;
CodigoCanc := TNFSeSubstituirNfse(Self).FCodigoCancelamento;
MotivoCanc := TNFSeSubstituirNfse(Self).FMotivoCancelamento;
NumeroRps := TNFSeSubstituirNfse(Self).FNumeroRps;
QtdeNotas := FNotasFiscais.Count;
Notas := FvNotas;
// Necessário para o provedor ISSDSF - CTA
NumeroLote := FNotasFiscais.NumeroLote;
Transacao := FNotasFiscais.Transacao;
end;
AjustarOpcoes( GerarDadosMsg.Gerador.Opcoes );
// FPDadosMsg := {FTagI + }GerarDadosMsg.Gera_DadosMsgSubstituirNFSe{ + FTagF};
FPDadosMsg := FTagI + GerarDadosMsg.Gera_DadosMsgSubstituirNFSe + FTagF;
FIDLote := GerarDadosMsg.IdLote;
finally
GerarDadosMsg.Free;
end;
// O procedimento recebe como parametro o XML a ser assinado e retorna o
// mesmo assinado da propriedade FPDadosMsg
if (FPConfiguracoesNFSe.Geral.ConfigAssinar.Substituir) and (FPDadosMsg <> '') then
AssinarXML(FPDadosMsg, FdocElemento, FinfElemento, 'Falha ao Assinar - Substituir NFS-e: ');
FPDadosMsg := '<' + FPrefixo3 + 'SubstituirNfseEnvio' + FNameSpaceDad + '>' +
'<' + FPrefixo3 + 'SubstituicaoNfse'+ Identificador + '>' +
SeparaDados(FPDadosMsg, FPrefixo3 + 'Pedido', True) +
FvNotas + FTagF;
if FPConfiguracoesNFSe.Geral.ConfigSchemas.Validar then
FNotasFiscais.ValidarLote(FPDadosMsg,
FPConfiguracoes.Arquivos.PathSchemas +
FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoSubstituir);
IncluirEncoding(FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.IncluiEncodingDados);
FDadosEnvelope := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.Envelope;
if (FPDadosMsg = '') or (FDadosEnvelope = '') then
GerarException(ACBrStr('A funcionalidade [Substituir NFSe] não foi disponibilizada pelo provedor: ' +
FPConfiguracoesNFSe.Geral.xProvedor));
end;