Ir para conteúdo
  • Cadastre-se

NFSe Padrão Nacional - Ocorrendo o erro E0370 (o grupo informações de obra é obrigatório).


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

Recommended Posts

Postado

Boa tarde!

Hoje, após atualizar o ACBr e os schemas, começou a ocorrer o erro E0370 mesmo informando a tag "ConstrucaoCivil.CodigoObra". 

image.png.f48cb58a3b5af8aeef9d6fb13ef7fd61.png

Desde já, grato.

Leandro

Postado

Ola mesmo problema aqui, tenho vários clientes que o serviço é da familia de obras. Acontece que tem vários casos que a obra não é uma obra em si, então não tem dados como "inscImobFisc", acontece que no ACBr esta fixiando esta condição para gerar o bloco de obra.

 

Fiz os seguintes ajustes listados abaixo (Fonte esta anexo e foi utiliza um fonte atualizado hoje a tarde)

Ajustado a rotina de condição para gerar o bloco.

function TNFSeW_PadraoNacional.DevoGerarXMLObra: Boolean;
begin
  Result := (NFSe.ConstrucaoCivil.inscImobFisc <> '') or (NFSe.ConstrucaoCivil.CodigoObra <> '') or (NFSE.ConstrucaoCivil.Cib > 0);
end;

Ajustado o bloco onde gera

function TNFSeW_PadraoNacional.GerarXMLObra: TACBrXmlNode;
begin
  Result := CreateElement('obra');

  if NFSe.ConstrucaoCivil.inscImobFisc <> '' then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'inscImobFisc', 1, 30, 1,
                                        NFSe.ConstrucaoCivil.inscImobFisc, ''));
  end;

  if NFSe.ConstrucaoCivil.CodigoObra <> '' then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'cObra', 1, 30, 1,
                                          NFSe.ConstrucaoCivil.CodigoObra, ''));
  end;

  if NFSE.ConstrucaoCivil.Cib > 0 then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'cCIB', 1, 8, 1,
                                          Poem_Zeros(NFSe.ConstrucaoCivil.Cib, 8)));
  end;

  if (NFSe.ConstrucaoCivil.Endereco.CEP <> '') or
     (NFSe.ConstrucaoCivil.Endereco.Endereco <> '') then
  begin
    Result.AppendChild(GerarXMLEnderecoObra);
  end;
end;

 

Rotina testada e validada.

 

PadraoNacional.GravarXml.pas

  • Consultores
  • Solution
Postado

No SVN a correção

  • Obrigado 1

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado
5 horas atrás, Diogo Loff disse:

function TNFSeW_PadraoNacional.DevoGerarXMLObra: Boolean;
begin
  Result := (NFSe.ConstrucaoCivil.inscImobFisc <> '') or (NFSe.ConstrucaoCivil.CodigoObra <> '') or (NFSE.ConstrucaoCivil.Cib > 0) or (NFSe.ConstrucaoCivil.Endereco.Endereco <> '');
end;

 

O correto não seria adicionar tb o (NFSe.ConstrucaoCivil.Endereco.Endereco <> '') ? pois pode-se informar somente o endereço da obra sem os campos inscImobFisc, CodigoObra e Cib.

Londrina - PR

Postado

Não porque quando se coloca endereço mesmo não tendo obra, o campo NFSe.ConstrucaoCivil.CodigoObra se torna obrigatório, a questão é que o layout não é nada explicativo neste bloco de obras.

Valeu obrigado, segunda já vou atualizar.

  • Membros Pro
Postado (editado)
1 hora atrás, Diogo Loff disse:

Não porque quando se coloca endereço mesmo não tendo obra, o campo NFSe.ConstrucaoCivil.CodigoObra se torna obrigatório, a questão é que o layout não é nada explicativo neste bloco de obras.

Valeu obrigado, segunda já vou atualizar.

É que estou me baseando pelo emissor nacional, vamos analisar:

Ao preencher manualmente a nota pelo site, ao chegar na parte da obra temos as opções:

1 - Código da obra: é obrigatório apenas o campo código da obra, inscrição imobiliária fiscal é opcional

image.png.2814e40af79da14eaeb8698c9781ce86.png

2 - Código do cadastro imobiliário brasileiro - CIB: somente o código CIB é obrigatório.

image.png.d815ccf6d9f8a206d2aa14eca4eaa8ac.png

3 - Endereço no Brasil: apenas CEP, município, bairro, logradouro e número são obrigatórios.

image.thumb.png.8fe862ba1d2a03f45c8496be731b77be.png

4 - Endereço no exterior: que não se aplica no caso.

image.thumb.png.290ea8d6933ba7665491334ef4ad914d.png

 

Então creio que o endereço pode ser informado mesmo sem o inscImobFisc CodigoObra  e Cib .

Por isso acho necessário ter a validação de deixar informar o endereço mesmo sem esses 3 campos.

Meus clientes emitem quase que 100% das notas com dados de obra pois trabalham com concreto.

Editado por armando.boza

Londrina - PR

  • Consultores
Postado
Em 10/01/2026 at 11:13, armando.boza disse:

Então creio que o endereço pode ser informado mesmo sem o inscImobFisc CodigoObra  e Cib .

Por isso acho necessário ter a validação de deixar informar o endereço mesmo sem esses 3 campos.

Meus clientes emitem quase que 100% das notas com dados de obra pois trabalham com concreto.

Você está correto.
De acordo com os schemas e a confirmação pelos prints do portal, essas 3 informações fazem parte de um choice, pra gerar: cObra, cCIB, Endereço ou não gerar nada
Ou não gera grupo de obra ou gera apenas um desses 3
Em todos os casos, o inscImobFisc é opcional e poderá ser gerado

Enviada correção ao SNV na Rev-44188, atualizem, reinstalem os componentes e vejam se foi o resultado esperado.

  <xs:complexType name="TCInfoObra">
    <xs:sequence>
      <xs:element minOccurs="0" name="inscImobFisc" type="TSInscImobFisc">
        <xs:annotation>
          <xs:documentation>Inscrição imobiliária fiscal (código fornecido pela Prefeitura Municipal para a identificação da obra ou para fins de recolhimento do IPTU)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:choice minOccurs="1">
        <xs:element name="cObra" type="TSCodObra">
          <xs:annotation>
            <xs:documentation
              >Número de identificação da obra.
              Cadastro Nacional de Obras (CNO) ou Cadastro Específico do INSS (CEI).
            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="cCIB" type="TSCodCIB">
          <xs:annotation>
            <xs:documentation>
              Código do Cadastro Imobiliário Brasileiro - CIB.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="end" type="TCEnderObraEvento">
          <xs:annotation>
            <xs:documentation>Grupo de informações do endereço da obra do serviço prestado
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

 

  • Curtir 1
  • 2 semanas depois ...
  • Este tópico foi criado há 175 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...