Casa / Internet / 1 indica sotto quale utente è in esecuzione l'attività in background. Avvio di un processo in background a livello di programmazione. Lavori programmati e in background

1 indica sotto quale utente è in esecuzione l'attività in background. Avvio di un processo in background a livello di programmazione. Lavori programmati e in background

Gestione delle attività pianificate dei database 1C dal programma di aggiornamento

2018-11-20T15:18:30+00:00

In questa nota, diamo un'occhiata alle capacità del programma di aggiornamento per la gestione delle attività pianificate nei database.

Innanzitutto, nella voce "Altro" -> "Gestisci attività pianificate...":

A menù contestuale base dedicata (o gruppo di basi):

E, infine, nei modelli per gli script batch (questo consente di eseguire operazioni su attività pianificate da uno script in base a una pianificazione):

Ecco come appare la finestra di dialogo per la gestione delle attività pianificate nei database:

Quali compiti ti consente di risolvere nel gruppo di basi desiderato (o una base)?

Selezione delle attività pianificate

Prestare attenzione alla possibilità di selezionare un elenco di attività pianificate in molte operazioni di seguito:

Ma nella finestra di dialogo di selezione potrebbero non esserci attività pianificate specifiche per la tua base:

In questo caso, puoi specificare i nomi delle attività pianificate di cui hai bisogno nella sezione "Attività proprie ...", ad esempio, in questo modo:

I nomi per tali attività pianificate possono essere presi direttamente dal rapporto su tutte le attività pianificate (è descritto).

Visualizzazione dello stato corrente dei lavori

Per fare ciò, vai alla scheda "Preleva" e premi il pulsante "Preleva...":

Nei risultati possiamo vedere:

  1. Abilitato o disabilitato l'avvio di nuove attività pianificate sul server 1C.
  2. Elenco delle attività pianificate nel database.
  3. Il loro programma.
  4. Lavori abilitati o disabilitati.
  5. Se l'ultima esecuzione dell'attività è stata con un errore, questo errore viene visualizzato in rosso accanto all'attività.

Se necessario, nelle impostazioni della funzionalità, possiamo restringere l'elenco delle attività pianificate, nonché visualizzare solo le attività abilitate:

Disattiva tutte o alcune attività

Per fare ciò, vai alla scheda "Disattiva":

Tutti i lavori pianificati o quelli selezionati deselezionano la casella di controllo Utilizzo.

Ecco il risultato per una base (clicca per espandere)

Includere tutte o alcune attività

Per fare ciò, vai alla scheda "Abilita":

Tutti i lavori pianificati o quelli selezionati avranno la casella di controllo Utilizzo selezionata.

Si prega di notare che in questa scheda il flag "Make backup base" nell'angolo in basso a sinistra.

Ecco il risultato per una base (clicca per espandere)

Gestiamo l'avvio delle attività pianificate sul server 1C

Per fare ciò, vai alla scheda "Server 1C":

Seleziona "Blocca" o "Sblocca" e fai clic sul pulsante "Esegui".

Impostazione di una pianificazione delle attività

Ma cosa succede se è necessario impostare una pianificazione per l'avvio di un'attività (o un gruppo di attività) in più database contemporaneamente?

Per fare ciò, vai alla scheda "Imposta pianificazione":

Impostiamo la pianificazione (la finestra di dialogo e le sue capacità sono completamente le stesse di quelle normali in 1C stesso) e facciamo clic su "Imposta ...".

Avvio di attività per l'esecuzione

Per fare ciò, vai alla scheda "Start":

Seleziona le attività desiderate e fai clic sul pulsante "Avvia":

Salvataggio delle impostazioni del lavoro in un file esterno

Supponiamo di aver idealmente configurato le attività pianificate in uno dei database e di voler trasferire queste impostazioni a tutti gli altri database.

Per fare ciò, prima carichiamo tutte le impostazioni del lavoro nel database ideale in un file esterno:

Ripristino delle impostazioni del lavoro da un file esterno

E poi carichiamo questo file con le impostazioni del lavoro su tutti gli altri database:

Tieni presente che per questa attività (trasferimento delle impostazioni del lavoro da un database ad altri), ho scelto il metodo di corrispondenza per nome del lavoro e non per identificatore interno.

parola d'addio

In generale, questo è tutto ciò che volevo dire. Io stesso vedo molti scenari per l'utilizzo di nuove funzionalità, ma qui ho appena visto i punti principali.

Piattaforme: 1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1
Configurazioni: Tutte le configurazioni

2012-11-13
53989

Nel flusso di lavoro sono presenti attività che richiedono un'esecuzione periodica, ad esempio il ventesimo o ogni giorno. Di norma, nelle aziende appositamente per questo, vengono create alcune regole che indicano quando e come eseguire l'attività necessaria e chi dovrebbe controllare il processo. Tali compiti sono svolti secondo i regolamenti e sono chiamati regolamentati.

Molto spesso, l'IT segue le regole per il monitoraggio. Questo metodo è ben noto agli amministratori, dal momento che ci sono programmi speciali utilizzato per controllare periodicamente lo stato di salute dell'infrastruttura di rete e dei server. Informano l'amministratore dei problemi rilevati tramite SMS o e-mail.

Un sistema simile è valido per i webmaster, mentre la disponibilità del sito viene verificata entro 24 ore. Con l'aiuto del meccanismo "Attività regolari" in 1C, vengono eseguite attività di monitoraggio, nonché attività periodiche che vengono eseguite secondo un programma in Modalità automatica in 1C. Consideriamo questo argomento in modo più dettagliato.

Compiti pianificati 1C

L'oggetto 1C, chiamato "Attività regolari", consente di elaborare le informazioni non dopo che si è verificato un problema, ma secondo una pianificazione. Nel configuratore compito di routineè un modo per impostare le preferenze e impostare un programma. Inoltre, è possibile modificare successivamente il programma nella modalità 1C Enterprise.

Quando si utilizza un database di file, i lavori non vengono eseguiti automaticamente. Per avviare il processo, è necessario avviare una sessione 1C in modalità 1C Enterprise e avviare l'esecuzione di un'attività pianificata al suo interno.

Tutte le configurazioni tipiche hanno un'impostazione utente che consente di chiarire che quando 1C è in esecuzione, le attività di routine verranno eseguite automaticamente.

L'utilizzo della versione client-server di 1C consente di eseguire automaticamente attività sul server. All'ora pianificata, viene avviata un'attività in background che esegue le azioni necessarie. Per il calcolo parallelo sul server, è possibile creare un'attività in background dal testo del programma utilizzando il linguaggio 1C, senza utilizzare un'attività 1C pianificata. L'azione di un'attività pianificata può essere temporaneamente disabilitata utilizzando la console di gestione del server 1C per questo.

Aggiunta di un lavoro pianificato

Le attività pianificate si trovano in — Configuratore — Generale — Attività pianificate. Aggiungi una nuova "attività" e fornisci un nome. Successivamente, devi andare alle proprietà delle "Attività". E scegli il nome del metodo. Qui è necessario specificare la funzione del gestore, proprio come accade nella sottoscrizione dell'evento. Questa funzione sarà posizionata nel modulo generale e contrassegnata con un server "bird" nelle proprietà. Ciò significa che il modulo richiesto deve essere aggiunto in anticipo.

Il nome dell'attività nelle Proprietà dell'attività pianificata consente di definirne il nome, che verrà successivamente visualizzato negli strumenti di gestione delle attività. La funzione Proprietà lavoro pianificato è una chiave che consente di raggruppare diversi lavori pianificati. In questo caso, è possibile avviare solo un'attività contemporaneamente con lo stesso valore chiave. Qui il valore può essere arbitrario, ma è obbligatorio compilarlo, poiché il valore vuoto non viene preso in considerazione dal sistema.

Nell'edizione Contabilità 2.0, che è una configurazione tipica, le attività programmate come: "Ricalcolo dei totali" e "Aggiornamento configurazione" sono predefinite, mentre come "Movimenti ritardati" e "Scambio dati" non sono predefinite.

Crash Retry - Riavvia un processo in esecuzione. Previsto per un lancio che non è stato completato con successo la prima volta. Qui viene indicato quante volte è possibile riavviare e quanto tempo dopo il crash.

Strumenti di monitoraggio e gestione dell'attività pianificata 1C

L'elaborazione standard "Job Console", che si trova sui dischi ITS, è responsabile della gestione dell'attività pianificata. Questa elaborazioneè un'elaborazione standard esterna universale 1C. Di norma, non è incluso nella configurazione, ma viene acquistato separatamente.

Con il suo aiuto, puoi eseguire le seguenti azioni:

Attivare e disattivare l'attività pianificata;

Assegnare e modificare il programma;

Indicare il nome dell'utente con il quale verrà eseguita l'attività pianificata;

Visualizza le attività completate (quando e con quale risultato), nonché gli errori delle attività;

Attività pianificate e copie del database

Quando si utilizza il server 1C, potrebbe verificarsi il seguente momento:

Per la programmazione è necessario fare una copia del database di lavoro;

La necessità di lavorare in copie del database (testing);

Per qualche motivo, l'attività pianificata non è abilitata nel database di test.

Se una di queste situazioni si è verificata durante l'esecuzione di attività da parte di un'attività pianificata associata solo al proprio database, ciò non comporta conseguenze negative. Ma, spesso, un'attività pianificata può salvare file o altri dati, inviare e-mail e scambiare. In questo caso, potrebbe esserci confusione tra i risultati del "lavoro" e le copie. Per evitare che ciò accada, è necessario disabilitare le "attività" nella console di gestione del server.

Attività di routine completate e non completate

Quando si creano attività pianificate, è importante verificare se l'attività può essere eseguita come attività pianificata. È importante sapere che il modulo server non fornisce molte delle cose che sono possibili sul client. Successivamente, un compito che si occupa di qualcosa che è al di fuori della base: i diritti giocano un ruolo importante in questo. Utente Windows, in cui viene eseguita l'attività.

L'ultimo fattore è particolarmente importante, poiché se il modulo non viene eseguito sul server, in linea di principio l'attività non può essere eseguita. Per verificare, è necessario eseguire un'attività e valutare il risultato.

Concetto di programmazione asincrona

Il concetto asincrono della programmazione è che il risultato dell'esecuzione della funzione non è disponibile immediatamente, ma dopo qualche tempo sotto forma di una chiamata asincrona (che viola il normale ordine di esecuzione).

Quelli. L'idea principale della programmazione asincrona è avviare singole chiamate di metodo e continuare a svolgere altre operazioni in parallelo senza attendere il completamento delle chiamate.

Alcuni metodi, la cui probabilità di eccezione è ridotta al minimo, non necessitano di un approccio asincrono, ma altri lo richiedono all'inizio dello sviluppo.

Come si può vedere dai grafici, nel modello di programmazione sincrono non esiste un coefficiente di azioni interattive utili dell'utente, poiché il sistema blocca l'interfaccia utente, mentre nel modello asincrono l'utente continua a lavorare attivamente nel sistema.

Durante l'esecuzione in modo sincrono, un'applicazione ha un solo thread. Con il modello di programmazione asincrono, puoi eseguire molti thread paralleli e rispondere alle azioni dei nuovi utenti durante l'esecuzione. Dopo che l'n-thread è terminato, visualizzi il risultato sullo schermo.

Attività in background in 1C:Enterprise 8

In "1C:Enterprise 8" lavori in background progettato per eseguire le attività dell'applicazione in modo asincrono. Possono generare processi secondari in background, ad esempio, per parallelizzare calcoli complessi su diversi server di lavoro del cluster in una modalità operativa client-server.

È possibile limitare l'esecuzione di processi in background che hanno gli stessi metodi, in base a un determinato attributo dell'applicazione. La creazione e la gestione programmatica dei lavori in background è possibile da qualsiasi connessione utente con base informativa sistemi. Il processo in background viene eseguito come l'utente che lo ha creato.

Il meccanismo delle attività funziona sia nella versione client-server che in quella file del lavoro, ma le possibilità di amministrazione ed esecuzione delle attività in entrambe le versioni sono leggermente diverse.

Opzione client-server

Nella versione client-server, le attività vengono pianificate dall'utilità di pianificazione, che si trova fisicamente nel gestore cluster.

Lo scheduler controlla periodicamente le richieste per l'esecuzione di processi in background. Se sono presenti lavori che devono essere eseguiti, lo scheduler determina i processi di lavoro del cluster meno caricati e assegna in sequenza un'attività da eseguire a ciascuno di essi. Pertanto, lo stesso flusso di lavoro può potenzialmente eseguire più lavori in parallelo. Dopo che l'attività è stata ricevuta dal flusso di lavoro, il flusso di lavoro stabilisce una connessione all'infobase ed esegue l'attività all'interno di questa connessione. Dopo l'esecuzione del processo, il flusso di lavoro notifica all'utilità di pianificazione l'esito positivo o negativo del processo.

Opzione file

A partire dalla versione 8.3.3.641 della piattaforma, gli sviluppatori hanno notevolmente semplificato il lavoro con i lavori in background nella versione file.

In precedenza, l'esecuzione automatica delle attività richiedeva l'avvio di una sessione 1C:Enterprise aggiuntiva separata utilizzata come utilità di pianificazione delle attività. E in questa sessione è stato necessario eseguire periodicamente il metodo del linguaggio integrato ExecuteProcessingJob(). Questo approccio era piuttosto ingombrante, scomodo e limitava fortemente l'uso di attività in background e pianificate nella versione file del lavoro.

Ora tutto è diventato molto più semplice. Se viene avviato un thin o thick client o se il server Web dispone di connessioni client, ciascuna di queste applicazioni avvia automaticamente un altro thread con una connessione al database. Questi thread sono impegnati nel fatto che eseguono attività in background e pianificate.

Ognuna di queste applicazioni esegue i propri processi in background. Se un'applicazione ha avviato diversi processi in background, questi vengono eseguiti in sequenza, nell'ordine in cui vengono ricevuti.

Ovvio meno 1C lavori in background: poiché vengono eseguiti lato server, non c'è possibilità di lavoro interattivo con l'utente (ad esempio, non è possibile visualizzare un messaggio o qualsiasi altra informazione; tutti questi dati devono essere archiviati all'interno dell'infobase e successivamente elaborati in qualche modo) .

Va notato che i processi in background sono oggetti puramente programmatici e non possono essere archiviati nel database. Cioè, possiamo solo creare un'istanza della classe, inizializzare le sue proprietà ed eseguirla per l'esecuzione.

Un esempio di esecuzione di codice asincrono in 1C:Enterprise 8

“Scrivere programmi in cui il risultato di una chiamata di funzione arriva in un momento sconosciuto è molto più difficile dei normali programmi. Chiamate nidificate, gestione degli errori, controllo su ciò che sta accadendo: tutto diventa più complicato ", lo dirà solo chi non sa come utilizzare correttamente le capacità della piattaforma, ma non noi!

Dimostriamo tutta la semplicità e l'eleganza dell'esecuzione di codice asincrono in 1C:Enterprise 8!

Passo 1. Creiamo un nuovo IB per lo sviluppo della configurazione

Passo 2 Nella configurazione, aggiungi il modulo generale "AsynchronousHandlers"

Perché abbiamo aggiunto un modulo comune? Tutto è semplice qui: per eseguire operazioni asincrone in 1C:Enterprise 8, vengono utilizzate attività in background, che hanno il proprio manager - "BackgroundTask Manager". Questo oggetto ha un metodo "Esegui", con l'aiuto del quale viene avviata l'attività in background.

Passiamo all'assistente di sintassi.

Pertanto, avremo bisogno di un modulo comune.

Passaggio 3 Nel modulo generale "AsynchronousHandlers" aggiungiamo la procedura di esportazione OurDurationOperation()

Procedure OurDurationOperation(Duration) Export // Simulazione di un'azione continua (Duration sec.). OperationStartDate = CurrentDate(); Mentre CurrentDate() - OperationStartDate< Длительность Цикл КонецЦикла; КонецПроцедуры

Passaggio 4 Aggiungiamo alla configurazione l'elaborazione “AsynchronousProgrammingConcept” (è possibile creare un'elaborazione esterna)

Aggiungi un attributo al modulo:

Durata (Numero)

e due squadre

Eseguire un'operazione lunga;

Esegue un'operazione a esecuzione prolungata in modo asincrono.

Passaggio 5 Secondo l'assistente di sintassi, compila il modulo del modulo

Procedura &AtClient PerformLongOperation(Command) PerformLongOperationOnServer(); EndProcedure Procedura &OnServer PerformLongOperationOnServer() AsynchronousHandlers.OurLongOperation(Duration); EndProcedure Procedura &OnClient ExecuteOperationLong-runningAsynchronously(Command) ExecuteLong-runningOperationAsynchronouslyOnServer(); EndProcedure Procedura &AtServer PerformLong-runningOperation AsynchronouslyAtServer() Parametri = New Array; Parametri.Add(Durata); BackgroundJobs.Run("AsynchronousHandlers.Our LongOperation", Parameters, New UniqueIdentifier, "Esempio di concetto di programmazione asincrona"); FineProcedura

Passaggio 6 Lanciamo e controlliamo!

Risultato:

Se clicchiamo sul pulsante "Esegui un'operazione lunga", l'interfaccia utente viene bloccata per "Durata" secondi;

Se facciamo clic sul pulsante "Esegui un'operazione di lunga durata in modo asincrono", l'interfaccia utente non viene bloccata e il codice del programma viene eseguito in parallelo.

Possiamo verificare che il codice del programma sia in esecuzione in modo asincrono guardando il registro.

Possiamo eseguire il debug del codice del programma che viene eseguito in "background" se impostiamo la proprietà appropriata nelle opzioni di debug.

Un esempio di esecuzione di codice asincrono in 1C:Enterprise 8 utilizzando BSP

Consideriamo un esempio dell'implementazione del concetto di programmazione asincrona in 1C:Enterprise 8 in BSP utilizzando l'esempio dell'elaborazione di Current Affairs.

La logica è la seguente: durante l'avvio del programma, viene inizializzata l'area di lavoro della home page, dove è possibile visualizzare il modulo di elaborazione "Affari correnti". Questo modulo è riempito con gli affari correnti dell'utente e ci vuole tempo per completarlo. Se gli sviluppatori non avessero la possibilità di eseguire il codice in modo asincrono, l'interfaccia utente verrebbe bloccata per tutta la durata della compilazione del modulo di elaborazione!

Analizziamo il codice programma del form.

L'evento del modulo "OnCreateOnServer" chiama la procedura "RunBackgroundJob": questo è ciò di cui abbiamo bisogno.

Senza essere distratti dalle sfumature, analizziamo questa procedura

E qui vediamo che vengono utilizzati il ​​gestore del lavoro in background e il suo metodo Execute. Tieni presente che gli sviluppatori mantengono un ID lavoro in background univoco.

Per fare ciò, gli sviluppatori utilizzano il metodo ConnectWaitingHandler(<ИмяПроцедуры>, <Интервал>, <Однократно>).



In una procedura di hook Pluggable_CheckJobExecution() gli sviluppatori chiamano una funzione Lavoro completato(ID lavoro)


Questa funzione controlla l'esecuzione di un processo in background in base all'ID.

Va notato che il BSP si è sviluppato moduli comuni supporto per operazioni server di lunga durata.

Pertanto, il concetto asincrono di programmazione in 1C:Enterprise 8 aumenta leggermente la complessità della risoluzione dei problemi per lo sviluppatore, ma migliora significativamente la funzionalità del programma dal punto di vista dell'utente.

Quando si lavora in 1C, ci sono molte operazioni di routine che devono essere avviate o formate secondo una pianificazione eseguendo l'una o l'altra azione, ad esempio: pubblicare documenti o scaricare dati in 1C da un sito.

Di recente ho pubblicato un articolo: è ora di automatizzare questo:

Lavori programmati e in background

Il meccanismo di lavoro è progettato per eseguire qualsiasi applicazione o funzionalità in base a una pianificazione o in modo asincrono.

Il meccanismo di lavoro esegue le seguenti attività:

  • Capacità di determinare le procedure di routine nella fase di configurazione del sistema;
  • Esecuzione di azioni specificate secondo il programma;
  • L'esecuzione di una chiamata a una data procedura o funzione è asincrona, cioè senza attendere il suo completamento;
  • Tracciare l'avanzamento di un lavoro specifico e ottenere il suo stato di completamento (un valore che indica il successo o il fallimento della sua esecuzione);
  • Ottenere un elenco delle attività correnti;
  • Capacità di attendere il completamento di uno o più compiti;
  • Gestione dei lavori (possibilità di cancellazione, blocco dell'esecuzione, ecc.).

Il motore di lavoro è costituito dai seguenti componenti:

  • Metadati delle attività pianificate;
  • Incarichi programmati;
  • Lavori in background;
  • Agenda.

I processi in background e sono progettati per eseguire le attività dell'applicazione in modo asincrono. I processi in background vengono implementati utilizzando il linguaggio integrato.

Attività pianificate e sono progettate per eseguire attività pianificate. Le attività pianificate vengono archiviate nell'infobase e vengono create in base ai metadati definiti nella configurazione. I metadati del processo pianificato contengono informazioni quali nome, metodo, utilizzo e così via.

Un lavoro pianificato ha una pianificazione che determina a che ora deve essere eseguito il metodo associato al lavoro pianificato. La pianificazione, di norma, viene impostata nell'infobase, ma può essere impostata anche in fase di configurazione (ad esempio, per attività pianificate predefinite).

L'utilità di pianificazione delle attività viene utilizzata per pianificare l'esecuzione delle attività pianificate. Per ogni lavoro pianificato, lo scheduler controlla periodicamente se il file La data corrente e la pianificazione temporale dell'attività pianificata. Se corrisponde, lo scheduler pianifica l'esecuzione del lavoro. Per fare ciò, in base a questa attività pianificata, lo scheduler crea un'attività in background che esegue l'elaborazione effettiva.

Con la descrizione, penso che sia sufficiente - procediamo all'implementazione:

Creazione di un lavoro pianificato

Nome del metodo– percorso della procedura che verrà eseguita nell'attività in background in base alla pianificazione specificata. La procedura deve trovarsi in un modulo condiviso. Si consiglia di non utilizzare i tipici moduli comuni, ma di crearne di propri. Non dimenticare che i processi in background vengono eseguiti sul server!

Utilizzo- un segno dell'uso di un'attività pianificata.

predeterminato– indica se il lavoro pianificato è predefinito.

Se si desidera che l'attività pianificata funzioni immediatamente dopo essere stata inserita nel database, specificare il segno predeterminato. In caso contrario, sarà necessario utilizzare l'elaborazione "Job Console" o richiamare il processo per l'esecuzione a livello di codice.

Numero di tentativi quando un processo si arresta in modo anomalo– quante volte il processo in background è stato riavviato se è stato eseguito con un errore.

Intervallo tra tentativi di interruzione del lavoro– la frequenza con cui l'attività in background verrà riavviata se è stata eseguita con un errore.

Impostazione del programma

Programma completamento dell'attività:

Ogni ora, solo un giornoRiprova PeriodDays = 0, Riprova PeriodDuringDay = 3600
Tutti i giorni una volta al giornoRiprova PeriodDays = 1, Riprova PeriodDuringDay = 0
Un giorno, una voltaPeriodo di tentativi giorni = 0
A giorni alterni una volta al giornoPeriodo di tentativi giorni = 2
Ogni ora dalle 01.00 alle 07.00 tutti i giorniRetryPeriodDays = 1RepeatPeriodDay = 3600StartTime = 01.00

Ora di fine = 07:00

Ogni sabato e domenica alle 09:00Ripeti periodo di giorni = 1Giorni della settimana = 6, 7StartTime = 09.00
Ogni giorno una settimana, abbonamento settimanaleRipeti Periodo di giorni = 1 Periodo di settimane = 2
Alle 01:00 una voltaOra inizio = 01.00
L'ultimo giorno di ogni mese alle 9:00.Ripeti periodo di giorni = 1DayInMonth = -1StartTime = 09.00
Il quinto di ogni mese alle 9:00Ripeti periodo di giorni = 1DayInMonth = 5StartTime = 09.00
Il secondo mercoledì di ogni mese alle 9:00Ripeti PeriodoGiorni = 1GiornoSettimanaInMese = 2GiorniSettimana = 3

Ora di inizio = 09:00

Peculiarità dell'esecuzione di attività in background nelle versioni file e client-server

I meccanismi per l'esecuzione di processi in background nelle versioni file e client-server sono diversi.

In formato fileè necessario creare un processo client dedicato che eseguirà attività in background. Per fare ciò, la funzione di contesto globale ExecuteJobProcessing deve essere chiamata periodicamente nel processo client. Solo un processo client per infobase dovrebbe elaborare i processi in background (e quindi chiamare questa funzione). Se non è stato creato alcun processo client per elaborare i processi in background, quando si accede a livello di codice al motore dei processi, verrà generato l'errore "Gestione processi non attivo". Non è consigliabile utilizzare il processo client che elabora i processi in background per altre funzioni.

Dopo che il processo client che gestisce i processi in background è in esecuzione, gli altri processi client hanno l'opportunità di farlo accesso al programma al meccanismo del lavoro in background, ad es. può eseguire e gestire lavori in background.

Nella versione client-server Per eseguire i processi in background, viene utilizzato il task scheduler, che si trova fisicamente nel gestore cluster. L'utilità di pianificazione per tutti i processi in background in coda ottiene il processo di lavoro meno caricato e lo utilizza per eseguire il processo in background corrispondente. Il processo di lavoro esegue il lavoro e notifica allo scheduler i risultati dell'esecuzione.

Nella versione client-server è possibile bloccare l'esecuzione di attività pianificate. Il blocco dell'esecuzione delle attività pianificate si verifica nei seguenti casi:

  • Sull'infobase è stato impostato un blocco esplicito delle attività pianificate. Il blocco può essere impostato tramite la console del cluster;
  • Sull'infobase è stato impostato un blocco di connessione. Il blocco può essere impostato tramite la console del cluster;
  • Il metodo SetExclusiveMode() è stato chiamato dal linguaggio integrato con il parametro True;
  • In alcuni altri casi (ad esempio, durante l'aggiornamento della configurazione del database).

Elaborazione dell'avvio e visualizzazione dei lavori pianificati puoi scaricare qui.

Potrebbe essere necessario eseguire periodicamente alcune attività nella gestione dei documenti e nella contabilità. Ad esempio, sul ventesimo numero. O quotidianamente.

Di solito, l'azienda cerca di creare regole sull'implementazione di tali compiti: chi, quando e come dovrebbe eseguire l'attività, chi dovrebbe controllarla.

Tali compiti sono chiamati - regolamentati, cioè eseguiti secondo i regolamenti.

Nell'IT, il monitoraggio è spesso di routine.

Questo è ben noto all'amministratore di sistema: esistono programmi speciali che controllano periodicamente lo stato dei server e dell'infrastruttura di rete e segnalano SMS o e-mail all'amministratore.

Esistono cose simili per i webmaster: per verificare la disponibilità del sito durante il giorno.

In 1C, le attività di monitoraggio e qualsiasi altra attività periodica che dovrebbe essere eseguita automaticamente in base a una pianificazione vengono eseguite utilizzando il meccanismo delle attività pianificate 1C.

Parliamo di loro oggi.

Compiti pianificati 1C

Attività pianificate 1C è quella che ti consente di eseguire come fa, ma nei tempi previsti.

L'attività di routine 1C stessa nel configuratore è un modo per specificare le impostazioni e impostare un programma. A proposito, il programma può essere modificato dinamicamente in seguito nella modalità 1C Enterprise.

Le attività in background possono essere create arbitrariamente dal testo del programma nel linguaggio 1C senza un'attività pianificata 1C - per il calcolo parallelo sul server.

L'esecuzione delle attività di routine 1C può essere temporaneamente disabilitata - in.

Aggiunta di un'attività pianificata 1C

Le attività pianificate 1C sono nella configurazione nel ramo Generale / Attività pianificate 1C. Aggiungiamo una nuova attività pianificata 1C, specificarne il nome.

Nella proprietà dell'attività pianificata 1C, è indicato il nome del metodo, così come in. La funzione si troverà in un modulo comune con la casella di controllo Server selezionata nelle proprietà, ovvero il modulo deve essere aggiunto in anticipo.

La proprietà dell'attività pianificata 1C - Nome attività - determina il nome con cui l'attività verrà visualizzata negli strumenti di gestione delle attività.

La proprietà dell'attività pianificata 1C - Chiave - consente di raggruppare diverse attività pianificate 1C. È possibile eseguire contemporaneamente solo un'attività con lo stesso valore di chiave. Il valore stesso può essere arbitrario. Un valore vuoto non viene preso in considerazione durante il controllo (ovvero, viene considerato non riempito).

La proprietà dell'attività pianificata 1C - Predefinita - determina che all'avvio di 1C Enterprise, tale attività verrà creata e in un'unica copia con la pianificazione specificata nel configuratore. Le attività non predefinite vengono visualizzate a livello di codice quando arriva la pianificazione.

Nelle configurazioni tipiche, ad esempio Contabilità 2.0, le attività 1C di routine come l'aggiornamento della configurazione e il ricalcolo dei totali sono predefinite e come lo scambio di dati o i movimenti differiti non sono predefiniti.

Utilizzo: include l'attività (ovvero, verrà eseguita solo se la casella di controllo Utilizzo è selezionata).

Crash retry - come puoi facilmente intuire, significa riavviare il lavoro se non è stato possibile completarlo con successo la prima volta - è indicato quante volte riavviare e dopo quante dopo il crash.

1C gestione e monitoraggio delle attività pianificate

Per gestire le attività pianificate 1C, esiste una speciale elaborazione tipica della Task Console. Si può trovare anche su .

Questa elaborazione appartiene al cosiddetto esterno universale trattamenti standard 1C, che spesso non sono inclusi nella configurazione, ma sono distribuiti separatamente, ad esempio, su dischi ITS.

Con l'elaborazione di Job Console, puoi:

  • Abilita / disabilita l'esecuzione dell'attività pianificata 1C
  • Assegna / modifica la pianificazione dell'attività pianificata 1C (e altri parametri)
  • Specificare l'utente 1C per conto del quale verrà eseguita l'attività pianificata 1C
  • Visualizza: quali attività sono state completate quando e con quale risultato, errori nel completamento delle attività 1C
  • Eseguire un compito.

Copie di banche dati e attività di routine 1C

Se viene utilizzato il server 1C, si verifica la seguente situazione:

  • Per i propri scopi (ad esempio, per la programmazione), viene creata una copia del database di lavoro
  • In una copia del database, viene lavorato, testato e così via.
  • Si dimentica di disattivare le attività 1C di routine in una tale base di test.

Mentre le attività di routine 1C eseguono attività relative solo alla loro infobase, non c'è nulla in questo.

Tuttavia, spesso le attività di routine 1C possono salvare i dati di qualsiasi file in altri database, scambiare, inviare e-mail.

In questo caso, potrebbe risultare un'interessante miscela tra il risultato dell'esecuzione di attività 1C di routine nel database di lavoro e le copie.

Le attività di routine 1C per le copie della base di lavoro devono essere disabilitate in.

Adempimento e mancato adempimento di compiti di routine 1C

Quando si creano attività pianificate 1C, è necessario ricordare:

  • Le attività vengono eseguite da sole: devono essere monitorate
  • Le attività vengono eseguite in un modulo sul server
  • Le attività vengono eseguite da un utente Windows diverso, con diritti diversi.

Innanzitutto, è necessario verificare che l'attività sia in esecuzione e possa essere eseguita come attività 1C pianificata.

In secondo luogo, il modulo server significa che molte cose che sono disponibili sul client non sono disponibili. Ad esempio, a volte, non tutti i documenti possono essere postati solo sul server, poiché il loro algoritmo può prevedere che l'invio sia avviato manualmente dall'utente e possono essere utilizzate funzioni non server, ad esempio
Avviso("Ciao!")

In terzo luogo, se l'attività riguarda qualcosa al di fuori della base 1C, diventano importanti i diritti dell'utente Windows in base al quale viene eseguita l'attività.

Il terzo punto è particolarmente importante nello sviluppo. Se il modulo non può essere eseguito sul server, l'attività non verrà eseguita in linea di principio. Per verificare, è necessario eseguire l'attività almeno una volta e visualizzare il risultato "Attività completata" nell'elaborazione della Console attività.