DIE KLINGEL

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Familien-oder Nachname
Wie möchten Sie The Bell lesen?
Kein Spam

Fachkonfiguration "1C: Datenkonvertierung 2.0"

Die Veröffentlichung der achten Version der 1C:Enterprise-Plattform ist zu einem bedeutenden Schritt in der Entwicklung von Automatisierungssystemen geworden. Bei der Entwicklung der 1C:Enterprise 8-Plattform wurde die große Erfahrung mit der Verwendung von Lösungen auf Basis der 1C:Enterprise 7.7-Plattform berücksichtigt: Die integrierte Sprache der Plattform und typische Konfigurationen wurden grundlegend überarbeitet, die Struktur der Datenspeicherung und des Zugriffs geändert, wurden neue Branchenlösungen geschaffen, die die Vorteile der neuen Plattform realisieren . Die Verwendung bisheriger Sprachkonstrukte in der neuen Plattform ist unangemessen geworden.

Um die Lösung dieses Problems (Datenübertragung von Version 7.7 auf Version 8) zu erleichtern, hat 1C eine spezielle Konfiguration „Datenkonvertierung 2.0“ veröffentlicht. Es wurde geschaffen, um Spezialisten bei der Lösung verschiedener Probleme der Datenübertragung zu helfen. 1C hat vorgefertigte Regeln für die Übertragung von Daten aus Konfigurationen des gleichen Typs veröffentlicht, beispielsweise von 1C: Accounting 7.7 nach 1C: Accounting 8, aber Benutzer von nicht standardmäßigen oder modifizierten Standardkonfigurationen beim Wechsel zur 1C: Enterprise 8-Plattform Daten für Übertragungsregeln selbst erstellen müssen.

Bei aller Vielfalt privater Methoden zur Lösung von Datenübertragungsproblemen bleibt die Bandbreite der zu lösenden Fragestellungen praktisch unverändert:

Synchronisation von Referenzinformationen (Neuanlage, Aktualisierung vorhandene Elemente Verzeichnisse, Löschen, Speichern oder Ändern der Hierarchie, Verzweigen von Daten, Übertragen der Historie der Änderung der Werte periodischer Details);

Synchronisation von Dokumenten und Vorgängen (Erstellung, Änderung von Dokumenten oder Umwandlung eines Dokumententyps in einen anderen, Zusammenführung oder Vervielfältigung);

Schaffung ausreichender Ausgangsbedingungen für Buchhaltungsregister zur Führung Wirtschaftstätigkeit(Übergabe von Restwaren etc.).

Die Datenspeicherstrukturen in 1C:Enterprise verschiedener Versionen und/oder Konfigurationen sind unterschiedlich, sodass die Datenübertragung nicht nur das Kopieren von Dateien oder Tabellen ist, sondern auch deren Transformation. Damit die Transformation eindeutig und korrekt ist, müssen Regeln für die Datenübertragung erstellt und konfiguriert werden. Das Erstellen und Konfigurieren von Regeln zum Übertragen von Daten zwischen verschiedenen Infobases ist möglich, wenn die Struktur der Datenspeicherung in den Quell- und Zieldatenbanken bekannt ist. Die Beschreibung der Konfigurationsmetadatenstruktur sollte vereinheitlicht werden. Die Konfiguration "Data Conversion 2.0" wird verwendet, um Datenübertragungsregeln basierend auf den Beschreibungen der Metadatenstruktur der Quell- und Zielkonfiguration zu erstellen und zu konfigurieren.

Der Prozess der Übertragung von Daten zwischen Infobases besteht aus den folgenden Schritten:

  • 1. Erstellung von Metadaten-Beschreibungsdateien.
  • 2. Erstellung von Konfigurationen in "Datenkonvertierung".
  • 3. Erstellung der Konvertierung selbst.
  • 4. Konsistente Erstellung von Datenkonvertierungsregeln.
  • 5. Konsistente Erstellung von Daten-Upload-Regeln.
  • 6. Das eigentliche Verfahren zum Entladen und Laden von Daten von einer Konfiguration in eine andere.

Da Die Verwendung dieser spezialisierten Konfiguration ist eine der effektivsten dieser Moment Wege zur Lösung derartiger Probleme und darüber hinaus eine für Bildungszwecke sehr nützliche Quelle persönlicher Erfahrung, um dann einen Mechanismus für den Datenaustausch zwischen den IS "Server: Mietberechnung" und "1C: Unternehmensbuchhaltung" zu entwickeln " für LLC "LLC", eine Methode, die auf der Verwendung der Konfiguration "Data Conversion 2.0" basiert.

Datenkonvertierung 2.0 und 2.1 ist eine technologische 1C-Konfiguration, die auf Plattformversionen von 8.1 bis 8.3 implementiert ist.

Die Hauptaufgabe des Tools ist das Schreiben von Austauschregeln zwischen Anwendungslösungen von 1C 8 und 7. Die aktuelle Version der Datenkonvertierung ist heute 3.0.

Die Datenkonvertierung ist eine sehr nützliche Konfiguration, mit der Sie nicht nur das Problem der Übertragung von Informationen von einer Infobase zur anderen lösen können, sondern beispielsweise auch die Konvertierung von Informationen innerhalb einer Datenbank.

Die Konfiguration ist sehr bequem zu verwenden, wenn .

Die Datenkonvertierung ist für jeden Programmierer nützlich: Die Fähigkeit, Austauschregeln zu erstellen, ist ein ernsthaftes Plus für die beruflichen Fähigkeiten.

Um den Umgang mit der Konfiguration zu erlernen, ist das Lösen praktischer Probleme am besten geeignet. Versuchen Sie, sich Aufgaben selbst auszudenken, zum Beispiel: Übertragen Sie beliebige Informationen von einer Datenbank in eine andere, verwandeln Sie ein Implementierungsdokument in ein Belegdokument, „fahren“ aktuelle Salden an Buchhaltung im Dokument "Eingabe von Salden" und andere Aufgaben.

Es wird sehr nützlich sein, die "typischen" Regeln des Austauschs 1C 8.3 zu verstehen, dort finden Sie oft interessante Beispiele für die Umsetzung von Aufgaben.

Um die Grundlagen zu verstehen, benötigen Sie Materialien, betrachten Sie sie unten.

Videoanleitung zum Konvertieren

Die Grundlagen zum Einrichten des Datenaustauschs in 1C mithilfe der Konfiguration „1C-Datenkonvertierung“ finden Sie im Video als Beispiel:

Materialien, Lehrbücher zum Studium der 1C-Datenkonvertierung 2.0

Es gibt nicht allzu viele Materialien und Dokumentationen im Netz, ich habe versucht, die wichtigsten und interessantesten Materialien zu sammeln:

0. Zunächst empfehle ich den kostenlosen Videokurs von Ilya Leontiev, der unter verfügbar ist Verknüpfung.

1. Ich würde zunächst raten, die eingebaute Hilfe in der Konfiguration zu nutzen. Es ist wirklich gut geschrieben und technisch gut umgesetzt:

2. Die zweitwichtigste Informationsquelle ist die Website http://www.mykod.info/ (die Website wurde geschlossen), die nur auf Datenkonvertierung spezialisiert ist. Dort können Sie eine Vielzahl von Umbaumaterialien herunterladen.

3. Separat möchte ich das Lehrbuch des Trainingshandbuchs hervorheben - (Autor - Olga Kuznetsova).

Das Migrieren von Daten zwischen verschiedenen Konfigurationen ist keine triviale Aufgabe. Wie immer gibt es mehrere Lösungen, aber nicht alle sind optimal. Lassen Sie uns versuchen, die Nuancen der Datenübertragung zu verstehen und eine universelle Strategie zur Lösung solcher Probleme zu wählen.

Das Problem der Datenmigration (hier geht es ausschließlich um Produkte der Firma 1C) von einer Lösung zur anderen ist gestern nicht aufgetreten. Das Unternehmen 1C ist sich der Schwierigkeiten bewusst, mit denen Entwickler bei der Erstellung von Migrationen konfrontiert sind, und versucht daher sein Bestes, um mit Tools zu helfen.

Während der Entwicklung der Plattform führte das Unternehmen eine Reihe universeller Tools sowie Technologien ein, die den Datentransfer vereinfachen. Sie sind in allen Standardlösungen eingebaut und das Problem der Migrationen zwischen identischen Konfigurationen ist generell gelöst. Der Sieg wird einmal mehr durch die enge Integration von Standardlösungen bestätigt.

Bei Migrationen zwischen Nicht-Standardlösungen ist die Situation etwas komplizierter. Ein breites Spektrum an Technologien ermöglicht es Entwicklern, selbstständig den aus ihrer Sicht besten Weg zur Lösung eines Problems zu wählen.

Betrachten wir einige davon:

  • Austausch über Textdateien;
  • Verwendung von Austauschplänen;
  • usw.

Jeder von ihnen hat seine Vor- und Nachteile. Zusammenfassend ist der Hauptnachteil die Ausführlichkeit. Die unabhängige Implementierung von Migrationsalgorithmen ist mit erheblichen Zeitkosten sowie einem langen Debugging-Prozess verbunden. Über die weitere Unterstützung solcher Entscheidungen möchte ich gar nicht erst sprechen.

Die Komplexität und die hohen Wartungskosten veranlassten das Unternehmen 1C, eine universelle Lösung zu entwickeln. Technologie, mit der Sie die Entwicklung und den Support von Migrationen so weit wie möglich vereinfachen können. Daher wurde die Idee in Form einer eigenen Konfiguration – „Datenkonvertierung“ – umgesetzt.

Datenkonvertierung - Standardlösung, Selbstkonfiguration. Jeder Benutzer mit einem ITS:Prof-Abonnement kann dieses Paket völlig kostenlos von der Benutzer-Support-Website oder der ITS-Diskette herunterladen. Die Installation erfolgt standardmäßig – wie alle anderen Standardlösungen von 1C.

Nun ein wenig zu den Vorzügen der Lösung. Beginnen wir mit dem Wichtigsten – der Vielseitigkeit. Die Lösung ist nicht auf bestimmte Plattformkonfigurationen/-versionen zugeschnitten. Es funktioniert gleichermaßen gut mit Standardkonfigurationen und selbst geschriebenen. Entwickler erhalten eine universelle Technologie und einen standardisierten Ansatz zur Erstellung neuer Migrationen. Die Vielseitigkeit der Lösung ermöglicht es Ihnen, Migrationen auch für andere Plattformen als 1C:Enterprise vorzubereiten.

Das zweite fette Plus sind visuelle Hilfsmittel. Einfache Migrationen werden ohne Programmierung erstellt. Ja, ja, ohne eine einzige Codezeile! Allein dafür lohnt es sich, Zeit damit zu verbringen, die Technologie einmal zu lernen und dann die unschätzbaren Fähigkeiten wiederholt anzuwenden.

Der dritte Vorteil, den ich erwähnen möchte, ist das Fehlen von Einschränkungen bei der Datenverteilung. Der Entwickler wählt selbst die Methode, Daten an die Empfängerkonfiguration zu liefern. Zwei Optionen sind standardmäßig verfügbar: Hochladen in eine XML-Datei und direkte Verbindung zur Infobase (COM/OLE).

Lernarchitektur

Wir wissen bereits, dass die Datenkonvertierung Wunder wirken kann, aber es ist noch nicht klar, was die technischen Vorteile sind. Das erste, was Sie lernen müssen, ist, dass jede Datenmigration (Konvertierung) auf Austauschregeln basiert. Austauschregeln – eine reguläre XML-Datei mit einer Beschreibung der Struktur, in die Daten von IB hochgeladen werden. Die Dienstverarbeitung, die den Daten-Upload/Download durchführt, analysiert die Austauschregeln und führt den Upload auf der Grundlage dieser durch. Beim Download erfolgt der umgekehrte Vorgang.

Die „KD“-Konfiguration ist eine Art visueller Konstruktor, mit dem der Entwickler Austauschregeln erstellt. Es weiß nicht, wie man Daten hochlädt. Hierfür ist eine zusätzliche externe Serviceabwicklung zuständig, die im CD-Distributionskit enthalten ist. Es gibt mehrere davon (XX im Dateinamen ist die Versionsnummer der Plattform):

  • MDXXExp.epf- Verarbeitung erlaubt Ihnen, eine Beschreibung der Infobase-Struktur in eine XML-Datei hochzuladen. Die Beschreibung der Struktur wird zur weiteren Analyse und Erstellung von Austauschregeln in die CD geladen.
  • V8ExchanXX.epf- lädt Daten von der Infobase gemäß den Austauschregeln hoch/herunter. In den meisten typischen Konfigurationen ist die Verarbeitung standardmäßig verfügbar (siehe Menüpunkt „Service“). Die Verarbeitung ist universell und nicht an bestimmte Konfigurationen/Regeln gebunden.

Okay, basierend auf all dem oben Gesagten, definieren wir nun die Phasen der Entwicklung einer neuen Konvertierung:

  1. Aufgabendefinition. Es ist notwendig, klar zu verstehen, welche Daten übertragen werden müssen (von welchen Konfigurationsobjekten) und vor allem wohin.
  2. Erstellung einer Beschreibung von Konfigurationsstrukturen (Quelle/Empfänger) zum späteren Laden in die CD. Die Aufgabe wird durch die Dienstverarbeitung MDXXExp.epf gelöst.
  3. Vorbereitete Strukturbeschreibungen in IS laden.
  4. Erstellen von Austauschregeln mit visuellen Mitteln von CD.
  5. Hochladen/Herunterladen gemäß den erstellten Datenkonvertierungsregeln unter Verwendung der V8ExchanXX.epf-Verarbeitung.
  6. Debuggen von Austauschregeln (falls erforderlich).

Die einfachste Umstellung

Für die Demonstration benötigen wir zwei bereitgestellte Konfigurationen. Ich entschied mich, bei der Option „Trade Management“ 10. Auflage und einer kleinen selbst geschriebenen Lösung aufzuhören. Die Aufgabe besteht darin, Daten aus der typischen UT-Konfiguration zu übertragen. Der Kürze halber nennen wir die selbst geschriebene Lösung „Empfänger“ und die Handelsverwaltung „Quelle“. Beginnen wir mit der Lösung des Problems, indem wir die Elemente des Verzeichnisses "Nomenklatur" übertragen.

Lassen Sie uns zunächst einen Blick auf das Datenkonvertierungsschema werfen und die Liste der auszuführenden Aktionen noch einmal durchlesen. Dann starten wir die „Source“-Konfiguration und öffnen darin die Dienstverarbeitung MD82Exp.epf.

Die Verarbeitungsoberfläche glänzt nicht mit einer Fülle an Einstellungsmöglichkeiten. Der Benutzer muss nur die Typen von Metadatenobjekten spezifizieren, die nicht in die Beschreibung der Struktur fallen. In den meisten Fällen müssen diese Einstellungen nicht geändert werden, weil es hat keinen besonderen Sinn, Bewegungen in Akkumulationsregistern (als Beispiel) zu entladen.

Richtiger ist es, die Bewegung während des Haltens von Dokumenten im Empfänger zu bilden. Alle Bewegungen werden nach der Übertragung vom Dokument selbst durchgeführt. Das zweite Argument zur Verteidigung der Standardeinstellungen ist die Reduzierung der Größe der hochgeladenen Datei.

Einige Dokumente (insbesondere in typischen Konfigurationen) bilden Bewegungen in mehreren Registern. Das Entladen all dieser Einsparungen wird die resultierende XML-Datei zu groß machen. Dies kann den nachfolgenden Transport und das Einladen in die Empfängerbasis erschweren. Je größer die Datendatei, desto mehr RAM wird für die Verarbeitung benötigt. Während meiner Übung bin ich zufällig auf unanständig große Upload-Dateien gestoßen. Solche Dateien weigerten sich vollständig, mit Standardmitteln analysiert zu werden.

Wir belassen also alle Standardeinstellungen und laden die Konfigurationsbeschreibung in eine Datei hoch. Wir wiederholen den gleichen Vorgang für die zweite Basis.

Öffnen Sie die CD und wählen Sie aus dem Hauptmenü „Verzeichnisse“ -> „Konfigurationen“. Das Verzeichnis speichert Beschreibungen der Strukturen aller Konfigurationen, die zum Erstellen von Konvertierungen verwendet werden können. Wir laden die Konfigurationsbeschreibung einmal und können sie dann wiederholt verwenden, um verschiedene Konvertierungen zu erstellen.

Drücken Sie im Verzeichnisfenster die Schaltfläche „ Hinzufügen“ und wählen Sie im erscheinenden Fenster eine Datei mit einer Beschreibung der Konfiguration aus. Aktivieren Sie das Kontrollkästchen „Upload to new configuration“ und klicken Sie auf die Schaltfläche „Upload durchführen“. Wir führen ähnliche Aktionen mit der Beschreibung der Struktur der zweiten Konfiguration durch.

Jetzt ist alles bereit, um die Austauschregeln zu erstellen. Wählen Sie im CD-Hauptmenü „Referenzen“ -> „Konvertierungen“. Ein neues Element hinzufügen. Im Fenster zum Erstellen einer neuen Konvertierung müssen Sie angeben: die Quellkonfiguration (wählen Sie UT) und die Empfängerkonfiguration (wählen Sie "Empfänger"). Öffnen Sie als nächstes die Registerkarte „Erweitert“ und füllen Sie die folgenden Felder aus:

  • Dateiname der Austauschregeln - erstellte Austauschregeln werden unter diesem Namen gespeichert. Der Dateiname kann jederzeit geändert werden, aber am besten legen Sie ihn jetzt fest. Das spart in Zukunft Zeit. Ich habe die Regeln für die Demo benannt: "rules-ut-to-priemnik.xml".
  • name - der Name der Konvertierung. Der Name kann absolut alles sein, ich habe mich auf „Demo“ beschränkt. UT zum Empfänger“.

Das war's, klicken Sie auf "Ok". Sofort erscheint ein Fenster vor uns, in dem wir aufgefordert werden, alle Regeln automatisch zu erstellen. Die Zustimmung zu einem solchen verlockenden Angebot gibt dem Master den Befehl, die Beschreibung der ausgewählten Konfigurationen automatisch zu analysieren und selbstständig Austauschregeln zu generieren.

Lassen Sie uns das "und" gleich punktieren. Der Meister wird nichts Ernsthaftes erzeugen können. Diese Möglichkeit sollte jedoch nicht außer Acht gelassen werden. Wenn Sie einen Austausch zwischen identischen Konfigurationen herstellen müssen, sind die Dienste eines Assistenten sehr hilfreich. Für unser Beispiel ist der manuelle Modus vorzuziehen.

Schauen wir uns das Fenster „Exchange-Regeleinstellungen“ genauer an. Die Benutzeroberfläche kann ein wenig verwirrend erscheinen - eine große Anzahl von Registerkarten, die mit Steuerelementen vollgestopft sind. Tatsächlich ist alles nicht so schwierig, Sie beginnen sich nach ein paar Stunden Arbeit mit der Anwendung an diesen Wahnsinn zu gewöhnen.

An dieser Stelle interessieren uns zwei Registerkarten: „Objektkonvertierungsregeln“ und „Datenuploadregeln“. Beim ersten müssen wir Matching-Regeln aufstellen, d.h. Objekte zweier Konfigurationen vergleichen. Bestimmen Sie auf der zweiten die möglichen Objekte, die dem Benutzer zum Entladen zur Verfügung stehen.

In der zweiten Hälfte der Registerkarte „Objektkonvertierungsregeln“ befindet sich ein zusätzliches Bedienfeld mit zwei Registerkarten: „Eigenschaftskonvertierung“ und „ Wertumwandlung". Der erste wählt die Eigenschaften (Erfordernisse) des ausgewählten Objekts aus, und der zweite ist für die Arbeit mit vordefinierten Werten (z. B. vordefinierten Wörterbuchelementen oder Aufzählungselementen) erforderlich.

Großartig, jetzt erstellen wir Konvertierungsregeln für Verzeichnisse. Sie können diese Aktion auf zwei Arten ausführen: Verwenden Sie den Ob(klicken Sie auf „“) oder fügen Sie Übereinstimmungen für jedes Objekt manuell hinzu.

Um Platz zu sparen, verwenden wir die erste Option. Deaktivieren Sie im Assistentenfenster das Kontrollkästchen „ Die Dokumente“ (wir interessieren uns nur für Verzeichnisse) und erweitern Sie die Gruppe „ Nachschlagewerke". Wir scrollen vorsichtig durch die Liste und sehen uns die Namen der Verzeichnisse an, die verglichen werden können.

In meinem Fall gibt es drei solcher Verzeichnisse: Nomenklatur, Organisationen und Lager. Es gibt auch ein Clients-Verzeichnis, das die gleiche semantische Last durchführt wie „ Gegenparteien„aus Konfiguration“ UT". Der Meister konnte sie zwar aufgrund ihrer hervorragenden Namen nicht vergleichen.

Wir können diesen Mangel selbst beheben. Finden Sie im Fenster Objektzuordnungen» Handbuch « Kunden“, und wählen Sie in der Spalte „Quelle“ das Nachschlagewerk „Gegenparteien“ aus. Aktivieren Sie dann das Kontrollkästchen in der Spalte "Typ" und klicken Sie auf die Schaltfläche "Ok".

Der Objektsynchronisierungsassistent fordert Sie auf, automatisch Regeln zum Konvertieren der Eigenschaften aller ausgewählten Objekte zu erstellen. Eigenschaften werden nach Namen abgeglichen, und für unsere Demonstration wird dies völlig ausreichen, da sind wir uns einig. Die nächste Frage wird ein Vorschlag zum Erstellen von Upload-Regeln sein. Stimmen wir dem zu.

Die Basis für die Austauschregeln ist fertig. Wir haben die Objekte für die Synchronisierung ausgewählt, und die Regeln zum Konvertieren von Eigenschaften und Hochladen von Regeln wurden automatisch erstellt. Lassen Sie uns die Austauschregeln in einer Datei speichern, dann den IB „Quelle“ öffnen (in meinem Fall ist es UT) und die Dienstverarbeitung darin starten V8Exchan82.epf.

Wählen Sie zunächst im Verarbeitungsfenster die von uns erstellten Austauschregeln aus. Die Frage nach dem Laden der Regeln beantworten wir mit Ja. Die Verarbeitung analysiert die Austauschregeln und erstellt einen gleichnamigen Baum für Objekte, die zum Entladen verfügbar sind. Für diesen Baum können wir alle möglichen Filter setzen oder Knoten austauschen, indem wir ändern, welche Daten wir auswählen müssen. Wir möchten absolut alle Daten hochladen, sodass keine Filter installiert werden müssen.

Nachdem das Hochladen von Daten in eine Datei abgeschlossen ist, gehen Sie zu IB " Empfänger". Wir öffnen auch die Verarbeitung darin V8Exchan82.epf, nur dieses Mal gehen wir auf die Registerkarte „Laden von Daten“. Wählen Sie die Datendatei aus und klicken Sie auf die Schaltfläche „Hochladen“. Alles, die Daten wurden erfolgreich übertragen.

Aufgaben aus der realen Welt

Die erste Demo könnte irreführend sein. Alles sieht ganz einfach und logisch aus. Tatsächlich ist dies nicht wahr. In der realen Arbeit treten Aufgaben auf, die mit visuellen Mitteln (ohne Programmierung) nur schwer oder gar nicht zu lösen sind.

Um von der Technik nicht enttäuscht zu werden, habe ich einige reale Aufgaben vorbereitet. Sie werden ihnen bestimmt bei der Arbeit begegnen. Sie sehen nicht so trivial aus und lassen Sie die Datenkonvertierung aus einem neuen Blickwinkel betrachten. Betrachten Sie die vorgestellten Beispiele sorgfältig und verwenden Sie sie gerne als Ausschnitte, wenn Sie echte Probleme lösen.

Aufgabe Nummer 1. Ergänzen Sie die fehlenden Angaben

Angenommen, wir müssen das Verzeichnis „ Gegenparteien". Der Empfänger hat dafür ein ähnliches Nachschlagewerk „Kunden“. Es ist für die Datenspeicherung durchaus geeignet, hat aber Requisiten“ Organisation“, was es Ihnen ermöglicht, Gegenparteien nach Zugehörigkeit zur Organisation zu trennen. Standardmäßig müssen alle Kontrahenten zur aktuellen Organisation gehören (erhältlich aus der gleichnamigen Konstante).

Es gibt mehrere Lösungen für das Problem. Wir werden die Option in Betracht ziehen, die Requisiten auszufüllen. “ Organisation„direkt in der Basis“ Empfänger“, d.h. zum Zeitpunkt des Ladens der Daten. Die aktuelle Organisation wird in einer Konstante gespeichert, sodass es kein Hindernis gibt, diesen Wert zu erhalten. Lassen Sie uns die Objektkonvertierungsregel (im Folgenden als FRP bezeichnet) öffnen. Kunden“ (doppelklicken Sie auf das Objekt) und gehen Sie im Regeleinrichtungsassistenten zum Abschnitt „Ereignishandler“. In der Liste der Handler finden wir „ Nach dem Laden”.

Beschreiben wir den Code zum Abrufen der aktuellen Organisation mit anschließender Zuweisung an das Attribut. In dem Moment, in dem der Handler „Nach dem Laden“ ausgelöst wird, wird das Objekt vollständig gebildet, aber noch nicht in die Datenbank geschrieben. Niemand verbietet uns, es nach eigenem Ermessen zu ändern:

Wenn NICHT Object.ThisGroup Then Object.Organization = Constants.CurrentOrganization.Get(); EndIf;

Vor dem Ausfüllen der Requisiten " Organisation» Es ist notwendig, den Wert des Attributs zu überprüfen « Diese Gruppe". Für den Leitfaden " Kunden» Das hierarchische Flag ist gesetzt, daher muss nach einer Gruppe gesucht werden. In ähnlicher Weise wird das Ausfüllen aller Details durchgeführt. Lesen Sie unbedingt die Hilfe für andere Handler-Optionen " Nach dem Laden". Darunter befindet sich beispielsweise ein Parameter " Ablehnung". Wird ihm der Wert „True“ zugewiesen, dann wird das Objekt nicht in die Datenbank geschrieben. Somit wird es möglich, Objekte zum Schreiben zum Zeitpunkt des Ladens einzuschränken.

Aufgabe Nummer 2. Details im Auskunftsregister

Im Handbuch „ Gegenparteien"UT-Konfiguration, es gibt Details" Käufer" und " Anbieter". Beide Requisiten sind vom Typ „ boolesch“ und werden verwendet, um die Art der Gegenpartei zu bestimmen. Im IB" Empfänger“, im Nachschlagewerk „ Kunden„Es gibt keine ähnlichen Details, aber es gibt ein Informationsregister“ Arten von Clients". Es führt eine ähnliche Funktion aus und kann mehrere Tags für einen einzelnen Client speichern. Unsere Aufgabe ist es, die Werte der Details in separate Datensätze des Informationsregisters zu übertragen.

Auch hier kommen visuelle Mittel leider nicht zurecht. Fangen wir klein an, erstellen Sie ein neues PCO für das Informationsregister " Arten von Clients". Geben Sie nichts als Quelle an. Verweigern Sie die automatische Erstellung von Upload-Regeln.

Der nächste Schritt besteht darin, die Upload-Regeln zu erstellen. Gehen Sie zur entsprechenden Registerkarte und klicken Sie auf " Hinzufügen". Füllen Sie im Fenster zum Hinzufügen von Upload-Regeln Folgendes aus:

  • Probenahmeverfahren. Wechseln Sie zu „Beliebiger Algorithmus“;
  • Konvertierungsregel. Wählen Sie das Informationsregister „Kundentypen“;
  • Code (Name) der Regel. Wir schreiben es als „Uploading Client Species“;

Jetzt müssen Sie den Code zum Auswählen von Daten zum Hochladen schreiben. Hier ist der Parameter „ Datenprobenahme". Darin können wir eine Sammlung mit einem vorbereiteten Datensatz platzieren. Parameter " Datenprobenahme" kann akzeptieren verschiedene Bedeutungen- Abfrageergebnis, Auswahl, Sammlungen von Werten usw. Wir initialisieren es als Wertetabelle mit zwei Spalten: Kunde und Kundentyp.

Unten ist der Event-Handler-Code „ Vor der Verarbeitung". Es initialisiert den Parameter „ Datenprobenahme” gefolgt vom Ausfüllen von Daten aus dem Verzeichnis “ Gegenparteien". Hier lohnt es sich, darauf zu achten, die Spalte „ Client-Typ". Bei „UT“ haben wir Merkmale vom Typ „Boolean“ und beim Empfänger eine Aufzählung.

In diesem Stadium können wir sie nicht auf den gewünschten Typ bringen (es ist nicht in der UT), also belassen wir es vorerst in Form von Strings. Sie müssen dies nicht tun, aber ich möchte sofort zeigen, wie Sie in einen fehlenden Typ in der Quelle umwandeln.

DataFetch = NewValueTable(); Datenauswahl.Columns.Add("Client"); Datenauswahl.Columns.Add("ClientType"); DataFrom the Directory auswählen = Directories.Contractors.Select(); While Holen von DataFromCatalog.Next() Loop If Holen von DataFromCatalog.ThisGroup Then Continue; EndIf; Wenn DataFetchFromCatalog.Buyer Then NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Käufer"; EndIf; Wenn DataFetchFromCatalog.Provider Then NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Lieferant"; EndIf; EndCycle;

Speichern Sie die Daten-Upload-Regel und kehren Sie zum „ Objektkonvertierungsregeln". Lassen Sie uns für das Informationsregister hinzufügen „ Arten von Clients” Eigenschaftskonvertierungsregeln: Kunde und Kundentyp. Wir lassen die Quelle leer und schreiben in den Event-Handler „Vor dem Entladen“:

//Für die Eigenschaft "Client" Value = Source.Client; //Für die Eigenschaft „CustomerType“ If Source.Customer = „Buyer“ Then Expression = „Enumerations.CustomerTypes.Buyer“ ElseIf Source.Customer = „Supplier“ Then Expression = „Enumerations.CustomerTypes.Supplier“; EndIf;

In der Auflistung werden die Details basierend auf der getroffenen Datenauswahl ausgefüllt. Wir übergeben den Client einfach als Link und schreiben den Typ des Clients in den Parameter " Ausdruck". Die Daten dieses Parameters werden im Empfänger interpretiert und bei der Ausführung wird das Attribut mit dem korrekten Wert aus der Enumeration gefüllt.

Das war's, die Umtauschregeln sind fertig Das betrachtete Beispiel hat sich als ziemlich universell herausgestellt. Ein ähnlicher Ansatz wird häufig verwendet, wenn Daten von Konfigurationen übertragen werden, die auf der 7.7-Plattform erstellt wurden. Ein markantes Beispiel hierfür ist die Übertragung von periodischen Details.

Aufgabe Nummer 3. Tabellarische Tricks

Oft gibt es Aufgaben, die das Verbuchen von Zeilen eines tabellarischen Teils in mehrere erfordern. Beispielsweise werden in der Ausgangskonfiguration Dienstleistungen und Waren in einem tabellarischen Abschnitt erfasst, während die Speicherung dieser Entitäten im Empfänger getrennt ist. Auch hier kann das Problem nicht mit visuellen Mitteln gelöst werden. Hier bietet es sich an, die Lösung des zweiten Problems zugrunde zu legen.

Wir erstellen eine Regel zum Hochladen von Daten, spezifizieren einen beliebigen Algorithmus und schreiben eine Abfrage in den „Before upload“-Handler, um Daten aus dem tabellarischen Abschnitt zu erhalten.

Um Platz zu sparen, werde ich den Code (Sie können sich immer auf den Quellcode beziehen) der Anfrage nicht angeben - es ist nichts Ungewöhnliches daran. Wir sortieren die resultierende Stichprobe und platzieren die sortierten Ergebnisse in dem bereits bekannten Parameter „ Datenprobenahme". Auch hier ist es bequem, eine Wertetabelle als Sammlung zu verwenden:

DataFetch = NewValueTable(); //Hier gibt es noch einen tabellarischen Abschnitt Data Selection.Columns.Add("Products"); //Hier wird es auch einen tabellarischen Abschnitt geben Data Selection.Columns.Add("Services"); Auswählen von Daten from.Columns.Add(“Link”);

Aufgabe Nummer 4. Übertragen von Daten an eine Operation

Verwendet eine Organisation mehrere Buchhaltungssysteme, so entsteht über kurz oder lang die Notwendigkeit einer Datenmigration mit anschließender Buchungsbildung.

In der Konfiguration " BP„Es gibt ein universelles Dokument“ Betrieb“ und es ist ideal, um mehr Drähte zu formen. Hier ist nur ein Problem: Das Dokument ist schlau erstellt und es ist nicht so einfach, Daten darin zu übertragen.

Ein Beispiel für eine solche Konvertierung finden Sie im Quellcode des Artikels. Die Menge an Code stellte sich als ziemlich groß heraus, daher macht es keinen Sinn, ihn für den Artikel zu veröffentlichen. Lassen Sie mich nur sagen, dass der Upload wieder einen willkürlichen Algorithmus in den Regeln zum Hochladen von Daten verwendet.

Aufgabe Nummer 5. Synchronisieren von Daten über mehrere Attribute hinweg

Wir haben bereits einige Beispiele behandelt, aber bisher haben wir noch nicht über die Objektsynchronisierung während der Migration gesprochen. Stellen wir uns vor, wir müssen Kontrahenten übertragen und einige von ihnen befinden sich wahrscheinlich in der Empfängerdatenbank. Wie übertrage ich Daten und vermeide Duplikate? CD bietet diesbezüglich mehrere Möglichkeiten, übertragene Objekte zu synchronisieren.

Die erste ist die eindeutige Kennung. Viele Objekte haben einen eindeutigen Bezeichner, der die Eindeutigkeit innerhalb einer Tabelle garantiert. Zum Beispiel im Handbuch " Gegenparteien” kann nicht zwei Elemente mit derselben ID haben. Die CD führt hierfür eine Berechnung durch, und für alle erstellten PSPs ist die Suche nach Identifikator sofort standardmäßig aktiviert. Während der Erstellung der PSP sollte Ihnen das Lupensymbol neben dem Objektnamen aufgefallen sein.

Die Synchronisierung anhand einer eindeutigen Kennung ist eine zuverlässige Methode, aber bei weitem nicht immer angemessen. Beim Zusammenführen von Verzeichnissen „ Gegenparteien“ (von mehreren verschiedenen Systemen) ist er wenig hilfreich.

In solchen Fällen ist es richtiger, Objekte nach mehreren Kriterien zu synchronisieren. Richtiger ist es, Kontrahenten nach TIN, KPP, Name zu suchen oder die Suche in mehrere Phasen aufzuteilen.

Die Datenkonvertierung schränkt den Entwickler nicht bei der Definition der Suchkriterien ein. Betrachten wir ein abstraktes Beispiel. Angenommen, wir müssen Verzeichnisse synchronisieren“ Gegenparteien“ aus verschiedenen Informationsbasen. Bereiten wir ein PCP vor und aktivieren Sie in den Einstellungen der Regeln zum Konvertieren eines Objekts das Kontrollkästchen „ Suchen Sie weiter in den Suchfeldern, wenn das Empfängerobjekt nicht anhand der ID gefunden wird". Mit dieser Aktion haben wir gleich zwei Suchkriterien definiert – nach eindeutiger Kennung und beliebigen Feldern.

Wir haben das Recht, die Felder selbst auszuwählen. Nachdem wir TIN, KPP, Name notiert haben, werden wir sofort mehrere Suchkriterien angeben. Gemütlich? Ziemlich, aber auch das ist nicht genug. Und was, wenn wir die Suchkriterien ändern wollen? Zum Beispiel suchen wir zuerst nach einem Haufen TIN + KPP, und wenn wir nichts finden, versuchen wir unser Glück mit dem Namen.

Es ist durchaus möglich, einen solchen Algorithmus zu implementieren. Im Eventhandler Suchfelder” können wir bis zu 10 Suchkriterien angeben und für jedes davon eine eigene Zusammenstellung der Suchfelder definieren:

Wenn SearchOptionNumber = 1, dann SearchPropertyNameString = „TIN, KPP“; ElseIfSearchVariantNumber = 2 ThenSearchPropertyNameString = „Name“; EndIf;

Es gibt immer mehrere Lösungen.

Für jede Aufgabe gibt es mehrere Lösungen, und die Übertragung von Daten zwischen verschiedenen Konfigurationen ist keine Ausnahme. Jeder Entwickler hat das Recht, seinen eigenen Lösungsweg zu wählen, aber wenn Sie ständig komplexe Datenmigrationen entwickeln müssen, dann empfehle ich dringend, auf die ""-Konfiguration zu achten. Lassen Sie zunächst Ressourcen (Zeit) in Schulungen investieren, die sich jedoch beim ersten mehr oder weniger ernsthaften Projekt mehr als auszahlen.

Meiner Meinung nach umgeht die Firma 1C unverdient das Thema der Verwendung von Datenkonvertierung. Für die gesamte Zeit des Bestehens der Technologie wurde nur ein Buch darüber veröffentlicht: „1C: Enterprise 8. Datenkonvertierung: Austausch zwischen Anwendungslösungen“. Das Buch ist ziemlich alt (2008), aber es ist immer noch wünschenswert, sich damit vertraut zu machen.

Plattformkenntnisse sind weiterhin erforderlich

» ist ein universelles Tool, aber wenn Sie damit Datenmigrationen aus Konfigurationen erstellen möchten, die für die 1C:Enterprise 7.7-Plattform entwickelt wurden, müssen Sie Zeit damit verbringen, sich mit der integrierten Sprache vertraut zu machen. Die Syntax und Ideologie der Sprache ist sehr unterschiedlich, sodass Sie Zeit zum Lernen aufwenden müssen. Der Rest des Prinzips bleibt gleich.

Der Event-Handler-Mechanismus ist eine der Schlüsseltechnologien für die Konvertierung von Daten mit "Data Conversion 2.0". Der kompetente und geschickte Einsatz dieses Mechanismus ermöglicht es dem Entwickler, nahezu jede Datenkonvertierungsaufgabe schnell zu lösen. Mit Hilfe der Prozessortechnologie werden Datenauswahl und Datenkonvertierung einfach implementiert verschiedene Typen, komplexe Datenselektionen, Konvertierungseinstellungen und viele andere Aufgaben.

Betrachten Sie die Grundprinzipien dieser Technologie. An den Schlüsselstellen der Algorithmen zum Entladen und Laden von Daten in der universellen Austauschverarbeitung ist es möglich, den Programmcode auszuführen, der den Datenaustauschregeln entnommen ist, und nicht "fest verdrahtet" in der Verarbeitung des Entladens oder Ladens von Daten. Die Konfiguration "Data Conversion 2.0" bietet Möglichkeiten, solchen Programmcode in Datenaustauschregeln zu integrieren.

Insgesamt gibt es mehr als zwanzig verschiedene Stellen in Datenaustauschalgorithmen, an denen Code von Drittanbietern ausgeführt werden kann. Dementsprechend sieht die Konfiguration die Erstellung verschiedener Typen von Event-Handlern vor.

Der Code von Ereignishandlern wird an die Objekte der Austauschregeln „angehängt“ – Elemente von Verzeichnissen: Konvertierungen, Objektkonvertierungsregeln, Eigenschaftenkonvertierungsregeln, Datenuploadregeln und Datenbereinigungsregeln. Natürlich muss der Event-Handler-Code eine Reihe von Anforderungen erfüllen. Insbesondere zur Steuerung des Konvertierungsprozesses im Handler-Code ist es notwendig, spezielle Variablen - Parameter - zu verwenden. Eine vollständige Beschreibung aller Arten von Event-Handlern und verfügbaren Variablen finden Sie in den Informationen zu Handlern in den entsprechenden Formularen.

AUFMERKSAMKEIT!!!

Data Conversion 2.0-Technologien ermöglichen den Datenaustausch mit Infobases, die auf den Plattformen 1C:Enterprise 7.7 und 1C:Enterprise 8.0 implementiert sind. Aufgrund der Besonderheiten des Betriebs der 1C:Enterprise 7.7-Plattform weist die Erstellung von Datenaustauschregeln mithilfe von Event-Handlern für auf dieser Plattform implementierte Infobases eine Reihe von Funktionen auf.

Für die Plattform 1C:Enterprise 7.7 ist es nicht möglich, beliebigen Code auszuführen (analog zur Run-Funktion für V8). Wenn Eventhandler für die Plattform V7.7 verwendet werden müssen, ist es notwendig, die Verarbeitungstexte für das Hoch- oder Herunterladen von Daten durch Verarbeitungstexte zu ersetzen, die von der Konfiguration "Datenkonvertierung 2.0" ausgegeben werden.

Wenn Sie Daten von V7.7 auf V8 übertragen müssen, dann:

Beim Entladen generiert das System zusätzlich zur Regeldatei selbst den Text des Moduls zur Verarbeitung von V77Exp.ert mit Funktionen, die Eventhandler implementieren. Dann müssen wir im Konfigurator das Standardmodul V77Exp.ert durch das neue Modul ersetzen, das von "Data Conversion 2.0" generiert wurde.

Bei der Entwicklung von Datenaustauschlösungen auf der 1C:Enterprise 7.7-Plattform müssen Sie sich an diese wichtige "Kleinigkeit" erinnern. Ihre Regeln funktionieren nur dann korrekt, wenn Sie die modifizierte Verarbeitung verwenden, deren Modultext beim Entladen der Datenaustauschregeln erstellt wurde. Diese Regel hat eine Ausnahme: Wenn Sie keine Event-Handler verwenden, können Sie die Standardverarbeitung verwenden.

Mit freundlichen Grüßen, Wladimir Milkin(Lehrer und Entwickler).

DIE KLINGEL

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Familien-oder Nachname
Wie möchten Sie The Bell lesen?
Kein Spam