SPEDFISCAL - Adequações para atender ao layout 017 - 2023

01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Serviços

Módulo:

TOTVS Backoffice (Linha Protheus) - Arquivos Magnéticos (SIGAFIS)

Função:SPEDFISCAL.PRW / SPEDXFUN.PRW / MATXSPED.PRW / PCPXSPED.PRW / MATR241.PRW
País:Brasil
Ticket:Não se aplica
Requisito/Story/Issue (informe o requisito relacionado) :DSERFIS1-30317


02. SITUAÇÃO/REQUISITO

Principais alterações no Guia Prático da EFD-ICMS/IPI – versão 3.0.9


    • Inclusão do registro K010.
    • Alteração nas regras de validação dos registros K235, K255, K292 e K302.

Principais alterações no Guia Prático da EFD-ICMS/IPI – versão 3.1.0


    • Inclusão dos registros C855, C857, C895, C897

03. SOLUÇÃO


Registro K010

Na tela de parâmetros da geração do arquivo do SPED FISCAL foi alterado as opções da pergunta Gera Bloco K para atender ao novo layout, conforme abaixo:

Gera Bloco K - Gera o bloco K

9 - Não

0 - Leiaute Simplificado

1 - Leiaute Completo

2 - Leiaute restrito aos saldos de estoque

Importante

Importante

A partir de janeiro de 2023, com a apresentação do registro K010, esta opção será determinante para a geração do registro.

Ao selecionar a opção 2, o bloco K será gerado somente com os registros K200 e K280 - leiaute restrito aos saldos de estoque, conforme orientação.


Este registro indica o tipo de leiaute que o contribuinte adotou na informação do bloco K.

Importante

Ao selecionar o tipo de leiaute serão gerados determinados registros conforme abaixo:


Registro

Descrição

Nível

Ocorrência

Leiaute Completo

Leiaute Simplificado

Leiaute restrito aos saldos de estoque

K100Período de Apuração do ICMS/IPI2Vsimsimsim
K200Estoque Escriturado31:Nsimsimsim
K210Desmontagem de mercadorias - Item de Origem31:Nsimnãonão
K215Desmontagem de mercadorias - Item de Destino41:Nsimnãonão
K220Outras Movimentações Internas entre Mercadorias31:Nsimsimnão
K230Itens Produzidos31:Nsimsimnão
K235Insumos Consumidos41:Nsimnãonão
K250Industrialização Efetuada por Terceiros - Itens Produzidos31:Nsimsimnão
K255Industrialização em Terceiros - Insumos Consumidos41:Nsimnãonão
K260Reprocessamento/Reparo de Produto/Insumo31:Nsimnãonão
K265Reprocessamento/Reparo - Mercadorias Consumidas e/ou Retornadas41:Nsimnãonão
K270Correção de Apontamento dos Registros K210, K220, K230, K250, K260, K291, K292, K301 e K30231:Nsimsimnão
K275Correção de Apontamento e Retorno de Insumos dos Registros K215, K220, K235, K255 e K26541:Nsimnãonão
K280Correção de Apontamento - Estoque Escriturado31:Nsimsimsim
K290Produção Conjunta - Ordem de Produção31:Nsimsimnão
K291Produção Conjunta - Itens Produzidos41:Nsimsimnão
K292Produção Conjunta - Insumos Consumidos41:Nsimnãonão
K300Produção Conjunta - Industrialização Efetuada por Terceiros31:Nsimsimnão
K301Produção Conjunta - Industrialização Efetuada por Terceiros - Itens Produzidos41:Nsimsimnão
K302Produção Conjunta - Industrialização Efetuada por Terceiros - Insumos Consumidos41:Nsimnãonão


Utilização da geração do bloco K através do ponto de entrada SPDFISBLCK:


Ponto de entrada

O BLOCO K é gerado pelo sistema considerando as movimentações de produção e estoque, porém, caso as regras do padrão não atendam, ou então, o usuário não possui todas as movimentações necessárias no sistema, poderá gerar o BLOCO K através do Ponto de Entrada SPDFISBLCK. Se o SPDFISBLCK existir, o processamento padrão do sistema quanto ao BLOCO K será automaticamente desconsiderado.


No P.E SPDFISBLCK, deverão ser criadas tabelas temporárias para os registros: 0210, K200, K210, K215, K220, K230, K235, K250, K255, K260, K265, K270, K275, K280, K290, K291, K292, K300, K301 e K302.

Importante:

Dentro do P.E SPDFISBLCK, conforme regras do usuário, todas as 20 tabelas descritas acima, deverão ser instanciadas (criadas) sempre, mesmo que nem todas sejam populadas, pois é com estas tabelas criadas que a rotina padrão do SPED FISCAL irá gerar o BLOCO K. Para tal funcionamento, o P.E SPDFISBLCK deverá retornar o ALIAS de cada uma das 20 tabelas temporárias criadas e possivelmente populadas.

Parâmetros do ponto de entrada:

Nome

Tipo

Descrição

PARAMIXBArray of Record

[01] = Data de

[02] = Data Ate

[03] = Tipo de leiaute (    

0 – Leiaute simplificado
1 - Leiaute completo
2 – Leiaute restrito aos saldos de estoque

)


Retorno:

Nome

Tipo

Descrição


Array of Record

Array contendo os Alias das 20 tabelas temporárias criadas e possivelmente populadas, a depender da regra do usuário, na seguinte ordem: 0210, K200, K220, K230, K235, K250, K255, K210, K215, K260, K265, K270, K275, K280, K290, K291, K292, K300, K301 e K302.


    aRet := {cAlias0210,;
             cAliasK200,;
             cAliasK220,;
             cAliasK230,;
             cAliasK235,;
             cAliasK250,;
             cAliasK255,;
             cAliasK210,;
             cAliasK215,;
             cAliasK260,;
             cAliasK265,;
             cAliasK270,;
             cAliasK275,;
             cAliasK280,;
             cAliasK290,;
             cAliasK291,;
             cAliasK292,;
             cAliasK300,;
             cAliasK301,;
             cAliasK302}

Importante

Pontos Importantes quanto ao desenvolvimento do P.E SPDFISBLCK:


    • Na execução do P.E SPDFISBLCK, sempre considerar a filial atual/corrente para processamento.
    • Não deve-se fechar nenhum dos Alias dentro do Ponto de entrada, pois quando o BLOCO K for concluído, o próprio fonte do SPED Fiscal irá fechar os alias retornados no final do seu processamento.


Observação

  • O registro 0210 somente deve existir quando o conteúdo do campo 7 - TIPO_ITEM do Registro 0200 for igual a 03 (produto em processo) ou 04 (produto acabado).
  • Os códigos dos Itens apresentados nos registros de movimentos como K230, K235 e etc deverão existir também no registro K200.


Exemplo de Utilização:

As informações passadas abaixo no fonte são somente um exemplo de como gerar as informações, devera atentar-se pois essas informações passadas deve existir em seu ambiente:
SPED1300

#INCLUDE "PROTHEUS.CH"

User Function SPDFISBLCK()

Local aRet       := {}
Local cAlias0210 := ''
Local cAliasK200 := ''
Local cAliasK220 := ''
Local cAliasK230 := ''
Local cAliasK235 := ''
Local cAliasK250 := ''
Local cAliasK255 := ''
Local cAliasK210 := ''
Local cAliasK215 := ''
Local cAliasK260 := ''
Local cAliasK265 := ''
Local cAliasK270 := ''
Local cAliasK275 := ''
Local cAliasK280 := ''
Local cAliasK290 := ''
Local cAliasK291 := ''
Local cAliasK292 := ''
Local cAliasK300 := ''
Local cAliasK301 := ''
Local cAliasK302 := ''

Local cProd1 := "MP0000000000000000000000000001"
Local cProd2 := "PA0000000000000000000000000001"

Local cModArq:= ParamIxb[3// 1 = Completo / 0 = Simplificado

Local lGeraComp := cModArq=="1"

Local dDTBackup := dDataBase

dDataBase:=ParamIxb[1]

        //Cria alias e tabelas temporárias do bloco K
        TmpBlcK(@cAlias0210@cAliasK200@cAliasK220@cAliasK230@cAliasK235@cAliasK250@cAliasK255@cAliasK210@cAliasK215,;
                @cAliasK260@cAliasK265@cAliasK270@cAliasK275@cAliasK280@cAliasK290@cAliasK291@cAliasK292@cAliasK300@cAliasK301@cAliasK302 )
        


        G0210(cAlias0210,cProd1,cProd2) //Simp

        GK200(cAliasK200,cProd1,cProd2) //Simp

        if lGeraComp
            GK210(cAliasK210,cProd1,cProd2)

            GK215(cAliasK215,cProd1,cProd2)
        endif

        GK220(cAliasK220,cProd1,cProd2) //Simp

        GK230(cAliasK230,cProd1,cProd2) //Simp

        if lGeraComp
            GK235(cAliasK235,cProd1,cProd2)
        endif

        GK250(cAliasK250,cProd1,cProd2) //Simp

        if lGeraComp
            GK255(cAliasK255,cProd1,cProd2)

            GK260(cAliasK260,cProd1,cProd2)

            GK265(cAliasK265,cProd1,cProd2)
        endif

        GK270(cAliasK270,cProd1,cProd2) //Simp

        //Exceção. Conforme o manual O registro deve ser informado para ORIGEM (K270) igual a 5 ou quando o registro K270 não possuir correção de quantidade negativa ou positiva
        //if lGeraComp
            GK275(cAliasK275,cProd1,cProd2)
        //endif

        GK280(cAliasK280,cProd1,cProd2) //Simp

        GK290(cAliasK290,cProd1,cProd2) //Simp

        GK291(cAliasK291,cProd1,cProd2) //Simp

        if lGeraComp
            GK292(cAliasK292,cProd1,cProd2)
        endif

        GK300(cAliasK300,cProd1,cProd2) //Simp

        GK301(cAliasK301,cProd1,cProd2) //Simp

        if lGeraComp
            GK302(cAliasK302,cProd1,cProd2)
        endif

        //Adiciona alias das tabelas temporárias criadas
        aRet := {cAlias0210,;
                 cAliasK200,;
                 cAliasK220,;
                 cAliasK230,;
                 cAliasK235,;
                 cAliasK250,;
                 cAliasK255,;
                 cAliasK210,;
                 cAliasK215,;
                 cAliasK260,;
                 cAliasK265,;
                 cAliasK270,;
                 cAliasK275,;
                 cAliasK280,;
                 cAliasK290,;
                 cAliasK291,;
                 cAliasK292,;
                 cAliasK300,;
                 cAliasK301,;
                 cAliasK302 }

dDataBase:=dDTBackup

Return aRet


//-------------------------------------------------------------------
/*/{Protheus.doc} TmpBlcK
Função para criação das tabelas temporárias para geração do bloco K
/*/
//-------------------------------------------------------------------
Static Function TmpBlcK(cAlias0210,cAliasK200,cAliasK220,cAliasK230,cAliasK235,cAliasK250,cAliasK255,cAliasK210, cAliasK215, cAliasK260, cAliasK265, cAliasK270,cAliasK275,cAliasK280,cAliasK290,cAliasK291,cAliasK292,cAliasK300,cAliasK301,cAliasK302 )

Local aCampos   := {}
Local nTamFil   := TamSX3("D1_FILIAL")[1]
Local nTamDt    := TamSX3("D1_DTDIGIT")[1]
Local aTamQtd   := TamSX3("B2_QATU")
Local nTamOP    := TamSX3("D3_OP")[1]
Local nTamCod   := TamSX3("B1_COD")[1]
Local nTamChave := TamSX3("D1_COD")[1] + TamSX3("D1_SERIE")[1] + TamSX3("D1_FORNECE")[1] + TamSX3("D1_LOJA")[1]
Local nTamPar   := TamSX3("A1_COD")[1] + TamSX3("A1_LOJA")[1]
Local nTamReg   := 4

Local oAliasTMP1
Local oAliasTMP2
Local oAliasTMP3
Local oAliasTMP4
Local oAliasTMP5
Local oAliasTMP6
Local oAliasTMP7
Local oAliasTMP8
Local oAliasTMP9
Local oAliasTMP10
Local oAliasTMP11
Local oAliasTMP12
Local oAliasTMP13
Local oAliasTMP14
Local oAliasTMP15
Local oAliasTMP16
Local oAliasTMP17
Local oAliasTMP18
Local oAliasTMP19
Local oAliasTMP20
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO 0210
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro 0210
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //***Código do produto que fará o relacionamento com registro pai 0200
    AADD(aCampos,{"COD_I_COMP" ,"C",nTamCod ,0}) //Campo 02 do registro 0210
    AADD(aCampos,{"QTD_COMP" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 03 do registro 0210
    AADD(aCampos,{"PERDA" ,"N",5 ,2}) //Campo 04 do registro 0210

    cAlias0210 := '0210'
    CriaTabTmp(@oAliasTMP1, cAlias0210, aCampos, {"FILIAL""COD_ITEM""COD_I_COMP"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K200
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K200
    AADD(aCampos,{"DT_EST" ,"D",nTamDt ,0}) //Campo 02 do registro K200
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Campo 03 do registro K200
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 04 do registro K200
    AADD(aCampos,{"IND_EST" ,"C",1 ,0}) //Campo 05 do registro K200
    AADD(aCampos,{"COD_PART" ,"C",nTamPar,0}) //Campo 06 do registro K200

    cAliasK200 := 'K200'
    CriaTabTmp(@oAliasTMP2, cAliasK200, aCampos, {"FILIAL""DT_EST""COD_ITEM"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K220
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K220
    AADD(aCampos,{"DT_MOV" ,"D",nTamDt ,0}) //Campo 02 do registro K220
    AADD(aCampos,{"COD_ITEM_O" ,"C",nTamCod ,0}) //Campo 03 do registro K220
    AADD(aCampos,{"COD_ITEM_D" ,"C",nTamCod ,0}) //Campo 04 do registro K220
    AADD(aCampos,{"QTD_ORI" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 05 do registro K220
    AADD(aCampos,{"QTD_DEST" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 06 do registro K220

    cAliasK220 := 'K220'
    CriaTabTmp(@oAliasTMP3, cAliasK220, aCampos, {"FILIAL"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K230
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K230
    AADD(aCampos,{"DT_INI_OP" ,"D",nTamDt ,0}) //Campo 02 do registro K230
    AADD(aCampos,{"DT_FIN_OP" ,"C",nTamDt ,0}) //Campo 03 do registro K230
    AADD(aCampos,{"COD_DOC_OP" ,"C",nTamOP ,0}) //***Campo 04 do registro K230. Campo utilizado para fazer relacionamento com registro filho K230
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Campo 05 do registro K230
    AADD(aCampos,{"QTD_ENC" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 06 do registro K230

    cAliasK230 := 'K230'
    CriaTabTmp(@oAliasTMP4, cAliasK230, aCampos, {"FILIAL""COD_DOC_OP"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K235
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K235
    AADD(aCampos,{"DT_SAIDA" ,"D",nTamDt ,0}) //Campo 02 do registro K235
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Campo 03 do registro K235
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 04 do registro K235
    AADD(aCampos,{"COD_INS_SU" ,"C",nTamCod ,0}) //Campo 05 do registro K235
    AADD(aCampos,{"COD_DOC_OP" ,"C",nTamOP ,0}) //***Campo de ligação com registro K230, o relacionamento de K230 e K235 será feito por este campo

    cAliasK235 := 'K235'
    CriaTabTmp(@oAliasTMP5, cAliasK235, aCampos, {"FILIAL""COD_DOC_OP"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K250
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K250
    AADD(aCampos,{"CHAVE" ,"C",nTamChave ,0}) //***Campo de ligação com registros filho K255
    AADD(aCampos,{"DT_PROD" ,"D",nTamDt ,0}) //Campo 02 do registro K250
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Campo 03 do registro K250
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 04 do registro K250

    cAliasK250 := 'K250'
    CriaTabTmp(@oAliasTMP6, cAliasK250, aCampos, {"FILIAL""DT_PROD""COD_ITEM"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K255
//--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do registro K255
    AADD(aCampos,{"CHAVE" ,"C",nTamChave ,0}) //***Campo de ligação com registros pai K250
    AADD(aCampos,{"DT_CONS" ,"D",nTamDt ,0}) //Campo 02 do registro K255
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Campo 03 do registro K255
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 04 do registro K255
    AADD(aCampos,{"COD_INS_SU" ,"C",nTamCod ,0}) //Campo 05 do registro K250

    cAliasK255 := 'K255'
    CriaTabTmp(@oAliasTMP7, cAliasK255, aCampos, {"FILIAL""CHAVE"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K210
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do Registro K210   
    AADD(aCampos,{"DT_INI_OS" ,"D",nTamDt ,0}) //Campo 01 do Registro K210
    AADD(aCampos,{"DT_FIN_OS" ,"D",nTamDt ,0}) //Campo 02 do Registro K210
    AADD(aCampos,{"COD_DOC_OS" ,"C",nTamOP ,0}) //Campo 03 do Registro K210
    AADD(aCampos,{"COD_ITEM_O" ,"C",nTamCod ,0}) //Campo 04 do Registro K210
    AADD(aCampos,{"QTD_ORI" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 05 do Registro K210

    cAliasK210 := 'K210'
    CriaTabTmp(@oAliasTMP8, cAliasK210, aCampos, {"FILIAL""COD_ITEM_O"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K215
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Campo 01 do Registro K215
    AADD(aCampos,{"COD_DOC_OS" ,"C",nTamOP ,0}) // Campo chave de ligação com o registro pai K210
    AADD(aCampos,{"COD_ITEM_D" ,"C",nTamCod ,0}) //Campo 02 do Registro K215
    AADD(aCampos,{"QTD_DES" ,"N",aTamQtd[1],aTamQtd[2]}) //Campo 03 do Registro K215

    cAliasK215 := 'K215'
    CriaTabTmp(@oAliasTMP9, cAliasK215, aCampos, {"FILIAL""COD_DOC_OS"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K260
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K260"
    AADD(aCampos,{"COD_OP_OS" ,"C",nTamChave ,0}) // Código de identificação da ordem de produção, no reprocessamento, ou da ordem de serviço, no reparo
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do produto/insumo a ser reprocessado/reparado ou já reprocessado/reparado
    AADD(aCampos,{"DT_SAIDA" ,"D",nTamCod ,0}) //Data de saída do estoque
    AADD(aCampos,{"QTD_SAIDA" ,"N",nTamCod ,0}) //Quantidade de saída do estoque
    AADD(aCampos,{"DT_RET" ,"D",nTamCod ,0}) //Data de retorno ao estoque (entrada)
    AADD(aCampos,{"QTD_RET" ,"N",nTamCod ,0}) //Quantidade de retorno ao estoque (entrada)

    cAliasK260 := 'K260'
    CriaTabTmp(@oAliasTMP10, cAliasK260, aCampos, {"FILIAL""COD_OP_OS"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K265
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K265"
    AADD(aCampos,{"COD_OP_OS" ,"C",nTamChave ,0}) // Campo chave que liga ao registro Pai K260
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código da mercadoria (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD_CONS" ,"N",nTamCod ,0}) //Quantidade consumida – saída do estoque
    AADD(aCampos,{"QTD_RET" ,"N",nTamCod ,0}) //Quantidade retornada – entrada em estoque

    cAliasK265 := 'K265'
    CriaTabTmp(@oAliasTMP11, cAliasK265, aCampos, {"FILIAL""COD_OP_OS"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K270
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K270"
    AADD(aCampos,{"DT_INI_AP" ,"D",nTamChave ,0}) // Data inicial do período de apuração em que ocorreu o apontamento que está sendo corrigido
    AADD(aCampos,{"DT_FIN_AP" ,"D",nTamDt ,0}) //Data final do período de apuração em que ocorreu o apontamento que está sendo corrigido
    AADD(aCampos,{"COD_OP_OS" ,"C",nTamCod ,0}) //Código de identificação da ordem de produção ou da ordem de serviço que está sendo corrigida
    AADD(aCampos,{"CHAVE" ,"C",nTamChave ,0}) // Campo chave que liga ao registro Pai K270
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código da mercadoria que está sendo corrigido (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD_COR_P" ,"N",nTamCod ,0}) //Quantidade de correção positiva de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"QTD_COR_N" ,"N",nTamCod ,0}) //Quantidade de correção negativa de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"ORIGEM " ,"C",nTamCod ,0}) //Origem da correção, conforme manual do Sped

    cAliasK270 := 'K270'
    CriaTabTmp(@oAliasTMP12, cAliasK270, aCampos, {"FILIAL""COD_OP_OS"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K275
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0}) //Filial
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K275"
    AADD(aCampos,{"COD_OP_OS" ,"C",nTamChave ,0}) // Campo chave que liga ao registro Pai K270
    AADD(aCampos,{"CHAVE" ,"C",nTamChave ,0}) // Campo chave que liga ao registro Pai K270
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código da mercadoria (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD_COR_P" ,"N",nTamCod ,0}) //Quantidade de correção positiva de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"QTD_COR_N" ,"N",nTamCod ,0}) //Quantidade de correção negativa de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"COD_INS_SU" ,"C",nTamCod ,0}) //Código do insumo que foi substituído, caso ocorra a substituição, relativo aos Registros K235/K255

    cAliasK275 := 'K275'
    CriaTabTmp(@oAliasTMP13, cAliasK275, aCampos, {"FILIAL""COD_OP_OS"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K280
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K280"
    AADD(aCampos,{"DT_EST" ,"D",nTamDt ,0}) //Data do estoque final escriturado que está sendo corrigido
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do item (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD_COR_P" ,"N",nTamCod ,0}) //Quantidade de correção positiva de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"QTD_COR_N" ,"N",aTamQtd[1],aTamQtd[2]}) //Quantidade de correção negativa de apontamento ocorrido em período de apuração anterior
    AADD(aCampos,{"IND_EST" ,"C",aTamQtd[1],aTamQtd[2]}) //Indicador do tipo de estoque
    AADD(aCampos,{"COD_PART" ,"C",nTamPar ,0 }) //Código do participante

    cAliasK280 := 'K280'
    CriaTabTmp(@oAliasTMP14, cAliasK280, aCampos, {"FILIAL"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K290
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K290"
    AADD(aCampos,{"DT_INI_OP" ,"D",nTamDt ,0}) //Data de início da ordem de produção
    AADD(aCampos,{"DT_FIN_OP" ,"D",nTamDt ,0}) //Data de conclusão da ordem de produção
    AADD(aCampos,{"COD_DOC_OP" ,"C",nTamOP ,0}) //Código de identificação da ordem de produção

    cAliasK290 := 'K290'
    CriaTabTmp(@oAliasTMP15, cAliasK290, aCampos, {"FILIAL""COD_DOC_OP"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K291
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K291"
    AADD(aCampos,{"COD_DOC_OP","C",nTamOP,0}) // Código de identificação da ordem de produção
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do item produzido (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2] ,0}) //Quantidade de produção acabada

    cAliasK291 := 'K291'
    CriaTabTmp(@oAliasTMP16, cAliasK291, aCampos, {"FILIAL""COD_DOC_OP""COD_ITEM"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K292
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K292"
    AADD(aCampos,{"COD_DOC_OP","C",nTamOP,0}) // Código de identificação da ordem de produção
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do item produzido (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2] ,0}) //Quantidade de produção acabada

    cAliasK292 := 'K292'
    CriaTabTmp(@oAliasTMP17, cAliasK292, aCampos, {"FILIAL""COD_DOC_OP""COD_ITEM"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K300
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"CHAVE" ,"C",nTamChave ,0}) //Campo de ligação com registros K301 e K302
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K300"
    AADD(aCampos,{"DT_PROD" ,"D",nTamDt ,0}) //Data do reconhecimento da produção ocorrida no terceiro

    cAliasK300 := 'K300'
    CriaTabTmp(@oAliasTMP18, cAliasK300, aCampos, {"FILIAL""CHAVE"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K301
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K301"
    AADD(aCampos,{"CHAVE" ,"C",nTamChave,0}) // Campo de ligação com registro K300
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do item produzido (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2] ,0}) //Quantidade produzida

    cAliasK301 := 'K301'
    CriaTabTmp(@oAliasTMP19, cAliasK301, aCampos, {"FILIAL""CHAVE"})
    //--------------------------------------------
    //Criacao do Arquivo de Trabalho - BLOCO K302
    //--------------------------------------------
    aCampos := {}
    AADD(aCampos,{"FILIAL" ,"C",nTamFil ,0})
    AADD(aCampos,{"REG" ,"C",nTamReg ,0}) //Texto fixo contendo "K302"
    AADD(aCampos,{"CHAVE" ,"C",nTamChave,0}) // Campo de ligação com registro K300
    AADD(aCampos,{"COD_ITEM" ,"C",nTamCod ,0}) //Código do item produzido (campo 02 do Registro 0200)
    AADD(aCampos,{"QTD" ,"N",aTamQtd[1],aTamQtd[2] ,0}) //Quantidade consumida

    cAliasK302 := 'K302'
    CriaTabTmp(@oAliasTMP20, cAliasK302, aCampos, {"FILIAL""CHAVE"})

Return


Static Function CriaTabTmp(oAlias, cAlias, aCampos, aIndex)

    oAlias  :=  FWTemporaryTable():New(cAlias)
    oAlias:SetFields(aCampos)
    oAlias:AddIndex("01", aIndex)
    oAlias:Create()
    
Return


Static Function G0210(cAlias0210,cProd1,cProd2)

    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro 0210
    //----------------------------------------------------------------
    RecLock (cAlias0210, .T.)
    (cAlias0210)->FILIAL := cFilAnt // Exemplo de filial , devera informar a filial de seu ambiente que devera gerar o arquivo
    (cAlias0210)->REG := '0210'
    (cAlias0210)->COD_ITEM := cProd1 //Exemplo de código de produto , devera ser informado um código valido em seu ambiente.
    (cAlias0210)->COD_I_COMP := '600'
    (cAlias0210)->QTD_COMP := 4
    (cAlias0210)->PERDA := 0
    MsUnLock ()

Return

Static Function GK200(cAliasK200,cProd1,cProd2)

    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K200
    //----------------------------------------------------------------
    RecLock (cAliasK200, .T.)
    (cAliasK200)->FILIAL := cFilAnt
    (cAliasK200)->REG := 'K200'
    (cAliasK200)->DT_EST := lastday(dDataBase)
    (cAliasK200)->COD_ITEM := cProd1
    (cAliasK200)->QTD := 1
    (cAliasK200)->IND_EST := '0'
    (cAliasK200)->COD_PART := 'SA100001001' //OBS:Quando aplicável, informar um código de participante válido que exista na tabela SA1 (clientes) ou SA2 (Fornecedores) + Loja - Exemplo: SA1+ 000010 +01 = "SA100001001". Atentar-se ao tamanho do código do cliente e da loja.
    MsUnLock ()

Return

Static Function GK210(cAliasK210,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K210
    //----------------------------------------------------------------
    RecLock (cAliasK210, .T.)
    (cAliasK210)->FILIAL := cFilAnt
    (cAliasK210)->REG := 'K210'
    (cAliasK210)->DT_INI_OS := lastday(dDataBase,1)
    (cAliasK210)->DT_FIN_OS := lastday(dDataBase)
    (cAliasK210)->COD_DOC_OS := '0000210001'
    (cAliasK210)->COD_ITEM_O := cProd2
    (cAliasK210)->QTD_ORI := 1
    MsUnLock ()
Return

Static Function GK215(cAliasK215,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K215
    //----------------------------------------------------------------
    RecLock (cAliasK215, .T.)
    (cAliasK215)->FILIAL := cFilAnt
    (cAliasK215)->REG := 'K215'
    (cAliasK215)->COD_DOC_OS := '0000210001'
    (cAliasK215)->COD_ITEM_D := cProd1
    (cAliasK215)->QTD_DES:= 1
    MsUnLock ()
Return

Static Function GK220(cAliasK220,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K220
    //----------------------------------------------------------------
    RecLock (cAliasK220, .T.)
    (cAliasK220)->FILIAL := cFilAnt
    (cAliasK220)->REG := 'K220'
    (cAliasK220)->DT_MOV := lastday(dDataBase,1)
    (cAliasK220)->COD_ITEM_O := cProd1
    (cAliasK220)->COD_ITEM_D := cProd2
    (cAliasK220)->QTD_ORI := 1
    (cAliasK220)->QTD_DEST := 1
    MsUnLock ()
Return

Static Function GK230(cAliasK230,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K230
    //----------------------------------------------------------------
    RecLock (cAliasK230, .T.)
    (cAliasK230)->FILIAL := cFilAnt
    (cAliasK230)->REG := 'K230'
    (cAliasK230)->DT_INI_OP := lastday(dDataBase,1)
    (cAliasK230)->DT_FIN_OP := GRAVADATA(lastday(dDataBase),.F.,5)
    (cAliasK230)->COD_DOC_OP := '00005001001'
    (cAliasK230)->COD_ITEM := cProd2
    (cAliasK230)->QTD_ENC := 1
    MsUnLock ()
Return

Static Function GK235(cAliasK235,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K235
    //----------------------------------------------------------------
    RecLock (cAliasK235, .T.)
    (cAliasK235)->FILIAL := cFilAnt
    (cAliasK235)->REG := 'K235'
    (cAliasK235)->DT_SAIDA := lastday(dDataBase,1)
    (cAliasK235)->COD_ITEM := cProd1
    (cAliasK235)->QTD := 8
    (cAliasK235)->COD_INS_SU := ''
    (cAliasK235)->COD_DOC_OP := '00005001001'
    MsUnLock ()
Return

Static Function GK250(cAliasK250,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K250
    //----------------------------------------------------------------
    RecLock (cAliasK250, .T.)
    (cAliasK250)->FILIAL    := cFilAnt
    (cAliasK250)->REG       := 'K250'
    (cAliasK250)->CHAVE     := '000001'
    (cAliasK250)->COD_ITEM  := cProd2
    (cAliasK250)->DT_PROD   := lastday(dDataBase,1)
    (cAliasK250)->QTD       :=1
    MsUnLock ()
Return

Static Function GK255(cAliasK255,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K255
    //----------------------------------------------------------------
    RecLock (cAliasK255, .T.)
    (cAliasK255)->FILIAL    := cFilAnt
    (cAliasK255)->REG       := 'K255'
    (cAliasK255)->CHAVE     := '000001'
    (cAliasK255)->COD_ITEM  := cProd1
    (cAliasK255)->DT_CONS   := lastday(dDataBase,1)
    (cAliasK255)->QTD       :=1
    (cAliasK255)->COD_INS_SU:= ''
    MsUnLock ()
Return

Static Function GK260(cAliasK260,cProd1,cProd2)
        //----------------------------------------------------------------
        //Adicionando informações no arquivo temporário para registro K260
        //----------------------------------------------------------------
        RecLock (cAliasK260, .T.)
        (cAliasK260)->FILIAL    := cFilAnt
        (cAliasK260)->REG       := 'K260'
        (cAliasK260)->COD_OP_OS := '000001'
        (cAliasK260)->COD_ITEM  := cProd2
        (cAliasK260)->DT_SAIDA  := lastday(dDataBase,1)
        (cAliasK260)->QTD_SAIDA :=0
        (cAliasK260)->DT_RET    :=lastday(dDataBase,1)
        (cAliasK260)->QTD_RET   :=0
        MsUnLock ()
Return

Static Function GK265(cAliasK265,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K265
    //----------------------------------------------------------------
    RecLock (cAliasK265, .T.)
    (cAliasK265)->FILIAL    := cFilAnt
    (cAliasK265)->REG       := 'K265'
    (cAliasK265)->COD_OP_OS := '000001'
    (cAliasK265)->COD_ITEM  := cProd1
    (cAliasK265)->QTD_CONS :=0
    (cAliasK265)->QTD_RET   :=0
    MsUnLock ()
Return

Static Function GK270(cAliasK270,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K270
    //----------------------------------------------------------------
    RecLock (cAliasK270, .T.)
    (cAliasK270)->FILIAL    := cFilAnt
    (cAliasK270)->REG       := 'K270'
    (cAliasK270)->DT_INI_AP := lastday(MonthSub(dDataBase,1),1)
    (cAliasK270)->DT_FIN_AP := lastday(MonthSub(dDataBase,1))
    (cAliasK270)->COD_OP_OS := '000001'
    (cAliasK270)->CHAVE     := '000001'
    (cAliasK270)->COD_ITEM  := cProd2
    (cAliasK270)->QTD_COR_P := 0
    (cAliasK270)->QTD_COR_N := 0
    (cAliasK270)->ORIGEM    := '1'
    MsUnLock ()
Return

Static Function GK275(cAliasK275,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K275
    //----------------------------------------------------------------
    RecLock (cAliasK275, .T.)
    (cAliasK275)->FILIAL    := cFilAnt
    (cAliasK275)->REG       := 'K275'
    (cAliasK275)->COD_OP_OS := '000001'
    (cAliasK275)->CHAVE     := '000001'
    (cAliasK275)->COD_ITEM  := cProd2
    (cAliasK275)->QTD_COR_P := 1
    (cAliasK275)->QTD_COR_N := 0
    (cAliasK275)->COD_INS_SU:= ''
    MsUnLock ()
Return

Static Function GK280(cAliasK280,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K280
    //----------------------------------------------------------------
    RecLock (cAliasK280, .T.)
    (cAliasK280)->FILIAL := cFilAnt
    (cAliasK280)->REG := 'K280'
    (cAliasK280)->DT_EST := lastday(MonthSub(dDataBase,1),1)
    (cAliasK280)->COD_ITEM := cProd1
    (cAliasK280)->QTD_COR_P := 1
    (cAliasK280)->QTD_COR_N := 0
    (cAliasK280)->IND_EST := '0'
    (cAliasK280)->COD_PART:='SA1SP0001'
    MsUnLock ()
Return

Static Function GK290(cAliasK290,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K290
    //----------------------------------------------------------------
    RecLock (cAliasK290, .T.)
    (cAliasK290)->FILIAL := cFilAnt
    (cAliasK290)->REG := 'K290'
    (cAliasK290)->DT_INI_OP := lastday(dDataBase,1)
    (cAliasK290)->DT_FIN_OP := lastday(dDataBase)
    (cAliasK290)->COD_DOC_OP := '000001'
    MsUnLock ()
Return

Static Function GK291(cAliasK291,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K291
    //----------------------------------------------------------------
    RecLock (cAliasK291, .T.)
    (cAliasK291)->FILIAL    := cFilAnt
    (cAliasK291)->REG       := 'K291'
    (cAliasK291)->COD_DOC_OP:= '000001'
    (cAliasK291)->COD_ITEM  :=cProd2
    (cAliasK291)->QTD       := 1
    MsUnLock ()
Return

Static Function GK292(cAliasK292,cProd1,cProd2)
        //----------------------------------------------------------------
        //Adicionando informações no arquivo temporário para registro K292
        //----------------------------------------------------------------
        RecLock (cAliasK292, .T.)
        (cAliasK292)->FILIAL    := cFilAnt
        (cAliasK292)->REG       := 'K292'
        (cAliasK292)->COD_DOC_OP:= '000001'
        (cAliasK292)->COD_ITEM  :=cProd1
        (cAliasK292)->QTD       := 1
        MsUnLock ()
Return

Static Function GK300(cAliasK300,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K300
    //----------------------------------------------------------------
    RecLock (cAliasK300, .T.)
    (cAliasK300)->FILIAL := cFilAnt
    (cAliasK300)->CHAVE  := '00000001'
    (cAliasK300)->REG    := 'K300'
    (cAliasK300)->DT_PROD:= lastday(dDataBase,1)
    MsUnLock ()
Return

Static Function GK301(cAliasK301,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K301
    //----------------------------------------------------------------
    RecLock (cAliasK301, .T.)
    (cAliasK301)->FILIAL := cFilAnt
    (cAliasK301)->REG    := 'K301'
    (cAliasK301)->CHAVE  := '00000001'
    (cAliasK301)->COD_ITEM:= cProd2
    (cAliasK301)->QTD    := 1
    MsUnLock ()
Return

Static Function GK302(cAliasK302,cProd1,cProd2)
    //----------------------------------------------------------------
    //Adicionando informações no arquivo temporário para registro K302
    //----------------------------------------------------------------
    RecLock (cAliasK302, .T.)
    (cAliasK302)->FILIAL := cFilAnt
    (cAliasK302)->REG    := 'K302'
    (cAliasK302)->CHAVE  := '00000001'
    (cAliasK302)->COD_ITEM:= cProd1
    (cAliasK302)->QTD    := 1
    MsUnLock ()
Return




Registro tipo C855 – OBSERVAÇÕES DO LANÇAMENTO FISCAL (CÓDIGO 59) - Perfil A

Este registro é gerado a partir do livro fiscal, fazendo o relacionamento do documento com a observação lançada no registro 0460, quando o documento tiver algum lançamento de apuração ou quando tiver as informações lançadas na coluna Observação na escrituração dos Livros Fiscais de saídas.

No sistema, a espécie que trata automaticamente o modelo 59 é a SATCE.


Registro tipo C857 – OUTRAS OBRIGAÇÕES TRIBUTÁRIAS, AJUSTES E INFORMAÇÕES DE VALORES PROVENIENTES DE DOCUMENTO FISCAL (CÓDIGO 59) - Perfil A

Este registro é gerado a partir da tabela de lançamentos do documento fiscal (CDA) para apuração. O campo Lançamentos de Apuração de ICMS (CDA_TPLANC) passa a ser obrigatório quando inserido manualmente no documento fiscal.

Para códigos de lançamento iniciados por "9" é possível configurar o  valor a ser gravado através do campo "Vl.Reg.197" (CE0_VL197) no cadastro de códigos de reflexo (FISA072), determinando sua gravação no campo 07-VL_ICMS ou 08-VL_OUTROS.

Para mais informações da rotina FISA072 consultar o boletim Códigos de Lançamento e Reflexos da Apuração - P12

Também é possível configurar o comportamento da apresentação dos valores neste registro via Configurador de Tributos, para saber mais consulte o tópico Regra de ajuste de lançamento.

No sistema, a espécie que trata automaticamente o modelo 59 é a SATCE.



Registro tipo C895 – OBSERVAÇÕES DO LANÇAMENTO FISCAL (CÓDIGO 59) - Perfil B

Este registro tem o mesmo objetivo do registro C855, no entanto, apresenta as informações de acordo com o que é estabelecido para o perfil B do SPED Fiscal. 

Registro tipo C897 – OUTRAS OBRIGAÇÕES TRIBUTÁRIAS, AJUSTES E INFORMAÇÕES DE VALORES PROVENIENTES DE DOCUMENTO FISCAL (CÓDIGO 59) - Perfil B

Este registro tem o mesmo objetivo do registro C857, no entanto, apresenta as informações de acordo com o que é estabelecido para o perfil B do SPED Fiscal. 

04. DEMAIS INFORMAÇÕES


Informações

Em breve teremos novidades com mais atualizações sobre o novo layout.

Estamos acompanhando a legislação.

Observação

O programa validador da Escrituração Digital EFD ICMS IPI foi atualizado para a versão 3.0.0. A publicação desta nova versão foi na data de 29/11/2022.

  • Os registros da NFCom relacionados no Guia Prático EFD – ICMS/IPI versão 3.1.1, não serão implementados nesta versão do PVA, são eles:
    • D700 – NFCom (CÓDIGO 62);
    • D730 – Registro Analítico – NFCom (CÓDIGO 62);
    • D731 – Informações do FCP – NFCom (CÓDIGO 62);
    • D735 – Observações do Lançamento Fiscal (CÓDIGO 62);
    • D737 – Outras Obrigações Tributárias, ajustes e informações de valores provenientes de documento fiscal;
    • D750 – Escrituração Consolidada – NFCom (CÓDIGO 62);
    • D760 – Registro Analítico da Escrituração Consolidada – NFCom (CÓDIGO 62);
    • D761 – Informações do FCP – NFCom (CÓDIGO 62). 

EFD ICMS/IPI – Nova Versão PVA 3.0.0

Relatório Bloco K (MATR241)

Para a geração do Bloco K (MATR241) é necessário aplicar o pacote Expedição Contínua do Estoque e Custos


Para clientes que operam nas releases 12.1.2210 ou anteriores, será necessária a execução do compatibilizador UPDDISTR com o pacote diferencial (SDFBRA.txt).

Esta correção será disponibilizada na Expedição contínua de Janeiro/2023 e o pacote poderá ser acessado através dos links disponibilizados na documentação Pacotes de Atualização - Estoque e Custos.



Atualizado em 18/01/2023
Este artigo foi útil?  
Agradecemos sua avaliação.