Verwendung eines Datenfreigabemechanismus anstelle von RLS. Trennen von Daten in bsp Bearbeiten eines Formularmoduls

Allgemeine Details in 1C 8.3 ist ein Plattform-Metadatenobjekt, das die Verwendung eines Attributs für viele Konfigurationsobjekte (Verzeichnisse, Dokumente, Kontenpläne usw.) ermöglicht. Das Objekt wurde hauptsächlich erstellt, um die Arbeit des Entwicklers zu erleichtern und Daten zu trennen.

Allgemeine Details wurden zunächst in Version 1C 7.7 implementiert, die Entwickler haben sie jedoch nicht sofort in die Plattformversion 8 übernommen. Der Mechanismus der allgemeinen Details wurde von 1C-Entwicklern erst in Version 8.2.14 eingeführt.

Es ist sehr praktisch, allgemeine Details hinzuzufügen, um Standardobjekte in der Konfiguration nicht zu ändern; ich verwende sie oft zusammen mit .

Nach dem Hinzufügen eines allgemeinen Attributs kann es in Abfragen verwendet und im Objektformular angezeigt werden - Äußerlich unterscheidet es sich nicht von gewöhnlichen Requisiten.

Die einzige Einschränkung allgemeiner Details besteht darin, dass sie nicht verwendet werden können.

Schauen wir uns die Grundeinstellungen und Eigenschaften allgemeiner Details an, die sich von anderen Konfigurationsobjekten unterscheiden:

Verbindung— eine Liste von Objekten, für die die allgemeinen Details verwendet werden; die Einstellung erinnert an die Erstellung eines Austauschplans.

Holen Sie sich 267 Video-Lektionen zu 1C kostenlos:

Automatische Verwendung– Die Einstellung bestimmt, ob allgemeine Requisiten für die Objekte verwendet werden, für die der Verwendungsmodus „Automatisch“ angegeben ist.

Datentrennung— Wir werden diese Einstellung separat betrachten.

Trennung von Daten in 1C anhand gemeinsamer Details

Datentrennung- ein dem Mechanismus ähnlicher Mechanismus. Allerdings ist die Leistung dieses Mechanismus effizienter und einfacher zu konfigurieren.

Mit dem Mechanismus können Sie die Anzeige nur der Elemente konfigurieren, die der Benutzer sehen kann. Sie können beispielsweise alle Objekte (Dokumente, Verzeichnisse usw.) unterscheiden, in denen eine bestimmte Organisation installiert ist.

Einrichten der Datentrennung anhand allgemeiner 1C-Details

Um die allgemeinen Details zu konfigurieren, müssen Sie die Datentrennung angeben – Teilen. Unmittelbar nach dem Klicken bietet das System an, Standardabrechnungsparameter zu erstellen:

In diesem Fall ist es notwendig, beim Systemstart die Sitzungsparameter anzugeben; wie das geht, wurde im Artikel anhand eines Beispiels beschrieben.

Damit ist die Einrichtung abgeschlossen – der Benutzer hat nur Zugriff auf die Informationen, die in den ausgewählten Sitzungsparametern angegeben sind.

Beispiel für die Verwendung gängiger Requisiten

Schauen wir uns die Einrichtung allgemeiner Requisiten in 1C 8.3 am Beispiel einer Rahmenkonfiguration und Requisiten an Organisation:

Das System verfügt über drei Dokumente, in denen die Details der Organisation angegeben werden müssen: die Empfangsrechnung, die Ausgabenrechnung und die Gehaltsabrechnung.

Die Einrichtung ist einfach:

  1. Wir erstellen ein neues allgemeines Attribut und geben den Typ an – DirectoryLink.Organization.
  2. In der Zusammenstellung gestalten wir unsere Unterlagen - Verwenden.

Das war's, die Einrichtung ist abgeschlossen!

Schauen wir uns das Ergebnis an:

Das System zeigt allgemeine Details an, „als wären es Ihre eigenen“: in Anfragen, in Formulardetails und an anderen Stellen. Das ist so magisch! 🙂

Allgemeine Voraussetzungen 1C 8.3 werden nicht hinzugefügt

Einmal haben wir Mechanismen zur Einschränkung des Benutzerzugriffs in 1C und insbesondere besprochen.

Dadurch kann der Benutzer nicht mit allen Dokumenten arbeiten, sondern nur mit denen, die auf eine bestimmte Organisation oder ein bestimmtes Lager hinweisen. Die Auswahl erfolgt dynamisch und stellt daher eine gewisse Belastung für den Betrieb der Datenbank dar.

Mit der Eigenschaft des allgemeinen Trennzeichenattributs – 1C-Benutzertrennung – können Sie die Verfügbarkeit der Benutzerliste abhängig von der Verwendung von Trennzeichen festlegen.

Wenn das Trennzeichen für einen Benutzer aktiviert ist, wird es in der Benutzerliste im 1C Enterprise-Modus angezeigt – andernfalls ist es nicht sichtbar.

Auf diese Weise können Sie unterschiedliche Benutzerlisten für verschiedene Teile der Datenbank organisieren.

Mit der Eigenschaft des allgemeinen Trennattributs – 1C-Authentifizierungstrennung – können Sie Benutzer mit denselben Benutzernamen für verschiedene Teile der Datenbank erstellen.

Bedingte Division 1C

Mit der bedingten Trennung 1C können Sie die Trennlinie basierend auf Datenbankdaten aktivieren oder deaktivieren. Auf diese Weise können Sie Ketten von Trennzeichen erstellen, die voneinander abhängig sind und im Einzelfall dynamisch agieren.

Um die bedingte Division 1C zu aktivieren, müssen Sie in der Eigenschaft des allgemeinen Trennzeichenattributs „Bedingte Division 1C“ angeben, das für die Bestimmung der Tatsache der Aktivierung der Division 1C verantwortlich ist.

Es ist möglich, eine Konstante mit einem booleschen Typ oder ein Verzeichnisattribut mit einem booleschen Typ zu verwenden.

Wichtig: Sie müssen die Verwendung dieser Konstante/dieses Nachschlagewerks als Teil von Trennzeichen deaktivieren (wählen Sie „Nicht verwenden“). Erst dann kann sie ausgewählt werden.

Im 1C:Enterprise-System ist es möglich, Datensätze für mehrere Unternehmen in einer Informationsbasis zu verwalten. Zu diesem Zweck wird ein Buchhaltungstrennzeichen verwendet.

Die Verwendung des Abrechnungstrennzeichens ist in der Konfiguration festgelegt. Wenn die Konfiguration die Verwendung eines Buchhaltungstrennzeichens vorsieht, ist es in der Kontentabelle möglich, einen bestimmten Buchhaltungstrennzeichenwert auszuwählen, auf dessen Grundlage Buchhaltungssummen ausgegeben werden.

Um den Buchhaltungstrennwert festzulegen, verwenden Sie das Element „Kontotrenner“ Speisekarte "Aktionen" oder die entsprechende Schaltfläche in der Symbolleiste. In diesem Fall erscheint auf dem Bildschirm ein Dialog zum Festlegen des Werts des Abrechnungstrennzeichens.

Auf dem Feld „Wert des Buchhaltungstrennzeichens“ Sie können einen bestimmten Buchhaltungstrennzeichenwert angeben. Die Methode zur Eingabe des Werts hängt von der Art des in der Konfiguration definierten Abrechnungstrennzeichens ab. In der Regel handelt es sich hierbei um ein Nachschlagewerk. Um in diesem Fall einen Wert auszuwählen, verwenden Sie die Auswahlschaltfläche und wählen Sie den gewünschten Wert aus der Liste der Verzeichniswerte aus.

Taste „Leerer Wert“ ermöglicht Ihnen, den eingegebenen Wert des Buchhaltungstrennzeichens zu löschen, d. h. einen leeren Wert festzulegen. Dies ist dann sinnvoll, wenn in Transaktionen neben bestimmten Buchhaltungstrennzeichenwerten auch ein Leerwert verwendet wurde.

Kontrollkästchen "Für jeden" ermöglicht Ihnen, den Modus zur Anzeige der Summen für alle Werte des Buchhaltungstrennzeichens insgesamt festzulegen.

Um die ausgewählten Werte festzulegen, klicken Sie auf die Schaltfläche "OK". Um das Festlegen von Werten zu verweigern, verwenden Sie die Schaltfläche "Stornieren".

Nach dem Festlegen der ausgewählten Werte zeigt die Kontoübersicht je nach der im Dialog ausgewählten Option die Summen für einen bestimmten Buchhaltungstrennzeichenwert oder für einen leeren Wert oder für alle Werte in der Summe an.

Ein relativ neues Funktionsmerkmal von 1C, klassifiziert als Cloud-Technologie. Nach dem Erscheinen der Funktionalität hat das Unternehmen 1C das BSP geändert. Die gleichen Verbesserungen waren in Standardkonfigurationen auf Basis von BSP enthalten, beispielsweise UNF und UT11.

Es war notwendig, den Empfang allgemeiner Berichte von mehreren Niederlassungen mit den gleichen Konfigurationen zu organisieren. Ich beschloss, die Entwicklungen von BSP im Bereich der Datentrennung auszuprobieren. Die Idee bestand darin, die Daten jeder Filiale in einen eigenen Datenbereich zu laden und Berichte für alle Bereiche gleichzeitig zu erstellen. Ich muss gleich sagen, dass es noch nicht gelungen ist, das Problem zu lösen, aber der Versuch, es zu lösen, hat Probleme und zweifelhafte Funktionalität im BSP ans Licht gebracht.

Dem Artikel ist eine Verarbeitung beigefügt, die die verborgene Funktionalität von Operationen mit Datenbereichen in einem separaten Formular anzeigt.

Das BSP stellt zwei Abrechnungstrennzeichen zur Verfügung: Datenbereich-Hauptdaten und Datenbereich-Hilfsdaten. Es bleibt ein Rätsel, warum sich diese beiden Trennzeichen auf dieselben Sitzungsparameter beziehen: DataAreaValue, DataAreaUse.

Den Mechanismus einschalten

Wenn Ihre selbst geschriebene Konfiguration auf dem BSP basiert, müssen Sie höchstwahrscheinlich vor dem Einschalten die mysteriöse Bibliothek „1C: Service Technology Library“ implementieren. Es ist seltsam, dass nicht einmal Google von einem solchen 1C-Produkt weiß. Und in typischen Konfigurationen ist die Prozedur „Möglichkeit zur Verwendung der Konfiguration im Servicemodell prüfen“ im Modul „Arbeit im Servicemodell“ nicht vorhanden. Die fehlenden Teile dieser Bibliothek finden Sie höchstwahrscheinlich in Standardkonfigurationen, die auf Basis des BSP erstellt wurden. Insbesondere heißt eines der Subsysteme StandardSubsystems > WorkInServiceModel > UploadLoadData.

Der Datentrennungsmechanismus wird durch Festlegen der Konstante „Separation nach Datenbereichen verwenden“ aktiviert. Einstellbar über den Menüpunkt Alle Funktionen.

Erstellen von Datenregionsbenutzern

Dieses Element ist nicht erforderlich, wenn Sie ein Formular zur Eingabe des Datenbereichs verwenden. Benutzer werden im Konfiguratormodus angelegt. Ein Benutzer mit Administratorrechten muss über alle nicht festgelegten Datentrennzeichen auf der Registerkarte „Datentrennung“ verfügen. Für andere Benutzer muss das Datenbereichstrennzeichen auf der Registerkarte „Datentrennung“ auf „Basisdaten“ eingestellt werden. Dieses Trennzeichen muss beim Start von 1C explizit in der Befehlszeile angegeben werden.

Starten von 1C mit einem Befehlszeilenparameter

Dieser Punkt ist nicht erforderlich, wenn Sie für den Zugang zum Datenbereich das Login-Formular nutzen.

1C kann sofort im Datentrennungsmodus gestartet werden. Die Befehlszeilenoption /Z ist verfügbar. Der Parameter „/Z-,+1“ gibt beispielsweise an, dass 1C mit dem Hauptdatenwert des Datenbereichs gleich 1 gestartet wird, das Hilfsdatentrennzeichen des Datenbereichs ist nicht festgelegt.

Die Methode ist sehr unzuverlässig. Beim Start tritt ein Fehler in der WorkInServiceModel-Prozedur auf. Bei der Überprüfung, ob der sichere Datenfreigabemodus aktiviert werden soll. Ich konnte nichts Besseres finden, als dieses Verfahren zu kommentieren. Das Verfahren prüft, ob der Benutzer das Recht hat, den aktuellen Datenbereich zu ändern, ob seine Rechte eingeschränkt sind und Auswirkungen auf die Sicherheit haben.

Beim Start treten dann mehrere Fehler auf, darunter: „Getrennten Benutzern kann nicht die Rolle „Systemadministrator“ zugewiesen werden“, „Getrennten Benutzern kann nicht die Rolle „Einen Thick Client ausführen“ zugewiesen werden.“

Der Benutzer wurde im Benutzerverzeichnis nicht gefunden – das Problem konnte nicht behoben werden. Im herkömmlichen Szenario registriert sich der Benutzer beim ersten Login. Ich vermute, dass Benutzer beim Teilen von Daten über eine andere 1C Fresh-Anwendung erstellt werden.

Füllen Sie das Informationsregister Datenbereiche aus

Für jeden Bereich müssen Sie einen Eintrag im Dausfüllen und den Bereichen Nummern und den Status „In Verwendung“ zuweisen. Prozesse können dieses Register auf Einträge prüfen, bevor sie mit der Ausführung beginnen.

Betreten des Datenbereichs

Administration - Service - Login zum Datenbereich (GeneralForm.LoginDataArea)

Ermöglicht dem Benutzer, den aktuellen Datenbereich zu ändern. Die Anmeldung am Bereich ist als laufender Benutzer ohne Angabe von Trennzeichen möglich. Beim Ändern eines Datenbereichs wird dessen Status im Informationsregister des Datenbereichs überprüft.

Hochladen von Daten aus einem Bereich

Der aktuelle Bereich wird über die GeneralForm entladen. Hochladen von Daten. Vor der Nutzung müssen Sie sich im gewünschten Datenbereich anmelden. Das Formular wird in der Benutzeroberfläche im Bereich „Administration“ nicht angezeigt.

Die Daten werden durch die Konfiguration ins XML-Format serialisiert und in ZIP verpackt. Das heißt, die Archivierung erfolgt nicht wie beim herkömmlichen Hochladen über den 1C-Konfigurator.

Daten in den Bereich laden

GeneralCommand.LoadDataArea

Um im Administration-Service angezeigt zu werden, müssen Sie die Sichtbarkeit über den Konfigurator als Teil des Subsystems „Einstellungen und Verwaltung“ festlegen.

Die Daten werden in den ausgewählten Bereich geladen. Zuvor müssen sie im XML-Format heruntergeladen werden.

Schlussfolgerungen

Das System konnte durch die Angabe von Trennzeichen in der Befehlszeile nicht gestartet werden. Das System funktionierte aufgrund eines nicht registrierten Benutzers im Benutzerverzeichnis nicht. Der Zugriff auf das Verzeichnis war nicht möglich, da das System keine Benutzer mit Administratorrechten zulässt. Ich denke, dass dieses Szenario eine obligatorische Verbindung mit 1CFresh erfordert.

Versuche mit dem Betreten verschiedener Bereiche, Entlade- und Ladebereichen waren erfolgreich. Der Versuch, eine Anforderung zum Abrufen aller Organisationen für alle Datenbereiche abzuschließen, ist fehlgeschlagen. Fehler: „Sie können eine Tabelle nicht verwenden, ohne alle Trennzeichen bei unabhängiger Verwendung gemeinsamer Daten anzugeben.“ Der Bericht funktioniert für einen Bereich, wenn Sie einen beliebigen Bereich eingeben.

Das weiterhin unklare Problem besteht darin, wie man Daten aus einer Datenbank ohne Trennzeichen in einen bestimmten Datenbereich einer anderen Datenbank entladen kann.

Es wäre interessant zu erfahren, welche raffinierte Idee die BSP-Autoren bezüglich der allgemeinen Sitzungsparameter für zwei Trennzeichen haben, wenn der Aufruf mit den Parametern erfolgt: „/Z-,+1“, „/Z+1,+1“. “ und „/Z+1,-“ .

Was lernen Sie aus diesem Artikel?

  • Der Artikel erläutert den Zweck des Summentrennungsmodus
  • Es wird das Verhalten des 1C:Enterprise 8-Systems im Parallelbetrieb einer großen Anzahl von Benutzern analysiert.
  • Zeigt die Nachteile des Split-Totals-Modus
  • Es werden Empfehlungen zur korrekten Verwendung der Division von Registersummen gegeben

Die 1C:Enterprise 8-Plattform enthält Funktionen und Mechanismen, deren Funktionsweise und deren effektive Nutzung nicht jeder vollständig versteht. Dies ist der Summentrennungsmodus.

Der Summentrennmechanismus erfüllt eine sehr wichtige und nützliche Funktion: seine Verwendung ermöglicht parallele Einträge in Buchführungsregistern und Akkumulationsregistern.

Lassen Sie uns die Wirksamkeit dieses Modus anhand eines Beispiels demonstrieren. Betrachten Sie dazu die Situation vor und nach dem Einschalten des Summentrennungsmodus.

Bevor Sie den Modus „Geteilte Summen“ aktivieren

Wir haben zwei identische Dokumente mit den Nummern 001 und 002:

Beide Dokumente durchlaufen das Akkumulationsregister. Es gibt keine Kontrolle über Rückstände. Akkumulationsregisterstruktur:

Zwei Benutzer, die an ihren Dokumenten arbeiten, beginnen mit der gleichzeitigen Arbeit. Es entsteht eine Situation, in der zwei Dokumente desselben Typs versuchen, gleichzeitig Bewegungen auszuführen.

In diesem Fall ergibt sich auf DBMS-Ebene folgendes Bild:

Folgendes passiert im System:

  1. Es wird versucht, Dokumente in das Akkumulationsregister einzutragen
  2. Auf DBMS-Ebene wird das Akkumulationsregister durch zwei Tabellen dargestellt: eine Bewegungstabelle und eine Saldentabelle (Summentabelle).
  3. In der Bewegungstabelle können Dokumente ihre Daten parallel erfassen. Dies wird durch unterschiedliche Werte des Feldes „Registrar“ gewährleistet und dementsprechend wird mit unterschiedlichen Zeilen der Tabelle gearbeitet.
  4. In der Saldentabelle gibt es jedoch kein Feld „Registrator“. Die Daten in dieser Tabelle werden im Kontext der Dimensionen des Registers selbst gespeichert.
  5. Hier beobachten wir eine Situation, in der zwei Dokumente einen Datensatz ändern müssen, ein Datensatz jedoch nicht gleichzeitig geändert werden kann.
  6. Um die aufgezeichneten Daten nicht zu verlieren, muss eines der Dokumente mit der Aufzeichnung warten, bis das andere Dokument seine Bewegungen aufzeichnet. Und nachdem das erste Dokument seine Bewegungen ausgeführt hat, kann das zweite seine eigenen Bewegungen ausführen.

Infolgedessen beobachten wir einen Zeitverlust – der zweite Benutzer muss warten, bis der erste Benutzer die Verarbeitung des Dokuments abgeschlossen hat. Einerseits ist alles korrekt und logisch, andererseits leidet die Parallelität der Benutzerarbeit im System.

Um das aufgetretene Problem zu lösen, wurde ein Mechanismus zur Aufteilung der Ergebnisse geschaffen.

Die Verwendung ist nur für Akkumulationsregister und Buchhaltungsregister vorgesehen.

Aktivieren des Split-Summenmodus

Die Aktivierung dieses Modus ist ganz einfach:

Beachten Sie, dass der Summentrennungsmodus standardmäßig für alle erstellten Akkumulations- und Abrechnungsregister aktiviert ist. Zusätzlich zum Konfigurator im Benutzermodus können wir sehen, für welche Register der Modus aktiviert ist:

Was passiert, nachdem Sie den Split-Summen-Modus aktiviert haben?

In der Summentabelle des Akkumulations-/Abrechnungsregisters erscheint eine neue Spalte „Trennzeichen“. Im DBMS selbst heißt es „Splitter“.

In diesem Fall bleibt die Bewegungstabelle unverändert; das Trennzeichen darin ist „Recorder“. Wir sehen die Änderung in der Übersichtstabelle.

Dieses Feld wird nur ausgefüllt, wenn zwei (oder mehr) Transaktionen versuchen, dieselbe Zeile in der Summentabelle zu ändern. In diesem Fall wird im Feld „Trennzeichen“ für jede Transaktion ein anderer Wert gespeichert.

Diese Implementierung des Summentrennungsmodus ermöglicht die parallele Erfassung aller Transaktionen.

In unserem Beispiel mit zwei Dokumenten wird beim Einschalten des Modus Folgendes beobachtet:

Dank des neuen Trennzeichenfelds zeichneten unsere beiden Dokumente ihre Daten parallel auf. Dadurch gibt es keine Wartezeiten auf Sperren und eine erhöhte Benutzergleichzeitigkeit.

Nachteile des Split-Totals-Modus

Wenn dieser Modus aktiviert ist, erhöht sich die Größe der Registersummentabelle aufgrund der Tatsache, dass ein neues Feld hinzugefügt wurde, und es werden mehrere Zeilen für einen Satz von Dimensionen anstelle einer angezeigt.

Beim Empfang von Registersalden ist eine Zusammenführung der Daten erforderlich, was zu einer, wenn auch unbedeutenden, Zeitverschwendung führt.

In unserem Fall ist es bei zwei Belegen zur Ermittlung des Saldos des Produkts „Tabelle“ für das Lager „Haupt“ erforderlich, zwei Zeilen hinzuzufügen, um den Endwert „7“ zu erhalten. Wenn das Trennzeichen deaktiviert ist, ist keine Zeilengruppierung (Hinzufügung) erforderlich.

Wann sollten Sie den Split-Total-Modus verwenden?

Dazu müssen Sie folgende Bedingungen erfüllen:

  1. Es gibt keine Kontrolle der Salden durch das Register – es erfolgt kein Auslesen der Daten in der Transaktion. Eine Kontrolle der Salden in den Buchhaltungsregistern erfolgt in der Regel nicht. Wenn jedoch eine Restkontrolle vorhanden ist, erzielen wir keinen Leistungsgewinn. Darüber hinaus müssen Sie bei der Überwachung von Salden die Datensatzeigenschaft „LockForChange“ verwenden, da die Möglichkeit eines Deadlocks besteht.
  2. Mit dem Register wird parallel von den Benutzern gearbeitet, und zwar aktiv.

Wenn Sie sequentiell mit einem Register arbeiten oder mit einer kleinen Anzahl von Benutzern arbeiten, macht es keinen Sinn, den Modus „Gesamtaufteilung“ zu aktivieren: Das Fehlen konkurrierender Transaktionen führt nicht zu Wartezeiten bei Sperren, und dementsprechend hat die Verwendung von keine Auswirkungen Split-Summen-Modus.

Burmistrow Andrej

gastroguru 2017