Tarefas de rotina e em segundo plano. Trabalhos em segundo plano: recursos, capacidades, configurações 1s 8 3 desabilitar trabalhos em segundo plano

Depois de mudar de 1C: Accounting 2.0 para a edição 3.0, a velocidade da nova versão fica mais lenta. Consideraremos esse problema neste artigo e forneceremos instruções passo a passo para ações no programa 1C: Accounting 3.0, o que ajudará a agilizar seu trabalho.

Via de regra, o motivo da lentidão do programa reside no fato de que trabalhos de rotina e em segundo plano estão em execução no sistema. Na versão servidor da configuração versão 3.0, eles permitem automatizar diversas operações para manter o programa fora do horário comercial. Mas no modo de operação de arquivo, os trabalhos em segundo plano são iniciados enquanto o usuário está trabalhando e, portanto, o sistema fica lento.

Para acelerar o trabalho no modo de arquivo 1C: Accounting 3.0, é recomendado desabilitar os trabalhos em segundo plano. Para fazer isso, precisamos consultar a seção Administração. Nesta seção do painel de navegação encontramos Suporte e serviço.

Abra a seção Operações regulatórias e depois clique no link Tarefas de rotina e em segundo plano.

Uma lista aparecerá na sua frente, na qual as tarefas ativas (habilitadas) estão marcadas.

Para desabilitar uma tarefa, você precisa abri-la e desmarcar a opção "Habilitado" e, em seguida, pressione o botão Salvar e fechar.

Ao trabalhar na versão arquivo do programa, recomendamos desabilitar todas as tarefas rotineiras presentes na lista. Outra possível razão para a baixa velocidade do sistema é o mecanismo habilitado Pesquisa de texto completo. Como no programa 1C: Accounting 3.0 este mecanismo é opcional, pode ser desabilitar. Para fazer isso, você precisa ir para a seção Operações regulatórias desmarque Pesquisa de dados de texto completo.

Os usuários costumam reclamar que “1C 8.3 é lento”: os formulários dos documentos abrem lentamente, os documentos demoram muito para serem processados, o programa inicia, os relatórios demoram muito para serem gerados e assim por diante.

Além disso, tais “falhas” podem ocorrer em diferentes programas:

As razões podem ser diferentes. Estes não são documentos restaurados, um computador ou servidor fraco, o servidor 1C está configurado incorretamente.

Neste artigo, quero examinar um dos motivos mais simples e comuns para um programa lento - . Esta instrução será relevante para usuários de bancos de dados de arquivos de 1 a 2 usuários, onde não há competição por recursos.

Se você estiver interessado em uma otimização mais séria das opções cliente-servidor para operação do sistema, visite a seção do site.

Onde estão as tarefas agendadas em 1C 8.3?

Antes que eu tivesse tempo de carregar o programa, muitas tarefas em segundo plano foram concluídas em 1C. Você pode visualizá-los acessando o menu “Administração” e depois “Suporte e Manutenção”:

Obtenha 267 videoaulas em 1C gratuitamente:

Esta é a aparência da janela com tarefas concluídas:

E aqui está uma lista completa de todas as tarefas de rotina executadas:

Entre essas tarefas você pode ver como ““, carregar vários classificadores, verificar a relevância da versão do programa, e assim por diante. Por exemplo, não tenho utilidade para quase todas essas tarefas. Não mantenho registros de moeda, eu mesmo controlo as versões e carrego classificadores conforme necessário.

Conseqüentemente, é do meu interesse (e na maioria dos casos do seu) desativar tarefas desnecessárias.

Desativando tarefas de rotina e em segundo plano em 1C 8.3

Plataformas: 1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1
Configurações: Todas as configurações

2012-11-13
53989

Na gestão documental, existem tarefas que requerem execução periódica - por exemplo, no dia 20, ou diariamente. Via de regra, as empresas especificamente para esse fim criam certas regras que indicam quando e como a tarefa necessária deve ser executada e quem deve controlar o processo. Tais tarefas são executadas de acordo com regulamentos e são chamadas de regulamentadas.

Muitas vezes, os regulamentos de monitoramento são observados em TI. Este método é muito familiar aos administradores, pois para isso existem programas especiais utilizados para verificar periodicamente o funcionamento da infraestrutura de rede e dos servidores. Eles notificam o administrador sobre problemas detectados via SMS ou e-mail.

Um sistema semelhante funciona para webmasters e a disponibilidade do site é verificada em 24 horas. Utilizando o mecanismo “Tarefas de rotina” em 1C, são realizadas tarefas de monitoramento, bem como tarefas periódicas que são executadas de acordo com um cronograma em modo automático em 1C. Vamos dar uma olhada mais de perto neste tópico.

Tarefas agendadas 1C

O objeto 1C, denominado “Tarefas de rotina”, permite processar informações não após a ocorrência de um problema, mas de acordo com um cronograma. No configurador, uma tarefa de rotina é uma forma de definir configurações e definir uma programação. Além disso, é possível alterar posteriormente a programação no modo 1C Enterprise.

Ao usar um banco de dados de arquivos, os trabalhos não são executados automaticamente. Para iniciar o processo, você precisa iniciar uma sessão 1C no modo 1C Enterprise e iniciar a execução de uma tarefa de rotina nela.

Todas as configurações padrão possuem uma configuração personalizada que permite especificar que quando 1C estiver em execução, as tarefas de rotina serão executadas automaticamente.

O uso da versão cliente-servidor do 1C possibilita a execução automática de tarefas no servidor. No horário programado, é iniciado um trabalho em segundo plano, que executa as ações necessárias. Para computação paralela no servidor, um trabalho em segundo plano pode ser criado a partir do texto do programa usando a linguagem 1C, sem usar um trabalho 1C agendado. A ação de uma tarefa agendada pode ser desabilitada temporariamente usando o console de gerenciamento do servidor 1C.

Adicionando uma tarefa agendada

As tarefas de rotina estão localizadas em - Configurador - Geral - Tarefas de rotina. Adicione uma nova “tarefa” e forneça um nome. Em seguida, você precisa ir para as propriedades “Tarefas”. E selecione Nome do Método. Aqui, você precisa especificar uma função manipuladora, assim como acontece em uma assinatura de evento. Esta função estará localizada no módulo geral e marcada com um Servidor “pássaro” nas propriedades. Isso significa que o módulo necessário deve ser adicionado antecipadamente.

O nome da tarefa nas Propriedades de uma tarefa agendada permite definir o seu nome, que aparecerá nas ferramentas de gerenciamento de tarefas. A função Propriedades da Tarefa de Rotina é uma chave que permite agrupar diversas tarefas de rotina diferentes. Neste caso, apenas uma tarefa com o mesmo valor-chave pode ser iniciada por vez. Aqui o valor pode ser arbitrário, mas deve ser preenchido, pois um valor vazio não é levado em consideração pelo sistema.

Na edição 2.0 do Accounting, que é uma configuração padrão, tarefas rotineiras como: “Recálculo de totais” e “Atualização da configuração” são predefinidas, mas como, por exemplo, “Movimentos diferidos” e “Troca de dados” não são predefinidas.

Tentar novamente em caso de encerramento anormal - reinicia o trabalho atual. Projetado para realizar um lançamento que não teve sucesso na primeira vez. Aqui é indicado quantas vezes você pode reiniciar e quanto tempo passou após um encerramento anormal.

Ferramentas de monitoramento e gerenciamento para tarefas rotineiras 1C

O processamento padrão “Task Console”, que pode ser encontrado nos discos ITS, é responsável por gerenciar uma tarefa rotineira. Este processamento é um processamento padrão externo universal 1C. Via de regra, não está incluso na configuração, mas é adquirido separadamente.

Com sua ajuda você pode realizar as seguintes ações:

Ativar e desativar uma tarefa agendada;

Atribuir e alterar horários;

Designe o nome do usuário com o qual será executada a tarefa rotineira;

Veja tarefas concluídas (quando e com que resultado), bem como erros nas tarefas;

Tarefa de rotina e cópias de bancos de dados

Ao usar o servidor 1C, pode surgir o seguinte momento:

Para programar, você precisa fazer uma cópia do banco de dados de trabalho;

A necessidade de trabalhar em cópias do banco de dados (testes);

Por algum motivo, a tarefa agendada não foi incluída no banco de dados de teste.

Se uma dessas situações surgir durante a execução de tarefas rotineiras associadas apenas ao seu banco de dados, isso não terá consequências negativas. Mas, muitas vezes, uma tarefa rotineira pode salvar arquivos ou outros dados, enviar e-mails e realizar trocas. Neste caso, pode surgir confusão entre os resultados do “trabalho” e as cópias. Para evitar que isso aconteça, você precisa desabilitar “tarefas” no console de gerenciamento do servidor.

Tarefas regulatórias concluídas e não concluídas

Ao criar tarefas de rotina, é importante verificar se a tarefa pode ser executada como uma tarefa de rotina. É importante saber que o módulo servidor não faz muitas coisas que são possíveis no cliente. Além disso, uma tarefa que trata de algo que está fora do banco de dados - um papel importante nisso é desempenhado pelos direitos do usuário do Windows sob o qual a tarefa é executada.

O último fator é especialmente importante, pois se o módulo não for executado no servidor, a tarefa não poderá ser concluída em princípio. Para verificar, você precisa executar uma tarefa e avaliar o resultado.

O problema não é novo e é discutido de tempos em tempos em vários fóruns 1C. A solução mais simples e popular é reinicializar o servidor 1C. Infelizmente, esta opção nem sempre é aceitável ou altamente indesejável. Nesse caso, existem soluções mais delicadas.

Aqui um desses métodos na forma de breves instruções passo a passo:

1. Usando o console de administração do servidor 1C, procuramos f problemáticosum novo trabalho na lista de conexões (por exemplo, pela hora de início de sua operação, em comparação com a hora de início de um trabalho regulamentado no console de trabalhos). Nós definimoso processo de trabalho no qual a conexão interrompida está localizada.

2. Abra as propriedades deste processo e marque-o como não utilizado (se apenas um processo for utilizado, primeiro você deverá criar um novo processo de trabalho para que todas as conexões ativas se reconectem a ele). Lembramos o número PID deste processo.


3. Esperamos até que todas as conexões atuais passem do processo desabilitado para um dos usados. Em última análise, apenas as conexões problemáticas devem permanecer em nosso processo, as quais queremos remover.

4. Em um computador com servidor 1C, usando o gerenciador de tarefas, procure o processo rphost.exe correspondente usando o PID do processo de trabalho desabilitado e exclua-o.

5 . Por precaução, você pode excluir o fluxo de trabalho 1C que desabilitamos usando admin. console e, se necessário, crie um novo.

6. Preparar. Você pode fazer login no console de tarefas e verificar a funcionalidade da tarefa agendada.

Ao trabalhar em 1C, existem muitas operações rotineiras que devem ser iniciadas ou programadas para realizar uma ou outra ação, por exemplo: postar documentos ou carregar dados de um site em 1C.

Publiquei recentemente um artigo: É hora de automatizar isso:

Tarefas de rotina e em segundo plano

O mecanismo de trabalho foi projetado para executar qualquer aplicativo ou funcionalidade de maneira agendada ou assíncrona.

O mecanismo de tarefas resolve os seguintes problemas:

  • Capacidade de definir procedimentos regulatórios na fase de configuração do sistema;
  • Execução de ações especificadas de acordo com cronograma;
  • Fazer uma chamada para um determinado procedimento ou função de forma assíncrona, ou seja, sem esperar pela sua conclusão;
  • Acompanhar o andamento de uma tarefa específica e obter seu status de conclusão (valor que indica se foi bem-sucedida ou não);
  • Obtenção de uma lista de tarefas atuais;
  • Capacidade de aguardar a conclusão de uma ou mais tarefas;
  • Gestão de trabalhos (possibilidade de cancelamento, bloqueio de execução, etc.).

O mecanismo de trabalho consiste nos seguintes componentes:

  • Metadados de tarefas rotineiras;
  • Tarefas regulares;
  • Trabalhos em segundo plano;
  • Agendador de tarefas.

Os trabalhos em segundo plano são projetados para executar tarefas de aplicativo de forma assíncrona. As tarefas em segundo plano são implementadas usando a linguagem integrada.

As tarefas agendadas são projetadas para executar tarefas do aplicativo de acordo com uma programação. As tarefas de rotina são armazenadas na base de informações e criadas com base nos metadados definidos na configuração. Os metadados de uma tarefa regulatória contêm informações como nome, método, uso, etc.

Uma tarefa de rotina possui um cronograma que determina em que horários o método associado à tarefa de rotina deve ser executado. O cronograma, via de regra, é especificado na infobase, mas também pode ser especificado na fase de configuração (por exemplo, para tarefas de rotina predefinidas).

O agendador de tarefas é usado para agendar a execução de tarefas rotineiras. Para cada trabalho agendado, o agendador verifica periodicamente se a data e hora atuais correspondem ao agendamento do trabalho agendado. Se corresponder, o agendador atribui essa tarefa para execução. Para fazer isso, para esta tarefa agendada, o agendador cria uma tarefa em segundo plano, que executa o processamento real.

Acho que basta a descrição - vamos à implementação:

Criando uma tarefa de rotina

Nome do método– caminho para o procedimento que será executado em um trabalho em segundo plano de acordo com um determinado cronograma. O procedimento deve estar em um módulo comum. Recomenda-se não usar módulos comuns padrão, mas criar os seus próprios. Não esqueça que os trabalhos em segundo plano são executados no servidor!

Uso– sinal de uso de uma tarefa rotineira.

Predeterminado– indica se a tarefa de rotina está predeterminada.

Se você deseja que a tarefa de rotina funcione imediatamente após ser colocada no banco de dados, especifique o atributo Predeterminado. Caso contrário, você precisará usar o processamento do “Job Console” ou acionar a tarefa para ser executada programaticamente.

Número de novas tentativas quando um trabalho termina de forma anormal– quantas vezes o trabalho em segundo plano foi reiniciado se foi executado com erro.

Intervalo de repetição quando o trabalho termina de forma anormal– com que frequência o trabalho em segundo plano será reiniciado se tiver sido concluído com um erro.

Configurando um cronograma

Agendar completando a tarefa:

Cada hora, apenas um diaPeríodo de RepeatDays = 0, Período de RepeatDays = 3600
Todos os dias uma vez por diaPeríodo de RepeatDays = 1, Período de RepeatDays = 0
Um dia, uma vezPeríodoRepetirDias = 0
Dia sim, dia não, uma vez por diaPeríodoRepetirDias = 2
A cada hora, das 01h00 às 07h00, todos os diasPeriodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01,00

Hora de término = 07h00

Todos os sábados e domingos às 09h00Período de RepeatDays = 1WeekDays = 6, 7StartTime = 09.00
Todos os dias durante uma semana, pule uma semanaPeriodRepeatDays = 1PeriodWeeks = 2
À 01h00 uma vezHora de início = 01h00
Último dia de cada mês às 9h.PeriodRepeatDays = 1DayInMonth = -1StartTime = 09,00
Quinto dia de cada mês às 9hPeriodRepeatDays = 1DayInMonth = 5StartTime = 09.00
Segunda quarta-feira de cada mês às 9hPeriodRepeatDays = 1DiaSemanaMês = 2DiasSemana = 3

Hora de início = 09h00

Recursos de execução de trabalhos em segundo plano em variantes de arquivo e cliente-servidor

Os mecanismos para executar trabalhos em segundo plano nas versões arquivo e cliente-servidor são diferentes.

Na versão do arquivo você precisa criar um processo cliente dedicado que executará trabalhos em segundo plano. Para fazer isso, o processo cliente deve chamar periodicamente a função de contexto global ExecuteJobProcessing. Apenas um processo cliente por infobase deve processar trabalhos em segundo plano (e, consequentemente, chamar esta função). Se um processo cliente não tiver sido criado para processar trabalhos em segundo plano, ao acessar programaticamente o mecanismo de trabalho, o erro “Job Manager não está ativo” será exibido. Não é recomendado usar um processo cliente que processe trabalhos em segundo plano para outras funções.

Depois que o processo do cliente processando trabalhos em segundo plano é iniciado, outros processos do cliente são capazes de acessar programaticamente o mecanismo de trabalho em segundo plano, ou seja, pode executar e gerenciar trabalhos em segundo plano.

Na versão cliente-servidor Para executar trabalhos em segundo plano, é utilizado um agendador de tarefas, que está fisicamente localizado no gerenciador de cluster. Para todos os trabalhos em segundo plano enfileirados, o agendador obtém o processo de trabalho menos carregado e o utiliza para executar o trabalho em segundo plano correspondente. O processo de trabalho executa o trabalho e notifica o agendador sobre os resultados da execução.

Na versão cliente-servidor é possível bloquear a execução de tarefas rotineiras. A execução de tarefas rotineiras fica bloqueada nos seguintes casos:

  • Um bloqueio explícito de tarefas rotineiras foi instalado na base de informações. O bloqueio pode ser definido por meio do console do cluster;
  • Existe um bloco de conexão na infobase. O bloqueio pode ser definido por meio do console do cluster;
  • O método SetExclusiveMode() com o parâmetro True foi chamado a partir da linguagem interna;
  • Em alguns outros casos (por exemplo, ao atualizar a configuração do banco de dados).

Processando o lançamento e visualização de tarefas agendadas você pode baixar aqui.