Die Eigenschaft ist die Basisdimension des Berechnungsregisters. Komplexe periodische Berechnungen Akzeptiert die Berechnung in der 1s-Sprache

Beim Arbeiten mit Berechnungsregistern ist es möglich, Grunddaten zu erhalten. Dies ist eine besondere Art der Berechnung des Registerumsatzes, bei der die Umsatzberechnungsfunktion keine einfache Funktion zum Summieren der Registerressourcen durch Messungen für einen bestimmten Zeitraum ist, sondern mehr ist komplexe Funktion. Diese Funktion ist abhängig vom Status der dem Kalkulations-Ledger zugeordneten Kalkulationsart Plan und somit benutzergesteuert.

In diesem Abschnitt betrachten wir zwei Methoden zum Abrufen grundlegender Daten, die im System vorhanden sind - die Verwendung der Abfragesprache und die Verwendung der funktionalen Notation nach der Methode GetBase(). In diesem Fall nennen wir das "Haupt"-Rechenregister das Register, für das es notwendig ist, grundlegende Daten zu erhalten, und die "Basis"-Register (von denen es im Allgemeinen mehrere geben kann) sind diejenigen Register, für die die Es erfolgt eine Summierung der Ressourcen.

Wir werden diese Methoden nicht im Detail betrachten, wir werden nur ihre Unterschiede und ihren Umfang betrachten.

GetBase()-Methode

Methode GetBase() für Objekte definiert RegisterCalculationManager.<Имя регистра расчета> und Berechnungsdatensatz registrieren.<Имя регистра расчета> . Mit der Methode können Sie die Ressourcen der Basisregister festlegen, für die Sie die Umsätze erhalten müssen, die Felder festlegen, in deren Kontext Sie die Umsätze erhalten müssen, und die Regeln für den Vergleich der Messungen der Haupt- und Basisberechnungsregister festlegen .

Die Regeln für den Abgleich der Datensätze der Berechnungsregister werden durch eine Struktur angegeben, deren jedes Element eine Liste von Messungen der Basisberechnungsregister für die eine oder andere Dimension des Hauptregisters angibt. Die Namen der Strukturelemente müssen mit den Namen der Messungen des Hauptregisters übereinstimmen, und die Werte der Strukturelemente müssen Zeichenfolgen sein, wobei die Liste der Messungen der Basisregister durch Kommas getrennt ist. Wenn ein Strukturelement mit dem Namen der einen oder anderen Dimension nicht angegeben ist, bedeutet dies, dass der entsprechenden Dimension keine Bedingung auferlegt wird.

Die Namen von Dimensionen und Ressourcen von Basisregistern sind im Format angegeben<ИмяРегистраРасчета>.<ИмяПоля>.

Ein Beispiel für die Verwendung der Methode:
Code 1C v 8.x Ressourcen = Neues Array(1);
Ressourcen = "Grundlegende Rückstellungen. Ergebnis, Zusätzliche Rückstellungen. Ergebnis";

Dimensionen = Neue Struktur ("Individuum, Organisation");
Dimensions.Individual = "Grundlegende Rückstellungen.Individual,Zusätzliche Rückstellungen.Mitarbeiter";
Dimensions.Organization = "BasicAccruals.Organization,AdditionalAccruals.Organization";

Slices = Neues Array (1);
Abschnitte = "Grundlegende Abgrenzungen. Methode, Zusätzliche Abgrenzungen. Methode";
// baseBaseDataTable berechnen = Calculation.Retention Register.GetBase(Selection,
// Ressourcen, Dimensionen, Abschnitte);

Im obigen Beispiel wird die Dimension „Individuum“ des Hauptregisters bei der Entgegennahme von Umsätzen mit der Dimension „Individuum“ des Basisregisters „Grundabgrenzungen“ und der Dimension „Mitarbeiter“ des Basisregisters „Zusatzabgrenzungen“ verglichen .

Abfragesprachtabelle zum Abrufen grundlegender Daten
Um die Grunddaten in der Abfragesprache zu erhalten, werden virtuelle Tabellen definiert "Rechenregister.<Имя регистра расчета>.Base<Имя базового регистра расчета>" . Die Parameter des virtuellen Tisches sind die Abmessungen des Hauptregisters, die Abmessungen des Basisregisters und die Felder, in deren Kontext Sie die Grunddaten erhalten müssen. Bemaßungen und Schnitte werden als Array (oder Werteliste) von Zeichenfolgen mit Bemaßungsnamen angegeben.

Ein Beispiel für das Schreiben einer Abfrage mit virtuellen Tabellen mit Basisdaten:
Code 1C v 8.x
Dimensionen1 = Array(2);
Abmessungen1 = "Individuell";
Dimensions1 = "Organisation";

Dimensionen2 = Array(2);
Dimensions2 = "Mitarbeiter";
Dimensions2 = "Organisation";

Slices = Neues Array (1);
Slices = "Modus";

Abfragetext = "Einzelperson auswählen, Berechnungstyp, SUM(ResultBase)
| VON
|WÄHLEN Sie Einzelperson, Berechnungstyp, Ergebnisbasis
| FROM Calculation Register.Deductions.BaseBasicAccruals(&Dimensions1,&Dimensions1,&Aspects)
|WHERE " + ConditionBasic + "
|ALLEN TEILNEHMEN
|WÄHLEN Sie Mitarbeiter, Berechnungstyp, Ergebnisbasis
| FROM Berechnung register.Retention.BaseAdditionalAccruals(&Dimensions1,&Dimensions2,&Sections)
|WHERE " + BedingungZusätzlich + "
|) AS-Basis
|GRUPPE NACH
| Individuell,
| Art der Berechnung
|";

Anfrage = Neue Anfrage(AnfrageText);
Query.SetParameter("Dimensionen1", Dimensionen1);
Query.SetParameter("Dimensionen2", Dimensionen2);
Query.SetParameter("Abschnitte", Abschnitte);

// ...Zusätzliche Abfrageparameter setzen, die in den Bedingungen in WHERE// verwendet werden, ..
// Abrufen einer Auswahl der Abfrage resultSelection = Query.Execute().Select();

Das obige Beispiel geht von der gleichen Datenstruktur und der gleichen zu lösenden Aufgabe aus wie das Beispiel für die Methode GetBase(). Gleichzeitig sehen wir eine spürbare Zunahme des Quellcodes und seiner scheinbaren Komplexität.

Vergleich
Ein bemerkenswerter Unterschied zwischen dem funktionalen Verfahren zum Erhalten von Grunddaten und dem Erhalten unter Verwendung einer Abfrage besteht darin, dass bei einem funktionalen Verfahren ein Aufruf des Verfahrens die Grunddaten für alle Grundregister erhalten kann und bei Verwendung von Abfragen das Erhalten von Grunddaten durch Abfragen erfolgt mehrere Tabellen - durch die Anzahl der Basisregister. Die empfohlene Methode zum Abrufen von Daten besteht jedoch darin, die Daten mit einer Abfrage abzurufen. So können beispielsweise nicht nur die Daten der Grundberechnungsarten, sondern auch zusätzliche für die Berechnung notwendige Informationen gewonnen werden.

Beachten Sie, dass die Leistung beim Abrufen von Daten unter Verwendung einer funktionalen Methode und der Verwendung einer Abfrage trotz der offensichtlichen Komplikation des ausführbaren Codes im Fall von Abfragen gleich ist.

Eine kurze funktionale Notation mit der Methode GetBase() ist nur dann akzeptabel, wenn keine anderen Daten als die Basisdaten benötigt werden und gleichzeitig Codezeilen "gespart" werden sollen. Aus Gründen der Code-Performance ist es völlig inakzeptabel, die Methode GetBase() zu verwenden, wenn Sie nach ihrer Verwendung noch zusätzliche Daten zur Berechnung über eine Abfrage erhalten müssen.

Eine weitere Überlegung betrifft die Auswahlbedingungen für die zugrunde liegenden Daten. Für die Methode GetBase() gibt es tatsächlich keine Möglichkeit, die Grunddaten anders als durch einen Datensatz oder durch einen bestimmten Registrar (mit Auswahl nach bestimmten Dimensionen) zu erhalten. Bei einer Abfrage stehen dem Entwickler alle Möglichkeiten der Abfragesprache zur Auswahl von Datensätzen zur Verfügung.

Wie Sie wissen, greift die 1C-Plattform beim Lesen von Daten auf Datenbanktabellen zu. Aber für Register kann sich die 1C-Plattform, basierend auf echten Tabellen, bilden Virtuelle Tische, die nicht physisch in der Datenbank gespeichert sind. Dadurch kann der Entwickler, anstatt eine komplexe Abfrage an eine reale Tabelle zu stellen, mit einer einfachen Abfrage sofort Daten aus einer virtuellen Tabelle abrufen. Es eliminiert auch mögliche Fehler. Daher sollten, wann immer möglich, virtuelle Tische verwendet werden. Vor allem beim Bestehen der Prüfung 1C: Spezialist. In Betracht ziehen verschiedene Typen Register und sehen Sie, welche virtuellen Tische die Plattform für jeden Registertyp bereitstellt.

Informationsregister

Die Plattform generiert virtuelle Tabellen nur für periodische Informationsregister. Die folgenden Typen sind verfügbar

  • SliceFirst
  • SliceRecent

Akkumulationsregister

Bei Akkumulationsregistern hängt die Menge der bereitgestellten virtuellen Tabellen auch von der Art des Registers ab. Wie Sie wissen, gibt es zwei Arten von Akkumulationsregistern: Überreste und Umsätze

Saldenkumulationsregister

Die folgenden virtuellen Tische sind verfügbar

  • Überreste
  • Umsätze
  • Reste und Umsätze

Umsatzregister

Nur ein virtueller Tisch verfügbar

  • Umsätze

Berechnungsregister

Hier stehen je nach Einstellung auch die folgenden virtuellen Tische zur Verfügung

Buchhaltungsregister

Buchhaltungsregister haben den größten Satz virtueller Tabellen

  • Überreste
  • Umsätze
  • RPMDtKt
  • Reste und Umsätze
  • Subconto
  • BewegungenSubconto

Die Geschwindigkeit des Zugriffs auf Buchhaltungsregister ist jedoch am niedrigsten. Wenn es also möglich ist, mit Akkumulationsregistern dieselben Salden oder Umsätze zu erhalten, sollten sie verwendet werden.

Berechnungsregister sind Anwendungskonfigurationsobjekte. Sie werden im Mechanismus komplexer periodischer Berechnungen verwendet und dienen zum Speichern von Aufzeichnungen bestimmter Arten von Berechnungen, die durchgeführt werden müssen, sowie zum Speichern von Zwischendaten und den Ergebnissen der Berechnungen selbst.

Struktur

Die Informationen im Berechnungsregister werden in Form von Datensätzen gespeichert, von denen jeder Dimensionswerte und die entsprechenden Ressourcenwerte enthält.

Messungen Register beschreiben Abschnitte, in denen Informationen gespeichert werden, und Ressourcen Register enthalten direkt gespeicherte Informationen. Zum Beispiel für das Berechnungsregister Basisrückstellungen für Mitarbeiter von Organisationen, die folgende Struktur hat:

Die in der Datenbank gespeicherten Datensätze sehen folgendermaßen aus:

Beziehung zum Plan der Berechnungsarten

Das Gehaltsabrechnungsregister ist einem der in der Anwendung vorhandenen Gehaltsabrechnungsartenpläne zugeordnet. Diese Beziehung bewirkt, dass jeder Registerdatensatz ein Feld hat Berechnungstyp, dank derer die Registermechanismen die gegenseitige Beeinflussung von Berechnungssätzen aufeinander verfolgen können.

Periodizität

Das Berechnungsregister speichert Daten nicht nur im Kontext der erstellten Messungen, sondern auch im Kontext der Zeit. Aus diesem Grund gibt es für jeden Datensatz des Berechnungsregisters ein weiteres Pflichtfeld - Gültigkeit. Beim Erstellen eines Berechnungsregisters kann der Entwickler die Mindesthäufigkeit festlegen, mit der Einträge in das Register eingetragen werden:

Einreichung beim Standesamt

Die Änderung des Standes des Berechnungsregisters erfolgt in der Regel beim Buchen des Belegs. Daher ist jeder Registereintrag einem bestimmten Dokument zugeordnet - dem Registrar und der Zeilennummer dieses Dokuments. Das Hinzufügen, Ändern und Löschen von Einträgen zum Register ist nur gleichzeitig für alle Einträge möglich, die sich auf ein Dokument beziehen.

Beziehung zum Zeitstrahl

Das Berechnungsregister kann mit einer Zeitleiste verknüpft werden. Eine Zeitleiste ist ein Informationsregister, das ein zeitliches Schema der in die Berechnungen einbezogenen Ausgangsdaten enthält. Die Dimensionen dieses Zeitplans können beispielsweise der Arbeitszeitplan und das Datum sein, und die Ressource ist die Anzahl der Arbeitsstunden an diesem Datum. Dann wird es möglich sein, den Datensatz des Berechnungsregisters einem bestimmten Arbeitsplan zuzuordnen und in Zukunft mithilfe der eingebauten Sprache Informationen über die Anzahl der Arbeitsstunden zu erhalten, die für die Durchführung der Berechnungen erforderlich sind.

Zum Beispiel eine Zeitachse mit der folgenden Struktur:

Neuberechnungen

Das Berechnungsregister kann spezielle Objekte enthalten - Neuberechnungen:

In diesen Objekten speichert das System Informationen darüber, welche Datensätze des Berechnungsregisters ihre Relevanz verloren haben und als Ergebnis der Operation der Abhängigkeitsmechanismen um den Basiszeitraum und die Verschiebung um den Gültigkeitszeitraum neu berechnet werden.

Eindeutigkeit von Aufzeichnungen

Das System ermöglicht die Kontrolle über die Eindeutigkeit von Datensätzen, die im Berechnungsregister gespeichert sind. Daher darf das Berechnungsregister nicht zwei Einträge enthalten, die sich auf dieselbe Zeile desselben Dokuments beziehen.

Vom Abrechnungsregister implementierte Mechanismen

Der Ausschlussmechanismus nach Gültigkeitszeitraum ermöglicht es Ihnen, die tatsächliche Gültigkeitsdauer eines Berechnungsregistereintrags auf der Grundlage einer Analyse anderer im Register enthaltener Einträge zu berechnen.

In der Regel enthält ein Lohnbucheintrag zwei Daten, die den Zeitraum des Eintrags definieren. Dieser Zeitraum wird als Aufzeichnungsgültigkeitszeitraum bezeichnet. Wenn jedoch die Abrechnungsart, zu der der Eintrag gehört, von einer anderen Abrechnungsart vorgezogen werden kann, dann ist der Gültigkeitszeitraum des Eintrags nur ein „gewünschter“ Zeitraum, d. h. „wir wollen, dass der Eintrag in diesem Zeitraum gültig ist“. Die tatsächliche Gültigkeitsdauer dieses Eintrags lässt sich in der Realität erst nach Analyse aller Datensätze von Abrechnungsarten ermitteln, die diese Art der Berechnung um die Gültigkeitsdauer verschieben. Der tatsächliche Gültigkeitszeitraum ist eine Menge von Zeiträumen, die eine Teilmenge des ursprünglichen Gültigkeitszeitraums des Eintrags sind. Wenn kein Eintrag gefunden wird, der den gegebenen Gültigkeitszeitraum vorzieht, dann ist der tatsächliche Gültigkeitszeitraum dieses Eintrags gleich seinem Gültigkeitszeitraum. Der andere extreme Fall des Ablaufs nach Gültigkeitszeitraum ist, wenn ein bestimmter Eintrag vollständig von anderen Einträgen entfernt wird. In diesem Fall entfällt die eigentliche Gültigkeitsdauer des Eintrags.

Jeder Lohnbucheintrag enthält die Lohnart, zu der er gehört. Um festzulegen, welche Einträge einen bestimmten Eintrag nach Gültigkeitszeitraum ersetzen sollen, verwendet das Lohnbuch eine Verknüpfung zum Lohnartenplan, der die gegenseitige Beeinflussung der Lohnarten untereinander beschreibt. Anhand dieser Beziehung kann das Berechnungs-Ledger den tatsächlichen Gültigkeitszeitraum jedes Eintrags bestimmen.

Der Basisperiodenabhängigkeitsmechanismus ermöglicht es Ihnen, den Basiswert für einen Abrechnungsregistereintrag auf der Grundlage einer Analyse anderer im Register enthaltener Einträge zu erhalten.

Die Basis ist numerischer Wert, die verwendet werden soll, um das Ergebnis dieses Datensatzes zu berechnen. Die Berechnung der Basis erfolgt durch Analyse der Berechnungsergebnisse anderer Datensätze, von denen dieser Datensatz abhängig ist. Somit enthält der Datensatz des Berechnungsregisters im Allgemeinen zwei Daten, die den Zeitraum bestimmen, in dem die Datensätze der Berechnungsarten analysiert werden müssen, von denen diese Art der Berechnung von der Grundlage abhängt - dem Basiszeitraum. Über die Verknüpfung zum Fakturaartenplan kann das Fakturabuch die Fakturaarten ermitteln, von denen die Fakturaart für den Basiszeitraum abhängt.

Das Berechnungsregister unterstützt zwei Arten der Abhängigkeit von der Basisperiode:

  • Abhängigkeit von der Gültigkeitsdauer;
  • Abhängigkeit vom Anmeldezeitraum.

Bei Abhängigkeit von der Gültigkeitsdauer werden zur Ermittlung der Basis diejenigen Datensätze ausgewählt, bei denen sich der Schnittpunkt ihrer tatsächlichen Gültigkeitsdauer mit der Basisperiode dieser Aufzeichnung ergibt. Der Wert der Basis, die von einem bestimmten beeinflussenden Eintrag erhalten wird, ist im Allgemeinen nicht gleich dem Ergebnis, das dieser Eintrag enthält. Die Basis wird im Verhältnis dazu berechnet, welcher Teil des tatsächlichen Zeitraums des beeinflussenden Datensatzes der sich überschneidende Abschnitt mit dem angegebenen Basiszeitraum ist. Dabei werden die Daten des mit diesem Datensatz verknüpften Diagramms verwendet.

Bei Abhängigkeit vom Meldezeitraum werden zur Ermittlung der Basis die Berechnungsergebnisse der Datensätze ausgewählt, die durch den Wert ihres Feldes „Meldezeitraum“ in den Basiszeitraum dieses Datensatzes fallen.

Die komplexeste Variante der Abhängigkeit vom Basiszeitraum ist der Fall, wenn für die Berechnungsart dieses Datensatzes die Eigenschaft „Gültigkeitszeitraum ist der Basiszeitraum“ gesetzt ist. Diese Eigenschaft bedeutet, dass der Basiszeitraum dieses Datensatzes nicht der in den entsprechenden Feldern des Datensatzes angegebene Basiszeitraum ist, sondern der tatsächliche Gültigkeitszeitraum des Datensatzes, der sich als Ergebnis des Ausschlussmechanismus nach Gültigkeitszeitraum ergibt und ist , im allgemeinen Fall eine Menge einiger Perioden.

Der Mechanismus zum Erzeugen von Neuberechnungsdatensätzen verfolgt das Auftreten von Datensätzen im Register, die das Berechnungsergebnis bestehender Datensätze beeinflussen. Als Ergebnis der Analyse wird die Möglichkeit der Auswirkung neuer Aufzeichnungen auf bestehende ermittelt Gegenseitiger Einfluss Berechnungsarten und auf der Grundlage der Funktionsweise der Mechanismen der Verschiebung durch die Gültigkeitsdauer und der Abhängigkeit von der Basisperiode.

Das Ergebnis des Mechanismus zum Erzeugen von Neuberechnungsdatensätzen ist ein Satz von Neuberechnungsdatensätzen, die Informationen darüber enthalten, welche Registereinträge neu berechnet (neu berechnet) werden sollten.

Berechnungsregisterformulare

Damit der Benutzer die im Abrechnungsregister enthaltenen Daten einsehen kann, unterstützt das System die Darstellungsform des Abrechnungsregisters – die Listenform. Sie können die angezeigten Informationen nach mehreren Kriterien sortieren und auswählen:

Das System kann dieses Formular automatisch generieren. Darüber hinaus hat der Entwickler die Möglichkeit, eigene Formulare zu erstellen, die das System anstelle des Standardformulars verwendet, einschließlich des Datensatzformulars, mit dem Sie Berechnungsregistereinträge hinzufügen, ändern und löschen können.

Berechnungsregisterfunktionalität

Die Hauptfunktionalität, die das Berechnungsregister dem Entwickler bietet, ist:

  • Auswahl von Datensätzen in einem bestimmten Intervall nach festgelegten Kriterien;
  • Auswahl der Datensätze durch den Registrar;
  • Erhalten des Basiswerts für Registereinträge, die die spezifizierte Auswahl erfüllen;
  • Erhalten von Plandaten für Registereinträge, die die spezifizierte Auswahl erfüllen;
  • Abrufen von Daten zu Datensätzen, die einer Neuberechnung unterliegen;
  • Lesen, Modifizieren und Schreiben einer Reihe von Datensätzen in ein Register.

Alle an der Datenbank vorgenommenen Änderungen werden in den entsprechenden Tabellen gespeichert. Für 1C sind dies Dokumententabellen, Dokumentenjournale, Verzeichnisse und Register. Die Arten von 1C-Registern, die Merkmale und Feinheiten ihrer Verwendung werden in unserem Artikel besprochen.

Bildung von Aufzeichnungen in Registern

Eine der ersten Fragen im Zusammenhang mit Registern ist: Warum?

Warum müssen Sie separate Tabellen erstellen, die häufig vorhandene Datensätze duplizieren?

Die Antwort hier ist ganz einfach. Natürlich ist es möglich, komplexe und zeitaufwändige Abfragen von Tabellen von Quelldokumenten durchzuführen, indem Sie die Auswahlbedingungen auflisten, auf Löschmarkierungen und Leitung prüfen, aber es ist viel einfacher und weniger mühsam, direkt einen bestimmten Teil des Datensatzes zu erstellen beim Speichern des Dokuments und speichern Sie es in einer separaten Tabelle, indem Sie bei Bedarf auf ihn zugreifen.

So haben wir herausgefunden, dass eine der Möglichkeiten, einen Registereintrag zu erstellen, darin besteht, mit einem Registrar (Dokument) zu schreiben. Diese Option ist in allen Arten von Registern vorhanden.

Der Vorgang des Erstellens von Registereinträgen auf der Grundlage eines Dokuments wird allgemein als Buchen eines Dokuments bezeichnet. Ein nicht gebuchtes Registrardokument hat keine Registerbewegungen, es ist tatsächlich ein Entwurf oder ein Blanko.

Die zweite Möglichkeit, einen Datensatz zu erstellen, ist direkt, ohne ein Registrierungsdokument zu erstellen. Aufzeichnungen können auf diese Weise nur in Informationsregistern erstellt werden, wobei in den Eigenschaften des Registers das Attribut „Record mode“ den entsprechenden Wert haben muss (Abb. 1).

Allen Registern gemeinsam

Die interne Struktur jedes Registers kann in Fig. 2 gezeigt werden

Abb.2

Betrachten wir es genauer:

  • Dimensionen – Datensatzeigenschaften, die bestimmen, in welchen Abschnitten die Daten gespeichert werden wichtige Informationen;
  • Ressourcen - sie enthalten Informationen, die systematisiert werden müssen;
  • Voraussetzungen - Datensatzfelder, die zusätzliche Informationen enthalten;
  • Forms ist eine Eigenschaft, die grafische Informationen über das Erscheinungsbild einer Liste, eines Elements usw. enthält. und ihre internen Module;
  • Layouts - gedruckte Formulare von Registern.

Informationsregister

Da wir oben über Informationsregister sprechen, lassen Sie uns darüber sprechen.

Dies ist wahrscheinlich die einfachste und verständlichste Art von Registern. Eine reguläre Tabelle, die Spalten und Spalten enthält, die Informationen speichern.

Die Liste der wichtigen Eigenschaften des Informationsregisters ist klein (Abb. 3), sprechen wir über die wichtigsten:

Abb. 3

  1. Periodizität, gibt an, inwieweit die Eindeutigkeit der Aufzeichnung kontrolliert wird (innerhalb einer Minute, einer Stunde, eines Tages, eines Jahres, gemäß dem ausgewählten Wert kann es keine zwei Aufzeichnungen mit denselben Messungen geben), sie kann auch den Wert annehmen "By Registrar", aber dafür müssen Sie den entsprechenden Aufnahmemodus auswählen;
  2. Der Aufzeichnungsmodus ist eigentlich eine Auswahl von zwei Werten: „Unabhängig“ und „dem Registrar untergeordnet“.
    1. Es ist wichtig zu verstehen, dass die Wahl eines unabhängigen Modus nicht bedeutet, dass ein Datensatz nicht durch ein Dokument gebildet werden kann, nur die Auswahl durch den Registrar und die Kontrolle der Eindeutigkeit des Datensatzes durch ihn wird unmöglich sein;
  3. Summenschnitt der ersten und Summenschnitt der letzten zulassen: (zwei Elemente zu einem zusammenfassen) - Wenn die entsprechenden Kontrollkästchen aktiviert sind, kann eine Anfrage an das Informationsregister für zusätzliche Tabellen gestellt werden (Slice of the first und Slice of the zuletzt), die die entsprechenden Datensätze enthalten, als einer der Parameter dieser Tabellen ist das Datum, an dem eine Datenauswahl getroffen werden muss.

Akkumulationsregister

Wir haben die Struktur von einem von ihnen in Abb. 2 gesehen. Die Haupteigenschaft, die das Erscheinungsbild des Registers sowie seine interne Struktur stark beeinflusst, ist der "Typ des Registers" (Abb. 4).

Je nach Anforderung an die gespeicherten Informationen kann sie folgende Werte annehmen:

  • Überreste;
  • Umsätze.

Im ersten Fall enthält die Datenbank nicht nur Informationen über die Bewegungen von Ressourcen im Rahmen von Messungen, sondern auch über die Art der Operation (Einnahme oder Ausgabe). Außerdem steht beim Erstellen einer Abfrage eine zusätzliche Tabelle mit den Summen zur Verfügung.

Eines der Hauptprobleme, mit denen unerfahrene Entwickler konfrontiert sind, wenn sie die Tabellen „Salden“ und „Salden und Umsätze“ in Abfragen verwenden, besteht darin, dass die Daten in diesen Tabellen unterschiedlich sein können, wenn eine Abfrage Salden für ein bestimmtes Datum erhält. Und hier gibt es eine Nuance: Wenn Sie einen bestimmten Wert als Enddatum des Zeitraums angeben, übernimmt die Plattform Daten aus der Saldentabelle, ohne diesen Wert in den Auswahlzeitraum aufzunehmen.

Wenn Sie Daten benötigen, die das Ende des Zeitraums beinhalten, können Sie:

  • Verwenden Sie die Tabelle Salden und Umsätze;
  • Treffen Sie eine Auswahl für ein Datum, das 1 Sekunde größer als das angegebene Datum ist (d. h. nicht am 31.12.16 23:59:59, sondern am 01.01.17 00:00:00);
  • Verwenden Sie die Boundary-Methode, die hilft, die Option zu konfigurieren, einen Zeitpunkt in den betrachteten Zeitraum aufzunehmen (Anwendungsfall: Boundary(EndDate,Inclusive).

Buchhaltungsregister

Ausreichend spezialisierte Register ähneln in ihrem Aufbau Akkumulationsregistern. Der Hauptunterschied zu anderen Arten von Registern der 1C-Plattform ist das Vorhandensein des Parameters „Kontenplan“ in der Eigentumsstruktur (Abb. 5).

Abb.5

Der Kontenplan ist ein separates Metadatenobjekt, das einer separaten Diskussion bedarf. Je nach Kontenplan enthalten moderne typische 1C-Konfigurationen 4 Hauptbuchhaltungsregister:

  1. Budgetierung;
  2. International;
  3. MwSt;
  4. Selbsttragend.

Der zweite für Buchungsregister typische Parameter ist „Korrespondenz“.

Wenn Sie dieses Kontrollkästchen aktivieren, können Sie doppelte Einträge erstellen, die das Guthabenkonto AccountKt und das Sollkonto AccountDt und die diesen Konten entsprechenden Analysen (Subconto) enthalten. Wenn das Kontrollkästchen nicht aktiviert ist, wird nur ein Konto in die Registereinträge eingetragen.

Berechnungsregister

Dies sind wahrscheinlich die am schwierigsten zu verstehenden Register. Dabei ähneln sie im Wesentlichen Akkumulationsregistern vom Typ "Umsatz".

Der bestimmende Unterschied des Berechnungsregisters von anderen Registern ist das Vorhandensein des Parameters "Plan der Berechnungsart" in seinen Eigenschaften. Außerdem sind das Berechnungsregister sowie das Informationsregister periodisch.

In jedem Berechnungsregister kann die Möglichkeit der Verknüpfung des Eintrags mit dem im entsprechenden Informationsregister angegebenen Zeitplan aktiviert werden. Dadurch kann Code Arbeitszeitdaten abrufen.

Zusätzlich zu den Dimensionen, Ressourcen und Formularen, die in anderen Ledger-Typen zu finden sind, kann Berechnungsregistern ein Neuberechnungsobjekt zugewiesen werden, um Informationen zu Datensätzen zu speichern, die veraltet sind und überarbeitet werden müssen.

Ihre Hauptverwendung ist in typische Konfigurationen 1C - Registrierung und Erleichterung der Arbeit mit Rückstellungen für Mitarbeiter der Organisation.

Eine der Aufgaben, die mit Hilfe von Berechnungsregistern gelöst werden, ist das Abrufen von Registerumsätzen durch Abfragen der virtuellen Stammdatentabelle oder der Methode GetBase(). Registerumsätze werden auf der Grundlage einer Vielzahl unterschiedlicher Quelldaten ermittelt, darunter Einstellungen und Inhalte des Kalkulationsartenplans, Einstellungen des Kalkulationsregisters, Parameter der virtuellen Grunddatentabelle etc. Aber eine der wesentlichen Rollen bei der Gewinnung von Basisdaten spielen die Messungen des Berechnungsregisters.

Die Rolle der Dimensionen bei der Parametrisierung der virtuellen Basisdatentabelle

Einer der wichtigen Parameter der virtuellen Basisdatentabelle ist die Liste der Dimensionen, anhand derer die Registereinträge bei der Zusammenfassung der Daten verglichen werden. Um verschiedene Probleme zu lösen, müssen Sie möglicherweise die Summierung von Registerressourcen über verschiedene Sätze von Messungen durchführen. Betrachten Sie das Beispiel eines Registers, das für die Gehaltsabrechnung entwickelt wurde und drei Dimensionen hat:

  • Organisation,
  • Individuell,
  • Unterteilung.
Stellen Sie sich vor, Sie müssten folgende Aufgaben lösen:
  • Beschaffung für bestimmte Aufzeichnungen des Umsatzregisters des Registers für alle Aufzeichnungen mit der gleichen Unterteilung wie die ursprüngliche Aufzeichnung. Dies kann zum Beispiel die Berechnung des Freibetrags sein, der von den Rückstellungen der gesamten Einheit abhängt.
  • Erzielen von Umsätzen auf Datensätzen mit derselben Person und derselben Division. Diese. Erhalt des Betrages der Rückstellungen des Mitarbeiters, die ihm in derselben Abteilung zugeflossen sind (ausgenommen sind Rückstellungen für denselben Mitarbeiter, die er in anderen Abteilungen erhalten hat).
  • Eingang von Umsätzen in Aufzeichnungen mit derselben Person und derselben Organisation (alle Zuwendungen an eine Person innerhalb derselben Organisation).

Alle oben genannten Aufgaben werden durch Abfragen der virtuellen Basisdatentabelle gelöst. In diesem Fall sind die Parameter "Messungen des Hauptregisters" und "Messungen des Basisregisters" für alle drei Aufgaben unterschiedlich. Im ersten Fall gibt es nur eine Dimension – „Unterteilung“; im zweiten - "Individuell" und "Unterteilung"; im dritten - "Organisation" und "Individuum".

Grundlegende Optimierung der Datenerfassung

Für die oben aufgelisteten Fälle führt das System beim Bilden einer Abfrage an die virtuelle Basisdatentabelle hinsichtlich der Abfragesprache eine "linke Verknüpfung" der Berechnungsregistertabelle mit derselben Tabelle durch. Eine der Anschlussbedingungen ist in diesem Fall die Gleichheit der Werte in den als Messungen des Haupt- und Basisregisters angegebenen Feldern. Neben dieser Bedingung gibt es natürlich noch einen Vergleich des Gültigkeitszeitraums bzw. Anmeldezeitraums mit Beginn und Ende des Basiszeitraums, Vergleich von Berechnungsarten etc., aber die „härteste“ Einschränkung ist in der Regel, ist die Beschränkung auf Messwerte.

Daher ist es für den effektiven Betrieb der resultierenden Abfrage wichtig, einen Index der Berechnungsregistertabelle zu haben, der die Felder der verglichenen Messungen als die ersten Felder enthalten würde.

Die Möglichkeit, die Berechnungsregisterdimensionen zu indizieren, ermöglicht die Lösung eines solchen Problems, jedoch nur für den Fall, dass eine Dimension verglichen wird (in unserem Beispiel die Aufgabe, Daten nach Abteilung zu erhalten). Falls es zwei oder mehr verglichene Dimensionen gibt, ist es erforderlich, einen Index für mehrere Dimensionen gleichzeitig zu erstellen.

Mit dieser Aufgabe können Sie die Eigenschaft Basisdimension des Berechnungsregisters lösen. Durch Festlegen dieser Eigenschaft für mehrere Dimensionen erstellt der Konfigurationsdesigner einen Index für alle als „Basis“ gekennzeichneten Dimensionen (weitere Einzelheiten finden Sie im Abschnitt „Datenbanktabellenindizes“).

Aus dem Gesagten wird deutlich, dass nur ein solcher Index für das Berechnungsregister erstellt werden kann, um den Empfang von Basisdaten durch die Auswahl bestimmter Dimensionen zu optimieren. Daher ist es wichtig, bei der Entwicklung richtig einzuschätzen, welche virtuellen Tische häufiger verwendet werden und deren Optimierung am wichtigsten ist.

Kommen wir zurück zu unserem Beispiel. Stellen Sie sich vor, dass Rückstellungen, die den Erhalt von Daten zu einer Person und einer Abteilung erfordern, während des Betriebs der Konfiguration weniger häufig vorkommen als Rückstellungen, die den Erhalt von Daten zu einer Person und einer Organisation erfordern. Dann sind als Basismaße die Dimensionen „Organisation“ und „Individuum“ zu beachten. Gleichzeitig müssen wir uns damit abfinden, dass die Beschaffung von Basisdaten zu einer Person und Abteilung relativ langsam sein wird.

Bei der Auswahl von Basismessungen sollte man auch ihre "Selektivität" bewerten, d.h. stellen dar, wie viele Werte es während des Betriebs der Konfiguration in einer bestimmten Dimension geben wird. Stellen Sie sich vor, dass in unserem Beispiel eine Person sehr wenige (eine oder zwei) Organisationen und relativ viele Abteilungen hat. Diese. Eine Person erhält fast immer ein Gehalt für eine Organisation, und gleichzeitig wird ein Gehalt häufig für verschiedene Abteilungen berechnet. Unter solchen Umständen ist es sinnvoller, die Dimensionen „Individuum“ und „Abteilung“ als Basis zu wählen.

Gleichzeitig ist es wichtig, sich an die Reihenfolge der Messungen des Berechnungsregisters zu erinnern ...

Über die Reihenfolge der Messungen im Berechnungsregister

Tatsache ist, dass das System beim Erstellen eines Indexes, der den Empfang von Grunddaten erleichtert, Dimensionen in der Reihenfolge enthält, in der sie sich im Konfigurationsbaum befinden. Das bedeutet, dass wir durch einfaches "Vertauschen" der Dimensionen "Person" und "Abteilung" die Reihenfolge der Felder im Index ändern.

Wenn in unserem Beispiel die Dimensionen "Individuum" und "Abteilung" als Basisdimensionen ausgewählt werden, ändern wir durch ihre Neuanordnung nicht die Geschwindigkeit, mit der grundlegende Daten zu einer Person und Abteilung erhalten werden, sondern die Situation mit der Beschaffung radikal verschlechtern Daten zu einer Person und Organisation. Beim Vergleich der Werte in den Feldern „Organisation“ und „Individuum“ kann das System den Index „Unterteilung+Individuum“ nicht verwenden, da das Feld „Individuum“ nicht das erste darin ist und die Bedingung nicht auferlegt wird auf der Unterteilung. Und im Falle eines Indexes profitiert Person + Abteilung sowohl vom Erhalt von Basisdaten für eine Abteilung und eine Person als auch von dem Erhalt von Basisdaten für eine Organisation und eine Person, da das Feld „Individuum“ das erste im Index ist, das System kann es "teilweise" verwenden (jeweils ein Feld) . Gleichzeitig hat das Feld "Individuum" eine viel größere "Selektivität" als das Feld "Organisation", und es wird nicht viel Zeit in Anspruch nehmen, die Bedingungen für die Organisation herauszuarbeiten.

Wenn die Basisdimension eins ist

Vergessen wir nicht die Aufgabe unseres Beispiels, bei der es darum geht, nur Basisdaten für die Abteilung zu erhalten. Es scheint, dass die Erstellung eines Index Individual + Division zur Lösung der beiden anderen Aufgaben ausschließt effizientes Arbeiten Virtuelle Tabelle mit Grunddaten in einer Dimension "Abteilung". Aber hier müssen Sie sich an die Möglichkeit erinnern, Registerdimensionen zu indizieren (Indizierungseigenschaft). Durch die Möglichkeit, eine Dimension zu indizieren, können Sie das Problem, eine Basis aus einer Basisdimension zu erhalten, effektiv lösen.

In unserem Beispiel müssen Sie also die Basiseigenschaft für die Dimensionen „Individual“ und „Department“, die Indexing-Eigenschaft für die Dimension „Department“ festlegen und außerdem sicherstellen, dass die Dimension „Individual“ „höher“ als die ist Dimension "Abteilung" (die Reihenfolge der Dimension "Organisation" ist egal).