Hintergrundjobs auf einem separaten Server. Universelle Regulierungsaufgabe

Wahrscheinlich kommt keine einzige ernsthafte Konfiguration auf 1C 8.3 oder 8.2 ohne den Einsatz von Routine- und Hintergrundaufgaben aus. Sie sind sehr praktisch, da sie nach einem klar definierten Zeitplan ohne Eingreifen des Benutzers oder Programmierers ausgeführt werden.

Beispielsweise müssen Sie einmal täglich Daten mit einem anderen Programm austauschen. Mithilfe von Routine- und Hintergrundaufgaben kann 1C diese Aktionen beispielsweise außerhalb der Arbeitszeit selbstständig durchführen. Diese Methode beeinträchtigt das Benutzererlebnis in keiner Weise und hilft, Zeit zu sparen.

Lassen Sie uns zunächst herausfinden, was sie bedeuten und was ihr Unterschied ist:

  • Geplante Aufgabe ermöglicht es Ihnen, bestimmte Aktionen nach einem vorkonfigurierten Zeitplan zu starten.
  • Hintergrundjob ist ein Objekt, das die auszuführenden Aktionen enthält.

Nehmen wir an, dass unser Unternehmen etwas verkauft und über eine eigene Website verfügt, auf der die Preise aufgeführt sind. Wir möchten sie einmal täglich hochladen, um die Relevanz zu wahren.

Öffnen Sie die Konfiguration und fügen Sie eine geplante Aufgabe hinzu.

Eigenschaften festlegen

Betrachten wir das Meiste wichtige Parameter, das in seinen Eigenschaften ausgefüllt werden muss.

  • Auf dem Feld " Methodenname» wählt die Prozedur eines bestimmten allgemeinen Moduls aus, die direkt ausgeführt wird. Es werden alle Schritte zum Hochladen von Preisen auf unsere Website angezeigt. Bitte beachten Sie, dass die Ausführung auf dem Server erfolgt. Dies ist logisch, da Routinevorgänge ohne Beteiligung des Benutzers ausgeführt werden.
  • Die geplante Aufgabe kann je nach Bedarf deaktiviert oder aktiviert werden. Es besteht keine Notwendigkeit, seinen Zeitplan jedes Mal zu bearbeiten. Setzen oder deaktivieren Sie dazu in der Eigenschaftenpalette das Flag „ Verwendung».
  • Eine weitere wichtige Sache ist die Einstellung, ob diese Routineaufgabe ausgeführt werden soll vorbestimmt, oder nicht. Vordefinierte geplante Aufgaben werden automatisch gestartet. Wenn diese Funktion nicht installiert ist, müssen Sie sie programmgesteuert starten oder die „Task Console“-Verarbeitung mit ITS verwenden.
  • Sie können auch angeben Anzahl der Wiederholungen und Abstand dazwischen im Falle einer anormalen Kündigung. Unter abnormaler Beendigung versteht man Situationen, in denen Aufträge aufgrund eines Fehlers nicht abgeschlossen wurden.

Einen Zeitplan aufstellen

Der letzte Schritt besteht darin, über den entsprechenden Hyperlink in der Eigenschaftenpalette einen Zeitplan für unseren Upload auf die Website einzurichten.

Es wird sich vor Ihnen öffnen typische Einstellung Zeitpläne in 1C 8.3. Hier gibt es nichts Kompliziertes. In diesem Beispiel haben wir den Start des Hochladens von Preisen auf die Website jeden Tag von fünf bis sieben Uhr morgens eingerichtet. Falls die geplante Aufgabe nicht vor 7:00 Uhr abgeschlossen werden kann, wird sie bereits am nächsten Tag erledigt.

Geplante Aufgaben blockieren

Laufen Standarddienstprogramm„1C Enterprise-Server verwalten“ und öffnen Sie die Eigenschaften der Infobase, in der Sie die Routineaufgabe erstellt haben (für Client-Server-Versionen von 1C).

Überprüfen Sie im sich öffnenden Fenster (nach Eingabe Ihres Benutzernamens und Passworts für den Zugriff auf die Informationssicherheit), dass das Kontrollkästchen „Blockierung von Routineaufgaben aktiviert“ nicht aktiviert ist. Wenn Sie auf eine Situation stoßen, in der die Aufgabe nicht funktioniert, überprüfen Sie zunächst diese Einstellung.

Ebenso können Sie Routineaufgaben in 1C 8.3 komplett deaktivieren. Um bestimmte Hintergrundjobs zu deaktivieren, können Sie die in den neuesten Versionen integrierte „Background Job Console“-Verarbeitung verwenden.

Hintergrund- und geplante Aufgaben im Dateimodus

In diesem Modus ist das Einrichten und Starten dieser Aufgaben viel schwieriger zu organisieren. Meistens zusätzlich Konto, dessen Sitzung immer geöffnet sein wird.

In diesem Fall werden Routineaufgaben über die Methode „RunTaskProcessing()“ aktiviert.

Sie können auch die folgende Konstruktion verwenden:

Als Prozedurname müssen Sie den Namen der Client-Prozedur angeben, die ausgeführt werden soll. Das Intervall gibt an, wie viele Sekunden später die Ausführung stattfinden wird. Der Parameter „Einmalig“ ist nicht erforderlich. Es spiegelt wider, ob dieser Vorgang einmal oder mehrmals durchgeführt wird.

Nachverfolgung von Fehlern in Hintergrundjobs

Sehen Sie sich den Fortschritt von Hintergrundaufgaben sowie die Verfügbarkeit an mögliche Fehler finden Sie im Logbuch. Wählen Sie im Filter die Anwendung „Hintergrundjob“ aus und wählen Sie ggf. die Wichtigkeit aus, die Sie interessiert, zum Beispiel nur „Fehler“.

Das Protokoll zeigt alle Einträge, die Ihrer Auswahl entsprechen, zusammen mit einem Kommentar, der Ihnen hilft, die Ursache des Fehlers zu verstehen.

Geplante Aufgaben 1C - Dies ist ein spezieller Mechanismus des Systems, der dazu dient, eine bestimmte Aktion automatisch auszuführen Hintergrund und nach einem bestimmten Zeitplan (z. B. Versenden von Berichten, Aufschieben der Ausführung, Laden von Wechselkursen usw.).

Hintergrundjob - ein Objekt, durch eine Regulierungsaufgabe erzeugt, das die beabsichtigte Aktion ohne Beteiligung des Benutzers oder Programmierers direkt ausführt.

Hintergrundaufgabe 1C:

  1. ausgeführt unter Windows-Benutzer, unter dem der 1C-Serverprogrammprozess läuft.
  2. kann in der 1C-Sprache beliebig ohne regulatorische Aufgabe erstellt werden (z Paralleles Rechnen auf dem Server).

WICHTIG! Hintergrundjobs werden auf dem Server ausgeführt.

Der Unterschied zwischen einer geplanten Aufgabe und einem Abonnement für ein Ereignis:

  • ermöglicht es Ihnen, den Handler nicht dann auszuführen, wenn ein Ereignis eintritt (wie es der Fall ist), sondern nach einem Zeitplan.

Der Mechanismus für geplante Aufgaben und Hintergrundaufgaben funktioniert wie folgt:

  • automatisch - im Client-Server-Betriebsmodus (dank der Funktionalität des DBMS);
  • interaktiv – bei Verwendung einer Dateidatenbank, Ausführen des Befehls ExecuteTaskProcessing() aus einer Sitzung im 1C:Enterprise-Modus.

Merkmale von Routine- und Hintergrundaufgaben 1C:

  1. Eine Kopie der Routineaufgabekönnen programmgesteuert erstellt werden. Wenn die geplante Aufgabe vordefiniert ist (in den Eigenschaften ist das Flag „Vordefiniert“ gesetzt), wird die Aufgabe in einer einzigen Kopie mit dem im Konfigurator angegebenen Zeitplan erstellt. Instanzen NICHT vordefinierter Jobs werden nach einem programmgesteuert im Enterprise-Modus festgelegten Zeitplan angezeigt.
  2. Es können beliebig viele geplante Aufgaben gleichzeitig ausgeführt werden, aber zwei Aufgaben werden nicht ausgeführt ( um Kollisionen zu vermeiden):
    • mit dem gleichen Schlüssel (to Schlüssel – eine Eigenschaft einer Routineaufgabe, mit der Sie mehrere Aufgaben desselben Typs gruppieren können);
    • mit demselben Metadatenobjekt verknüpft sind.
  3. Das Verfahren kann als Methode der Routinezuordnung eingesetzt werden, die eine beliebige Anzahl von Parametern haben kann. Die Anzahl der Parameter der Routineaufgabenmethode entspricht der Anzahl der Parameter der Routineaufgabe selbst.
  4. Um eine Routineaufgabe zu erstellen, muss der Benutzer über Folgendes verfügen Administratorrechte.
  5. Wenn eine Routineaufgabe im Konfigurator (im entsprechenden Objekt) als vordefiniert definiert ist, dann kann eine vordefinierte Instanz einer Routineaufgabe nicht zum Löschen markiert und gelöscht werden (kann aber geändert werden und ist immer in der Liste der Routineaufgabenvorlagen verfügbar).
  6. Wenn eine Funktion als Routineaufgabenmethode verwendet wird, dann wird der von der Funktion zurückgegebene Wert ignoriert.
  7. Sicherstellung des Ablaufs von Routine- und Hintergrundjobssowohl in Datei- als auch in Client-Server-Versionen Es ist nicht erforderlich, eine 1C:Enterprise-Instanz zu starten.

    Kommentar

    ... IN Client-Server-Version Arbeit, geplante Aufgaben werden vom Cluster-Manager gestartet. Auch wenn keine Client-Verbindung mit der Infobase besteht, werden Routineaufgaben ausgeführt (sofern sie für eine bestimmte Infobase nicht verboten sind). In der Dateiversion der Arbeit für automatischer Start Geplante Aufgaben erfordern eine dedizierte Clientverbindung, die als Aufgabenplaner verwendet wird. Auf dieser Verbindung sollte ein Wartevorgang ausgeführt werden, der in bestimmten Abständen die integrierte Sprachmethode aufruft ExecuteTaskProcessing().

    [Zusammenbruch]

  8. Hintergrundjobs erlauben eine Prozedur durchführen asynchron.
  9. Es können beliebig viele Hintergrundjobs gleichzeitig laufen, aber Sie können nicht zwei Jobs mit demselben Schlüssel und Methodennamen ausführen.
  10. Hintergrundjobs abgeschlossen sind Sitzungsobjekte, die für einige Zeit gespeichert werden (in Informationsbasis werden nicht gespeichert). Ein Hintergrundjob ist ein eingebettetes Sprachobjekt, das nur während einer Sitzung existiert.
  11. Einrichten einer Routineaufgabe im Client-Server-Betriebsmodus 1C

    Die Routineaufgabe wird in der Eigenschaftenpalette konfiguriert dieses Objekts Konfigurationen.

    Zeichnung der Eigenschaftenpalette des 1C-Objekts „Routineaufgaben“

    [Zusammenbruch]

    Eigenschaftenpalette des Objekts „Routineaufgaben“:

  • Der Methodenname ist der Pfad zur Prozedur, die im Allgemeinen nach einem vorgegebenen Zeitplan in einem Hintergrundjob ausgeführt wird. Es wird empfohlen, keine Standardversionen zu verwenden, sondern eigene zu erstellen.
  • Titel – Legt den Titel fest, der in den Jobverwaltungstools angezeigt wird.
  • Schlüssel – ermöglicht die Gruppierung mehrerer verschiedener geplanter 1C-Aufgaben bei gleichzeitiger Ausführung nur ein Job mit demselben Schlüsselwert. Der Wert selbst kann beliebig sein. Ein leerer Wert wird bei der Steuerung nicht berücksichtigt (d. h. er gilt als leer).
  • Verwendung – Flag für die Verwendung einer geplanten Aufgabe.
  • Vorbestimmt- Das Flag zeigt an, ob die Routineaufgabe vorgegeben ist, d.h. funktioniert sofort nach der Eingabe in die Datenbank (die Aufgabe wird in einer einzigen Kopie mit dem im Konfigurator angegebenen Zeitplan erstellt). Nicht vordefinierte Aufgaben werden zum Zeitpunkt des Zeitplans programmgesteuert angezeigt (Sie müssen die „Task Console“-Verarbeitung verwenden oder den programmgesteuerten Start der Aufgabe veranlassen).
  • Anzahl der Wiederholungsversuche, wenn ein Job abnormal beendet wird- wie oft der Hintergrundjob neu gestartet wurde, wenn er mit einem Fehler ausgeführt wurde.
  • Wiederholungsintervall, wenn der Job abnormal beendet wird- Häufigkeit des Neustarts eines Hintergrundjobs, wenn dieser mit einem Fehler abgeschlossen wurde.
  • Zeitplan – Einstellen des Startintervalls für die im Feld „Methodenname“ angegebene Prozedur.

Um Hintergrundjobs zu verwalten, können Sie die Verarbeitung von der ITS-Platte „ “ nutzen, was Ihnen Folgendes ermöglicht:

  • den Betrieb von Routine- und Hintergrundaufgaben überwachen;
  • Löschen und erstellen Sie neue Hintergrundjobs mithilfe der integrierten Sprache.
  • Routineaufgaben vorübergehend deaktivieren (?).

Merkmale der Einrichtung von 1C-Routineaufgaben:

    Aufgaben werden automatisch ausgeführt – sie müssen überprüft (überwacht) werden.

    [Zusammenbruch]

Einrichten von Routineaufgaben im 1C-Dateimodus

IN Dateimodus Für eine Routineaufgabe muss eine separate Sitzung des 1C-Programms gestartet werden. Dies lässt sich häufig dadurch lösen, dass ein „technischer“ Benutzer definiert wird, dessen Sitzung immer ausgeführt wird.

Die Routineaufgabe wird initialisiert:

  1. im Allgemeinen - beim Ausführen einer Methode ExecuteTaskProcessing();
  2. für einen bestimmten Benutzer – beim Ausführen der Methode ConnectWaitHandler(<ИмяПроцедуры>, <Интервал>, <Однократно>) (läuft auf dem Client).
  • ProcedureName – der Name der exportierten Prozedur eines Moduls (eines Moduls einer regulären Anwendung) oder eines globalen gemeinsamen Moduls, das als Wartehandler verbunden ist. Die Prozedur muss auf dem Client liegen.
  • Intervall – der Zeitraum zwischen der Ausführung von Operationen in Sekunden.
  • Einmal – die Häufigkeit, mit der die Aufgabe ausgeführt wird (einmal oder nicht).

Erstellen einer Routineaufgabe

Erstellen wir eine Routineaufgabe „Verarbeitung durchführen“.

Deaktivieren wir die Verwendung der geplanten Aufgabe, damit sie beim Aktualisieren der Konfiguration nicht automatisch ausgeführt wird.

Weisen wir eine Prozedur zu, die beim Starten einer Routineaufgabe ausgelöst wird:Modul von RoutineTasks.RoutineTaskExecutionProcessing.

Das Verfahren selbst sieht folgendermaßen aus:

Prozedur RoutineTaskExecutionProcessing(Key) Export

Parameter von RoutineTasks.PerformProcessingWithParameters(Key);

EndProzedur

Wir erstellen ein Nachschlagewerk für Routineaufgaben

Unsere Routineaufgabe kann viele Hintergrundprozesse hervorrufen – einen für jede Verarbeitung. Jede Aufgabe in der 1C8-Plattform hat einen Schlüssel. Die geplante Jobmethode kennt jedoch den Hintergrundjobschlüssel nicht, daher müssen Sie die Hintergrundjobparameter verwenden. Dadurch können wir den Hintergrundjob in der Jobkonsole sehen, aber wir können von dieser Konsole aus keinen Hintergrundjob manuell erstellen, weil Jobs mit Parametern werden nicht manuell erstellt.

Nachschlagewerk „Parameter geplanter Aufgaben“ :

Voraussetzungen :

· Code vor dem Start- unbegrenzter String-Code in 1C-Sprache, der vor dem Start ausgeführt werden muss.

· Verarbeitung aus der Konfiguration – Zeile (100) – Verarbeitungskennung aus der Konfiguration

· Verarbeitung aus dem Verzeichnis - Zeile (100) - Link zum Verzeichniselement „Externe Verarbeitung“, sofern in der Konfiguration eines vorhanden ist

· Durch die 1C-Anwendung ausführen - Boolean - Es wird eine separate 1C-Anwendung erstellt und darin eine Routineaufgabe gestartet. Erstellt für 8.1, wo nicht alle Anwendungsmethoden auf dem Server verfügbar sind, auf dem der geplante Job ausgeführt wird.

· Code starten- - unbegrenzter Zeilencode in 1C-Sprache, der ausgeführt wird, wenn eine geplante Aufgabe gestartet wird.

Lassen Sie uns die Form des Elements erstellen :

Durch Klicken auf „Reg. erstellen“ task“ wird programmgesteuert eine Routineaufgabe mit einem Tastencode erstellt:

Prozedur BasicActionsFormCreateReglTask(Button)

Variabler Job;

Key = AbbrLP(Code);

Task = RoutineTasks.CreateRoutineTask("PerformProcessing");

Task.Name = Schlüssel;

Job.Key = Schlüssel;

Parameter = New Array();

Parameters.Add(Key);

Task.Parameters = Parameter;

Task.Write();

EndProzedur

Starten einer geplanten Aufgabe

Jede Routineaufgabe, die wir erstellen, hat einen Schlüssel:

Dieser Schlüssel entspricht dem Code des Verzeichnisses „Parameter von Routineaufgaben“ und wird zur Suche beim Starten einer Aufgabe verwendet. Wird der Verzeichniseintrag nicht gefunden, wird die Aufgabe nicht ausgeführt.

Als nächstes, wenn der Code angegeben istCode vor dem Start dann wird dieser Code ausgeführt. Als nächstes, wenn die Variable Erfüllen Wenn die Auswertung „falsch“ ergibt, wird die Aufgabe nicht abgeschlossen. Für die Analyse verfügbare Variable Optionen, wo ein Link zum gefundenen Verzeichniselement „Parameter von Routineaufgaben“ hinterlegt ist.

Abhängig von den ausgewählten Werten der Details wird entweder der Code in der 1C-Sprache ausgeführt oder die Verarbeitung aus der Konfiguration gestartet, oder die Verarbeitung aus dem Standard-Nachschlagewerk „Externe Verarbeitung“ wird gestartet.

Für 1C81 ist die Ausführung in einer neuen Anwendung vorgesehen – so können Sie Code nutzen, der nur auf dem Client verfügbar ist, inklusive der Nutzung Externe Behandlungen. Dazu müssen Sie das Kontrollkästchen „Durch 1C-Anwendung ausführen“ aktivieren. Andernfalls wird die geplante Aufgabe auf dem Server ausgeführt.

Ich empfehle, für eine neu erstellte Routineaufgabe einen Benutzer im Feld „Benutzer“ festzulegen, damit die Aufgabe unter bestimmten Rechten ausgeführt wird. Ich empfehle, einem solchen Benutzer die vollen Rechte zu geben. Ich verwende den Benutzer „Roboter».

Der Routineaufgabenplan wird über den Hyperlink „Zeitplan“ im Routineaufgabenformular erstellt. Sie können die Verarbeitung „Routine Task Console“ nutzen.

Der Task-Mechanismus ist eines der 1C-Administrationstools. Es enthält:

  • Routineaufgaben als allgemeines Konfigurationsobjekt, das notwendig ist, um anzugeben, was genau und mit welcher Häufigkeit zu tun ist;
  • und Hintergrundjobs als integriertes Sprachobjekt, das von generiert wird Routineaufgaben.
Schauen wir uns die relevanten Prüfungsfragen an.

Frage 09.59 der Prüfung 1C: Platform Professional. Eine Kopie der Routineaufgabe:

  1. können programmgesteuert erstellt werden
  2. kann in Form einer Liste erstellt werden, die über den Befehl „Operationen/Routineaufgaben“ im Hauptmenü des Programms zugänglich ist.
  3. es wird immer nur eine Instanz erstellt (beim Erstellen des entsprechenden Konfigurationsobjekts)
  4. wird nur im Konfigurationsmodus auf der Registerkarte „Andere“ über die Schaltfläche „Zusammensetzung“ festgelegt
  5. Die Antworten 1 und 2 sind richtig
Die richtige Antwort ist die erste. Wenn die geplante Aufgabe vordefiniert ist (Abb.), wird die Aufgabe in einer einzigen Kopie mit dem im Konfigurator angegebenen Zeitplan erstellt. Instanzen NICHT vordefinierter Jobs werden programmgesteuert gemäß dem im Enterprise-Modus festgelegten Zeitplan angezeigt.
Frage 09.60 der Prüfung 1C: Platform Professional. Die Anzahl gleichzeitig laufender Routineaufgaben kann betragen:
  1. jeder ohne Einschränkung
  2. eine beliebige Zahl, aber zwei Jobs mit demselben Schlüssel und Methodennamen werden nicht ausgeführt
  3. beliebige Menge, aber zwei Aufgaben mit demselben Schlüssel und Namen werden nicht ausgeführt
  4. eine beliebige Zahl, führt jedoch nicht zwei Jobs mit demselben Schlüssel aus, die demselben Metadatenobjekt zugeordnet sind
Die richtige Antwort ist sechs. Schlüssel ist eine Eigenschaft einer Routineaufgabe, die es Ihnen ermöglicht, mehrere Aufgaben desselben Typs zu gruppieren. Es kann jeweils nur ein Job mit einem Schlüsselwert gestartet werden (leerer Wert zählt nicht). Außerdem wird jeweils nur eine Registrierungsaufgabe für ein bestimmtes Objekt ausgeführt, um Kollisionen zu vermeiden.
Frage 09.62 der Prüfung 1C: Platform Professional. Als Methode der Routinezuordnung kann ein Verfahren verwendet werden, bei dem:
  1. Es sollten keine Parameter vorhanden sein
  2. Es kann nur einen Parameter (Werteliste) geben.
  3. Es kann nur einen Parameter (Struktur) geben.
  4. Es kann nur einen Parameter (Array) geben.
  5. Es kann eine beliebige Anzahl von Parametern geben
Die richtige Antwort ist Nummer fünf. Die Anzahl der Parameter der Routineaufgabenmethode entspricht der Anzahl der Parameter der Routineaufgabe selbst.
Frage 09.63 der Prüfung 1C: Platform Professional. Um eine Routineaufgabe zu erstellen, muss der Benutzer über Folgendes verfügen:
  1. Administratorrechte
  2. Rechte zur Nutzung dieses Konfigurationsobjekts (konfigurierbar in der Rolle)
  3. Rechte zum Erstellen neuer Instanzen dieses Konfigurationsobjekts (in der Rolle konfigurierbar)
  4. Wenn Sie keine Rechte haben, wird die Routineaufgabenmethode im privilegierten Modus ausgeführt
Die richtige Antwort ist die erste, nur Administratoren haben das Recht.
Frage 09.64 der Prüfung 1C: Platform Professional. Wenn eine Routineaufgabe im Konfigurator (im entsprechenden Konfigurationsobjekt) als vordefiniert definiert ist, dann ist sie typisch dafür (wählen Sie die vollständigste Antwort):
  1. Es ist nicht möglich, eine nicht vordefinierte Instanz einer Routineaufgabe mit einer Bindung an ein Metadatenobjekt einer vordefinierten Routineaufgabe zu erstellen
  2. Eine vordefinierte Instanz einer geplanten Aufgabe kann nicht zum Löschen markiert und gelöscht werden
  3. Nur vordefinierte Instanzen von Routineaufgaben werden in der Infobase gespeichert; nicht vordefinierte Instanzen sind Sitzungsobjekte und werden nicht in der Datenbank gespeichert
  4. Die Antworten 1 und 2 sind richtig
  5. Die Antworten 2 und 3 sind richtig
  6. richtige Antworten 1, 2, 3
Die richtige Antwort ist die zweite. Vordefinierte Instanzen geplanter Aufgaben können geändert, aber nicht gelöscht werden. Sie sind immer in der Liste der Vorlagen verfügbar:
Frage 09.67 der Prüfung 1C: Platform Professional. Wenn eine Funktion als Routineaufgabenmethode verwendet wird, gilt Folgendes:
  1. Der Rückgabewert der Funktion wird ignoriert
  2. Beim Versuch, eine Aufgabe auszuführen, tritt ein Fehler auf
  3. Das System wartet auf die Ausführung dieser Aufgabe (die Ausführung erfolgt nicht asynchron).
  4. Der Wert wird an den entsprechenden Parameter der geplanten Aufgabe zurückgegeben
Die richtige Antwort ist die erste.
Frage 09.61 der Prüfung 1C: Platform Professional. Wie lassen sich Routine- und Hintergrundaufgaben miteinander in Beziehung setzen?
  1. Ein geplanter Job kann einen Hintergrundjob generieren
  2. Eine Routineaufgabe erzeugt zwangsläufig eine Hintergrundaufgabe
  3. Ein Hintergrundjob generiert zwangsläufig einen geplanten Job
  4. Es besteht keine Verbindung
Die richtige Antwort ist die zweite: Eine Hintergrundaufgabe ist ein Objekt, das von einer Routineaufgabe generiert wird, und es muss erstellt werden, sonst verliert die Routineaufgabe selbst ihre Bedeutung.
Frage 09.65 der Prüfung 1C: Platform Professional. Um den Betrieb von Routine- und Hintergrundjobs sicherzustellen, müssen Sie:
  1. Verfügbarkeit von 1C:Enterprise-Start mit gesetztem „Scheduler“-Flag beim Start
  2. Verfügbarkeit von 1C:Enterprise-Start mit der entsprechenden Systemmethode, die regelmäßig ausgeführt wird
  3. das Vorhandensein eines 1C:Enterprise-Starts mit der entsprechenden Systemmethode, die regelmäßig ausgeführt wird (jedoch nur in der Dateiversion der Systemoperation)
  4. Sowohl in der Datei- als auch in der Client-Server-Version ist es nicht erforderlich, eine 1C:Enterprise-Instanz zu starten
In der Praxis ist die dritte Antwort die richtige. In der Client-Server-Version der Arbeit werden geplante Aufgaben vom Cluster-Manager gestartet. Auch wenn keine Client-Verbindung mit der Infobase besteht, werden Routineaufgaben ausgeführt (sofern sie für eine bestimmte Infobase nicht verboten sind). In der Dateiversion von Work müssen Sie zum automatischen Starten von Routineaufgaben über eine dedizierte Clientverbindung verfügen, die als Aufgabenplaner verwendet wird. Diese Verbindung muss einen Warteprozess ausführen, der regelmäßig die integrierte Sprachmethode ExecuteJobProcessing() aufruft.
Den Antworten zufolge ist die vierte Antwort die richtige.
Frage 09.57 der Prüfung 1C: Platform Professional. Mit Hintergrundjobs können Sie:
  1. Führen Sie den Vorgang gemäß dem Zeitplan durch
  2. Führen Sie die Prozedur asynchron aus
  3. Neustart im Falle einer abnormalen Beendigung
  4. Die Antworten 1 und 2 sind richtig
  5. Die Antworten 2 und 3 sind richtig
  6. richtige Antworten 1, 2, 3
Die richtige Antwort ist die zweite. Asynchron bedeutet, dass nicht auf den Abschluss des Vorgangs gewartet wird.
Frage 09.58 der Prüfung 1C: Platform Professional. Die Anzahl der gleichzeitig laufenden Hintergrundjobs kann betragen:
  1. jeder ohne Einschränkung
  2. nur eine Aufgabe pro Informationsbasis
  3. nur eine Aufgabe pro Benutzersitzung
  4. eine beliebige Zahl, Sie können jedoch nicht zwei Jobs mit demselben Schlüssel und Methodennamen ausführen
  5. eine beliebige Menge, aber Sie können nicht zwei Aufgaben mit demselben Schlüssel und Namen ausführen
  6. eine beliebige Zahl, Sie können jedoch nicht zwei Jobs mit demselben Schlüssel ausführen, die demselben Metadatenobjekt zugeordnet sind
Die richtige Antwort ist Vierter.
Frage 09.66 der Prüfung 1C: Platform Professional. Abgeschlossene Hintergrundjobs:
  1. in der Infobase gespeichert
  2. sind Sitzungsobjekte, die für einige Zeit gespeichert werden (nicht in der Infobase gespeichert)
  3. werden in keiner Form gespeichert
Die richtige Antwort ist Nummer sechs – ein Hintergrundjob ist ein integriertes Sprachobjekt, das nur für die Dauer der Sitzung existiert.

Dieser Artikel enthält ein Beispiel für die Arbeit mit Hintergrundjobs, wie in 1C-Hintergrundjobs werden gestartet, wie können Sie mit der Methode eine Liste von Aufgaben erhalten? „GetBackgroundTasks()“. Diese Methode gibt uns also ein Array zurück. Mal sehen, was darin enthalten ist.

Lassen Sie mich gleich einen Vorbehalt anbringen, dass das angegebene Beispiel in der Client-Server-Version der Datenbank entwickelt wurde.

Die oben dargestellte Abbildung zeigt den Inhalt dieses Arrays.

Achten Sie auf das Feld "Zustand". Es enthält Informationen darüber, ob der laufende Hintergrundjob erfolgreich abgeschlossen wurde oder noch läuft.

Es enthält auch Informationen über den erfolglosen Abschluss der Aufgabe. Dieses Array enthält außerdem Informationen zu Schlüsseln, eindeutigen Bezeichnern und den Namen von Hintergrundjobs. Informationen zu laufenden und abgeschlossenen Aufgaben werden in der Infobase gespeichert, die Anzahl der in der Tabelle gespeicherten Datensätze ist jedoch begrenzt. Diese Zahl beträgt etwa 1000 Datensätze. Das heißt, wenn neue Elemente hinzugefügt werden, werden alte entfernt. Außerdem wird eine Aufgabe aus der Tabelle gelöscht, wenn sie vor mehr als einem Tag erledigt wurde.

Ein Beispiel für die Arbeit mit einem Hintergrundjob 1C – Methode „GetBackgroundTasks“

Schauen wir uns auch die Arbeit mit Hintergrundjobs anhand des Methodenbeispiels an „GetBackgroundTasks()“. IN diese Methode Es besteht die Möglichkeit, eine Auswahl für empfangene Datensätze festzulegen. Das heißt, wir müssen eine Struktur als Methodenparameter übergeben.

Die Struktur kann folgende Felder enthalten: Eindeutiger Bezeichner, Schlüssel, Status, Start, Ende, Name, Methodenname, ScheduledTask.

Wenn wir beispielsweise nur laufende Jobs benötigen, würden wir eine Auswahl mit dem Namen des Strukturelements „State“ und dem Wert anwenden, wir würden die Systemaufzählung „BackgroundTask State“ im aktiven Status angeben. Daher müssen Sie zunächst sicherstellen, dass in der Demo-Datenbank Aufzeichnungen über die Ausführung von 1C-Hintergrundaufgaben erscheinen.


Um das Beispiel umzusetzen, werden wir Folgendes tun:
1. Lassen Sie uns ein gemeinsames Modul erstellen „BackgroundTask-Handler“ Ausführung auf dem Server.

Und fügen Sie den folgenden Code hinzu:

Prozedur ProduceBackgroundCalculation(Parameter) Export

TimeStart = CurrentDate() ;

While CurrentDate() – Startzeit Zyklus

EndCycle ;

EndProzedur

2. Lassen Sie uns eine Verarbeitung erstellen und eine Schaltfläche auf dem Formular platzieren „Führen Sie die Aufgabe im Hintergrund aus“ Fügen Sie im Verfahren zur Verarbeitung des Schaltflächenklickereignisses den folgenden Code hinzu:

&Auf der Client-Prozedur ExecuteTask(Command) ExecuteBackgroundTaskOnServer() ; EndProzedur

Beschreibung der aufgerufenen Prozedur:

&OnServer-Prozedur ExecuteBackgroundTaskOnServer()BackgroundTask Parameters = New Array; BackgroundTask-Parameter. Hinzufügen( „Einige Parameter“ "Prüfen" ); BackgroundTaskParameters = Neues Array; BackgroundTask-Parameter. Hinzufügen( „Einige Parameter“); Hintergrundaufgaben. Laufen ( „BackgroundTask-Handler. Hintergrundberechnung durchführen“, BackgroundTask-Parameter, Neuer UniqueIdentifier, „Testaufgabe 2“); EndProzedur // BackgroundTaskOnServer() ausführen

Starten wir nun 1C im Unternehmensmodus und beginnen mit der Ausführung eines Hintergrundjobs.


Bereit. Durch diese Aktionen haben wir sichergestellt, dass Aufzeichnungen über die Ausführung von 1C-Hintergrundjobs in unserer Demodatenbank angezeigt werden, und jetzt können wir ein Beispiel für den Erhalt ihres in unserer Datenbank enthaltenen Arrays demonstrieren.

Fügen wir dem Formular eine weitere Schaltfläche hinzu „Hintergrundjobs erhalten“. Schreiben wir den folgenden Code in die Klickverarbeitungsprozedur:

&Auf der Client-Prozedur GetBackgroundJob(Command) GetBackgroundJobOnServer() ; EndProzedur

Der Text der Prozedur auf dem Server:

&OnServer-Prozedur GetBackgroundTasksOnServer() Auswahlparameter = Neue Struktur("Name" , „Testaufgabe 2“); ListBackgroundTasks = BackgroundTasks. GetBackgroundTasks(SelectionParameters) ; Für jede Aufgabe aus der Liste der Hintergrundaufgaben Cycle Report(Task.Name) ; EndCycle ; EndProzedur // GetBackgroundTasksOnServer()

Lassen Sie uns 1C zur Ausführung starten und den Knopf drücken „Hintergrundjobs erhalten“.



Wird geladen...
Spitze