Você está na página 1de 6

Procedimentos bsicos para SPED Contbil

Srs... um artigo que juntei de anotaes anteriores (colcha de retalhos) e deve ter coisas incompletas / ultrapassadas. Mas serve como um norte. Dando tempo volto aqui e corrijo o que for necessrio. Aceito sugestes e fao questo de mencionar os autores das dicas / correes. Boa sorte.

01 - Bom... O sistema precisa estar atualizado. Se isso no for possvel arrisque ter, pelo menos, um ambiente com RPO atualizado. A melhor alternativa seria fazer em base TESTE se no for possvel atualizar a produo. E neste caso tudo independente (base, rpo, bin, etc, etc).

02 - Grave os seguintes arquivos de layout no diretrio %SystemRoot% do Protheus. ECDLIVRO_A.XML ECDLIVRO_B.XML ECDLIVRO_R.XML ECDLIVRO_Z.XML

03 - Condicoes Basicas: 03.1) Apuracao de Resultado e Encerramento de Exercicio feitos 03.2) Nao existir LOTES COM DIFERENCA - executar o relatorio CTBR670 Voc acreditaria se eu dissesse que encontrei um cliente onde o contador fazia dbitos num dia e crditos num outro dia em lotes diferentes? Pois ... O que o SPED Contbil espera? Que a soma de crditos seja EXATAMENTE IGUAL a de dbitos no dia. Ou seja: o contador pode colocar, se quiser, todos os Dbitos num lote e os Crditos no outro, desde que os dois lotes em questo sejam do mesmo dia.

04 - Menu 04.1) Atualizar o menu do CTB acrescentando os cadastros do Contabilista (CTBA015), Participante (CTBA016) e Plano Referencial (CTBA025)(se no existirem) 04.2) Atualizar o menu do CTB acrescentando a Central de Escriturao (CTBS001)

05 - Rodar o Compatibilizador U_UPDCTB (t vendo? O cliente precisa atualizar o ambiente.)

06) Importar o Plano Referencial se no existir no cliente O plano referencial um plano de contas da Receita. Como cada cliente tem o seu (CT1) a receita criou o dela (acho que CVN) e no Protheus h uma tabela pra amarrar um (CT1) no outro (CVN) e essa tabela a CVD. O detalhe do plano referencial que a Receita lanou o plano dela num ano e no seguinte revisou algumas de suas contas tornando-as expiradas/vencidas. Cabe ao cliente trocar as amarraes pelas contas novas que entraram no lugar das velhas. E toda conta analtica TEM QUE TER uma amarrao com uma conta referencial da Receita.

07) Elaborar o seguinte e-mail para o Responsavel XXXXXX... por favor, providenciar o prenchimento dos seguintes dados:

a) Cadastro do Contabilista ( SIGACTB / Cadastro SPED / Contabilista ) acrescentando o Contador e as pessoas da Diretoria que iro assinar pela Empresa b) Cadastro do Participante ( SIGACTB / Cadastro SPED / Participante ) incluindo todos os que tem participao acionria na empresa c) Nire e Data do Nire (SIGACFG - Configurador / Empresas / Arquivos / Criacao de Empresas / Editar ) d) No plano de contas, classificar (campo entitulado Nat. Conta - CT1_NTSPED) cada conta conforme criterio da Receita: 01 - para conta de Ativo 02 - para conta de para conta de Passivo 03 - para conta de Patrimonio Liquido 04 - para conta de Resultado 05 - para conta de Compensao 09 - para conta de Outras

08) Disponibilizar a Estrutura das duas vises gerenciais: BP e DRE Se no encontrar ningum que tenha treine o usurio pra fazer a dele. Mas acho que a TOTVS tem uma estrutura padronizada que disponibilizada. S no me lembro de onde vi isso... E pra contar: BP Balano Patrimonial e recebe as contas de Ativo e Passivo (as dos grupos 1 e 2, geralmente). J DRE Demonstrativo de Resultado e recebe as contas do Grupo 3 em diante conforme instruo do cliente. Cuidado pra no duplicar as linhas da Viso Gerencial (tipo colocar duas vezes uma conta que tem movimento em dois lugares diferentes). E tambm no pode esquecer de nenhuma...

09) Plano de Contas Contbeis do cliente precisa de uma conta referencial da Receita. Isso significa que o contabilista deve preencher essa amarrao (parte de baixo da tela do Plano de Contas). Contas Sinteticas nao precisam ser amarradas com as contas referenciais Sintticas que no possuem Analticas geram erro ou aviso (no me lembro). Um ltimo detalhe sobre as contas sintticas: toda conta superior TEM QUE SER sinttica e toda conta sinttica TEM QUE TER uma analtica pelo menos. Esses casos, se no me engano, geram erro no PVA.

10) Caracteres especiais definidos pela Receita no podem fazer parte do arquivo (acho que a lista t incompleta!) ASC - 129 - ASC - 141 - ASC - 143 - ASC - 144 - ASC - 157 Isso significa que os campos de Descrio dos Lanamentos, das contas, dos Centros de Custo, etc, etc, no podem ter esses caracteres. Uma dica: Checar se as contas de FORNECEDORES/CLIENTES so analticas. Caso sejam, fundamental que as descries NO contenham caracteres especiais, especialmente apstrofe (').

A questo : E se eles j estiverem l?

11) Tpico que voc no deve ler se no for desenvolvedor (iniciante no mnimo), ok? arriscado. Bom... Por sua conta e risco, ok ? T bem entendido isso, certo ? Segue uma query (faa em BASE TESTE) que troca os caracteres especiais diretamente na base (TESTE, pelo amor de Deus!).

=== INICIO -- Eh so trocar o char(192) e a string 'A' --SELECT * FROM CT2600 WHERE D_E_L_E_T_ = ' ' AND CT2_HIST LIKE '%'+CHAR(9)+'%' SELECT * FROM CT2600 WHERE CT2_HIST LIKE '%'+CHAR(9)+'%' Declare @Texto varchar(200), @HrIni DateTime

Declare cCursor Cursor For Select Replace(CT2_HIST,Char(9),' ') From CT2600 Open cCursor Select @HrIni = GetDate() Fetch From cCursor Into @Texto While @@Fetch_Status = 0 Begin Update CT2600 Set CT2_HIST = @Texto Where Current Of cCursor Fetch Next From cCursor Into @Texto End

Close cCursor Deallocate cCursor Select @HrIni As Inicio, GetDate() As Fim === FIM

Outra verso em formato ADVPL (faa em Base ... j sabe!) :

=== INICIO do ADVPL *-----------------------User Function CaracEsp() Local aCarac := {} /* o) Caracteres especiais podem ser detectados com Like ASC - 129 - ASC - 141 - ASC - 143 - ASC - 144 - ASC - 157 */

Aadd(aCarac,{"","A"}) // [1] caracter especial - [2] - caracter substituto Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","A"}) Aadd(aCarac,{"","E"}) // [1] caracter especial - [2] - caracter substituto Aadd(aCarac,{"","E"}) Aadd(aCarac,{"","E"}) Aadd(aCarac,{"","E"}) Aadd(aCarac,{"","I"}) // [1] caracter especial - [2] - caracter substituto Aadd(aCarac,{"","I"}) Aadd(aCarac,{"","I"}) Aadd(aCarac,{"","I"}) Aadd(aCarac,{"","I"})

Aadd(aCarac,{"","O"}) // [1] caracter especial - [2] - caracter substituto Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","O"}) Aadd(aCarac,{"","U"}) // [1] caracter especial - [2] - caracter substituto Aadd(aCarac,{"","U"}) Aadd(aCarac,{"","U"}) Aadd(aCarac,{"","U"}) Aadd(aCarac,{"","U"})

cAlias := "CT1" DbSelectArea(cAlias) DbSetOrder(1) DbGoTop() While !(cAlias)->( Eof() ) cTexto := (cAlias)->CT1_DESC01 lTem := .f. For nI := 1 To Len(aCarac) If aCarac[nI, 1] $ cTexto lTem := .t. cTexto := StrTran(cTexto, aCarac[nI,1], aCarac[nI,2]) EndIf Next nI If lTem == .T. RecLock(cAlias,.F.) (cAlias)->CT1_DESC01 := cTexto MsUnLock() EndIf (cAlias)->( DbSkip() ) EndDo

cAlias := "CTT" DbSelectArea(cAlias) DbSetOrder(1) DbGoTop() While !(cAlias)->( Eof() ) cTexto := (cAlias)->CTT_DESC01 lTem := .f. For nI := 1 To Len(aCarac) If aCarac[nI, 1] $ cTexto lTem := .t. cTexto := StrTran(cTexto, aCarac[nI,1], aCarac[nI,2]) EndIf Next nI If lTem == .T. RecLock(cAlias,.F.) (cAlias)->CTT_DESC01 := cTexto MsUnLock() EndIf

(cAlias)->( DbSkip() ) EndDo

cAlias := "CT2" DbSelectArea(cAlias) DbSetOrder(1) DbGoTop() While !(cAlias)->( Eof() ) cTexto := (cAlias)->CT2_HIST lTem := .f. For nI := 1 To Len(aCarac) If aCarac[nI, 1] $ cTexto lTem := .t. cTexto := StrTran(cTexto, aCarac[nI,1], aCarac[nI,2]) EndIf Next nI If lTem == .T. RecLock(cAlias,.F.) (cAlias)->CT2_HIST := cTexto MsUnLock() EndIf (cAlias)->( DbSkip() ) EndDo Return === FIM do ADVPL

12) Tabelas do SPED Contbil - verso do TSS Isso eu no tenho certeza. Sem dizer novas tabelas devem ter sido criadas, outras desabilitadas... Eu acho que essa lista deve ser da primeira verso do SPED Contbil... Aquela que precisa de endereo de FTP... Mas segue a lista. E se voc que estiver lendo isso souber exatamente quais tabelas so envolvidas no processo me avise e corrijo aqui com a meno mais do que merecida. SPED220 SPED300 SPED001A SPED002 SPED002B SPED100A SPED100A SPED140 SPED210 SPED220A SPED300A SPED001 SPED002A SPED002C SPED100 SPED120 SPED200

Chamado importante: SAWCPL 13) Tabelas do SPED Contbil - verso da Central de Escriturao Aqui um agradecimento todo especial. A Simone ( @simone.silva ) me enviou um e-mail com a lista de tabelas utilizadas atualmente. Simone... Muito obrigado por nos enriquecer com seus conhecimentos. Seguem os dados fornecidos pela Simone:

CS0 CS1 CS2 CS3 CS4

ECD Reviso ECD Dados complementares ECD Empresa Plano de Conta Plano de Conta Referencial

CS5 CS6 CS7 CS8 CS9 CSA CSB CSC CSD CSE CSF CSG CSH CSI CSX CSY

ECD Centro de Custo ECD Viso Gerencial ECD Histrico Padro ECD Contabilista ECD Participante ECD Cabealho das Movimentaes ECD Itens de Movimentaes ECD Balancete ECD Cabealho do Balancete ECD Itens do Balano ECD Balanos RTFb ECD Balancete Dirio Descrio da Pr-Validao ECD Frmulas da Pr-Validao ECD Importao de Dirios Importao de Dirios Quebra

14) Agora... Teoricamente voc t pronto pra gerar o arquivo. V na Central de Escriturao e d incio. O primeiro SPED CONTABIL nunca ser esquecido.

ltimos detalhes: a) D uma lida no Layout do SPED Contbil (site da Receita) e verifique se o Balano Patrimonial / DRE so obrigatrios pra esse ano b) Faa a mesma verificao sobre a amarrao referencial