Bom dia pessoal, tudo bem?
Venho sofrendo com isso também faz alguns dias, acontece que nesse trecho de código quando eu passo direto pelos IFs, sem entrar, funciona! Caso contrário ocorre o erro em questão.
Como a orientação que recebi do meu contador é que para Simples Nacional no DF não deve ser informado valor do ISS e nem Alíquota no momento da emissão da nota, então adicionei mais uma condição no segundo IF => "and (NFSe.Prestador.cUF <> 53)", após isso tudo funcionou normalmente.
Código que funcionou para mim:
function TNFSeW_ISSNet204.GerarXml: Boolean;
begin
if (NFSe.Tomador.Endereco.CodigoMunicipio = '9999999') or
(NFSe.Tomador.Endereco.UF = 'EX') then
NrOcorrCodigoPaisServico := 1;
if ((NFSe.OptanteSimplesNacional = snSim) or
(NFSe.RegimeEspecialTributacao = retMicroempresarioIndividual)) and (NFSe.Prestador.cUF <> 53)then
begin
NrOcorrValorIss := 1;
NrOcorrAliquota := 1;
end;
Result := inherited GerarXml;
end;
Bem, espero que isso contribua.