Über Magen-Darm-Erkrankungen

Debuggen von 1C- ein sehr leistungsfähiger und funktionaler Mechanismus der 1C 8.3-Plattform, der es Ihnen ermöglicht, Fehler im Programmcode schnell zu finden (in anderen Programmiersprachen wird dies „Debug“ genannt, vom englischen „Debug“).

Im Folgenden betrachten wir die wichtigsten Methoden zur Verwendung des Debugging-Mechanismus in Form praktischer Anweisungen anhand eines konkreten Beispiels.

Aufmerksamkeit! Wenn Sie den Client-Server-Modus (auf dem Server) verwenden, benötigen Sie.

Der einfachste Weg, das Debuggen in 1C zu starten, besteht darin, 1C im Modus zu öffnen und von dort aus den Debugging-Modus im gewünschten Betriebsmodus (dünn/dick, verwaltet/normal) zu starten:

Debuggen von Hintergrundjobs 1C

Um Hintergrundjobs debuggen zu können, müssen Sie in das Menü „Debugging – Verbindung“ gehen. Klicken Sie im sich öffnenden Fenster auf die Schaltfläche „Automatische Verbindung“:

In diesem Fenster können Sie das entsprechende Flag setzen.

Zusätzlich zu Hintergrundjobs können Sie in diesem Fenster das Debuggen externer Verbindungen, http und . aktivieren.

Einen Haltepunkt setzen

Der zweite Schritt beim Debuggen ist das Setzen eines Haltepunkts (in anderen Programmiersprachen – Haltepunkt).

Zum Beispiel habe ich zum Debuggen den Handler „Bei Änderung“ im Dokumentformular ausgewählt:

Um einen Haltepunkt zu setzen, müssen Sie den gewünschten Programmcode finden und auf das Feld links neben dem Code-Eingabefeld doppelklicken (oder die F9-Taste drücken):

Um eine Liste aller installierten zu sehen, müssen Sie zum Debug-Menü gehen – Liste der Haltepunkte (Alt + F9):

Holen Sie sich 267 Videolektionen zu 1C kostenlos:

Haltepunkt 1C mit Bedingung (blau)

Zusätzlich zum üblichen Haltepunkt in 1C gibt es eine andere Art von Haltepunkt – mit einer Bedingung. Grafisch wird ein solcher Punkt blau dargestellt. Dieser Haltepunkt ist sehr nützlich, wenn Sie beim Durchlaufen einer Schleife eine bestimmte Iteration abfangen müssen. Das Debuggen wird aktiviert, wenn eine bestimmte Bedingung erfüllt ist.

Stoppen wir die Schleife beispielsweise bei Zeile 25:

Inaktiver Haltepunkt (grau)

Ein grauer Haltepunkt bedeutet, dass er nicht aktiv ist und das System an diesem Haltepunkt nicht anhält. Sie können es inaktiv machen, indem Sie auf die spezielle Schaltfläche im Bereich „Haltepunkt deaktivieren“ klicken (Umschalt+Strg+F9):

Fehler-Haltepunkt

Das System kann aufgrund eines Fehlers stoppen; dazu müssen Sie im Menü Debug - Stopp bei Fehler das entsprechende Flag setzen:

Außerdem verfügt ein Fehlerstopp über ähnliche Funktionen wie ein bedingter Haltepunkt – er ermöglicht Ihnen das Filtern von Ausnahmen mit einem bestimmten Fehlertext.

Schrittweise Bewegung durch den 1C-Programmcode

Nachdem Sie einen Haltepunkt gesetzt haben, müssen Sie die Ausführung des gewünschten Programmcodes veranlassen, damit das System in die schrittweise Codeausführung übergeht. Die Anzeige eines Pfeils zeigt den Beginn des Schritt-für-Schritt-Codeausführungsmodus an:

Um einen Schritt zur nächsten Zeile zu machen, müssen Sie die Taste „F11“ (Einsteigen) drücken.

Wenn Sie durch Programmcodezeilen gehen und sich in der Zeile eine Prozedur oder Funktion befindet, „fallen“ Sie in diese Prozedur (oder Funktion).

Um nicht zu „scheitern“, genügt es, statt F11 (Step into) mit der Taste F10 (Step through) durch die Zeilen zu springen;

Um von der aktuellen Cursorposition zur gewünschten zu gelangen und dabei Zwischenzeilen des Codes zu umgehen, müssen Sie den Cursor auf der gewünschten Zeile platzieren und Umschalt + F10 (Gehe zum Cursor) drücken.

Analyse von Werten im 1C-Debug-Modus

Sie können die Werte bestimmter Werte auf unterschiedliche Weise anzeigen:

Wert beim Hover anzeigen

Wenn Sie mit der Maus über eine Variable fahren, „hebt“ das System die Werte der Variablen hervor:

Verwenden von Evaluate Expression oder Tableau

  • Bilden Ausdruck auswerten kann über das Kontextmenü oder durch Drücken der Tastenkombinationen (Umschalt + F9) oder über das Menü (Debuggen – Ausdruck auswerten) aufgerufen werden.
  • Anzeigetafel Der Aufruf erfolgt über die Tastenkombination Strg + Alt + W oder über das Menü (Debugging – Tableau).

Diese beiden Analysemethoden sind sehr ähnlich, die Hauptunterschiede liegen in der Schnittstelle. Es ist bequemer, ein Scoreboard für eine Gruppe von Indikatoren und Ausdrücke für einzelne Indikatoren zu verwenden.

Diese Methoden sind sehr einfach anzuwenden. Es reicht aus, den Namen der gewünschten Variablen in die Tabelle einzutragen. Ein großer Vorteil beliebiger Berechnungen besteht darin, dass Sie dem Ausdruck Ihre eigenen Daten hinzufügen können.

Zum Beispiel:

Es ist sehr nützlich, die Ausdrucksauswertung zu verwenden und eine Abfrage auszuführen, sie in eine Wertetabelle hochzuladen und sie anzusehen.

So finden Sie beim Debuggen heraus, von wo aus eine Prozedur aufgerufen wird – Aufrufliste

Sehr oft müssen Sie verstehen, woher eine bestimmte Prozedur oder Funktion aufgerufen wurde und mit welchen Parametern. Zu diesem Zweck stellt 1C eine spezielle Funktion zur Verfügung – „Call Stack“. Um den Call Stack zu starten, müssen Sie die Hotkeys Strg + Alt + C oder über das Menü (Debugging – Call Stack) drücken.

Damit können Sie im Detail herausfinden, von wo und mit welchen Parametern die Prozedur aufgerufen wurde:

Wenn Sie daran interessiert sind, die Leistung während des Debuggens zu bewerten – .

Sehen Sie sich auch ein Übersichtsvideo zum Debuggen in 1C an:

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 aufrechtzuerhalten.

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

Eigenschaften festlegen

Schauen wir uns die wichtigsten Parameter an, die in seinen Eigenschaften ausgefüllt werden müssen.

  • 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.

Eine typische Zeitplaneinstellung sehen Sie 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

Führen Sie das Standarddienstprogramm „Verwaltung von 1C Enterprise-Servern“ aus 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 wird ein zusätzliches Konto erstellt, dessen Sitzung immer geöffnet ist.

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

Sie können den Fortschritt von Hintergrundjobs sowie das Vorhandensein möglicher Fehler im Protokoll einsehen. 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.

Manchmal besteht die Notwendigkeit, einen Hintergrundjob (Routine) zu debuggen. Genau hier entsteht häufig das Problem.

Manchmal besteht die Notwendigkeit, einen Hintergrundjob (Routine) zu debuggen. Genau hier entsteht häufig das Problem. Und dieses Problem besteht darin, dass der Debugger keine Verbindung zu dem Prozess herstellen kann, der auf der Serverseite ausgeführt wird.

Um dieses Problem zu lösen, müssen wir zwei Probleme lösen:

1. Aktivieren Sie das Debuggen auf dem 1C-Server. Standardmäßig ist das Debuggen auf dem Server deaktiviert. Um es zu aktivieren, müssen Sie Folgendes tun: Starten Sie die Windows-Registrierung, indem Sie Folgendes eingeben: Ausführen" Befehl REGEDIT. Linie finden

„C:\Programme\1cv81\bin\ragent.exe“ -srvc -agent

(aus den Startparametern des 1C:Enterprise 8.1 Server Agent-Dienstes entnommen). (Dies gilt für Plattformversion 8.1)

Fügen Sie den Schlüssel am Ende hinzu -debuggen (Vergessen Sie nicht, vor dem Schlüssel -debug ein Leerzeichen einzufügen)

Beispiel
. „ImagePath“= War "C:\Programme\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Programme\1cv81\server" setzen „C:\Programme\1cv81\bin\ragent.exe“ -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debuggen-d „C:\Programme\1cv81\server“

Starten Sie den Serveragenten neu. Bereit. Jetzt können wir Serverausführungsthreads debuggen.

2. Die Groß-/Kleinschreibung der Buchstaben des Servernamens und des Datenbanknamens in der Client-Verbindung zum 1C-Server muss genau übereinstimmen.

Richtiger Anschluss:
Hintergrundjob Klient - Srvr="SERVER-NAME";Ref="Base_Name";
Falsche Verbindung:
Hintergrundjob - Srvr="SERVER-NAME";Ref="Base_Name"; Klient - Srvr="Servername";Ref="Base_Name";

Wie können Sie herausfinden, mit welchen Parametern der Hintergrundjob eine Verbindung zur Datenbank herstellt? Sie können sich verschiedene Möglichkeiten vorstellen. Eine davon besteht darin, diese Parameter zu protokollieren, während ein Hintergrundjob ausgeführt wird.

Der Code lautet wie folgt:

Verfahren WriteConnectionWithBase() Export
JournaleintragRegistrierung(,InformationBaseConnectionString());
EndProzedur

Während ein Hintergrundjob ausgeführt wird, wird eine Zeile mit den vom Hintergrundjob verwendeten Datenbankverbindungsparametern in das Protokoll geschrieben.


Jetzt legen wir die automatische Verbindung zu Hintergrundjobs fest.

Nachdem Sie solche Manipulationen durchgeführt haben, können Sie Hintergrundjobs debuggen.


Hast du es noch nicht gelesen? Du könntest interessiert sein...



Wenn Sie einen Fehler bemerken, wählen Sie einen Textabschnitt aus und drücken Sie Strg+Eingabetaste
AKTIE: