Abgesicherter Modus 1s. So fügen Sie eine externe Druckplatte oder Verarbeitung hinzu

Wenn Sie das Programm zum Hochladen von Dokumenten als normaler Benutzer ausführen, wird die Fehlermeldung „Der abgesicherte Modus ist eingestellt. Der Vorgang ist verboten.“ angezeigt.

Diese Schwierigkeit entsteht, weil Es sind nicht genügend Rechte vorhanden, um die externe Verarbeitung zu starten. Um Zugriffsrechte zu konfigurieren, melden Sie sich im Namen von bei der Datenbank im 1C Enterprise-Modus an Administrator und gehe zum Abschnitt Benutzer- und Rechteeinstellungen / Zugriffsgruppenprofile, klicken Um eine Gruppe zu erstellen.

Geben Sie den Namen der Gruppe ein und aktivieren Sie die Kontrollkästchen für die Rollen, die den Benutzern dieser Gruppe zur Verfügung stehen.

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

Klicken Speichern und schließen


Kehren Sie zum Menü „Benutzer“ zurück und wählen Sie aus der Liste den Mitarbeiter aus, der mit dem Dokument-Upload-Programm arbeiten soll. Klicken Sie auf Berechtigungen. Wählen Sie in der Profilliste das zuvor erstellte Profil aus. Klicken Aufschreiben.


Damit Benutzer mit der Verarbeitung beginnen können, wird empfohlen, das Laden von Dokumenten zur Liste der externen Verarbeitung hinzuzufügen. Dies geschieht im Menü Verwaltung / Gedruckte Formulare und Bearbeitung / Zusätzliche Berichte und Bearbeitung Erstellen Sie eine neue Verarbeitung. Geben Sie den Pfad zur Datei „Download Documents.epf“ an und vergeben Sie einen Namen. Geben Sie den Ort der Verarbeitung im Menü an, von wo aus der Benutzer sie später starten kann, indem Sie beispielsweise das Menü auswählen Verzeichnisse

Durch Klicken auf den Punkt Schnellzugriff geben Sie an, welche Benutzer Zugriff auf die Bearbeitung haben:


Klicken Sie nach dem Einstellen auf Speichern und schließen. Um mit der Verarbeitung zu beginnen, müssen Benutzer lediglich die Datenbank erneut betreten und sie über das Zugriffsmenü (im Beispiel Verzeichnisse) öffnen und klicken Ausführen.


Offen Menü - Alle Funktionen.... und suchen Sie in der Liste nach der Option „Sicherheitsprofile werden verwendet“.


Deaktivieren Sie einfach die Option „Sicherheitsprofile werden verwendet“.


Danach wird das Programm erfolgreich gestartet.

Mit der Veröffentlichung der Plattform 8.3.9.2033 erschien ein neuer Mechanismus „Schutz vor gefährlichen Handlungen“.

Dank dieser Innovation begann 1C nun, auf die Öffnung der Verarbeitung (und nicht nur) zu schwören:

Sicherheitswarnung

Öffnet „My External Processing“ aus der Datei „My_External_Processing.epf“

Es wird empfohlen, auf die Quelle zu achten, von der diese Datei bezogen wurde. Wenn mit der Quelle keine Einigung über die Entwicklung zusätzlicher Module besteht oder Zweifel am Inhalt der Datei bestehen, wird davon abgeraten, diese zu öffnen, da dies zu Schäden am Computer und an den Daten führen kann.

Darf ich diese Datei öffnen?

Deshalb hat 1C beschlossen, Schadcode zu bekämpfen!

Woher dieser „Schadcode“ in einem Unternehmen kommt, ist immer noch ein Rätsel)

Zu den potenziell gefährlichen Handlungen gehörten:

  • Laden eines externen Berichts, einer Verarbeitung oder einer Konfigurationserweiterung.
  • Konfiguration/Erweiterung laden oder aktualisieren.
  • Zugriff von einem externen Bericht/Prozessor oder einer Erweiterung auf die folgenden Funktionen:
  • Ausführen eines Betriebssystembefehls.
  • Benutzerverwaltung (Aufzeichnen oder Löschen von Informationen über einen Infobase-Benutzer).
  • Aufruf der Connect()-Methode des Managers für externe Verarbeitung (Berichte).
  • Aufruf der Methode ExtendConfiguration.Write().
  • Arbeiten mit COM-Objekten.

Wie kann dieses „Wunder“ ausgeschaltet werden?

Dazu müssen Sie 1C Enterprise im Konfiguratormodus starten.
Wählen Sie das Menü „Administration“ – „Benutzer“.
In dem Fenster, das sich für unsere Benutzer öffnet, müssen Sie das Benutzereinstellungsfenster öffnen und die Registerkarte „Grundlegend“ deaktivieren „Schutz vor gefährlichen Handlungen“

Es gibt andere Möglichkeiten, dies zu deaktivieren:

Es ist jetzt möglich, eine Liste von Infobases anzugeben, bei deren Arbeit der Schutz vor gefährlichen Aktionen deaktiviert wird.
Diese Funktion ist für den Parameter DisableUnsafeActionProtection in der Datei conf.cfg verantwortlich, der es Ihnen ermöglicht, den Schutzmechanismus vor gefährlichen Aktionen für alle Benutzer bestimmter Infobases zu deaktivieren, deren Verbindungszeichenfolgen die im Parameter DisableUnsafeActionProtection angegebenen Masken erfüllen.

In diesem Parameter können Sie mehrere durch das „;“-Symbol getrennte Masken angeben, zum Beispiel:

DisableUnsafeActionProtection=test_.*;stage_.*;

Darüber hinaus kann der Schutz vor gefährlichen Benutzeraktionen programmgesteuert deaktiviert werden, wofür folgende Parameter und Eigenschaften zur Verfügung stehen:

  • Parameterschutz vor gefährlichen Aktionen der Connect()-Methoden externer Verarbeitungs-(Berichts-)Manager
  • Die Eigenschaft „Schutz vor gefährlichen Aktionen“ des Kvor dem Aufruf der Write()-Methode dieses Objekts.

Die Prüfung der Notwendigkeit, Schutzmaßnahmen gegen gefährliche Einwirkungen zu ergreifen, erfolgt in der folgenden Reihenfolge:

1. Wenn das Kontrollkästchen „Schutz vor gefährlichen Aktivitäten“ des aktuellen Benutzers deaktiviert ist, gilt der Schutz als deaktiviert.

2. Wenn die Verbindungszeichenfolge zur Infobase einem der im Parameter DisableUnsafeActionProtection der Datei conf.cfg angegebenen Muster entspricht, gilt der Schutz als deaktiviert.

3. Wenn der Schutz mithilfe des Parameters „Schutz vor gefährlichen Aktionen“ der externen Verarbeitung oder des externen Berichts explizit deaktiviert wird.

4. Wenn der Schutz mithilfe der Erweiterungseigenschaft Schutz vor gefährlichen Aktionen explizit deaktiviert wird.

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 häufig in typischen Konfigurationen verwendet: Erstellung gedruckter Formulare, verschiedene Serviceprüfungen (Registrierung von Börsen) usw. Daher erhalten Sie auch bei Verwendung eines regulären Berichts über das Zugriffskontrollsystem ohne Formular (standardmäßig wird das allgemeine Formular „ReportForm“ verwendet) und beim Speichern benutzerdefinierter Berichtseinstellungen (im entsprechenden Verzeichnis) eine Fehlermeldung über unzureichenden Zugriff Rechte an verschiedenen Konstanten und Sitzungsparametern, die nach der Zeile für offizielle Zwecke verwendet werden SetPrivilegedMode(True) ;

Die „richtige“ Lösung wäre, externe Verarbeitung und Berichte über die BSP-Mechanismen „Zusätzliche Berichte und Verarbeitung“ zu verbinden, indem der abgesicherte Modus deaktiviert oder Berechtigungen hinzugefügt werden (meiner Meinung nach ab BSP-Version 2.2.2.1). Wenn es jedoch aus irgendeinem Grund erforderlich ist, externe Berichts-/Verarbeitungsdateien zu verwenden, können Sie ein Cluster-Sicherheitsprofil konfigurieren, das als Sicherheitsprofil im abgesicherten Modus für eine bestimmte Infobase verwendet wird.

Ich möchte sofort darauf hinweisen, dass diese Option nicht vorzuziehen ist, aber aufgrund verschiedener Umstände in einer so vereinfachten Form verwendet werden kann. Ich habe zum Beispiel mehrere Datenbanken in verschiedenen Städten, eine gemeinsame lokale mit streng eingeschränkten Rechten, geschlossenem USB usw., irgendwo verwende ich Accounting 2.0 und irgendwo 3.0, ich erstelle fast alle Berichte mit ACS-Tools ohne Formulare, damit sie in beiden Versionen geöffnet. Die Pflege all dieser Berichte für verschiedene Versionen und verschiedene Datenbanken ist arbeitsintensiv und sinnlos, weil Es ist geplant, auf eine einzige Konfiguration und Basis umzusteigen...

Lass uns ein Profil erstellen.
In der Cluster-Konsole erstellen wir ein Sicherheitsprofil, in dem wir die Flags setzen „Kann als Sicherheitsprofil im abgesicherten Modus verwendet werden“ und " im Abschnitt „Vollzugriff erlaubt:“ „in den privilegierten Modus“.

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

P.S. Ich dachte, dass Sicherheitsprofile nur funktionieren, wenn Plattform- und Serverlizenzen auf CORP-Ebene verwendet werden, aber diese Funktionalität funktioniert auch auf der 1C:Enterprise 8.3-Plattform (sie kann bedingt PROF genannt werden, analog zu den Standardkonfigurationen Basic/PROF/CORP).

Das programmatische Öffnen der externen Verarbeitung erfolgt über das globale Kontextobjekt ExternalProcessing vom Typ ExternalProcessingManager. Für jeden Betriebsmodus der 1C-Plattform (regulärer Anwendungsmodus und verwalteter Anwendungsmodus) werden unterschiedliche Objektmethoden verwendet, um mit der externen Verarbeitung zu arbeiten.

Externe Verarbeitung im normalen Anwendungsmodus ausführen

In einer typischen Anwendung müssen Sie die Create()-Methode des ExternalProcessing-Objekts verwenden, dem der vollständige Name der externen Verarbeitungsdatei übergeben wird. Die Methode gibt ein Objekt vom Typ zurück Externe Verarbeitung, dieses Objekt ist die externe Verarbeitung, die geöffnet wird. Wenn Sie ein externes Verarbeitungsformular öffnen müssen, rufen Sie die GetForm()-Methode für das empfangene Objekt auf, die das Hauptformular zurückgibt, und rufen Sie dann die Open()-Methode auf, um es zu öffnen.


Processing = ExternalProcessing.Create(FullFileName);
Processing.GetForm().Open();

Bei der externen Verarbeitung muss das Hauptformular immer ein reguläres und das gesteuerte Formular immer ein zusätzliches Formular sein, sonst funktioniert die Methode GetForm() im normalen Anwendungsmodus nicht.

Externe Verarbeitung im verwalteten Anwendungsmodus ausführen

Im verwalteten Formularmodus ist der Algorithmus nach Ausführungskontext unterteilt. Auf dem Client erhalten wir Binärdaten unter Verwendung des vollständigen Namens der externen Verarbeitungsdatei. Wir übertragen die empfangenen Binärdaten an den Server und legen sie im Zwischenspeicher ab. Als nächstes müssen Sie die Connect()-Methode des ExternalProcessing-Objekts aufrufen, an das die Adresse für die temporäre Speicherung übergeben wird. Die Methode gibt den Namen der angeschlossenen externen Verarbeitung zurück. Wir geben den Namen der externen Verarbeitung an den Client zurück, erstellen einen Zeichenfolgenpfad zum Verarbeitungsformular und verwenden die OpenForm()-Methode, um das externe Verarbeitungsformular zu öffnen.

&Auf dem Server
Funktion GetExternalProcessingName(BinaryData)
AddressInTemporaryStorage = PlaceInTemporaryStorage(BinaryData);
Return ExternalProcessing.Connect(AddressInTemporaryStorage);
EndFunction

&OnClient
FullFileName = ""; // Vollständiger Name der externen Verarbeitungsdatei.
FileData = new BinaryData(FullFileName);
ExternalProcessingName = GetExternalProcessingName(FileData);
OpenForm("ExternalProcessing." + ExternalProcessingName + ".Form");

Abgesicherter Modus für externe Verarbeitung

Die Methoden Create() und Connect() des ExternalProcessing-Objekts verfügen über einen eingehenden Parameter SafeMode – ein Zeichen dafür, dass die externe Verarbeitung im abgesicherten Modus verbunden wird. Wenn der Parameter nicht angegeben ist, wird die Verbindung im sicheren Modus hergestellt.
Der abgesicherte Modus soll das System davor schützen, „nicht vertrauenswürdigen“ Programmcode auf dem Server auszuführen. Eine potenzielle Gefahr geht von externen Verarbeitungs- oder Programmcodes aus, die der Benutzer zur Verwendung in den Methoden Run() und Calculate() eingibt.
Im abgesicherten Modus gelten folgende Einschränkungen:
  • Der privilegierte Modus wird abgebrochen, wenn er installiert wurde.
  • Versuche, in den privilegierten Modus zu wechseln, werden ignoriert;
  • Operationen mit COM-Objekten sind verboten;
  • Das Laden und Anschließen externer Komponenten ist verboten.
  • der Zugriff auf das Dateisystem ist verboten (außer für temporäre Dateien);
  • Der Internetzugang ist verboten.
Interaktiv geöffnete Prozesse werden nicht im abgesicherten Modus ausgeführt. Daher wird empfohlen, einen Mechanismus zum Öffnen externer Prozessoren im abgesicherten Modus sowie auf Berechtigungsebene zu implementieren, um dem Benutzer das interaktive Öffnen externer Prozessoren zu verbieten.
Um die interaktive Öffnung der Verarbeitung zu verhindern, ist es in allen dem Benutzer zugewiesenen Rollen erforderlich, das Recht „Interaktive Öffnung der externen Verarbeitung“ zu entfernen (siehe Abbildung 1).
Abbildung 1. Rechte zum interaktiven Öffnen externer Verarbeitungen/Berichte
Das Recht „Interaktives Öffnen der Fremdverarbeitung“ hat keinen Einfluss auf das Fremdverarbeitungsobjekt.

Das programmgesteuerte Öffnen externer Berichte ähnelt der externen Verarbeitung, Sie sollten jedoch das globale Kontextobjekt ExternalReports verwenden, das den Typ hat ExternalReportsManager.

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 häufig in typischen Konfigurationen verwendet: Erstellung gedruckter Formulare, verschiedene Serviceprüfungen (Registrierung von Börsen) usw. Daher erhalten Sie auch bei Verwendung eines regulären Berichts über das Zugriffskontrollsystem ohne Formular (standardmäßig wird das allgemeine Formular „ReportForm“ verwendet) und beim Speichern benutzerdefinierter Berichtseinstellungen (im entsprechenden Verzeichnis) eine Fehlermeldung über unzureichenden Zugriff Rechte an verschiedenen Konstanten und Sitzungsparametern, die nach der Zeile für offizielle Zwecke verwendet werden SetPrivilegedMode(True) ;

Die „richtige“ Lösung wäre, externe Verarbeitung und Berichte über die BSP-Mechanismen „Zusätzliche Berichte und Verarbeitung“ zu verbinden, indem der abgesicherte Modus deaktiviert oder Berechtigungen hinzugefügt werden (meiner Meinung nach ab BSP-Version 2.2.2.1). Wenn es jedoch aus irgendeinem Grund erforderlich ist, externe Berichts-/Verarbeitungsdateien zu verwenden, können Sie ein Cluster-Sicherheitsprofil konfigurieren, das als Sicherheitsprofil im abgesicherten Modus für eine bestimmte Infobase verwendet wird.

Ich möchte sofort darauf hinweisen, dass diese Option nicht vorzuziehen ist, aber aufgrund verschiedener Umstände in einer so vereinfachten Form verwendet werden kann. Ich habe zum Beispiel mehrere Datenbanken in verschiedenen Städten, eine gemeinsame lokale mit streng eingeschränkten Rechten, geschlossenem USB usw., irgendwo verwende ich Accounting 2.0 und irgendwo 3.0, ich erstelle fast alle Berichte mit ACS-Tools ohne Formulare, damit sie in beiden Versionen geöffnet. Die Pflege all dieser Berichte für verschiedene Versionen und verschiedene Datenbanken ist arbeitsintensiv und sinnlos, weil Es ist geplant, auf eine einzige Konfiguration und Basis umzusteigen...

Lass uns ein Profil erstellen.
In der Cluster-Konsole erstellen wir ein Sicherheitsprofil, in dem wir die Flags setzen „Kann als Sicherheitsprofil im abgesicherten Modus verwendet werden“ und " im Abschnitt „Vollzugriff erlaubt:“ „in den privilegierten Modus“.

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

P.S. Ich dachte, dass Sicherheitsprofile nur funktionieren, wenn Plattform- und Serverlizenzen auf CORP-Ebene verwendet werden, aber diese Funktionalität funktioniert auch auf der 1C:Enterprise 8.3-Plattform (sie kann bedingt PROF genannt werden, analog zu den Standardkonfigurationen Basic/PROF/CORP).