Hier ist zunächst eine Liste der von mir verwendeten Abkürzungen:
Aus eigener Erfahrung kann ich sagen, dass ich auf zwei Gründe für den Fehler gestoßen bin:
Es gibt auch die Meinung, dass dieser Fehler durch die Verwendung eines dynamischen Datverursacht wird. Hier bestehen Zweifel, denn einerseits wirkt sich die dynamische Aktualisierung nie auf die Datenbankstruktur aus und die RIB-Mechanismen arbeiten immer noch mit der Datenbankstruktur und nicht mit ihrem Anwendungsteil; dennoch verwendet das RIB einen Mechanismus zur Generierung einer digitalen Signatur von die Konfigurationsversion (in Zukunft werde ich es kurz Hash nennen), und wenn sich der Anwendungsteil ändert, muss der Hash natürlich neu berechnet werden. Ich werde dies weder leugnen noch bestätigen, denn... Wenn ich auf diese Situation gestoßen bin, habe ich keine eindeutigen Beweise dafür gefunden.
Um es zu korrigieren, wende ich je nach Situation zwei Methoden an.
Die erste (häufigste) wird sowohl in der Partnerkonferenz als auch in anderen Internetressourcen im Zusammenhang mit 1C immer wieder erwähnt. Es wird in den meisten Fällen verwendet, wenn trotz der Meldung über Abweichungen in den Konfigurationen ein manueller Vergleich zeigt, dass sie identisch sind.
Reihenfolge:
In den meisten Fällen reichen diese Maßnahmen mehr als aus, um den Austausch wiederherzustellen, aber nicht immer ...
Es wird verwendet, wenn die erste Methode nicht funktioniert hat und es nicht möglich ist, den Knoten erneut zu entladen.
Hintergrund: Der Kunde richtete eine Kaskaden-RIB ein und in der ersten Ebene der Kaskade ist ein Fehler aufgetreten (die zweite Ebene funktionierte die ganze Zeit über einwandfrei). Die Konfiguration wurde gemeinsam mit dem IT-Dienst des Kunden entwickelt und seit dem Auftreten des Fehlers wurde die Konfiguration der Zentralbank mehrmals geändert. Die Möglichkeit, Änderungen rückgängig zu machen, wurde nicht einmal grundsätzlich in Betracht gezogen, weil Der Verlust einiger Daten und die Schließung mehrerer Abteilungen war völlig inakzeptabel. Die erste Möglichkeit zur Behebung des Fehlers brachte keine greifbaren Ergebnisse. Deshalb mussten wir nach anderen Lösungen suchen.
Es entstand die Idee, die Hashes von Konfigurationsdateien direkt in den XML-Austauschdateien zu ersetzen. Die Beschreibung der Struktur der Austauschdatei aus dem Buch „Berufliche Entwicklung im 1C:Enterprise 8-System“ gab eine schwache Vorstellung von der Bildung digitaler Signaturen von Konfigurationen und deren Änderungen, bestimmte jedoch die Richtung der Suche: die Werte von Digest1 und Digest2. Alles andere habe ich rein empirisch herausgefunden (also durch Versuch und Irrtum), aber es war möglich, ein Muster festzulegen.
Die Testversuche waren erfolgreich. Auch an den Arbeitsstützpunkten lief alles gut.
Also die Abfolge der Aktionen:
Wenn beim Austausch eine Datenkomprimierung verwendet wird, deaktivieren wir entweder die Komprimierung oder entpacken die Datei zunächst, ändern sie, packen sie dann zurück und senden sie.
Austauschdateisperre von der Zentralbank
muss durch einen Block der Austauschdatei von UB ersetzt werden (beachten Sie, dass Digest1 für eine Datei von UB immer gleich „000000000000000000000000000000000“ ist!!!)
Die aufgeführten Maßnahmen müssen mit äußerster Vorsicht durchgeführt werden; eine falsche Reihenfolge kann zur vollständigen Funktionsunfähigkeit des RIB führen. Daher ist vor diesen Aktionen die Erstellung von Sicherungskopien ZWINGEND!
Ansonsten kann ich Dir nur viel Glück wünschen!
Hier ist zunächst eine Liste der von mir verwendeten Abkürzungen:
Aus eigener Erfahrung kann ich sagen, dass ich auf zwei Gründe für den Fehler gestoßen bin:
Es gibt auch die Meinung, dass dieser Fehler durch die Verwendung eines dynamischen Datverursacht wird. Hier bestehen Zweifel, denn einerseits wirkt sich die dynamische Aktualisierung nie auf die Datenbankstruktur aus und die RIB-Mechanismen arbeiten immer noch mit der Datenbankstruktur und nicht mit ihrem Anwendungsteil; dennoch verwendet das RIB einen Mechanismus zur Generierung einer digitalen Signatur von die Konfigurationsversion (in Zukunft werde ich es kurz Hash nennen), und wenn sich der Anwendungsteil ändert, muss der Hash natürlich neu berechnet werden. Ich werde dies weder leugnen noch bestätigen, denn... Wenn ich auf diese Situation gestoßen bin, habe ich keine eindeutigen Beweise dafür gefunden.
Um es zu korrigieren, wende ich je nach Situation zwei Methoden an.
Die erste (häufigste) wird sowohl in der Partnerkonferenz als auch in anderen Internetressourcen im Zusammenhang mit 1C immer wieder erwähnt. Es wird in den meisten Fällen verwendet, wenn trotz der Meldung über Abweichungen in den Konfigurationen ein manueller Vergleich zeigt, dass sie identisch sind.
Reihenfolge:
In den meisten Fällen reichen diese Maßnahmen mehr als aus, um den Austausch wiederherzustellen, aber nicht immer ...
Es wird verwendet, wenn die erste Methode nicht funktioniert hat und es nicht möglich ist, den Knoten erneut zu entladen.
Hintergrund: Der Kunde richtete eine Kaskaden-RIB ein und in der ersten Ebene der Kaskade ist ein Fehler aufgetreten (die zweite Ebene funktionierte die ganze Zeit über einwandfrei). Die Konfiguration wurde gemeinsam mit dem IT-Dienst des Kunden entwickelt und seit dem Auftreten des Fehlers wurde die Konfiguration der Zentralbank mehrmals geändert. Die Möglichkeit, Änderungen rückgängig zu machen, wurde nicht einmal grundsätzlich in Betracht gezogen, weil Der Verlust einiger Daten und die Schließung mehrerer Abteilungen war völlig inakzeptabel. Die erste Möglichkeit zur Behebung des Fehlers brachte keine greifbaren Ergebnisse. Deshalb mussten wir nach anderen Lösungen suchen.
Es entstand die Idee, die Hashes von Konfigurationsdateien direkt in den XML-Austauschdateien zu ersetzen. Die Beschreibung der Struktur der Austauschdatei aus dem Buch „Berufliche Entwicklung im 1C:Enterprise 8-System“ gab eine schwache Vorstellung von der Bildung digitaler Signaturen von Konfigurationen und deren Änderungen, bestimmte jedoch die Richtung der Suche: die Werte von Digest1 und Digest2. Alles andere habe ich rein empirisch herausgefunden (also durch Versuch und Irrtum), aber es war möglich, ein Muster festzulegen.
Die Testversuche waren erfolgreich. Auch an den Arbeitsstützpunkten lief alles gut.
Also die Abfolge der Aktionen:
Wenn beim Austausch eine Datenkomprimierung verwendet wird, deaktivieren wir entweder die Komprimierung oder entpacken die Datei zunächst, ändern sie, packen sie dann zurück und senden sie.
Austauschdateisperre von der Zentralbank
...hier sind Blöcke, die Konfigurationsänderungen beschreiben...
muss durch einen Block der Austauschdatei von UB ersetzt werden (beachten Sie, dass Digest1 für eine Datei von UB immer gleich „000000000000000000000000000000000“ ist!!!)
Die aufgeführten Maßnahmen müssen mit äußerster Vorsicht durchgeführt werden; eine falsche Reihenfolge kann zur vollständigen Funktionsunfähigkeit des RIB führen. Daher ist vor diesen Aktionen die Erstellung von Sicherungskopien ZWINGEND!
Ansonsten kann ich Dir nur viel Glück wünschen!
Aber beginnen wir nicht mit der Restaurierung, sondern mit der Möglichkeit zur UmsetzungAustausch „manuell“, was tagsüber wichtig ist, denn wie immer sollte „gestern“ alles funktionieren :) Dies geht mit Hilfe wunderbarer Behandlungen, an die ich mich nicht erinnern konntenackt, wo ich es heruntergeladen habe (Autoren, bitte antworten Sie – ich hinterlasse Links zu Ihrer Ressource und lösche sie bei Bedarf aus meiner). Die Verarbeitung ermöglicht es, nur registrierte Datenänderungen in der Datenbank (gemäß dem angegebenen Austauschplan für einen bestimmten Knoten!) in XML herunterzuladen, ohne Konfigurationsänderungen herunterzuladen, und wenn sich die Konfigurationsobjekte nicht wesentlich geändert haben, besteht eine sehr hohe Wahrscheinlichkeit diese Daten zu laden. Diese können über den Link am Ende des Artikels heruntergeladen werden.
Hallo, liebe Leser unserer Blogseite! Heute werden wir darüber reden
zwei Fehler beheben die beim Austausch in einer verteilten Informationsbasis (RIB) entstehen können. Solche Fehler können auftreten, wenn Sie die Konfiguration Ihrer Datenbank geändert haben und versuchen, diese Änderungen von der zentralen Datenbank auf die periphere Datenbank zu übertragen. Zum Beispiel so, wie es beschrieben wurde. Lass uns anfangen!
Dies sind die Meldungen, die möglicherweise angezeigt werden, wenn Sie versuchen, einen Austausch über RIB durchzuführen:
Schauen wir uns die Schritte an, die zur Behebung der Situation beitragen. Bevor wir beginnen, erstellen wir unsere Informationsdatenbank!!!
Um Probleme mit Arbeitskopien zu vermeiden, tun Sie dies zuerst
Eine verteilte Informationsbasis (DIB) wird häufig verwendet, um die Arbeit von Niederlassungen und Abteilungen zu organisieren und einen schnellen Informationsaustausch bei gleichzeitiger Wahrung des erforderlichen Maßes an Autonomie zu ermöglichen. Obwohl diese Technologie recht zuverlässig ist, kommt es von Zeit zu Zeit zu Ausfällen. Heute schauen wir uns einen der recht häufigen Fehler an: Wir erzählen Ihnen von den Gründen für sein Auftreten und den Methoden, wie man damit umgeht.
Fangen wir wie immer von vorne an. Nachdem Sie die RIB erstellt haben, können alle Änderungen an der Infobase-Konfiguration nur im Hauptknoten vorgenommen werden. Anschließend werden beim nächsten Austausch alle Änderungen an die Slave-Knoten übertragen und dort automatisch angewendet. Aber auf dem Papier war es glatt...
In der Praxis kommt es manchmal vor, dass sich die Konfiguration des Hauptknotens zwischen Austauschsitzungen zweimal ändert, insbesondere wenn der Kanal an der Peripherie schlecht ist. Sie haben beispielsweise Änderungen vorgenommen, diese hochgeladen, die periphere Datenbank hat die Änderungen erhalten, sie jedoch noch nicht angewendet, was einige Zeit dauern kann, und es wurde noch keine Bestätigung gesendet. Wenn Sie in diesem Zeitraum erneut Änderungen vornehmen und den Austausch erneut hochladen, stellt sich heraus, dass das Zentrum erwartet, Konfiguration Nr. 1 im Peripherieknoten zu sehen, und versucht, diese auf Konfiguration Nr. 3 zu aktualisieren, tatsächlich jedoch auf Konfiguration Nr. stößt . 2 da. Manchmal tritt eine ähnliche Situation bei der dynamischen Aktualisierung der zentralen Datenbank auf. Dadurch wird der Austausch unmöglich und Sie erhalten eine entsprechende Nachricht Die Konfiguration des verteilten Informationssicherheitsknotens entspricht nicht der erwarteten!
Im Allgemeinen ist die Moral dieser Geschichte einfach: Verfeinern Sie die Arbeitsdatenbank nicht aktiv. Wenn Sie dies tun, schließen Sie alle Austauschsitzungen ab, bevor Sie die nächsten Änderungen vornehmen. Was aber, wenn solch ein Ärgernis doch passiert?
Die einfachste Lösung besteht darin, ein neues Image des Slave-Knotens zu erstellen, in der Praxis ist dies jedoch normalerweise nicht anwendbar. Das Auftreten eines schwerwiegenden Fehlers beim Austausch wird in der Regel nicht sofort erkannt, sondern erst einige Zeit, nachdem Betriebsdaten aus umliegenden Datenbanken nicht mehr eintreffen. Abhängig vom Kommunikationsplan kann zwischen dem Auftreten des Problems und seiner Entdeckung ein ganzer Arbeitstag oder mehr vergehen.
Hier lohnt es sich, einen Stein auf die Entwickler zu werfen, die es als Fehler melden und den Sachverhalt ebenso rot markieren Die Nachrichtennummer ist kleiner oder gleich der Nummer einer zuvor empfangenen Nachricht, was im Allgemeinen ganz normal ist. Dadurch wird die Fehlerwahrnehmung der Benutzer abgeschwächt und sie hören einfach auf, die angezeigten Nachrichten zu lesen, weil sie glauben, dass alles in Ordnung ist und die andere Partei den Austausch noch nicht durchgeführt hat.
Aber kehren wir zu unserem Fehler zurück. Die Lösung ist recht einfach und liegt auf der Hand: Bringen Sie die Konfiguration der peripheren Basis auf die erwartete, d. h. Bringen Sie es in Einklang mit der Konfiguration des zentralen Knotens. Doch in der Praxis ist das nicht so einfach. Wenn wir die Peripheriedatenbank im Konfigurator öffnen, sehen wir, dass Änderungen durch die RIB-Verwaltungstools blockiert werden.
Um die Konfiguration eines Slave-Knotens zu ändern, müssen Sie ihn vorübergehend von der zentralen Datenbank trennen. Für diese Zwecke können Sie eine der im Netzwerk reichlich verfügbaren Verarbeitungsmöglichkeiten nutzen oder die Informationssicherheit vom zentralen Knoten trennen mit dem Startparameter des Konfigurators/ResetMasterNode.
Öffnen Sie eine Eingabeaufforderung und geben Sie ein (unter Berücksichtigung der Plattformversion und des tatsächlichen Installationspfads):
„C:\Programme (x86)\1cv8\8.3.6.2100\bin\1cv8.exe“ config /ResetMasterNodeNach Ausführung dieses Befehls erscheint das übliche Startfenster, wählen Sie dort die gewünschte Basis aus und klicken Sie auf die Schaltfläche Konfigurator.
Gleichzeitig Informationssicherheit starten wird nicht passieren, d.h. Es mag den Anschein haben, dass nichts passiert ist, aber durch erneutes Öffnen der Datenbank im Konfigurator können Sie sicherstellen, dass sie vom Hauptknoten getrennt ist und für Änderungen verfügbar ist.
Aufmerksamkeit! Auf den Plattformen 8.3.7 bis 8.3.9 führt die Ausführung dieses Befehls zu einem Absturz. Der Fehler wurde in Plattform 8.3.10 behoben.
Wenn Sie nicht mit der Befehlszeile herumspielen möchten, können Sie eine der folgenden Behandlungen verwenden. Nachfolgend finden Sie die von uns verwendete. Sie wurde im Internet gefunden und wir haben nur kosmetische Änderungen daran vorgenommen. Bitte beachten Sie, dass die Verarbeitung nur für eine reguläre Anwendung geeignet ist; für Konfigurationen in einer verwalteten Anwendung verwenden Sie den Startschlüssel des Konfigurators.
Die Arbeit damit ist äußerst einfach, wir starten es im 1C:Enterprise-Modus über Datei öffnen, dann drücken Sie einfach die gewünschte Taste, in unserem Fall Masterknoten deaktivieren.
Jetzt benötigen wir die neueste Konfiguration vom zentralen Knoten. Dafür werden wir öffnen zentrale Informationssicherheit im Konfigurator eingeben und ausführen Konfiguration – Konfiguration in Datei speichern. Die resultierende Datei mit der Erweiterung vgl muss an einen peripheren Knoten gesendet werden.
Dann starten wir im Peripherieknoten die Informationssicherheit (nachdem wir sie zuvor vom Hauptknoten getrennt haben) im Konfigurator und entfernen sie aus dem Support. Wählen Sie dazu: Konfiguration – Support – Support-Setup.
Aktivieren Sie im sich öffnenden Fenster zunächst die Bearbeitungsoptionen.
Und dann entfernen wir die Konfiguration aus dem Support.
Nun können Sie die Konfiguration aus einer Datei laden, hierzu auswählen Konfiguration – Konfiguration aus Datei laden und zeigen an, dass sie nicht vom zentralen Knoten übertragen wurden vgl-Datei. Anschließend erhalten Sie eine Warnung, dass die aktuelle Konfiguration nicht leer ist. Bitte beachten Sie, dass die von uns durchgeführten Manipulationen potenziell gefährlich sind und zu irreversiblen Schäden an der Informationssicherheit führen können. Bevor Sie fortfahren, stellen Sie daher sicher, dass Sie über eine aktuelle Sicherungskopie verfügen.