lemuel Postado 21 Fevereiro Compartilhar Postado 21 Fevereiro 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; Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Italo Giurizzato Junior Postado 22 Fevereiro Consultores Compartilhar Postado 22 Fevereiro Boa tarde Lemuel, Mas esse tipo de conversão tcNumStr ainda não foi implementado. Veja: tcNumStr: begin // Falta implementar Result := ''; end Talvez o correto seria mudar de tcStr para tcInt. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
lemuel Postado 22 Fevereiro Autor Compartilhar Postado 22 Fevereiro 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. Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Solution Italo Giurizzato Junior Postado 25 Fevereiro Consultores Solution Compartilhar Postado 25 Fevereiro Bom dia @lemuel, Desculpa, tinha visto a unit que faz a leitura e não a escrita. Muito obrigado pela colaboração, já inclui na minha lista de tarefas. TK-5141 Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Italo Giurizzato Junior Postado 28 Fevereiro Consultores Compartilhar Postado 28 Fevereiro Bom dia @lemuel, Favor atualizar todos os fontes de todas as pastas, reinstale o ACBr e faça novos testes. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Araraquara - A era dos Trólebus Link para o comentário Compartilhar em outros sites More sharing options...
lemuel Postado 28 Fevereiro Autor Compartilhar Postado 28 Fevereiro Beleza. Muito obrigado Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora