Heim / Skypen / 1c externe Verarbeitung auf abgesicherten Modus eingestellt. Sicherer Betriebsmodus. Starten der externen Verarbeitung im normalen Anwendungsmodus

1c externe Verarbeitung auf abgesicherten Modus eingestellt. Sicherer Betriebsmodus. Starten der externen Verarbeitung im normalen Anwendungsmodus

Drucken (Strg+P)

Konfigurationsobjekte

Wenn auf dem Server „unzuverlässiger“ Programmcode verwendet werden muss: externe Verarbeitung oder vom Benutzer eingegebener Programmcode zur Verwendung in den Methoden Execute() und Calculate(), können Sie den sicheren Modus verwenden.

Im abgesicherten Modus:

  • Privilegierter Modus abgesagt.
  • Wechsel in den privilegierten Modus ignoriert.
  • Verboten Vorgänge, die zur Verwendung externer Tools in Bezug auf die 1C:Enterprise-Plattform führen (einschließlich nicht blockierender Analoga der oben genannten Methoden):
  • COM-Mechanismen:
    • COMObject();
    • GetCOMObject();
    • WrapperHTMLDocument.GetCOMObject().
  • Laden externer Komponenten:
    • LoadExternalComponent();
    • ConnectExternalComponent().
  • Dateisystemzugriff:
    • valueToFile();
    • Datei kopieren();
    • Dateien zusammenführen ();
    • Datei bewegen();
    • SplitFile();
    • Verzeichnis erstellen();
    • Dateien löschen();
    • Neue Datei;
    • Neue xBase;
    • WriteHTML.OpenFile();
    • LesenHTML.OpenFile();
    • ReadingXML.OpenFile();
    • WriteXML.OpenFile();
    • ReadFastInfoset.OpenFile();
    • WriteFastInfoset.OpenFile();
    • CanonicalWriterXML.OpenFile();
    • XSL-Transformation.LoadFromFile();
    • WriteZipFile.Open();
    • ReadZipFile.Open();
    • NewTextReader() wenn das erste Argument ein String ist;
    • ReadText.Open() wenn der erste Parameter ein String ist;
    • New TextWrite() wenn der erste Parameter ein String ist;
    • WriteText.Open() wenn der erste Parameter ein String ist;
    • Neuer ExtractText();
    • Ändern der Eigenschaft ExtractText.FileName;
    • ExtractText.Write();
    • Neues Bild (), wenn der erste Parameter eine Zeichenfolge ist;
    • Picture.Record();
    • Neue Binärdaten();
    • BinaryData.Write();
    • New DataWrite() wenn der erste Parameter ein String ist;
    • New DataRead(), der erste Parameter ist ein String;
    • alle Methoden des FileStreamManager-Objekts;
    • Neuer FileStream();
    • FormattedDocument.Write();
    • GeographicScheme.Read();
    • GeographicScheme.Write();
    • GeographicScheme.Print();
    • SpreadsheetDocument.Read();
    • SpreadsheetDocument.Write();
    • SpreadsheetDocument.Print(); GraphicScheme.Read();
    • GraphicScheme.Write();
    • GraphicScheme.Print();
    • TextDokument.Read();
    • TextDocument.Write().
  • Internet Zugang:
    • Neue Internetverbindung,
    • Neue InternetMail,
    • Neuer Internet-Proxy,
    • Neue HTTP-Verbindung,
    • Neue FTP-Verbindung.

AUFMERKSAMKEIT! Löst eine Ausnahme aus, wenn zur Laufzeit unzulässige Vorgänge ausgeführt werden.

Notiz. Externe Berichte und Verarbeitungen, die über das Menü Datei - Öffnen geöffnet werden, werden im abgesicherten Modus ausgeführt, wenn der Benutzer keine administrativen Zugriffsrechte hat.

Die Anzahl der Aktivierungen im abgesicherten Modus muss mit der Anzahl der Abschaltungen übereinstimmen. Wenn der abgesicherte Modus jedoch (einmal oder mehrmals) innerhalb eines Verfahrens oder einer Funktion aktiviert, aber nicht deaktiviert wurde, wird das System automatisch so oft heruntergefahren, wie es nicht abgeschlossene Aktivierungen in dem Verfahren oder der abgebrochenen Funktion gab.

Bei Methodenaufrufen in einer Prozedur oder Funktion SetSafeMode(Falsch) mehr getan als Methodenaufrufe SetSafeMode(True), dann wird eine Ausnahme ausgelöst.

Die programmatische Installation des abgesicherten Modus kann erforderlich sein, wenn der Entwickler der Konfiguration davon ausgeht, dass Programmcode von Drittanbietern (in Bezug auf die Konfiguration) verwendet wird, dessen Zuverlässigkeit der Entwickler nicht garantieren kann. Ein Beispiel für einen solchen Code ist die Ausführung der Methoden Execute() und Calculate() in Fällen, in denen der ausführbare Code von der Außenwelt empfangen wird. In diesem Fall empfiehlt es sich, den abgesicherten Modus einzustellen, bevor Sie diese Methoden ausführen:

// Programmcode wird zur Ausführung generiert // Es ist möglich, dass der Code aus geladen wird Externe Quellen// oder manuell eingegeben ExecutableCode = GetExecutableCodeFrom OutsideWorld(); // Abgesicherten Modus aktivieren SetSafeMode(True); // Potentiell gefährlichen Code ausführen Execute(ExecutableCode); // Abgesicherten Modus deaktivieren SetSafeMode (False);

In einigen Fällen können die Einstellungen des abgesicherten Modus mit den Einstellungen des privilegierten Modus in Konflikt geraten. Ein Beispiel für einen solchen Konflikt ist das Posten eines Dokuments, bei dem die Eigenschaft Privileged Posting Mode aus 1C-Code festgelegt ist, der im abgesicherten Modus ausgeführt wird. In diesem Fall ist der privilegierte Modus deaktiviert und Versuche, ihn zu aktivieren, werden ignoriert. Infolgedessen „kollidiert“ 1C:Enterprise-Code, der sich auf den aktivierten privilegierten Modus „verlässt“, mit dessen Abwesenheit, was zu Fehlern mit nicht offensichtlichen Gründen für das Auftreten führt. Um eine solche Situation zu verhindern, deaktiviert 1C:Enterprise automatisch den abgesicherten Modus für Event-Handler, die in einem Objektmodul oder einem Manager-Modul verfügbar sind, vorausgesetzt, dass sich der ausführbare Code in der 1C:Enterprise-Sprache nicht in der Konfigurationserweiterung befindet. Solche Handler sind im Syntaxassistenten besonders gekennzeichnet.

Es bietet auch die Option, den abgesicherten Modus innerhalb der 1. Sprache zu deaktivieren (wenn der Code, von dem aus die Deaktivierung versucht wird, nicht in einer Konfigurationserweiterung enthalten ist). Methode zum Deaktivieren des abgesicherten Modus SetDisableSafeMode(). Überprüfen Sie, ob der abgesicherte Modus aktiviert ist dieser Moment deaktiviert (automatisch oder mit einem Methodenaufruf), können Sie die Methode verwenden GetDisableSafeMode().

Innerhalb einer 1C:1-Methode darf es nicht mehr als eine Verschachtelungsebene geben, um den abgesicherten Modus festzulegen (durch Aufrufen der Methode SetSafeMode()) und die Deaktivierung des abgesicherten Modus festzulegen (automatisch zum Zeitpunkt der Ausführung von Metadatenobjekt-Ereignishandlern oder durch Aufrufen der SetSafeModeDisable()-Methode). Beim Versuch, die Verschachtelung zu erhöhen, wird eine Ausnahme ausgelöst:

// Richtiges Verwendungsverfahren ProcedureName() SetSafeModeDisable(True); SetSafeMode (Wahr); SetSafeMode (Falsch); SetSafeModeDisable (Falsch); EndProcedure // Falsche Verwendung Procedure ProcedureName() SetSafeModeDisable(True); SetSafeMode (Wahr); SetSafeModeDisable (Falsch); // Ausnahme EndProcedure ProcedureProcedureName() SetSafeMode(True); SetSafeModeDisable (Falsch); // Ausnahme EndProcedure

Tatsache ist, dass bei Verwendung der Client-Server-Version von 1C externe Verarbeitungen / Berichte im abgesicherten Modus geöffnet werden, in dem die Verwendung des privilegierten Modus verboten ist. Und der privilegierte Modus wird sehr oft in typischen Konfigurationen verwendet: die Erstellung von gedruckten Formularen, verschiedene Serviceprüfungen (Registrierung von Börsen) usw. Infolgedessen erhalten Sie selbst bei Verwendung eines regulären Berichts über das ACS ohne Formular (standardmäßig wird das allgemeine Formular "ReportForm" verwendet) und beim Speichern der Benutzereinstellungen des Berichts (im entsprechenden Verzeichnis) eine Fehlermeldung über unzureichend Zugriffsrechte auf verschiedene Konstanten und Sitzungsparameter, die für offizielle Zwecke nach Zeile verwendet werden SetPrivilegedMode(True) ;

Die „richtige“ Lösung wäre die externe Verarbeitung und Berichterstattung über die BSP-Mechanismen anzubinden“ Zusätzliche Berichte und Verarbeitung" mit Deaktivierung des abgesicherten Modus oder Hinzufügen von Berechtigungen (meiner Meinung nach ab BSP-Version 2.2.2.1). Aber wenn es aus irgendeinem Grund notwendig ist, es zu verwenden externe Dateien Berichte/Verarbeitung können Sie das Sicherheitsprofil des Clusters konfigurieren, das als Sicherheitsprofil für den abgesicherten Modus für einen bestimmten verwendet wird Informationsbasis.

Ich möchte gleich darauf hinweisen, dass diese Option nicht bevorzugt wird, aber aufgrund verschiedener Umstände in einer solchen vereinfachten Form verwendet werden kann. Ich habe zum Beispiel mehrere Basen drin verschiedene Städte, ein gewöhnlicher Einheimischer setzt sich mit hart hin eingeschränkte Rechte, geschlossener USB usw., irgendwo wird Buchhaltung 2.0 verwendet, und irgendwo 3.0, ich mache fast alle Berichte mit ACS ohne Formulare, damit sie sich in beiden Versionen öffnen. Servieren Sie all diese Berichte für verschiedene Versionen und unterschiedlichen Basen ist ein zeitraubendes und aussichtsloses Geschäft, denn Es ist geplant, auf eine einzige Konfiguration und Basis umzusteigen ...

Wir erstellen ein Profil.
Erstellen Sie in der Cluster-Konsole ein Sicherheitsprofil, in dem wir die Flags setzen "Kann als Sicherheitsprofil im abgesicherten Modus verwendet werden" und " unter "Vollzugriff erlaubt:" "in den privilegierten Modus".

In vielen Fällen der Verwendung von Berichten und einfacher Verarbeitung wird diese Methode anwendbar sein. Bei komplexeren Situationen macht es keinen Sinn, den Vorgang zu beschreiben, weil. es wird in der Dokumentation beschrieben (die Möglichkeit, Sicherheitsprofile für bestimmte externe Dateien durch Angabe ihrer Hash-Summe zu konfigurieren usw.).

P.S. Ich dachte, dass Sicherheitsprofile nur funktionieren, wenn Lizenzen für die Plattform und den Server der CORP-Ebene verwendet werden, aber diese Funktionalität funktioniert auch auf der 1C:Enterprise 8.3-Plattform (wir können PROF analog zu den Standardkonfigurationen Basic / PROF / CORP bedingt nennen).

Betrachten wir am Beispiel von Trade Management 11.3 einen einfachen Vorgang zum Anschließen eines externen Druckformulars. Wir werden auch die Funktionen des neuen Sicherheitssystems berücksichtigen.

Schneller Durchgang

Vorläufige Maßnahmen

Für den Anfang sollten Sie Funktionalität aktivieren oder prüfen Sie die Verfügbarkeit

1. Wir haben volle Rechte an der Infobase.

2. Gehen Sie zum Menü "NSI und Verwaltung" / Block "Verwaltung" / Befehl " Formulare drucken, Berichte und Verarbeitung".

Nachtrag

Im geöffneten Abschnitt:

Fügen Sie die Verarbeitung über die Schaltfläche "Erstellen" hinzu (dies ist wichtig) oder "Aktualisieren!" vorhandenen:

  • Wählen Sie es in der Liste aus (wenn es nicht ausgewählt oder leer ist, funktioniert der Befehl nicht, sagt aber nichts).
  • Klicken Sie auf die Schaltfläche "Aus Datei laden".

Nach dem Auftritt für 1C in externe Verarbeitung neue Konfigurationen haben Sicherheitsüberprüfungen.

Sie sollten nur Verarbeitungen installieren, die unabhängig erstellt oder über bekannte Kommunikationskanäle erhalten wurden (nicht per E-Mail, nur von einer Website mit gültigem Zertifikat oder von Mitarbeitern des Entwicklers bereitgestellt und von ihm telefonisch bestätigt).

Wenn der Entwickler alles in die Verarbeitung geschrieben hat, wird "Platzierung" festgelegt - die Objekte, an denen die Verarbeitung beteiligt ist, werden die Befehle angezeigt.
Um zu arbeiten, reicht es aus, auf "Aufzeichnen und schließen" zu klicken.

Untersuchung

Unmittelbar danach, je nach Art der Bearbeitung:

  • Das Druckformular wird beim Öffnen eines Dokuments oder aus seiner Liste (bei einem bereits geöffneten beim erneuten Öffnen) durch Klicken auf die Schaltfläche "Drucken" verfügbar.
  • Behandlungen sind in den Abschnitten „Zusätzliche Behandlungen“ in jedem Subsystem verfügbar
  • Bearbeitung des Ausfüllens über die Schaltfläche "Ausfüllen" der Liste oder das Hauptbefehlsfeld des Objektformulars.

Für die obige Verarbeitung sieht der Start wie folgt aus:

Wenn das Dokument neu ist, sollte es aufgezeichnet werden, der externe Verarbeitungsmechanismus warnt Sie davor:

Das weitere Verhalten hängt von der inhärenten Funktionalität ab: Es ist möglich, ein Formular zu öffnen oder eine einfache Datenverarbeitung.

Sicherheitswarnungen in 1C

In neuen Versionen der Plattform und Konfigurationen wurde der Schutz vor dem Start von Schadprogrammen verstärkt.

Die Verarbeitung kann dazu führen, dass Excel mit dem Laden beginnt. In diesem Fall werden Sie auch vom neuen Sicherheitssubsystem gewarnt:

In diesem Fall wird der Handler-Code unterbrochen.

Wenn Sie auf „Ja“ klicken, werden Sie vom System aufgefordert, den Befehl erneut aufzurufen:

Es ist für einen Infobase-Benutzer möglich, den Schutz vor gefährlichen Aktionen über den Konfigurator zu deaktivieren:

Aus dem "Enterprise"-Modus kann dies nicht geändert werden, vielleicht wurde es absichtlich gemacht, es kann nach dem Update erscheinen.

Zu beachten ist auch, dass bei einer Verarbeitung über Excel diese im unsicheren Modus starten muss (war vor der Einführung des neuen Systems so, das funktioniert parallel):

"MS EXCEL kann nicht geladen werden!!!" "Der abgesicherte Modus ist eingestellt. Der Betrieb ist verboten"

In der Fremdbearbeitung sieht das so aus:

Der Entwickler sollte es in der internen Verarbeitungsbeschreibung auf "False" setzen, dann wird alles gut:

ExternalProcessingDetails() ExportRegistrationParameters = Neue Struktur; RegistrationParameters.Insert("SafeMode", False);

Beim Update der Konfiguration kam auch ein Warntext dazu, aus welcher Quelle die Konfigurationsdatei bezogen wurde:

Wenn Sie das Programm „Dokumente herunterladen“ als normaler Benutzer ausführen, tritt ein Fehler auf: „Der abgesicherte Modus ist eingestellt. Der Vorgang ist verboten.“

Diese Schwierigkeit entsteht, weil Es sind nicht genügend Rechte vorhanden, um eine externe Verarbeitung zu starten. Um Zugriffsrechte festzulegen, gehen Sie im Auftrag von zur Datenbank im 1C Enterprise-Modus Administrator und gehe zum Abschnitt Benutzer- und Rechteeinstellungen / Zugangsgruppenprofile, klicken Um eine Gruppe zu erstellen.

Geben Sie den Namen der Gruppe ein und aktivieren Sie die Kontrollkästchen Benutzern zur Verfügung diese Rollengruppe -

  • Interaktives Öffnen externer Berichte und Bearbeitung
  • Verwendung zusätzlicher Berichte und Verarbeitung

Klicken Schreiben und schließen


Kehren Sie zum Menü „Benutzer“ zurück und wählen Sie einen Mitarbeiter aus der Liste aus, der mit dem Programm zum Hochladen von Dokumenten arbeiten wird. Klicken Sie auf Berechtigungen. Markieren Sie in der Liste der Profile das zuvor erstellte Profil. Klicken brennen.


Damit Benutzer mit der Verarbeitung beginnen können, wird empfohlen, den Dokumenten-Upload zur Liste der externen Verarbeitung hinzuzufügen. Dazu das Menü Verwaltung / Formulare drucken und bearbeiten / Zusatzberichte und bearbeiten Erstellen Sie eine neue Verarbeitung. Geben Sie den Pfad zur Datei „DocumentUpload.epf“ an und vergeben Sie einen Namen. Geben Sie den Ort der Verarbeitung im Menü an, von wo aus der Benutzer sie zukünftig starten kann, z. B. das Menü auswählen Nachschlagewerke

Anklicken eines Artikels Schneller Zugriff Sie geben an, für welchen Benutzer die Verarbeitung verfügbar ist:


Klicken Sie nach der Einstellung auf Schreiben und schließen. Um mit der Verarbeitung zu beginnen, müssen Benutzer nur erneut in die Datenbank eintreten und sie über das Zugriffsmenü (im Beispiel - Verzeichnisse) öffnen und klicken Laufen.


offen Menü - Alle Funktionen... und suchen Sie die Option "Sicherheitsprofile verwenden" in der Liste.


Es reicht aus, die Option „Sicherheitsprofile werden verwendet“ zu deaktivieren.


Danach wird das Programm erfolgreich ausgeführt.