Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Senhores, 

Preciso fazer essa inclusão no meu emissor de NFSe. 

 

Tentei usar esse exemplo, mas sem sucesso: (não sei ao certo se são os corretos - com certeza fiz algo errado mas nao estou localizando o erro)

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

 

uses
  ACBrNFeNotasFiscais, ACBrNFe.Classes;
\\...
var
  NotaF: NotaFiscal;
  IBSCBSTot: TIBSCBSTot;
begin
  NotaF := ACBrNFe.NotasFiscais.Add;
  IBSCBSTot := NotaF.Total.IBSCBSTot;
  IBSCBSTot.vBCIBSCBS := 100;
  IBSCBSTot.gIBS.vIBS := 100;
  IBSCBSTot.gIBS.vCredPres := 100;
  IBSCBSTot.gIBS.vCredPresCondSus := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vDif := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vDevTrib := 100;
  IBSCBSTot.gIBS.gIBSUFTot.vIBSUF := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vDif := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vDevTrib := 100;
  IBSCBSTot.gIBS.gIBSMunTot.vIBSMun := 100;
  NotaF.Total.vNFTot := 100;
    
//Demais dados...
end;

e esse

uses
  ACBrNFeNotasFiscais, ACBrNFe.Classes;
\\...
var
  NotaF: NotaFiscal;
  IBSCBSTot: TIBSCBSTot;
begin
  NotaF := ACBrNFe.NotasFiscais.Add;
  IBSCBSTot := NotaF.Total.ISTot;
  IBSCBSTot.vBCIBSCBS := 100;
  IBSCBSTot.gCBS.vDif := 100;
  IBSCBSTot.gCBS.vDevTrib := 100;
  IBSCBSTot.gCBS.vCBS := 100;
  IBSCBSTot.gCBS.vCredPres := 100;
  IBSCBSTot.gCBS.vCredPresCondSus := 100;
  NotaF.Total.vNFTot := 100;
    
//Demais dados...
end;

image.thumb.png.718862b61afb0f20bb01f3b3d280d77e.png

Esse é objetivo 

  • Consultores
Postado
Em 07/04/2026 at 09:37, GAVOHA disse:

Tentei usar esse exemplo, mas sem sucesso: (não sei ao certo se são os corretos - com certeza fiz algo errado mas nao estou localizando o erro)

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

não está achando a uses que tem a declaração dessa classe

 

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 !!

Postado
Em 14/04/2026 at 15:36, Juliomar Marchetti disse:

não está achando a uses que tem a declaração dessa classe

Obrigado por responder..!
 

Quais devo declarar?

  • Consultores
Postado
Em 07/04/2026 at 09:37, GAVOHA disse:

[dcc32 Error] uFuncoes.pas(206): E2003 Undeclared identifier: 'NotaFiscal'

olha ele quer ver essa classe que está na unit abaixo

image.png

tu sempre pode usar a pesquisa do código fonte pra achar as classes

 

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 !!

Postado
2 horas atrás, Juliomar Marchetti disse:

olha ele quer ver essa classe que está na unit abaixo

image.png

tu sempre pode usar a pesquisa do código fonte pra achar as classes

...desculpe a ignorancia.. mas indififere se for ACBrNFSeX ou ACBrNFSe?

  • Consultores
Postado
1 hora atrás, GAVOHA disse:

...desculpe a ignorancia.. mas indififere se for ACBrNFSeX ou ACBrNFSe?

agora que falou notei uma coisa. 
tu escreveu no subforum NFSe , suas units e seu código estão de NFe. 

olhe bem. 

então sim tem diferença e tente não misturar os dois componentes tenha units e metodos separados

 

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 !!

Postado
3 minutos atrás, Juliomar Marchetti disse:

agora que falou notei uma coisa. 
tu escreveu no subforum NFSe , suas units e seu código estão de NFe. 

olhe bem. 

então sim tem diferença e tente não misturar os dois componentes tenha units e metodos separados

Eu achei que seria apenas acrescentar no mesmo código e emissão da NFSe as informações referentes a ibs e cbs. Que seria apenas calcular e informar junto ao Total, por exemplo:

          // Cálculo IBS/CBS

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS            := vlr_;
          IBSCBSTot.gIBS.vIBS               := ibs_;
          IBSCBSTot.gCBS.vCBS            := cbs_;

Muito errado?

  • Consultores
Postado
1 hora atrás, GAVOHA disse:

Eu achei que seria apenas acrescentar no mesmo código e emissão da NFSe as informações referentes a ibs e cbs. Que seria apenas calcular e informar junto ao Total, por exemplo:

          // Cálculo IBS/CBS

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS            := vlr_;
          IBSCBSTot.gIBS.vIBS               := ibs_;
          IBSCBSTot.gCBS.vCBS            := cbs_;

Muito errado?

mas tu está usando NFSe ou NFe?

pois cada um é um documento fiscal diferente

 

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 !!

Postado
28 minutos atrás, Juliomar Marchetti disse:

mas tu está usando NFSe ou NFe?

pois cada um é um documento fiscal diferente

NFSe 

  • Consultores
Postado

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

 

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 !!

Postado
14 horas atrás, Juliomar Marchetti disse:

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

Beleza.. Ficou assim:

procedure TDMNF.GerarNOta(pNumNF: integer);
var
  vNumLote, vServicos, sFuncao, sValor, sDescricaoNota, sNomeSetor : String;
  vValorISS: Double;
  vRetido: boolean;
  iCodigoSetor : integer;
  IBSCBSTot: TIBSCBSTot;
  vlr_, ibs_, cbs_: Double;
begin
vRetido   := False;
vServicos := EmptyStr;
vNumLote := DM.qryNFMestreID.AsString.Trim;

 try
  with ACBrNFSe do
  begin
   NotasFiscais.Clear;
   NotasFiscais.NumeroLote := vNumLote;

   with NotasFiscais.New.NFSe do
    begin
      IdentificacaoRps.Numero := IntToStr(pNumNF);
      IdentificacaoRps.Serie  := '1'; //
      NumeroLote              := vNumLote;

      // trRPS, trNFConjugada, trCupom;
      IdentificacaoRps.Tipo   := trRPS;
      DataEmissao             := now;
      Competencia             := Now;
      NaturezaOperacao        := no1;

      // retNenhum, retMicroempresaMunicipal, retEstimativa, retSociedadeProfissionais, retCooperativa, retMicroempresarioIndividual, retMicroempresarioEmpresaPP );
      IncentivadorCultural    := snnao;

      if DM.qryEmpresaNotaFiscalRegimeTributario.Value = 3 then
        RegimeEspecialTributacao := retNenhum else
        RegimeEspecialTributacao := retMicroempresarioEmpresaPP ;

      if DM.qryEmpresaNotaFiscalRegimeTributario.Value = 3  then
         OptanteSimplesNacional := snNao else
         OptanteSimplesNacional := snSim;


        //--------------- TIPO DE AMBIENTE ===
        Producao := snSim;
        //---------------

      StatusRps := srNormal;

     //---- IBPT
      Servico.FonteCargaTributaria        := 'IBPT';
      Servico.PercentualCargaTributaria   := 16.23;
      Servico.ValorCargaTributaria        := DM.qryNFMestreIBPT.AsCurrency;

     //----

      Servico.Valores.ValorServicos := dm.qryNFMestreSubtotal.AsCurrency;
      Servico.Valores.ValorDeducoes := 0;
      Servico.Valores.ValorPis      := dm.qryNFMestrePIS.AsCurrency    ;
      Servico.Valores.ValorCofins   := dm.qryNFMestreCOFINS.AsCurrency ;
      Servico.Valores.ValorInss     := 0   ;
      Servico.Valores.ValorIr       := dm.qryNFMestreIRRF.AsCurrency   ;
      Servico.Valores.ValorCsll     := dm.qryNFMestreCSLL.AsCurrency   ;

      if DM.qryNFMestreISS.Value > 0 then
         vRetido := true else
         vRetido := false;

      if vRetido = True then
         begin
         Servico.Valores.IssRetido   := stRetencao;
         Servico.ResponsavelRetencao := rtTomador;
         end else

         Servico.Valores.IssRetido := stNormal;

      Servico.Valores.OutrasRetencoes        := 0.00;
      Servico.Valores.DescontoIncondicionado := 0.00;
      Servico.Valores.DescontoCondicionado   := 0.00;
      Servico.Valores.BaseCalculo            := Servico.Valores.ValorServicos -
                                                Servico.Valores.ValorDeducoes -
                                                Servico.Valores.DescontoIncondicionado;

      Servico.Valores.Aliquota :=  DM.qryNFClienteDadosNFPorcentagemISS.Value;

    if Servico.Valores.IssRetido = stNormal then
      begin
        if OptanteSimplesNacional = snSim then
          vValorISS := 0 else
          vValorISS := (Servico.Valores.BaseCalculo * Servico.Valores.Aliquota) / 100;

        Servico.Valores.ValorIss       := vValorISS;
        Servico.Valores.ValorIssRetido := 0.00;
      end  else
      begin
        vValorISS := ACBrUtil.RoundABNT(Servico.Valores.BaseCalculo * Servico.Valores.Aliquota, 2) / 100;

        Servico.Valores.ValorIssRetido  := vValorISS;
        Servico.Valores.ValorIss        := vValorISS;
      end;


      Servico.Valores.ValorLiquidoNfse := Servico.Valores.ValorServicos -
                                          Servico.Valores.ValorPis -
                                          Servico.Valores.ValorCofins -
                                          Servico.Valores.ValorInss -
                                          Servico.Valores.ValorIr -
                                          Servico.Valores.ValorCsll -
                                          Servico.Valores.OutrasRetencoes -
                                          Servico.Valores.ValorIssRetido -
                                          Servico.Valores.DescontoIncondicionado -
                                          Servico.Valores.DescontoCondicionado;

      Servico.ItemListaServico          := '06491'  ;// '5134';        //-- CFOP da Funcao
      Servico.ResponsavelRetencao       := rtPrestador;

      // Codigo do Municipio
      Servico.CodigoMunicipio           := '3550308';
      Servico.CodigoTributacaoMunicipio := DM.qryEmpresaNotaFiscalCodTribMun.AsString;

      // Informar A Exigibilidade ISS para fintelISS [1/2/3/4/5/6/7]
      Servico.ExigibilidadeISS          := exiExigivel;

      // Informar para Saatri
      Servico.CodigoPais                := 1058; // Brasil
      Servico.MunicipioIncidencia       := DM.qryEmpresaNotaFiscalCodTribMun.Value;


      //--Dados Detalhe
     DM.ListarNotaFiscalDetalhe(DM.qryListaNFNumeroNF.Value);
     DM.qryNFDetalhe.First;

     sDescricaoNota := '';
     sNomeSetor     := '';
     iCodigoSetor   := Dm.qryNFMestreIDSetor.Value;

     if iCodigoSetor > 0 then
        begin
          DM.ListarSetor(iCodigoSetor);
          sNomeSetor := '/ SETOR '  +DM.qrySetorDescricao.Text ;
        end;

     sDescricaoNota := 'SERVICOS PRESTADOS ' + sNomeSetor +#13+#13 ;
     sDescricaoNota := sDescricaoNota + 'VENCIMENTO ' + dm.qryNFMestreDtVencimento.Text + #13+#13;
     sDescricaoNota := sDescricaoNota + 'VALOR LIQ ' + FormatFloat('0.00', dm.qryNFMestreTotal.AsFloat)+#13+#13;
     sDescricaoNota := sDescricaoNota + 'VALOR APROXIMADO DOS TRIBUTOS / FONTE IBPT CHAVE OC3829 - TRIBUTAÇÃO FEDERAL 13,45% E TRIBUTAÇÃO MUNICIPAL 2,78%' + #13;

      // CNAE
      Servico.CodigoCnae                := ACBrUtil.OnlyNumber(DM.qryEmpresaNotaFiscalCNAE.AsString);
      Servico.Discriminacao             := '"' + sDescricaoNota + '"';
      Servico.ItemServico.Add.Descricao := '"' + sDescricaoNota + '"';
      vServicos                         := DM.qryNFMestreSubtotal.AsString.Trim + #13 + #10;

      // Dados do Prestador
      Prestador.IdentificacaoPrestador.Cnpj               := ACBrUtil.OnlyNumber(DM.qryEmpresaCNPJ.Value);
      Prestador.IdentificacaoPrestador.InscricaoMunicipal := ACBrUtil.OnlyNumber(DM.qryEmpresaInscEstadual.Value);

      // Para o provedor ISSDigital deve-se informar também:
      Prestador.cUF                                   := 3550308;

      // Tomador
      Tomador.IdentificacaoTomador.CpfCnpj            := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteCNPJ.AsString.Trim));
      Tomador.IdentificacaoTomador.InscricaoMunicipal := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteIM.AsString.Trim));
      Tomador.RazaoSocial                             := DM.qryNFClienteRazao.AsString.Trim;
      Tomador.Endereco.Endereco                       := DM.qryNFClienteENDERECO.AsString.Trim;
      Tomador.Endereco.Numero                         := DM.qryNFClienteNumEndereco.AsString.Trim;
      Tomador.Endereco.Complemento                    := DM.qryNFClienteCOMPLEMENTO.AsString.Trim;
      Tomador.Endereco.Bairro                         := DM.qryNFClienteBAIRRO.AsString.Trim;
      Tomador.Endereco.CodigoMunicipio                := '3550308';
      Tomador.Endereco.UF                             := DM.qryNFClienteUF.AsString.Trim;
      Tomador.Endereco.CodigoPais                     := 1058;
      Tomador.Endereco.xPais                          := 'BRASIL';
      Tomador.Endereco.CEP                            := ACBrUtil.OnlyNumber(DM.qryNFClienteCEP.AsString.Trim);
      Tomador.IdentificacaoTomador.CpfCnpj            := ACBrUtil.OnlyNumber(TiraPontos(DM.qryNFClienteCNPJ.AsString.Trim));
      Tomador.IdentificacaoTomador.InscricaoEstadual  := ACBrUtil.OnlyNumber(DM.qryNFClienteIE.AsString.Trim);
      Tomador.Contato.Telefone                        := ACBrUtil.OnlyNumber(DM.qryNFClienteTel1.AsString.Trim);
      Tomador.Contato.Email                           := DM.qryNFClienteEmail.AsString.Trim;
      Tomador.AtualizaTomador                         := snNao;
      Tomador.TomadorExterior                         := snNao;
      CondicaoPagamento.QtdParcela := 1;
      CondicaoPagamento.Condicao   := cpAVista;

           with CondicaoPagamento.Parcelas.New do
            begin
             Parcela := '1';
             DataVencimento := Date + (30 * 1);
             Valor := (Servico.Valores.ValorLiquidoNfse / CondicaoPagamento.QtdParcela);

             vlr_ := Valor;
            end;

          // Cálculo IBS/CBS
          vlr_ := vlr_ + DM.qryNFMestreIRRF.AsCurrency;
          ibs_ := RoundTo((vlr_ * 0.001), -2);
          cbs_ := RoundTo((vlr_ * 0.009), -2);

          IBSCBSTot.vBCIBSCBS                := vlr_;
          IBSCBSTot.gIBS.vIBS                := ibs_;
          IBSCBSTot.gCBS.vCBS                := cbs_;
    end;

  end;
    frmListaNotaFiscal.MemoDados.Lines.Add('NFSe montada com sucesso.');
      except
        on E: Exception do
        begin
          frmListaNotaFiscal.MemoDados.Lines.Add('Erro ao montar NFSe: ' + E.Message);
          GravarLogErro(E.Message);
        end;

 end;
end;

...mas não consegui enviar e não estou conseguindo achar o erro

Postado

Vendo outros post por aqui.. corrigi alguns campos. Mas agora permanece o seguinte erro:

Mensagem: Erro de Validação:  --> 1871 - Element 'IBSCBS': This element is not expected. Expected is one of ( CodigoCEI, MatriculaObra, MunicipioPrestacao, NumeroEncapsulamento, ValorTotalRecebido ).
 

   //--- Reforma trib tentativa 2
        IBSCBS.finNFSe := fnfsRegular;

        IBSCBS.indFinal := ifNao;
        IBSCBS.cIndOp := '100301';
        IBSCBS.tpOper := togNenhum;
        IBSCBS.tpEnteGov := tcgNenhum;

        IBSCBS.valores.trib.gIBSCBS.CST        := cst000;
        IBSCBS.valores.trib.gIBSCBS.cClassTrib := '000001';
        IBSCBS.valores.trib.gIBSCBS.cCredPres  := cpNenhum;

        IBSCBS.valores.trib.gIBSCBS.gTribRegular.CSTReg := cstNenhum;
        IBSCBS.valores.trib.gIBSCBS.gTribRegular.cClassTribReg := '';

   //-- Fim tentativa 2

 

Postado
Em 22/04/2026 at 20:07, Juliomar Marchetti disse:

ótimo então agora vai ao exemplo em 

trunk2/exemplos/ACbrDFe/ACBrNFSeX/Delphi

e é com o componente TACBrNFSeX

lembrando tu emite o DPS(ou RPS) envia ao projeto nacional ou ao provedor e eles retornam a NFSE

dito isso é no exemplo que temos:

image.png

Eu consigo emitir a NFSe normalmente, mas quando acrescento os iten de CBS / IBS me retorna erro.

Refis o código com base nos modelos que vi aqui no forum e dúvida de outros colegas, mas continua a não reconhecer vBCIBS, pAliqIBS, vIBS, vBCCBS, pAliqCBS, vCBS, vTotReceb

 

Por favor, o que estou fazendo de errado?

GerarNota3.txt

Postado

Por favor, alguém poderia me dar uma luz?

(mais uma vez infelizmente não tenho ajuda do contador da empresa do meu cliente)

  • 2 meses depois ...
Postado

Com muito custo, desde a ultima mensagem eu consegui avançar um pouco mais, mas permaneço agora com esse erro:

Erro(s):
Código  : 1206
Mensagem: Assinatura Digital do RPS incorreta - String verificada (0000256244821    00000006380120260713TNS00000000002321300000000000000006491258762691000140)
Correção: Numero/Série Rps: 63801/1 

 

Alguém poderia me ajudar?

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.