Scroll Only |
---|
Autor do artigo:Pedro.Fortes.Pro (Não remova esse quadro) |
Quando o erro ocorre ?
Ao “Consultar Período” dentro da rotina Calculo do Faturamento do Simples Nacional, independente do período apresenta a mensagem de erro: 2147217887 - Operação de várias etapas gerou erros. Verifique cada valor de status
(Falha no registro do Codigo SINAC)
Como Resolver ?
Este erro na rotina Cálculo do Faturamento do Simples Nacional (ocorreu com o código de serviço “1040” em que ao abrir ele dentro da rotina Fiscal> Tabelas> Códigos de Serviços - 001 - Tabela d Serviços: Não fica gravado o código Sinac e ao acessar este código de serviço dentro do Banco foi identificado que ficou gravado uma numeração aleatória “12336”
Aviso |
---|
Importante Antes de executar o procedimento se certificar de ter um backup atualizado da base de dados. |
Será necessário o Programa SBP
E os arquivos :
link para download :
1- Executar o SBP.exe
Informe o nome do servidor, caso esteja executando diretamente no servidor pode deixar como LOCALHOST, e clique em [Conectar]. Se a conexão foi estabelecida com sucesso será exibida a seguinte tela:
Clique em [OK]. Na tela abaixo informe o arquivo “CorrecaoCodServ_Passo1- G- 1439.smk” e a DSN que deseja executar o script, no exemplo CPROEMP00.
Clique em [Executar]. Se os comandos foram executados com sucesso será apresentada a mensagem abaixo:
2- Após isso verifique que no diretório C:\PROPEMP00 existe um arquivo chamado “CODSERVTMP.MKD”
3- Copiar o arquivo “CODSERVTMP.MKD” para a pasta C:\PROEMP00\LFS.
4- Na pasta C:\PROEMP00\LFS renomear o arquivo “LFS_0025.MKD” para “LFS_0025.MKD_old”.
5- Na pasta C:\PROEMP00\LFS renomear o arquivo “CODSERVTMP.MKD” para “LFS_0025.MKD”.
66- Executar a segunda parte do procedimento com o SBP, sendo que dessa vez é apenas executar com o SBP.exe o arquivo “CorrecaoCodServ_Passo2- G- 14391156.smk”
Script 2
Para os casos que o código SINAC não corrige na base de uma empresa específica, realize o procedimento abaixo:
Aviso |
---|
Antes de executar o procedimento realizar um backup da base de dados da empresa com falha (LFS\EEEE) |
Tomamos como exemplo a empresa 0001
Passo 1
Executar os comandos abaixo no PCC na DSN da empresa 0001:
SELECT * INTO prodemp0001tmp from prodemp0001;
ALTER TABLE prodemp0001tmp ADD PRIMARY KEY(id);
DROP TABLE prodemp0001tmp IN DICTIONARY;
Passo 2
Renomear o LFS_0071.MKD para LFS_0071.MKD_old existente no diretório ?:\PROEMPXX\LFS\0001.
Será criado um arquivo de nome PRODEMP0001TMP.MKD dentro do diretório: ?:\PROEMPXX\LFS\0001, renomear esse arquivo de PRODEMP0001TMP.MKD para LFS_0071.MKD.
Passo 3
Executar os comandos abaixo no PCC na DSN da empresa 0001:
DROP INDEX prodemp0001.iprodemp00011 IN DICTIONARY;
DROP INDEX prodemp0001.iprodemp00012 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00013 IN DICTIONARY; --necessario remover essa fk para poder remover o index iprodempEEEE4
ALTER TABLE lmc_combtanq0001 DROP CONSTRAINT clmc_combtanq00012; DROP INDEX prodemp0001.iprodemp00014 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00015 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00016 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00017 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00018 IN DICTIONARY; DROP INDEX prodemp0001.iprodemp00019 IN DICTIONARY; --criacao dos indices CREATE UNIQUE INDEX iprodemp00011 ON prodemp0001(fk_empresa_id, prodemp); CREATE INDEX iprodemp00012 ON prodemp0001(fk_empresa_id, fk_prodgeral_id); CREATE INDEX iprodemp00013 ON prodemp0001(fk_prodgeral_id, prodemp); CREATE UNIQUE INDEX iprodemp00014 ON prodemp0001(prodemp); CREATE INDEX iprodemp00015 ON prodemp0001(tipo); CREATE INDEX iprodemp00016 ON prodemp0001(codean); CREATE INDEX iprodemp00017 ON prodemp0001(fk_espbeb_id); CREATE INDEX iprodemp00018 ON prodemp0001(fk_ncm_id); CREATE INDEX iprodemp00019 ON prodemp0001(fk_prodsefaz_id); --necessario recriar a fk removida ALTER TABLE lmc_combtanq0001 ADD CONSTRAINT clmc_combtanq00012 FOREIGN KEY (fk_prodemp) REFERENCES prodemp0001 (prodemp);
HTML |
---|
<div id="text-end"></div> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag2(){dataLayer.push(arguments);} gtag2('js', new Date()); gtag2('config', 'UA-193974933-1'); function gtagevents (action,category) { console.log(category + ':' + action); gtag2('event',action,{event_category:category,event_label: document.title}); }; </script> <script src="https://player.vimeo.com/api/player.js"></script> <script> (function(){ // RASTREIO DE USO DO VÍDEO function gtagvideo(action){ gtagevents(action,'Video') } var iframe = document.querySelector('iframe'); var player = new Vimeo.Player(iframe); var seeking = false; var priorTime = 0; var currentTime = 0; var reportouFinalDoConteudo = false; // se pausar o play é acionado também. player.on('play', function(data) { if(data.seconds == 0){ gtagvideo('video-iniciado'); } priorTime = data.seconds; }); player.on('ended', function() { gtagvideo('video-finalizado'); }); //seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking). // pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração. player.on('seeking', function(data) { seeking = true; }); player.on('pause',function(data){ gtagvideo('video-pausado'); }); player.on('timeupdate', function(data) { if(seeking){ if(currentTime < priorTime){ gtagvideo('video-voltando'); } if(currentTime > priorTime){ gtagvideo('video-avancando') } seeking = false; } priorTime = currentTime; currentTime = data.seconds; var finalDoConteudo = (data.duration - data.seconds) < 5; if(finalDoConteudo && !reportouFinalDoConteudo){ gtagvideo('conteudo-finalizado') reportouFinalDoConteudo = true; } }); player.on('fullscreenchange', function() { gtagvideo('video-fullscreen'); }); })(); </script> <script> // RASTREIO DO USO DE AUDIO (function(){ function gtagaudio(action){ gtagevents(action,'Audio') } var audio = document.querySelector("audio"); var seeking = false; var priorTime = 0; var currentTime = 0; audio.addEventListener('play',function(){ if(audio.currentTime == 0){ gtagaudio('audio-iniciado'); } priorTime = audio.currentTime; }); audio.addEventListener('ended',function(){ gtagaudio('audio-finalizado'); }); audio.addEventListener('pause',function(){ gtagaudio('audio-pausado'); }); audio.addEventListener('seeking', function(data) { seeking = true; }); audio.addEventListener('timeupdate', function(data) { if(seeking){ if(currentTime < priorTime){ gtagaudio('audio-voltando'); } if(currentTime > priorTime){ gtagaudio('audio-avancando') } seeking = false; } priorTime = currentTime; currentTime = audio.currentTime; }); })(); </script> <script> (function(){ var terminou = false; //RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA document.addEventListener('scroll',() => { if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){ if(!terminou){ terminou = true; gtagevents('artigo-lido','Pagina') } }else{ terminou = false; } }); })(); </script> |