Casa / Internet / 1c Utilità di pianificazione delle attività di amministrazione del cluster di server. Spegnimento automatico del computer. Ottenere un oggetto lavoro

1c Utilità di pianificazione delle attività di amministrazione del cluster di server. Spegnimento automatico del computer. Ottenere un oggetto lavoro

Il lavoro dell'impresa e dell'utente richiede quasi sempre organizzazione e pianificazione. Molte persone utilizzano organizzatori e calendari di terze parti per questi scopi. Nella versione 8 del programma, a partire dalla versione 8.3.6.1977, è stata implementata la possibilità di creare autonomamente un pianificatore di attività in 1C.

A questi fini la piattaforma è dotata di un nuovo strumento denominato “Scheduler”.

Cos'è uno scheduler

In effetti, lo strumento Planner è una combinazione di un campo visivo e un oggetto appartenente al linguaggio integrato. L'aspetto del programma settimanale creato utilizzando lo “Scheduler” è mostrato in Fig. 1.

Come qualsiasi oggetto del linguaggio integrato, l'Utilità di pianificazione in 1C ha un determinato insieme di proprietà che consente di compilarlo a livello di codice:

  1. Periodi di visualizzazione attuali (per impostazione predefinita, il programma imposta questo parametro sulla data corrente del computer);
  2. Rilievi (qui puoi indicare la suddivisione del lavoro per dipartimento, gli orari per gruppi universitari, gli orari di lavoro e pranzo nei negozi);
  3. Elementi (oggetti che rappresentano attività da completare, elementi, ecc.).

In questa fase è importante capire: lo Scheduler non è un oggetto di metadati e non memorizza alcuna informazione. Questo è solo uno strumento che ti consente di visualizzare e organizzare le informazioni archiviate in altri luoghi (molto spesso nelle directory, ma può anche essere sincronizzato con tabelle esterne).

Quando si aggiunge un evento alla finestra dello scheduler, è necessario registrare l'elemento della directory corrispondente. L'apertura del modulo dovrebbe rileggere i dati correnti.

Gli elementi dello scheduler hanno il seguente insieme di caratteristiche:

  • L'inizio e la fine del periodo di tempo dell'evento;
  • Contenuto del testo;
  • Immagine;
  • Valore memorizzato (molto spesso si tratta di un collegamento a un elemento della directory corrispondente, ma potrebbero esserci anche documenti).

Importante! La condizione principale per la memorizzazione dei dati è la presenza di due campi con il tipo di valore DATE per impostare i punti di inizio e fine dell'evento.

Azioni di base con lo scheduler

Avendo una finestra (Fig. 1) è possibile aggiungere un nuovo evento. Per questo:


Fig.3

  • In particolare, cliccando sulla scritta “Ripeti” è possibile configurare la frequenza dell'attività.

Configurazione dei parametri di visualizzazione per l'utilità di pianificazione in 1C

A seconda delle esigenze dell'utente, la finestra del calendario può essere configurata in vari modi. Ci sono diversi parametri per questo:

  1. Unità di variante periodica;
  2. Molteplicità della versione periodica;
  3. Posizione della scala temporale.

Nell'esempio sopra presentato, il primo parametro ha il valore 1 ora, il secondo -7, il terzo parametro assume il valore in alto.

Combinando e sperimentando questi dettagli, è possibile ottenere una visualizzazione che esprima chiaramente l'attività da svolgere.

Va notato che nel caso in cui l'intervallo specificato dal programma superi la molteplicità, la scala temporale verrà trasferita alla riga successiva.

L'aspetto può riflettere più sequenze temporali. Le sue impostazioni dettagliate consentono di allineare gli elementi in intervalli di tempo precisi al minuto, visualizzare le ore di lavoro o l'intera giornata e regolare la visibilità dell'indicatore dell'ora corrente del sistema.

Ruotando la rotellina del mouse o i pulsanti corrispondenti sul modulo (se presenti), è possibile spostarsi nel calendario nella finestra di elaborazione.

Risolvere alcune difficoltà nel lavoro dello scheduler

Quando si lavora con il pianificatore, come con qualsiasi altro nuovo strumento, spesso sorgono delle domande. Proviamo a svelare quelli principali.

Domanda: Dove posso trovare il Planner?

Risposta: Avendo creato un attributo del modulo gestito nelle versioni della piattaforma successive alla 8.3.6.1977, è possibile impostarlo sul tipo scheduler (Fig. 4), mentre nella finestra delle proprietà dell'attributo è possibile configurare sia la scala temporale, le dimensioni visualizzate, e molti altri parametri.

Domanda: Come posso ottenere dal modulo i dati modificati riguardanti il ​​periodo di inizio e fine di un evento?

Risposta: Nel modulo puoi scrivere la procedura OnCompleteEditing(), collegandola al campo del modulo corrispondente. In caso di modifica di un elemento esistente, quest'ultimo può essere ottenuto utilizzando la proprietà Elementi Selezionati;

Domanda: quale codice aiuta a modificare il periodo attualmente visualizzato?

Risposta: Nel form è possibile creare i pulsanti “Giorno”, “Settimana”, “Mese”, il codice sottostante permette di modificare la modalità di visualizzazione del calendario (Fig. 5)

Fig.5

Concetto di programmazione asincrona

Il concetto di programmazione asincrona è che il risultato di una funzione non è immediatamente disponibile, ma dopo un po' di tempo sotto forma di chiamata asincrona (violando il normale ordine di esecuzione).

Quelli. L'idea principale della programmazione asincrona è emettere chiamate di metodo individuali e continuare a svolgere altro lavoro in parallelo senza attendere che le chiamate finiscano.

Alcuni metodi che riducono al minimo la probabilità di eccezioni non richiedono un approccio asincrono, ma altri lo richiedono all'inizio dello sviluppo.

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

Quando viene eseguita in modo sincrono, l'applicazione ha un solo thread. Con il modello di programmazione asincrona, puoi eseguire più thread in parallelo e reagire alle nuove azioni dell'utente mentre vengono eseguite. Una volta eseguito l'n-thread, visualizzerai il risultato sullo schermo.

Attività in background in 1C:Enterprise 8

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

È possibile limitare l'esecuzione di lavori in background che presentano gli stessi metodi in base ad uno specifico criterio applicativo. La creazione programmatica e la gestione dei lavori in background sono possibili da qualsiasi connessione utente alla base informativa del sistema. Il processo in background viene eseguito per conto dell'utente che lo ha creato.

Il meccanismo delle attività funziona sia in modalità client-server che in modalità file, ma le capacità di amministrazione ed esecuzione delle attività in entrambe le versioni sono leggermente diverse.

Opzione client-server

Nella versione client-server, la pianificazione delle attività viene eseguita dall'utilità di pianificazione, che si trova fisicamente nel cluster manager.

Lo scheduler controlla periodicamente se sono state ricevute richieste per eseguire processi in background. Se ci sono lavori che devono essere eseguiti, lo scheduler determina i processi di lavoro meno caricati nel cluster e assegna in sequenza a ciascuno di essi il proprio compito da eseguire. Pertanto, lo stesso processo di lavoro può potenzialmente eseguire più lavori in parallelo. Dopo che un lavoro è stato ricevuto da un processo di lavoro, il processo di lavoro stabilisce una connessione all'infobase ed esegue il lavoro all'interno di tale connessione. Una volta completato il lavoro, il processo di lavoro notifica allo scheduler se il lavoro è stato completato con successo o senza successo.

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, per eseguire automaticamente le attività, era necessario avviare una sessione 1C:Enterprise separata e aggiuntiva, utilizzata come pianificazione delle attività. E in questa sessione era necessario eseguire periodicamente il metodo del linguaggio integrato EseguiTaskProcessing(). Questo approccio era piuttosto macchinoso, scomodo e limitava notevolmente l'uso di attività in background e di routine nella versione file del lavoro.

Ora tutto è diventato molto più semplice. Se si avvia un thin o Thick Client, così come se il server Web dispone di connessioni client, in ciascuna di queste applicazioni viene avviato automaticamente un altro thread con una connessione al database. Questi thread sono impegnati nell'esecuzione di attività di background e di routine.

Ciascuna delle applicazioni elencate esegue le proprie attività in background. Se un'applicazione ha avviato diversi lavori in background, questi vengono eseguiti in sequenza, nell'ordine in cui sono stati ricevuti.

L'ovvio svantaggio dei lavori in background 1C: poiché vengono eseguiti lato server, non vi è alcuna possibilità di lavoro interattivo con l'utente (ad esempio, è impossibile visualizzare un messaggio o qualche altra informazione; tutti questi dati devono essere memorizzati all'interno del database informatico e successivamente elaborati in in qualche modo).

Va notato che i lavori in background sono oggetti puramente software e non possono essere archiviati nel database. Cioè, possiamo solo creare un'istanza di una classe, inizializzare le sue proprietà e avviarla 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 senza che si sappia quando è molto più difficile di quelli comuni. Chiamate annidate, gestione degli errori, controllo su ciò che accade: tutto diventa più complicato", lo dirà solo chi non sa come utilizzare correttamente le capacità della piattaforma, ma non noi!

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

Passo 1. Creiamo un nuovo sistema di sicurezza delle informazioni per lo sviluppo della configurazione

Passo 2. Nella configurazione aggiungeremo il modulo generale “Gestori asincroni”

Perché abbiamo aggiunto un modulo condiviso? Qui tutto è semplice: per eseguire operazioni asincrone in 1C:Enterprise 8, vengono utilizzati processi 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.

Quindi avremo bisogno di un modulo comune.

Passaggio 3. Nel modulo generale “Gestori asincroni” aggiungeremo la procedura di esportazione OurLongOperation()

Procedura OurLongOperation(Duration) Export // Simulazione di un'azione a lungo termine (Durata sec.). DataInizioOperazione = DataCorrente(); While CurrentDate() - Data di inizio dell'operazione< Длительность Цикл КонецЦикла; КонецПроцедуры

Passaggio 4. Aggiungere l'elaborazione "Concetto di programmazione asincrona" alla configurazione (è possibile creare un'elaborazione esterna)

Aggiungi un attributo al modulo:

Durata (numero)

e due squadre

Eseguire un'operazione lunga;

Eseguire un'operazione molto lunga in modo asincrono.

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

&Nella procedura client Esegui operazione di lunga durata(comando) ExecuteLong-RunningOperationOnServer(); EndProcedure &OnServer Procedura ExecuteLongOperationOnServer() AsynchronousHandlers.OurLongOperation(Duration); Fine della procedura &Sul client Procedura Esegui operazione a lunga esecuzione in modo asincrono (comando) Esegui operazione a lunga esecuzione in modo asincrono sul server (); Fine della procedura &Sulla procedura server Esegui un'operazione a esecuzione prolungata in modo asincrono sul Server() Parametri = New Array; Parametri.Add(Durata); BackgroundTasks.Execute("AsynchronousHandlers.OurLongOperation", Parametri, Nuovo UniqueIdentifier, "Esempio di concetto di programmazione asincrona"); Fine della procedura

Passaggio 6. Lanciamo e controlliamo!

Risultato:

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

Se facciamo clic sul pulsante "Esegui 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 venga eseguito in modo asincrono osservando il registro.

Possiamo eseguire il debug del codice del programma che viene eseguito in " background " se impostiamo la proprietà appropriata nei parametri 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 nel BSP utilizzando l'esempio dell'elaborazione di “Affari correnti”.

La logica è la seguente: all'avvio del programma viene inizializzata l'area di lavoro della pagina iniziale, dove è possibile visualizzare il modulo di elaborazione “Attualità”. Questo modulo viene compilato dagli affari attuali dell'utente e richiede tempo per compilarlo. Se gli sviluppatori non avessero la possibilità di eseguire il codice in modo asincrono, l'interfaccia utente verrebbe bloccata durante la compilazione del modulo di elaborazione!

Analizziamo il codice di programma del form.

L'evento del modulo "When CreatedOnServer" chiama la procedura "RunBackgroundTask": questo è ciò di cui abbiamo bisogno.

Senza farci distrarre dalle sfumature, analizziamo questa procedura

E qui vediamo che vengono utilizzati il ​​gestore dei lavori in background e il suo metodo "Esegui". Tieni presente che gli sviluppatori memorizzano un ID univoco per il lavoro in background.

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



Nella procedura agganciata Connectable_CheckTaskComplete() gli sviluppatori chiamano la funzione Lavoro completato (ID attività)


Questa funzione controlla l'esecuzione di un lavoro in background in base all'identificatore.

Va notato che il BSP ha sviluppato moduli generali per supportare le operazioni del server a lungo termine.

Pertanto, il concetto di programmazione asincrona 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.

Non molto tempo fa ne è uscito uno nuovo versione 8.3.6 programmi "1C:Impresa".

Sono state preparate una serie di modifiche che dovrebbero apportare modifiche all'interfaccia Taxi più conveniente, migliorarne l'usabilità.

Usabilità dell'interfaccia Taxi nella versione 8.3.6

Comando "Mostra nell'elenco".

Nella vecchia interfaccia non gestita era presente il comando "Trova nell'elenco". Questo comando non è stato implementato nell'interfaccia gestita. Ma dopo aver analizzato l'esperienza accumulata e il feedback, si è deciso di restituire questo comando all'interfaccia. Perché gli utenti delle versioni precedenti di 1C:Enterprise lo consideravano necessario e conveniente. Perché la presenza di un comando del genere aumenta sicuramente l'usabilità del programma.

Adesso si chiama "Mostra nell'elenco":

Questo comando apparirà sotto forma di una voce del registro delle informazioni e sotto forma di oggetti: libri di consultazione, documenti, tipi di caratteristiche, processi aziendali, attività, tipi di calcolo, conti, nodi del piano di scambio, tabelle di origine esterna e dimensione del cubo di origine dati esterna tavoli.

Per i documenti inclusi nelle riviste, questo non sarà un comando, ma un sottomenu. Ti permetterà di accedere sia all'elenco dei documenti che a qualsiasi rivista in cui questo documento è incluso.

Visualizzazione di immagini e testo nel pannello della sezione.

Ora l'utente può scegliere autonomamente l'una o l'altra opzione di posizione:

immagine a sinistra, testo a destra

o testo sotto l'immagine.

Pannello di comando con diagramma grafico.

All'interfaccia TaxiÈ stata restituita la barra dei comandi del diagramma grafico. Non sono richieste competenze speciali per utilizzare questa funzionalità. È solo che il pannello di comando del modulo ora ha un'altra fonte di comandi: un diagramma grafico. Inserire un diagramma grafico nel modulo. Aggiungi un gruppo al modulo - pannello di comando. Specificare la fonte dei comandi: un diagramma grafico.

Interfaccia Taxi nella versione 8.3.6.

Cerca nel menu delle funzioni.

L'utilizzo del menu funzioni nelle configurazioni di grandi dimensioni è stato notevolmente semplificato. Ora puoi trovare rapidamente i comandi, anche se non sai in quale sezione si trovano.

L'aspetto del menu funzioni è leggermente cambiato. Nell'angolo in alto a destra sono apparsi un campo di ricerca e un'icona delle impostazioni. I comandi di impostazione per i pannelli “Impostazioni di navigazione” e “Impostazioni di azione” sono stati rimossi sotto l'icona delle impostazioni.

E per trovare qualsiasi comando, ora non ti resta che iniziare a digitare sulla tastiera le parole che cerchi. Il cursore si sposterà automaticamente nel campo di ricerca e i caratteri digitati verranno visualizzati al suo interno. La ricerca viene eseguita simultaneamente su più frammenti di stringa. Quando si digita dalla tastiera, i frammenti di riga devono essere separati tra loro da spazi.

Ad esempio, se vuoi trovare i documenti delle ricevute, puoi digitare “doc” e poi separarli da uno spazio “post”:

Per facilitare la navigazione nei risultati di ricerca, la piattaforma:

  • Evidenzia frammenti di stringhe trovati (compresi nei nomi di sottosistemi e gruppi di comandi);
  • Visualizza i risultati in una gerarchia di sezioni e sottosistemi.

Se tutti i risultati non rientrano nel menu funzioni, viene visualizzata una barra di scorrimento verticale ed è possibile scorrere il menu con il mouse.

Durante la ricerca puoi utilizzare solo la tastiera. È comodo. È possibile cancellare il campo di ricerca premendo il tasto Esc. E ora puoi richiamare il menu delle funzioni stesso utilizzando il tasto F10.

La ricerca viene eseguita sul server. Quando si esegue una ricerca, invece dell'icona di una lente di ingrandimento, viene visualizzata un'icona animata a forma di "cerchio" nell'angolo in alto a sinistra.

Lavorare con una risoluzione dello schermo non standard (DPI).

I caratteri piccoli e l'ipovisione sono problemi di vecchia data nell'interazione uomo-computer. Hanno provato a risolverlo in momenti diversi, da persone diverse, in modi diversi. I programmatori hanno aumentato la dimensione dei caratteri nelle loro applicazioni. Gli utenti hanno ridotto le dimensioni dello schermo e aumentato la risoluzione dello schermo (dpi). Gli sviluppatori Windows hanno implementato il ridimensionamento dell'interfaccia. Ma tutti questi metodi non fornivano all'utente un modo semplice e conveniente per personalizzare l'applicazione in base alle proprie esigenze.

Dopo aver analizzato questi problemi e feedback, 1C:Enterprise è passato alla modalità compatibile con dpi. Cioè, ora 1C:Enterprise esegue il ridimensionamento in modo indipendente.

Puoi notare che la sfocatura dei testi è scomparsa. Gli elementi del modulo iniziarono ad essere ridimensionati e visualizzati come dovrebbero (nella vecchia versione, il piè di pagina della sezione tabellare era “sotto” lo schermo). Vengono utilizzati l'imbottitura interna, il posizionamento e la dimensione corretti degli elementi del pannello (lo scorrimento del pannello della sezione è scomparso).

Pianificatore.

In molte configurazioni è necessario visualizzare i dati sotto forma di calendario o pianificazione. I compiti di pianificazione visiva, ad esempio, sorgono spesso quando si automatizzano saloni di bellezza, cliniche dentistiche e veterinarie, centri fitness, ecc. Se lo si desidera, tali attività potrebbero essere parzialmente automatizzate utilizzando gli strumenti esistenti nella piattaforma. Tuttavia, l’implementazione di tali soluzioni è sempre stata molto dispendiosa in termini di manodopera e la loro funzionalità è insufficiente. Inoltre, non si trasferivano bene da una configurazione all'altra e non garantivano le stesse prestazioni in diverse applicazioni client e diversi sistemi operativi.

Per questi motivi, la piattaforma versione 8.3.6è stato implementato un nuovo strumento - Pianificatore. È progettato per automatizzare la pianificazione di attività, eventi, riunioni, calendari, pianificazioni e attività simili.

Lo scheduler può contenere non una, ma diverse scale temporali, ciascuna con la propria frequenza. Ciò è utile nei casi in cui è necessario identificare i dati visualizzati, ad esempio, con la precisione del giorno e dell'ora:

Se tutti gli elementi che devono essere visualizzati non rientrano in una cella, il Planner visualizza invece "+ Altro" e il numero di elementi che sono nascosti. Cliccando su questa iscrizione puoi vedere un elenco di tutti gli elementi nascosti e aprirne uno qualsiasi:

Se lo si desidera, è possibile attivare o disattivare la visualizzazione dell'ora corrente nello scheduler.

Gli elementi dello strumento di pianificazione possono visualizzare l'ora di inizio e di fine, solo l'ora di inizio o nessuna ora.

Puoi colorare gli intervalli dello sfondo per evidenziare, ad esempio, le ore non lavorative o i fine settimana con un colore diverso.

Aggiungere dati allo scheduler è un semplice clic del mouse. Si apre una finestra per modificare rapidamente l'elemento dello scheduler:

In questa finestra è possibile impostare il testo dell'elemento (evento). Se è necessario modificare altre proprietà di un elemento, fare clic sul pulsante « Modificare" Questa finestra apre un modulo standard per la modifica di un elemento del pianificatore:

In esso puoi già impostare l'inizio e la fine dell'elemento, specificare i valori di misurazione se vengono utilizzati e anche impostare una pianificazione per l'elemento se questo evento è ricorrente.

Puoi modificare gli elementi esistenti tramite questi moduli o trascinando gli elementi e modificandone i bordi utilizzando il mouse:

Lo scheduler supporta le operazioni di modifica di gruppo. Cioè, puoi selezionare più elementi contemporaneamente e spostarli, copiarli, modificarli o eliminarli:

Il pianificatore consente il trascinamento della selezione non solo al suo interno, ma anche verso/da altri elementi del modulo. Questa funzionalità può essere utile, ad esempio, per trascinare singoli eventi nel planner da un elenco generale di cose da fare mostrato sotto forma di tabella.

Per qualsiasi elemento è possibile impostare un programma: la frequenza con cui questo evento verrà ripetuto. In questo caso è possibile limitare l'intervallo durante il quale l'evento verrà ripetuto.

Se necessario, puoi modificare non solo uno degli eventi ricorrenti, ma tutti gli eventi contemporaneamente. Per fare ciò, nel modulo di modifica è necessario selezionare la casella « Applica la modifica a tutte le ripetizioni":

Gli utenti spesso lamentano che "1C 8.3 è lento": i moduli dei documenti si aprono lentamente, i documenti impiegano molto tempo per essere elaborati, il programma si avvia, i report impiegano molto tempo per essere generati e così via.

Inoltre, tali "problemi" possono verificarsi in diversi programmi:

Le ragioni potrebbero essere diverse. Non si tratta di documenti ripristinati, un computer o server debole, il server 1C è configurato in modo errato.

In questo articolo voglio esaminare uno dei motivi più semplici e comuni per un programma lento: . Questa istruzione sarà rilevante per gli utenti di database di file per 1-2 utenti, dove non esiste competizione per le risorse.

Se sei interessato a un'ottimizzazione più seria delle opzioni client-server per il funzionamento del sistema, visita la sezione del sito.

Dove sono le attività pianificate in 1C 8.3?

Prima che avessi il tempo di caricare il programma, molte attività in background erano state completate in 1C. Puoi visualizzarli accedendo al menu "Amministrazione", quindi "Supporto e manutenzione":

Ottieni 267 lezioni video su 1C gratuitamente:

Ecco come appare la finestra con le attività completate:

Ed ecco un elenco completo di tutte le attività pianificate che vengono avviate:

Tra queste attività puoi vedere come "", caricare vari classificatori, verificare la pertinenza della versione del programma e così via. Ad esempio, non mi servono quasi tutte queste attività. Non tengo registri sulle valute, controllo personalmente le versioni e carico i classificatori secondo necessità.

Di conseguenza, è nel mio (e nella maggior parte dei casi nel tuo) interesse disabilitare le attività non necessarie.

Disabilitare le attività di routine e in background in 1C 8.3

Probabilmente ogni programmatore 1C 8.3 prima o poi ha dovuto impostare l'esecuzione di determinate attività secondo un programma. Di seguito fornirò una descrizione dettagliata di questi meccanismi, spero che queste siano informazioni utili per i programmatori 1C alle prime armi. Questo è molto conveniente, perché non richiede l'intervento umano, l'attività di routine viene configurata una volta e funziona secondo il tuo programma.

Di seguito troverai istruzioni dettagliate utilizzando un esempio.

Quali sono le attività di routine e in background in 1C

  • Attività pianificateè uno speciale meccanismo 1C Enterprise 8.3 progettato per eseguire un'azione specifica secondo un determinato programma.
  • Lavoro in background- oggetti generati da un'attività di routine che eseguono direttamente l'azione prevista senza la partecipazione dell'utente o del programmatore 1C 8.2.

Il meccanismo dei lavori schedulati e in background funziona in modalità client-server (SQL), grazie alle funzionalità del DBMS. Se si dispone di un database di file, è anche possibile configurare l'attività, ma secondo un principio leggermente diverso.

Configurazione di processi in background in modalità client-server 1C

Per prima cosa creiamo un nuovo oggetto metadati: un'attività di routine. Chiamerò il mio compito "Caricamento dei tassi di valuta". Diamo un'occhiata alla tavolozza delle proprietà di questo oggetto di configurazione:

Ottieni 267 lezioni video su 1C gratuitamente:

  • Nome del metodo— percorso della procedura che verrà eseguita in un lavoro in background secondo una determinata pianificazione. La procedura deve trovarsi in un modulo comune. Si consiglia di non utilizzare quelli standard, ma di crearne di propri. Non dimenticare che i lavori in background vengono eseguiti sul server!
  • Utilizzo- un segno di utilizzo di un compito di routine.
  • Predeterminato— indica se l'attività di routine è predeterminata. Se si desidera che l'attività di routine funzioni immediatamente dopo essere stata inserita nel database, specificare questo flag. In caso contrario, sarà necessario utilizzare l'elaborazione della Job Console o eseguire l'esecuzione del lavoro in modo programmatico.
  • Numero di tentativi quando un lavoro termina in modo anomalo— quante volte il processo in background è stato riavviato se è stato eseguito con un errore.
  • Intervallo tra tentativi quando il lavoro termina in modo anomalo— la frequenza con cui il processo in background verrà riavviato se è stato completato con un errore.

E l'ambientazione più interessante è Programma:

Qui si configura l'intervallo di avvio della procedura specificato nel campo “Nome metodo”. Diciamo che ho configurato

Attenzione! Non dimenticare di disabilitare il blocco dell'esecuzione di lavori di routine e in background a livello DBMS!

Questo può essere fatto nell'utilità di amministrazione della versione client-server o quando si crea un nuovo database:

Impostazione di attività di routine in modalità file 1C

In modalità file, impostare tali lavori è un po' più difficile. Per tale compito, è necessario avviare una sessione separata del programma 1C. Questo spesso viene risolto creando un utente “tecnico” la cui sessione è sempre in esecuzione.

In modalità file, un lavoro di routine viene inizializzato quando viene avviato il metodo “RunTaskProcessing()”.

Per un utente specifico, è possibile configurare questo metodo per l'esecuzione utilizzando un altro metodo −

ConnectWaitHandler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Nome della procedura— il nome della procedura connessa come gestore dell'attesa. Il nome della procedura esportata di un modulo dell'applicazione gestita (un modulo dell'applicazione normale) o di un modulo condiviso globale. La procedura deve essere localizzata sul client.
  • Intervallo— periodo tra le esecuzioni delle operazioni in secondi.
  • Una volta- come completare l'attività, una volta o meno.

ConnectWaitHandler, 3600);

Un video di due minuti che mostra come impostare un'attività di routine nel configuratore 1C: