Ir para conteúdo
  • Cadastre-se

dev botao

Erro de Validação de Schema NFS-e Sigep


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 270 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde.
Iniciei alguns testes com o NFS-e aqui do meu município e estou recebendo o seguinte retorno:

Citar
Erro(s):
Código  : X800
Mensagem: Erro de Validação:  --> 1839 - Element '{http://www.abrasf.org.br/nfse.xsd}ExigibilidadeISS': [facet 'pattern'] The value '1' is not accepted by the pattern '01|02|03|04|05'.

Correção: 
---------

Identifiquei que é um problema no componente, mais especificamente na Unit "ACBrNFSeXGravarXml_ABRASFv2", na "function TNFSeW_ABRASFv2.GerarServico: TACBrXmlNode; ", na linha "Result.AppendChild(AddNode(tcStr, '#36', 'ExigibilidadeISS',". o Correto nessa linha é "Result.AppendChild(AddNode(tcNumStr, '#36', 'ExigibilidadeISS',", portanto essa função deveria ficar da seguinte forma:

 

function TNFSeW_ABRASFv2.GerarServico: TACBrXmlNode;
var
  item: string;
begin
  Result := CreateElement('Servico');

  Result.AppendChild(GerarValores);

  if GerarTagServicos then
  begin
    Result.AppendChild(AddNode(tcStr, '#20', 'IssRetido', 1, 1, NrOcorrIssRetido,
      FpAOwner.SituacaoTributariaToStr(NFSe.Servico.Valores.IssRetido), DSC_INDISSRET));

    Result.AppendChild(AddNode(tcStr, '#21', 'ResponsavelRetencao', 1, 1, NrOcorrRespRetencao,
     FpAOwner.ResponsavelRetencaoToStr(NFSe.Servico.ResponsavelRetencao), DSC_INDRESPRET));

    item := FormatarItemServico(NFSe.Servico.ItemListaServico, FormatoItemListaServico);

    Result.AppendChild(AddNode(tcStr, '#29', 'ItemListaServico', 1, 8, NrOcorrItemListaServico,
                                                          item, DSC_CLISTSERV));

    Result.AppendChild(AddNode(tcStr, '#30', 'CodigoCnae', 1, 9, NrOcorrCodigoCNAE,
                                OnlyNumber(NFSe.Servico.CodigoCnae), DSC_CNAE));

    Result.AppendChild(AddNode(tcStr, '#31', 'CodigoTributacaoMunicipio', 1, 20, NrOcorrCodTribMun_1,
                     NFSe.Servico.CodigoTributacaoMunicipio, DSC_CSERVTRIBMUN));

    Result.AppendChild(AddNode(tcStr, '#32', 'Discriminacao', 1, 2000, NrOcorrDiscriminacao_1,
      StringReplace(NFSe.Servico.Discriminacao, ';', FpAOwner.ConfigGeral.QuebradeLinha,
                                     [rfReplaceAll, rfIgnoreCase]), DSC_DISCR));

    Result.AppendChild(AddNode(tcStr, '#33', 'CodigoMunicipio', 1, 7, NrOcorrCodigoMunic_1,
                           OnlyNumber(NFSe.Servico.CodigoMunicipio), DSC_CMUN));

    Result.AppendChild(AddNode(tcStr, '#31', 'CodigoTributacaoMunicipio', 1, 20, NrOcorrCodTribMun_2,
                     NFSe.Servico.CodigoTributacaoMunicipio, DSC_CSERVTRIBMUN));

    Result.AppendChild(AddNode(tcStr, '#32', 'CodigoNbs', 1, 9, NrOcorrCodigoNBS,
                                 OnlyNumber(NFSe.Servico.CodigoNBS), DSC_CMUN));

    Result.AppendChild(AddNode(tcStr, '#33', 'Discriminacao', 1, 2000, NrOcorrDiscriminacao_2,
      StringReplace(NFSe.Servico.Discriminacao, ';', FpAOwner.ConfigGeral.QuebradeLinha,
                                     [rfReplaceAll, rfIgnoreCase]), DSC_DISCR));

    Result.AppendChild(AddNode(tcStr, '#34', 'CodigoMunicipio', 1, 7, NrOcorrCodigoMunic_2,
                           OnlyNumber(NFSe.Servico.CodigoMunicipio), DSC_CMUN));

    Result.AppendChild(AddNode(tcInt, '#35', 'CodigoPais', 4, 4, NrOcorrCodigoPaisServico,
                                           NFSe.Servico.CodigoPais, DSC_CPAIS));

    Result.AppendChild(AddNode(tcNumStr, '#36', 'ExigibilidadeISS',
                               NrMinExigISS, NrMaxExigISS, NrOcorrExigibilidadeISS,
    StrToInt(FpAOwner.ExigibilidadeISSToStr(NFSe.Servico.ExigibilidadeISS)), DSC_INDISS));

    Result.AppendChild(AddNode(tcInt, '#37', 'MunicipioIncidencia', 7, 7, NrOcorrMunIncid,
                                NFSe.Servico.MunicipioIncidencia, DSC_MUNINCI));

    Result.AppendChild(AddNode(tcStr, '#38', 'NumeroProcesso', 1, 30, NrOcorrNumProcesso,
                                   NFSe.Servico.NumeroProcesso, DSC_NPROCESSO));

    Result.AppendChild(GerarListaItensServico);
  end;
end;

 

Postado

Boa tarde,

a função que faz uso é function TACBrXmlWriter.AddNode. 

    tcNumStr:
    begin
      ConteudoProcessado := Trim(VarToStr(valor));
      EstaVazio := ConteudoProcessado = '';

      if Length(ConteudoProcessado) < TamMin then
        ConteudoProcessado := PadLeft(ConteudoProcessado, TamMin, '0');
    end;

Conforme você pode verificar, existe a implementação para essa conversão e está verificando o parâmetro de tamanho. Realizei somente a alteração que indiquei no inicio e funcionou corretamente.

 

  • Este tópico foi criado há 270 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.