Gruppieren von Feldern nach Ordnern im Speichersystem. Gruppieren von Feldern in Ordnern im Speichersystem. Zugriff auf die Exportfunktionen des allgemeinen Moduls

1. Berechnen (Auswerten)- soll einen Ausdruck im Kontext einer Gruppierung bewerten. Die Funktion dient der Kompatibilität mit früheren Versionen der Plattform. Es wird empfohlen, stattdessen die Funktion CalculateExpression zu verwenden.

Syntax:
Berechnen(Ausdruck, Gruppierung, Berechnungstyp)

Optionen :

  • Ausdruck(Linie). Enthält einen berechneten Ausdruck;
  • Gruppierung(Linie). Enthält den Namen der Gruppierung, in deren Kontext der Ausdruck ausgewertet werden soll. Wenn als Gruppierungsname eine leere Zeichenfolge verwendet wird, wird die Berechnung im Kontext der aktuellen Gruppierung durchgeführt. Wenn der GrandTotal-String als Gruppenname verwendet wird, wird die Berechnung im Kontext der Gesamtsumme durchgeführt. Andernfalls wird die Berechnung im Kontext der gleichnamigen übergeordneten Gruppe durchgeführt.
    Zum Beispiel:
    Sum(Sales.SumTurnover) / Calculate("Sum(Sales.SumTurnover)", "Total").
    In diesem Beispiel ist das Ergebnis das Verhältnis des Betrags für das Feld „Sales.AmountTurnover“ des Gruppierungsdatensatzes zum Betrag desselben Felds im gesamten Layout.
  • Berechnungstyp(Linie). Wenn dieser Parameter auf „TotalTotal“ gesetzt ist, wird der Ausdruck für alle Gruppierungsdatensätze berechnet. Wenn der Wert des Parameters „Gruppierung“ lautet, werden die Werte für den aktuellen Gruppierungsgruppendatensatz berechnet.
2. Ausdruck auswerten (EvalExpression) - soll einen Ausdruck im Kontext einer Gruppierung bewerten. Die Funktion berücksichtigt die Auswahl von Gruppierungen, berücksichtigt jedoch keine hierarchischen Auswahlen. Die Funktion kann nicht auf eine Gruppierung in der Gruppenauswahl dieser Gruppierung angewendet werden.

Syntax:
CalculateExpression(Expression, Grouping, CalculationType, Start, End, Sort, HierarchicalSort, ProcessingIdenticalOrderValues)

Optionen :

  • Ausdruck(Linie). Enthält einen berechneten Ausdruck;
  • Gruppierung(Linie). Enthält den Namen der Gruppierung, in deren Kontext der Ausdruck ausgewertet werden soll. Wenn als Gruppierungsname eine leere Zeichenfolge verwendet wird, wird die Berechnung im Kontext der aktuellen Gruppierung durchgeführt. Wenn der GrandTotal-String als Gruppenname verwendet wird, wird die Berechnung im Kontext der Gesamtsumme durchgeführt. Andernfalls wird die Berechnung im Kontext der übergeordneten Gruppierung mit diesem Namen durchgeführt;
  • Berechnungstyp(Linie). Wenn dieser Parameter auf „TotalTotal“ gesetzt ist, wird der Ausdruck für alle Gruppierungsdatensätze berechnet. Wenn der Wert des Parameters „Gruppierung“ lautet, werden die Werte für den aktuellen Gruppierungsgruppendatensatz berechnet. Wenn der Parameter auf „Nicht-Ressourcen-Gruppierung“ eingestellt ist, wird bei der Berechnung der Funktion für einen Gruppendatensatz nach Ressource der Ausdruck für den ersten Gruppendatensatz der ursprünglichen Gruppierung ausgewertet. Bei der Auswertung der CalculateExpression-Funktion mit dem Wert „GroupingNonResource“ für Gruppendatensätze, bei denen es sich nicht um Gruppierungen nach Ressourcen handelt, wird die Funktion auf die gleiche Weise ausgewertet, wie sie mit dem Wert des Parameters „Grouping“ ausgewertet würde. Der Datenzusammensetzungslayout-Builder gibt beim Generieren eines Datenzusammensetzungslayouts bei der Ausgabe eines Felds – einer Ressource, nach der die Gruppierung durchgeführt wird – an das Layout einen Ausdruck aus, der mithilfe der Funktion CalculateExpression mit dem angegebenen Parameter „GroupingNon-Resource“ berechnet wurde. Für andere nach Ressource gruppierte Ressourcen werden normale Ressourcenausdrücke zurückgegeben. Wenn der Parameter auf „Hierarchie“ gesetzt ist, muss der Ausdruck für den übergeordneten hierarchischen Datensatz ausgewertet werden, sofern vorhanden, und für die gesamte Gruppierung, sofern kein übergeordneter hierarchischer Datensatz vorhanden ist. Wenn der Layout-Builder einen Ausdruck für das Feld „% in Hierarchiegruppe“ generiert, generiert er einen Ausdruck, der die Beziehung des Ressourcenausdrucks zur Funktion „CalculateExpression“ für den Ressourcenausdruck enthält, der für die aktuelle Gruppierung mit dem Berechnungstyp „Hierarchie“ berechnet wird.
  • Start. Gibt an, ab welchem ​​Datensatz das Fragment beginnen soll, in welchen Aggregatausdrucksfunktionen berechnet werden soll und aus welchem ​​Datensatz Feldwerte außerhalb der Aggregatfunktionen abgerufen werden sollen. Eine Zeichenfolge, die Folgendes enthält:
    • "Erste" Es ist erforderlich, den ersten Gruppierungsdatensatz abzurufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Beginn der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: First(3) – Empfang des dritten Datensatzes vom Beginn der Gruppierung. Wenn der erste Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie First(4) erhalten möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.
    • "Zuletzt" Sie müssen den letzten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Ende der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: Last(3) – Empfang des dritten Datensatzes vom Ende der Gruppe. Wenn der letzte Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie Last(4) abrufen möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.
    • "Vorherige" Sie müssen den vorherigen Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset zurück zum aktuellen Gruppierungsdatensatz verwendet wird. Beispiel: Previous(2) – Vorheriges aus dem vorherigen Datensatz abrufen. Wenn der vorherige Datensatz außerhalb der Gruppierung liegt (z. B. muss für den zweiten Gruppierungsdatensatz „Previous(3)“ abgerufen werden), wird der erste Gruppierungsdatensatz abgerufen. Beim Empfang des vorherigen Datensatzes für die Gruppierungssumme wird der erste Datensatz abgerufen.
    • "Nächste" Sie müssen den nächsten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom aktuellen Gruppierungsdatensatz nach vorne verwendet wird. Zum Beispiel Next(2) – das Nächste aus dem nächsten Datensatz abrufen. Wenn der nächste Datensatz über die Gruppierung hinausgeht, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Einträge vorhanden sind und der dritte Eintrag „Weiter“ erhält, wird davon ausgegangen, dass keine Einträge vorhanden sind. Wenn der nächste Datensatz für die Gruppierungssumme empfangen wird, wird davon ausgegangen, dass kein Datensatz vorhanden ist.
    • "Aktuell". Sie müssen den aktuellen Datensatz abrufen. Beim Abrufen einer Gruppierungssumme wird der erste Datensatz abgerufen.
    • "Grenzwert". Die Notwendigkeit, einen Datensatz mit dem angegebenen Wert zu erhalten. Nach dem Wort LimitingValue in Klammern müssen Sie den Ausdruck angeben, mit dessen Wert Sie das Fragment beginnen möchten, das erste Bestellfeld. Als Datensatz wird der erste Datensatz zurückgegeben, dessen Bestellfeldwert größer oder gleich dem angegebenen Wert ist. Wenn beispielsweise das Feld „Periode“ als Bestellfeld verwendet wird und es die Werte 01.01.2010, 01.02.2010, 01.03.2010 hat und Sie den LimitingValue(DateTime(2010) erhalten möchten , 1, 15)), dann wird ein Datensatz mit dem Datum 01.02.2010 erhalten.
  • Ende. Gibt an, bis zu welchem ​​Datensatz das Fragment fortgesetzt werden soll, in dem der Aggregatausdruck berechnet werden soll. Eine Zeichenfolge, die Folgendes enthält:
    • "Erste"
    • "Zuletzt"
    • "Vorherige"
    • "Nächste"
    • "Aktuell".
    • "Grenzwert".
  • Sortierung. Eine Zeichenfolge, die durch Kommas getrennt die Ausdrücke auflistet, in deren Richtung die Reihenfolge geordnet werden soll. Wenn nicht angegeben, erfolgt die Sortierung auf die gleiche Weise wie für die Gruppierung, für die der Ausdruck ausgewertet wird. Nach jedem Ausdruck können Sie das Schlüsselwort Ascending für die Sortierung in aufsteigender Reihenfolge, Descending für die Sortierung in absteigender Reihenfolge und Auto-Ordering für die Sortierung der Referenzfelder nach den Feldern angeben, nach denen Sie das referenzierte Objekt ordnen möchten. Das Wort „Automatische Reihenfolge“ kann sowohl mit dem Wort „Aufsteigend“ als auch mit dem Wort „Absteigend“ verwendet werden.
  • Hierarchische Sortierung. Ähnlich wie beim Sortieren. Wird zum Organisieren hierarchischer Datensätze verwendet. Wenn nicht angegeben, generiert der Layout-Compositor die Reihenfolge gemäß der im Parameter „Sort“ angegebenen Reihenfolge.
  • Verarbeitung gleicher Auftragswerte. Eine Zeichenfolge, die Folgendes enthält:
    • „Zusammen“ bedeutet, dass eine Folge geordneter Datensätze verwendet wird, um den vorherigen und den nächsten Datensatz zu bestimmen;
    • „Getrennt“ bedeutet, dass der vorherige und der nächste Datensatz anhand der Werte der Sortierausdrücke bestimmt werden;
    Wenn die resultierende Sequenz beispielsweise nach Datum sortiert ist:
    1. 01. Januar 2001 Ivanov M. 10
    2. 02. Januar 2001 Petrov S. 20
    3. 2. Januar 2001 Sidorov R. 30
    4. 03. Januar 2001 Petrov S. 40
    Bei Verwendung der Verarbeitung identischer Werte der Reihenfolge „Getrennt“ ist der vorherige für Datensatz 3 Datensatz 2 und bei Verwendung von „Zusammen“ Datensatz 1. Und das Fragment für den aktuellen Datensatz für Datensatz 2 für „Getrennt“ wird Datensatz 2 und für „Gemeinsam“ die Datensätze 2 und 3 sein. Somit beträgt die Gesamtsumme für den aktuellen Datensatz für „Getrennt“ 20 und für „Gemeinsam“ - 50. Wenn „Gemeinsam“ im Start und angegeben ist Endparameter können Sie keinen Offset für die Positionen „First“, „Last“, „Previous“, „Next“ angeben. Der Standardwert ist „Getrennt“.
Beispiel:
Ermitteln des Verhältnisses des Betrags für das Feld „Sales.AmountTurnover“ eines Gruppierungsdatensatzes zum Betrag desselben Felds im gesamten Layout:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

In diesem Beispiel wird der Wert der aktuellen Hierarchie berechnet:
Auswahl
Wenn Level() > 0
Dann EvaluateExpression("Reference", "Hierarchy")
Ansonsten Null
Ende

Anmerkungen:
Die Funktion berücksichtigt die Auswahl von Gruppierungen, berücksichtigt jedoch keine hierarchischen Auswahlen. Die Funktion kann nicht auf eine Gruppierung in der Gruppenauswahl dieser Gruppierung angewendet werden. Beispielsweise können Sie bei der Auswahl der Nomenklatur-Gruppierung nicht den Ausdruck CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 verwenden. Ein solcher Ausdruck kann jedoch bei der hierarchischen Auswahl verwendet werden. Wenn der Enddatensatz vor dem Startdatensatz liegt, wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind. Bei der Berechnung von Intervallausdrücken für eine Gesamtsumme (der Gruppierungsparameter ist auf „GrossTotal“ festgelegt) wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind. Beim Generieren eines Ausdrucks für die CalculateExpression-Funktion ersetzt der Layout-Compositor die CalculateExpression-Funktion durch NULL, wenn der Sortierausdruck Felder enthält, die nicht in der Gruppierung verwendet werden können.

3. Ausdruck mit Gruppenarray auswerten (EvalExpression With Group Array) - Die Funktion gibt ein Array zurück, dessen jedes Element das Ergebnis der Berechnung eines Ausdrucks zur Gruppierung nach dem angegebenen Feld enthält.

Syntax:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Optionen :

  • Ausdruck(String) – der auszuwertende Ausdruck. Beispiel: „Amount(AmountTurnover)“;
  • FieldExpressionsGroups
  • Auswahl von Datensätzen
  • Auswahl von Gruppierungen- Auswahl wird auf Gruppendatensätze angewendet. Zum Beispiel: „Betrag(AmountTurnover) > &Parameter1“.
Beispiel:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Wenn der Layout-Builder Ausdrücke generiert, um ein benutzerdefiniertes Feld anzuzeigen, dessen Ausdruck nur die Funktion CalculateArrayWithGroup enthält, generiert er den Ausgabeausdruck so, dass die Anzeigedaten und die Daten geordnet sind.
Beispielsweise für ein benutzerdefiniertes Feld mit dem Ausdruck:
CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty")
Der Layout-Builder generiert den folgenden Ausdruck für die Ausgabe:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Ausdruck mit GroupValueTable berechnen (EvalExpressionWithGroupValueTable) - Die Funktion gibt eine Wertetabelle zurück, deren jedes Element das Ergebnis der Berechnung eines Ausdrucks zur Gruppierung nach dem angegebenen Feld enthält.

Syntax:
CalculateExpressionWithGroupValueTable (Ausdruck, GroupField-Ausdrücke, Datensatzauswahl, Gruppenauswahl)

Optionen :

  • Ausdruck(String) – der auszuwertende Ausdruck. Eine Zeile kann mehrere durch Kommas getrennte Ausdrücke enthalten. Nach jedem Ausdruck kann ein optionales Schlüsselwort AS und der Name der Wertetabellenspalte stehen. Beispiel: „Gegenpartei, Betrag (AmountTurnover) als Verkaufsvolumen.“
  • FieldExpressionsGroups- Ausdrücke von Gruppierungsfeldern, durch Kommas getrennt. Beispiel: „Gegenpartei, Partei“;
  • Auswahl von Datensätzen– ein Ausdruck, der auf Detaildatensätze angewendet wird. Beispiel: „Löschkennzeichen = Falsch.“ Wenn dieser Parameter eine Aggregatfunktion verwendet, tritt beim Zusammenstellen der Daten ein Fehler auf.
  • Auswahl von Gruppierungen- Auswahl wird auf Gruppendatensätze angewendet. Zum Beispiel: „Betrag(AmountTurnover) > &Parameter1“.
Beispiel:
Berechnen Sie den Ausdruck mit der Gruppierungstabelle der Werte („Konto als Gegenpartei, Betrag (Umsatzbetrag) als Verkaufsvolumen“, „Konto“)

Das Ergebnis dieser Funktion ist eine Wertetabelle mit den Spalten Kontrahent und Verkaufsvolumen, die Kontrahenten mit ihren Verkaufsvolumina enthält.
Der Layout-Compositor wandelt beim Generieren eines Layouts Funktionsparameter in Begriffe von Datenzusammensetzungs-Layoutfeldern um. Beispielsweise wird das Feld „Konto“ in „DataSet.Account“ konvertiert.
Beispielsweise ein benutzerdefiniertes Feld mit dem Ausdruck:
CalculateExpressionWithGroupValueTable("Account, Amount(AmountTurnover)", "Account")
Der Layout-Builder generiert den folgenden Ausdruck für die Ausgabe:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), „2, 4“))

5. Ebene - Die Funktion dient dazu, den aktuellen Aufnahmepegel zu ermitteln.

Syntax:
Ebene()

Beispiel:
Ebene()

6. Sequenznummer - Holen Sie sich die nächste Seriennummer.

Syntax:
NumberByOrder()

Beispiel:
NumberByOrder()

7. SequenceNumberInGrouping – gibt die nächste Sequenznummer in der aktuellen Gruppierung zurück.

Beispiel:
NumberByOrderInGroup()

8. Formatieren - Holen Sie sich eine formatierte Zeichenfolge des übergebenen Werts.

Syntax:
Format(Wert, FormatString)

Optionen :

  • Bedeutung– der Ausdruck, der formatiert werden muss;
  • FormatString- Die Formatzeichenfolge wird gemäß der 1C:Enterprise-Formatzeichenfolge festgelegt.
Beispiel:
Format(Consumable Invoices.Doc Amount, „NPV=2“)

9. BeginOfPeriod

Syntax:
StartPeriod(Datum, Periodentyp)

Optionen :

  • Datum(Datum von). Angegebenes Datum;
  • Periodentyp
Beispiel:
StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Monat“)
Ergebnis: 01.10.2002 0:00:00

10. EndOfPeriod - Die Funktion dient dazu, ein bestimmtes Datum aus einem bestimmten Datum auszuwählen.

Syntax:
EndPeriod(Datum, Periodentyp)

Optionen :

  • Datum(Datum von). Angegebenes Datum;
  • Periodentyp(Linie). Enthält einen der folgenden Werte: Minute; Stunde; Der Tag; Die Woche; Monat; Quartal; Jahr; Jahrzehnt; Halbes Jahr.
Beispiel:
EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Woche“)
Ergebnis: 13.10.2002 23:59:59

11. AddKDate (DateAdd) - Die Funktion soll dem Datum einen bestimmten Wert hinzufügen.

Syntax:
AddToDate(Ausdruck, Inkrementtyp, Magnitude)

Optionen :

  • Ausdruck(Datum von). Ursprüngliches Datum;
  • TypVergrößerung(Linie). Enthält einen der folgenden Werte: Minute; Stunde; Der Tag; Die Woche; Monat; Quartal; Jahr; Jahrzehnt; Halbes Jahr.
  • Größe(Nummer). Um wie viel das Datum erhöht werden muss, wird der Bruchteil ignoriert.
Beispiel:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Monat", 1)
Ergebnis: 12.11.2002 10:15:34

12. Datumsunterschied - Die Funktion dient dazu, die Differenz zwischen zwei Datumsangaben zu ermitteln.

Syntax:
DifferenceDate(Expression1, Expression2, DifferenceType)

Optionen :

  • Ausdruck1(Datum von). Subtrahiertes Datum;
  • Ausdruck2(Datum von). Ursprüngliches Datum;
  • Typunterschied(Linie). Enthält einen der Werte: Second; Minute; Stunde; Der Tag; Monat; Quartal; Jahr.
Beispiel:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), „DAY“)
Ergebnis: 2

13. Teilzeichenfolge – Diese Funktion dient zum Extrahieren eines Teilstrings aus einem String.

Syntax:
Teilzeichenfolge (Zeichenfolge, Position, Länge)

Optionen :

  • Linie(Linie). Die Zeichenfolge, aus der die Teilzeichenfolge extrahiert wird;
  • Position(Nummer). Die Position des Zeichens, an der die aus der Zeichenfolge zu extrahierende Teilzeichenfolge beginnt;
  • Länge(Nummer). Länge des zugewiesenen Teilstrings.
Beispiel:
SUBSTRING(Accounts.Address, 1, 4)

14. StringLength - Die Funktion soll die Länge einer Zeichenfolge bestimmen.

Syntax:
StringLength(String)

Parameter:

  • Linie(Linie). Eine Zeichenfolge, deren Länge angegeben ist.
Beispiel:
Zeile(Gegenparteien.Adresse)

15 Jahre– Diese Funktion dient dazu, das Jahr aus einem Wert vom Typ „Datum“ zu extrahieren.

Syntax:
Jahr (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem das Jahr bestimmt wird.
Beispiel:
JAHR (Ausgabendatum)

16. Viertel – Diese Funktion dient dazu, die Quartalszahl aus einem Wert vom Typ „Datum“ zu extrahieren. Die Quartalszahl liegt normalerweise zwischen 1 und 4.

Syntax:
Quartal (Datum)

Parameter:

  • Datum(Datum von). Das Datum, bis zu dem das Quartal bestimmt wird
Beispiel:
QUARTER(Ausgaben.Datum)

17. Monat – Diese Funktion dient dazu, die Monatszahl aus einem Wert vom Typ „Datum“ zu extrahieren. Die Monatszahl liegt normalerweise zwischen 1 und 12.

Syntax:
Monatsdatum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem der Monat bestimmt wird.
Beispiel:
MONAT (Ausgabendatum)

18. Tag des Jahres (DayOfYear) – Diese Funktion dient dazu, den Tag des Jahres aus einem Wert vom Typ „Datum“ zu ermitteln. Der Tag des Jahres liegt normalerweise zwischen 1 und 365 (366).

Syntax:
Tag des Jahres (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen der Tag im Jahr bestimmt wird.
Beispiel:
DAYYEAR(ExpenseAccount.Date)

19. Tag– Diese Funktion dient dazu, den Tag des Monats aus einem Wert vom Typ „Datum“ zu ermitteln. Der Tag des Monats liegt normalerweise zwischen 1 und 31.

Syntax:
Tag (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen der Tag des Monats bestimmt wird.
Beispiel:
TAG (Ausgabendatum)

20. Woche – Diese Funktion dient dazu, die Wochennummer des Jahres aus einem Wert vom Typ „Datum“ zu ermitteln. Die Wochen des Jahres werden beginnend mit 1 nummeriert.

Syntax:
Woche (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem die Wochennummern bestimmt werden.
Beispiel:
WOCHE (Ausgabendatum)

21. Wochentag – Diese Funktion dient dazu, den Wochentag aus einem Wert vom Typ „Datum“ zu ermitteln. Der normale Wochentag reicht von 1 (Montag) bis 7 (Sonntag).

Syntax:
Wochentag (Datum)

Parameter:

  • Datum(Datum von). Das Datum, nach dem der Wochentag bestimmt wird.
Beispiel:
TAG DER WOCHE (Ausgabendatum)

22. Stunde– Diese Funktion dient dazu, die Tageszeit aus einem Wert vom Typ „Datum“ zu ermitteln. Die Tageszeit reicht von 0 bis 23.

Syntax:
Stunde (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Stunde des Tages bestimmt wird.
Beispiel:
STUNDE (Ausgabendatum)

23. Minute – Diese Funktion dient dazu, die Minute der Stunde aus einem Wert vom Typ „Datum“ zu ermitteln. Die Minute der Stunde reicht von 0 bis 59.

Syntax:
Minute (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Minute der Stunde bestimmt wird.
Beispiel:
MINUTE(Ausgabendatum)

24. Zweitens – Diese Funktion dient dazu, die Sekunde einer Minute aus einem Wert vom Typ „Datum“ zu ermitteln. Die Sekunde einer Minute reicht von 0 bis 59.

Syntax:
Sekunde (Datum)

Parameter:

  • Datum(Datum von). Das Datum, anhand dessen die Sekunden der Minute bestimmt werden.
Beispiel:
SECOND(Ausgabendatum)

25. Besetzung – Diese Funktion dient zum Extrahieren eines Typs aus einem Ausdruck, der möglicherweise einen zusammengesetzten Typ enthält. Wenn der Ausdruck einen anderen Typ als den erforderlichen Typ enthält, wird NULL zurückgegeben.

Syntax:
Express(Expression, TypeIndication)

Optionen :

  • Ausdruck- zu konvertierender Ausdruck;
  • Typangabe(Linie). Enthält eine Typzeichenfolge. Zum Beispiel „Number“, „String“ usw. Zusätzlich zu primitiven Typen kann diese Zeile den Namen der Tabelle enthalten. In diesem Fall wird versucht, einen Verweis auf die angegebene Tabelle auszudrücken.
Beispiel:
Express(Data.Props1, "Number(10,3)")

26. IsNull (IsNull) – Diese Funktion gibt den Wert des zweiten Parameters zurück, wenn der Wert des ersten Parameters NULL ist. Andernfalls wird der Wert des ersten Parameters zurückgegeben.

Syntax:
IsNull(Ausdruck1, Ausdruck2)

Optionen :

  • Ausdruck1- zu prüfender Wert;
  • Ausdruck2– Rückgabewert, wenn Ausdruck1 NULL ist.
Beispiel:
YesNULL(Amount(Sales.AmountTurnover), 0)

27.ACos- Berechnet den Arkuskosinus im Bogenmaß.

Syntax:
ACos(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Kosinuswert (im Bereich -1 ... 1), durch den der Winkel bestimmt wird.
28.ASin- Berechnet den Arkussinus im Bogenmaß.

Syntax:
ASin(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Sinuswert (im Bereich -1 ... 1), durch den der Winkel bestimmt wird.
29. ATan- berechnet den Arkustangens im Bogenmaß.

Syntax:
ATan(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Tangentenwert, durch den der Winkel bestimmt wird.
30.Cos- berechnet den Kosinus.

Syntax:
Cos(Ausdruck)

Parameter:

  • Ausdruck
31. Exp- Potenzierung der Zahl e.

Syntax:
Exp(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Die Bedeutung des Abschlusses.
32.Protokoll- berechnet den natürlichen Logarithmus.

Syntax:
Protokoll (Ausdruck)

Parameter:

  • Ausdruck
33.Log10- berechnet den Logarithmus von X zur Basis 10.

Syntax:
Log10 (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Die ursprüngliche Zahl ist größer als 0.
34. Pow- Potenzierung.

Syntax:
Pow(Basis, Indikator)

Optionen :

  • Base(Nummer). Die Grundlage der Potenzierungsoperation.
  • Index(Nummer). Exponent.
35. Sünde- berechnet den Sinus.

Syntax:
Sünde (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Angabe im Bogenmaß.
36. Quadrat- berechnet die Quadratwurzel.

Syntax:
Sqrt(Ausdruck)

Parameter:

  • Ausdruck(Nummer). Nicht negative Zahl.
37. Bräune- berechnet den Tangens.

Syntax:
Tan (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Der Sinuswert, durch den der Winkel bestimmt wird.
38. Runde- Rundet die ursprüngliche Zahl auf die erforderliche Bittiefe. Der Rundungsmodus ist Standard (1,5 als 2).

Syntax:
Env(Ausdruck, Bittiefe)

Optionen :

  • Ausdruck(Nummer). Originalnummer;
  • Bittiefe(Nummer). Die Anzahl der Dezimalstellen, auf die gerundet werden soll.
39. Int- schneidet den Bruchteil einer Zahl ab.

Syntax:
Objekt (Ausdruck)

Parameter:

  • Ausdruck(Nummer). Eine Bruchzahl.
40. Funktionen gemeinsamer Module

Ein Datenkompositions-Engine-Ausdruck kann Aufrufe von Funktionen globaler gemeinsamer Konfigurationsmodule enthalten. Für den Aufruf solcher Funktionen ist keine zusätzliche Syntax erforderlich.

Beispiel:
AbbreviatedName(Documents.Link, Documents.Date, Documents.Number)

In diesem Beispiel wird die Funktion „AbbreviatedName“ aus dem allgemeinen Konfigurationsmodul aufgerufen.
Beachten Sie, dass die Verwendung allgemeiner Modulfunktionen nur zulässig ist, wenn der entsprechende Parameter des Datenkompositionsprozessors angegeben ist.
Darüber hinaus können Funktionen allgemeiner Module nicht in benutzerdefinierten Feldausdrücken verwendet werden.

41. Ressentiments – Diese Funktion gibt eine Zeichenfolgendarstellung des übergebenen Werts eines nicht-primitiven Typs zurück. Gibt bei Werten eines primitiven Typs den Wert selbst zurück.

<Пустое значение>".

Beispiel:
Präsentation (Gegenpartei)

42. Schnur - Diese Funktion wandelt den übergebenen Wert in einen String um.

Wenn ein Array oder eine Wertetabelle als Parameter verwendet wird, gibt die Funktion einen String zurück, der eine String-Darstellung aller Elemente des Arrays enthält, getrennt durch die Zeichen „;“. Wenn ein Element eine leere Zeichenfolgendarstellung hat, dann ist die Zeichenfolge „<Пустое значение>".

Beispiel:
Zeile (Verkaufsdatum)

43. ValueIsFilled

Für NULL-Werte gibt Undefiniert immer False zurück.
Bei booleschen Werten wird immer „True“ zurückgegeben.
Bei anderen Typen wird „True“ zurückgegeben, wenn der Wert vom Standardwert für den angegebenen Typ abweicht.

Beispiel:
ValueFilled(DeliveryDate)

44. LevelInGroup – Diese Funktion ermittelt den aktuellen Aufnahmepegel relativ zur Gruppierung.

Kann verwendet werden, um die Verschachtelungsebene eines Datensatzes in einer hierarchischen Gruppierung zu ermitteln.

Beispiel:
LevelInGroup()

45. Werttyp

Syntax:
ValueType(Ausdruck)

Parameter:

  • Ausdruck(Linie). String-Werttyp.
Gibt einen Wert vom Typ Type zurück, der den Werttyp des Funktionsparameters enthält.

Grüße, meine lieben Leser! Schauen wir uns weiterhin die Grundlagen des Layoutsystems an. In dieser Artikelserie haben Sie die Unterschiede zwischen einer Datensatzabfrage und einer regulären Abfrage kennengelernt. Sie haben sich auch mit den Parametern virtueller Tabellen befasst und sich mit der Abfragesprachenerweiterung vertraut gemacht. Schauen Sie sich nun den Inhalt an, um zu sehen, was Sie hier lernen werden. Viel Glück!

Funktionen der SKD-Ausdruckssprache.

Wenn eine Abfrage im Layout erstellt wird, werden darin die Standardfunktionen der Abfragesprache verwendet. Aber das Zutrittskontrollsystem ermöglicht es Ihnen, zusätzliche Funktionen zu definieren. Einige Funktionen ähneln Funktionen aus der Abfragesprache, verwenden jedoch eine andere Syntax. Zum Beispiel die Funktion „Periodenbeginn“:

StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Monat“)

Diese Funktion unterscheidet sich von der Abfragesprachenfunktion im zweiten Parameter. Hier wird die Zeichenfolge „Month“ verwendet, während in der Abfragesprachenfunktion das Literal MONTH verwendet wird.

Funktionsbeschreibungen finden Sie im Konfigurator: Hilfe -> Inhalt -> Datenkompositionssystem -> Ausdruckssprache des Datenkompositionssystems -> Funktionen der Ausdruckssprache des Datenkompositionssystems.

Wo können Sie die Funktionen der SKD-Ausdruckssprache nutzen, wenn diese nicht in der Abfragesprache verwendet werden können?

  • Auf der Registerkarte in der Spalte „Ausdruck“.
  • Auf der Registerkarte „Parameter“ in der Spalte „Ausdruck“.
  • Auf der Registerkarte „Einstellungen“ in der Spalte „Benutzerdefinierte Felder“. Der Benutzer kann seine eigenen Felder erstellen und Ausdrücke dafür schreiben.
  • Auf der Registerkarte „Datensätze“ in den Spalten „Darstellungsausdrücke“ und „Bestellausdrücke“.
    Dies sind Ausdrücke, die Datenzusammensetzungsfelder konfigurieren.

Merkmale des ACS-Betriebs.

Bei der Verwendung einer Datensatzabfrage werden eine Reihe von Funktionen angezeigt
bei der Optimierung von ACS.

  • Die resultierende Abfrage wird entsprechend den Berichtsoptionseinstellungen reduziert.
    weil einige Felder in der resultierenden Abfrage entfernt werden.
  • Darüber hinaus können Tabellen aus der resultierenden Abfrage gelöscht werden, wenn die Abfrage temporäre Tabellen beschreibt und diese nirgendwo anders verwendet werden.
  • Gleiches gilt für Datensätze: Wenn wir viele Datensätze in einem Schema beschrieben haben, aber nur einige davon verwenden, werden nur die verwendeten Datensätze vom System zur Informationsbeschaffung verwendet und die restlichen Datensätze werden daraus entfernt das resultierende Datenlayout-Layout.

Könnten diese Merkmale negative Folgen haben? Ja, denn in manchen Fällen wird die von uns gewünschte Anfrage nicht generiert. Daher müssen Sie diese Funktionen beim Erstellen komplexer Abfragen berücksichtigen.

Grundeinstellungen von ACS-Feldern.

Auf der Registerkarte „Datensätze“ werden beim Erstellen eines Datensatzes des Abfragetyps die Layoutfelder automatisch ausgefüllt. Wie Sie sehen, enthalten die Felder eine Vielzahl von Einstellungen.

Spalte "Feld" enthält den Namen des Feldes, der aus der Informationsbasis (IB) bezogen wird.
Ein unveränderlicher Wert, der in der Anfrage fest codiert ist. Es entspricht dem Anforderungsalias.

Aber es gibt eine Besonderheit. Wenn wir im Query Builder auf der Registerkarte „Joins/Aliases“ in der Spalte „Field Name“ einen Alias, zum Beispiel „Item“, in „Product“ ändern, erscheint in der Spalte „Data“ ein neues Feld „Product“. „Sets“-Registerkarte des Layouts, gleichzeitig bleibt aber das Feld „Nomenklatur“ erhalten. Dies liegt daran, dass das AutoComplete-Flag gesetzt ist. Bei diesem Setup kann das System nicht erkennen, dass das Feld „Produkt“ mit dem Feld „Artikel“ identisch ist, daher wird das Feld für alle Fälle zweimal hinzugefügt.

Könnte dieses Design das Benutzererlebnis beeinträchtigen? Ja. Immerhin erscheinen in den Einstellungen der Berichtsoption zwei Felder „Produkt“ und „Artikel“. Für den Benutzer wird der Unterschied nicht klar sein, obwohl diese Auswahlmöglichkeiten identisch sind.

Sie können jedoch das Erscheinen des Felds „Nomenklatur“ ausschließen, indem Sie in den Feldeinstellungen auf der Registerkarte „Datensätze“ die Kontrollkästchen in den Spalten „Feldbeschränkung“ – „Bedingung“ und „Beschränkung der Details“ – „Bedingung“ aktivieren. Darüber hinaus können Sie im Query Designer auf der Registerkarte „Data Composition“ das Flag „Autofill“ deaktivieren und alle Felder ausfüllen.

Spalte "Weg" Gibt an, wie wir auf allen Datenlayout-Registerkarten auf das Feld zugreifen. Ein Wert, der nach Ihrem Ermessen geändert werden kann. Im Pfadnamen sind Leerzeichen zulässig, der Name wird jedoch in eckige Klammern eingeschlossen. Es ist jedoch besser, wenn der Pfad keine Leerzeichen enthält, da es sich um ein Servicefeld handelt. Es ist besser, den Titel zu ändern, indem Sie die Spalte „Titel“ überprüfen.

Warum war es notwendig, zwei verschiedene Felder „Feld“ und „Pfad“ zu erstellen, wenn ihre Namen fast immer gleich sind? Weil viele Datensätze verwendet werden. Wenn es sich bei dem zweiten Datensatz beispielsweise um eine Union handelt, müssen die Pfade identisch sein, damit die Felder übereinstimmen. In anderen Fällen können die Pfade unverändert bleiben, wenn ihre Namen klar sind.

Sie können die folgende Methode verwenden, um mit der Spalte „Pfad“ zu arbeiten. Durch die Angabe eines Pfades können Sie verschachtelte virtuelle Attribute eines Elements erstellen. Platzieren wir beispielsweise das Attribut „Qualität“ innerhalb des Attributs „Produkt“. Ändern wir das Feld „Pfad“ des Attributs „Qualität“ in „Produkt.Qualität“. Jetzt finden wir auf der Registerkarte „Einstellungen“ der Registerkarte „Ausgewählte Felder“ das Feld „Qualität“ nicht, es erscheint jedoch im Feld „Produkt“.

Schauen wir uns die Einstellungen für die Barrierefreiheitsbeschränkung genauer an. Wie Sie sehen, gibt es zwei Zeilen, um die Barrierefreiheit in Spalten einzuschränken „Feldgrenze“ Und „Einschränkung der Details“.

ACS-Feldbegrenzungsspalten

Die Spalte „Feldbeschränkung“ bedeutet, dass Einschränkungen für das Feld selbst gelten. Die Spalte „Einschränkung der Details“ bedeutet, dass Einschränkungen für die verschachtelten Details dieses Felds gelten, wenn das Feld zu einem komplexen Datentyp gehört, beispielsweise einem Verzeichnis oder Dokument.

Jede Zeile ist in vier weitere Spalten unterteilt. Wenn das Flag für ein Feld oder Details dieses Feldes gesetzt ist:

  • Feld, dann stehen sie im Reiter „Ausgewählte Felder“ im Reiter „Einstellungen“ nicht zur Auswahl zur Verfügung.
  • Zustand, dann sind sie nicht als Bedingung auf der Registerkarte „Einstellungen“ in der Registerkarte „Auswahl“ verfügbar.
  • Gruppe, dann ist beim Erstellen einer neuen Gruppierung auf der Registerkarte „Einstellungen“ die Gruppierung nach diesen nicht verfügbar.
  • Arrangieren, dann stehen sie im Reiter „Einstellungen“ im Reiter „Sortierung“ nicht zur Bestellung zur Verfügung.

Spalte „Repräsentationsausdruck“ Aufgrund des Berichts musste die Darstellung des Feldes geändert werden. Beispielsweise müssen Sie nicht nur den Namen des Produkts, sondern auch dessen Artikelnummer anzeigen. Daher können Sie in dieser Spalte Folgendes schreiben:

Produkt. Artikel + „-“ + Produkt. Name

In diesem Bereich können wir alle Möglichkeiten der SKD-Sprache nutzen und auf die Funktionen gängiger Module zugreifen.

Wenn es in der Konfiguration ein allgemeines Modul namens „For SKD“ gibt und in diesem Modul eine allgemeine (mit dem Schlüsselwort „Export“) Funktion „GetView“ mit dem Parameter „Link“ definiert ist, dann im Feld „View Expression“ wir werde schreiben:

Für SKD. GetView(Produkt)

Sie müssen diese Möglichkeit jedoch sorgfältig nutzen, insbesondere wenn die Funktion des allgemeinen Moduls den Zugriff auf die Datenbank beinhaltet, da dieser Zugriff erfolgt, nachdem alle Daten für den Bericht empfangen wurden. Tatsächlich wird die Abfrage für jede Zeile erneut ausgeführt.

Spalte „Bestellender Ausdruck“ Wird benötigt, um eine nicht standardmäßige Sortierung zu definieren. Hier können Sie die gleichen Konstrukte verwenden wie im Feld „View Expression“.

Nun, ich habe dir alles erzählt, wie versprochen. Wenn Sie Fragen haben, schreiben Sie diese in die Kommentare. Damit Ihnen der Stoff besser im Gedächtnis bleibt, bereite ich einen Test vor.

Im Hinblick auf die bevorstehende Veröffentlichung von 8.2.14 werde ich versuchen, einige neue Funktionen des Datenkompositionssystems zu beschreiben.

Öffnen Sie das Datenlayoutdiagramm, vorzugsweise in einem externen Bericht, um die Bearbeitung zu erleichtern.

Wir fügen einen Datensatz des Abfragetyps hinzu und schreiben entweder manuell oder mit dem Abfrage-Designer eine einfache Abfrage:

1. Richten Sie eine Anfrage im Zutrittskontrollsystem ein.

2. Richten Sie berechnete Felder im Zutrittskontrollsystem ein

3. Konfigurieren Sie das Datenlayout auf der Registerkarte „Einstellungen“.

4. Starten Sie 1C Enterprise 8.2.14. Öffnen Sie den Bericht. Wir formen, wir empfangen.

Beschreibung der neuen Funktionen selbst:

1. Das aktuelle Datum()

Gibt das Systemdatum zurück. Beim Erstellen eines Layout-Layouts wird in allen im Layout vorhandenen Ausdrücken die Funktion CurrentDate() durch den Wert des aktuellen Datums ersetzt.

2. COMPUTEEXPRESSION()

Syntax:

CalculateExpression(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Beschreibung:

Die Funktion dient dazu, einen Ausdruck im Kontext einer Gruppierung auszuwerten.

Die Funktion berücksichtigt die Auswahl von Gruppierungen, berücksichtigt jedoch keine hierarchischen Auswahlen.

Die Funktion kann nicht auf eine Gruppierung in der Gruppenauswahl dieser Gruppierung angewendet werden. Beispielsweise können Sie bei der Auswahl der Nomenklaturgruppe nicht den Ausdruck CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 verwenden. Ein solcher Ausdruck kann jedoch bei der hierarchischen Auswahl verwendet werden.

Wenn der Enddatensatz vor dem Startdatensatz liegt, wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind.

Bei der Berechnung von Intervallausdrücken für eine Gesamtsumme (der Gruppierungsparameter ist auf „GrandTotal“ festgelegt) wird davon ausgegangen, dass keine Datensätze zur Berechnung detaillierter Daten und zur Berechnung von Aggregatfunktionen vorhanden sind.

Beim Generieren eines Ausdrucks für die CalculateExpression-Funktion ersetzt der Layout-Compositor die CalculateExpression-Funktion durch NULL, wenn der Sortierausdruck Felder enthält, die nicht in der Gruppierung verwendet werden können.

Optionen

<Выражение>

Typ: Zeichenfolge. Der auszuwertende Ausdruck.

<Группировка>

Typ: Zeichenfolge. Enthält den Namen der Gruppierung, in deren Kontext der Ausdruck ausgewertet werden soll. Wenn als Gruppierungsname eine leere Zeichenfolge verwendet wird, wird die Berechnung im Kontext der aktuellen Gruppierung durchgeführt. Wenn der GrandTotal-String als Gruppenname verwendet wird, wird die Berechnung im Kontext der Gesamtsumme durchgeführt. Andernfalls wird die Berechnung im Kontext der gleichnamigen übergeordneten Gruppe durchgeführt.

Zum Beispiel:

Sum(Sales.SumTurnover)/Calculate(„Sum(Sales.SumTurnover)“, „Total“)

In diesem Beispiel ist das Ergebnis das Verhältnis des Betrags für das Feld Sales.SumTurnover des Gruppierungsdatensatzes zum Betrag desselben Felds im gesamten Layout;

<ОбластьВычисления>

Typ: Zeichenfolge. Der Parameter kann folgende Werte annehmen:

  • GeneralTotal – der Ausdruck wird für alle Gruppierungsdatensätze berechnet.
  • Hierarchie – Der Ausdruck wird für den übergeordneten hierarchischen Datensatz ausgewertet, falls einer vorhanden ist, und für die gesamte Gruppierung, wenn kein übergeordneter hierarchischer Datensatz vorhanden ist.
  • Gruppierung – der Ausdruck wird für den aktuellen Gruppierungsdatensatz ausgewertet.
  • Nicht-Ressourcen-Gruppierung – Bei der Berechnung einer Funktion für einen Gruppendatensatz nach Ressource wird der Ausdruck für den ersten Gruppendatensatz der ursprünglichen Gruppierung ausgewertet.

Bei der Berechnung einer Funktion CalculateExpression() Mit dem Wert „Nicht-Ressourcengruppierung“ für Gruppendatensätze, die keine Ressourcengruppierungen sind, wird die Funktion auf die gleiche Weise berechnet, wie sie berechnet würde, wenn der Parameterwert gleich dem Gruppierungswert wäre.

Der Datenzusammensetzungslayout-Generator platziert beim Generieren eines Datenzusammensetzungslayouts und bei der Ausgabe des Ressourcenfelds, nach dem die Gruppierung im Layout durchgeführt wird, einen Ausdruck im Layout, der mithilfe der Funktion berechnet wird CalculateExpression(), was den Parameter „Nicht-Ressourcen-Gruppierung“ angibt. Für andere Ressourcen werden die üblichen Ressourcenausdrücke in der Ressourcengruppierung platziert.

<Начало>

Typ: Zeichenfolge. Gibt an, ab welchem ​​Datensatz das Fragment beginnen soll, in welchen Aggregatausdrucksfunktionen berechnet werden soll und aus welchem ​​Datensatz Feldwerte außerhalb der Aggregatfunktionen abgerufen werden sollen. Der Wert kann einer der folgenden sein:

<Конец>

Typ: Zeichenfolge. Gibt an, bis zu welchem ​​Datensatz das Fragment fortgesetzt werden soll, in dem die Aggregatfunktionen des Ausdrucks berechnet werden sollen. Der Wert kann einer der folgenden sein:

  • Erste. Es ist erforderlich, den ersten Gruppierungsdatensatz abzurufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Beginn der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: First(3) – Empfang des dritten Datensatzes vom Beginn der Gruppierung.

Wenn der erste Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie First(4) erhalten möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.

  • Zuletzt. Sie müssen den letzten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom Ende der Gruppierung verwendet wird. Der resultierende Wert muss eine ganze Zahl größer als Null sein. Beispiel: Last(3) – Empfang des dritten Datensatzes vom Ende der Gruppe.

Wenn der letzte Datensatz außerhalb der Gruppierung liegt, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Sie den letzten (4) abrufen möchten, wird davon ausgegangen, dass keine Datensätze vorhanden sind.

  • Vorherige. Sie müssen den vorherigen Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset zurück zum aktuellen Gruppierungsdatensatz verwendet wird. Beispiel: Previous(2) – Vorheriges aus dem vorherigen Datensatz abrufen.

Wenn der vorherige Datensatz über die Gruppierung hinausgeht (z. B. müssen Sie für den zweiten Gruppierungsdatensatz Previous(3) abrufen, wird der erste Gruppierungsdatensatz abgerufen.

Beim Abrufen des vorherigen Datensatzes für eine Gruppierungssumme wird davon ausgegangen, dass der erste Datensatz abgerufen wird.

  • Nächste. Sie müssen den nächsten Gruppierungsdatensatz abrufen. Nach dem Wort in Klammern können Sie einen Ausdruck angeben, dessen Ergebnis als Offset vom aktuellen Gruppierungsdatensatz nach vorne verwendet wird. Zum Beispiel Next(2) – das Nächste aus dem nächsten Datensatz abrufen.

Wenn der nächste Datensatz über die Gruppierung hinausgeht, wird davon ausgegangen, dass keine Datensätze vorhanden sind. Wenn beispielsweise drei Datensätze vorhanden sind und Next() für den dritten Datensatz empfangen wird, wird davon ausgegangen, dass keine Datensätze vorhanden sind.

Wenn der nächste Datensatz für die Gruppierungssumme empfangen wird, wird davon ausgegangen, dass kein Datensatz vorhanden ist.

  • Aktuell. Sie müssen den aktuellen Datensatz abrufen.

Beim Abrufen einer Gruppierungssumme wird der erste Datensatz abgerufen.

  • Grenzwert. Die Notwendigkeit, einen Datensatz mit dem angegebenen Wert zu erhalten. Nach dem Wort LimitingValues ​​​​in Klammern müssen Sie den Ausdruck angeben, mit dessen Wert Sie das Fragment beginnen möchten, das erste Bestellfeld.

Als Datensatz wird der erste Datensatz zurückgegeben, dessen Bestellfeldwert größer oder gleich dem angegebenen Wert ist. Wenn beispielsweise das Feld „Periode“ als Bestellfeld verwendet wird und es die Werte 01.01.2010, 01.02.2010, 01.03.2010 hat und Sie den LimitingValue(DateTime(2010) erhalten möchten , 1, 15)), dann wird ein Datensatz mit dem Datum 01.02.2010 erhalten.

<Сортировка>

Typ: Zeichenfolge. Listet durch Kommas getrennte Ausdrücke auf, die die Sortierregeln beschreiben. Wenn nicht angegeben, erfolgt die Sortierung auf die gleiche Weise wie für die Gruppierung, für die der Ausdruck ausgewertet wird. Nach jedem Ausdruck können Sie die Schlüsselwörter Ascending (für die Sortierung in aufsteigender Reihenfolge), Descending (für die Sortierung in absteigender Reihenfolge) und AutoOrder (für die Sortierung der Referenzfelder nach den Feldern, nach denen Sie das referenzierte Objekt ordnen möchten) angeben. Das Wort „Automatische Reihenfolge“ kann sowohl mit dem Wort „Aufsteigend“ als auch mit dem Wort „Absteigend“ verwendet werden.

<ИерархическаяСортировка>

Typ: Zeichenfolge. Identisch mit der Sortieroption. Wird zum Organisieren hierarchischer Datensätze verwendet. Wenn nicht angegeben, generiert der Layout-Compositor die Reihenfolge gemäß der im Parameter „Sort“ angegebenen Reihenfolge.

<ОбработкаОдинаковыхЗначенийПорядка>

Typ: Zeichenfolge. Gibt die Regel zur Bestimmung des vorherigen oder nächsten Datensatzes an, falls mehrere Datensätze mit demselben Bestellwert vorhanden sind:

  • Separat bedeutet, dass eine Folge geordneter Datensätze verwendet wird, um die vorherigen und nächsten Datensätze zu bestimmen. Standardwert.
  • Zusammen bedeutet, dass der vorherige und der nächste Datensatz basierend auf den Werten der Sortierausdrücke bestimmt werden.

Wenn die resultierende Sequenz beispielsweise nach Datum sortiert ist:

Datum Vollständiger Name Bedeutung
1 1. Januar 2001 Ivanov M. 10
2 02. Januar 2001 Petrov S. 20
3 3. Januar 2001 Sidorov R. 30
4 4. Januar 2001 Petrov S. 40

Wenn der Parameterwert „Separat“ lautet, gilt Folgendes:

§ Der vorherige Eintrag zu Eintrag 3 wird Eintrag 2 sein.

§ Wenn das Berechnungsfragment als Current, Current definiert ist (bzw. die Parameter Start und End), dann besteht dieses Fragment für Datensatz 2 aus einem Datensatz 2. Der Ausdruck CalculateExpression(“Sum (Value)”, Current, Current) wird gleich 20 sein.

Wenn der Parameterwert Together ist, dann:

§ Der vorherige Eintrag zu Eintrag 3 wird Eintrag 1 sein.

§ Wenn das Berechnungsfragment als „Aktuell“, „Aktuell“ (bzw. die Parameter „Start“ und „Ende“) definiert ist, besteht dieses Fragment für Datensatz 2 aus den Datensätzen 2 und 3. Der Ausdruck CalculateExpression(“Sum (Value)”, Current, Current) wird gleich 50 sein.

Wenn Sie einen Parameterwert gleich „Together“ angeben, können Sie in den Parametern „Start“ und „Ende“ keinen Offset für die Positionen „Erste“, „Letzte“, „Vorherige“ und „Nächste“ angeben.

CalculateExpression(„Sum(SumTurnover)“, „First“, „Current“)

Wenn Sie den Gruppierungswert in der vorherigen Zeile erhalten möchten, können Sie den folgenden Ausdruck verwenden:

CalculateExpression(„Rate“, „Previous“)

Aufführen neu Funktionen:

CalculateExpressionWithGroupArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Die Funktion gibt ein Array zurück, dessen jedes Element das Ergebnis der Auswertung eines Ausdrucks zur Gruppierung nach dem angegebenen Feld enthält.

CalculateExpressionWithGroupValueTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Die Funktion gibt eine Wertetabelle zurück, in der jede Zeile das Ergebnis der Auswertung von Ausdrücken zur Gruppierung nach dem angegebenen Feld enthält

ValueFilled(<Выражение>) – Gibt „True“ zurück, wenn der Wert ein anderer als der Standardwert dieses Typs, ein anderer als NULL, ein anderer als eine leere Referenz oder ein anderer als Undefiniert ist. Boolesche Werte werden auf NULL überprüft. Zeichenfolgen werden auf das Fehlen von Nicht-Leerzeichen überprüft

Format(<Выражение>, <Форматная строка>) – Erhalten Sie eine formatierte Zeichenfolge des übergebenen Werts. Der Formatstring wird entsprechend dem Formatstring des 1C:Enterprise-Systems eingestellt.

Teilzeichenfolge(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Diese Funktion dient zum Extrahieren eines Teilstrings aus einem String.

Linienlänge(<Выражение>) – Die Funktion soll die Länge einer Zeichenfolge bestimmen. Parameter – Zeichenfolgenausdruck

Linie(<Выражение>) – Wenn ein Array als Parameter übergeben wird, gibt die Funktion eine Zeichenfolge zurück, die Zeichenfolgendarstellungen aller Array-Elemente enthält, getrennt durch die Zeichen „; „. Wenn eine Wertetabelle als Parameter übergeben wird, gibt die Funktion eine Zeichenfolge zurück, die die Zeichenfolgendarstellungen aller Zeilen der Wertetabelle enthält, wobei die Zelldarstellungen jeder Zeile durch die Zeichen „;“ getrennt sind. “, und die Zeilen sind ein Zeilenvorschubsymbol. Wenn ein Element eine leere Zeichenfolgendarstellung hat, wird die Zeichenfolge anstelle ihrer Darstellung angezeigt<Пустое значение>.


Plattform: 8,3; Formulartyp: kontrolliert.

Heute sprechen wir über die Verwendung Ordner im SKD, in welchen Feldern platziert werden kann und welche Auswirkungen dies letztendlich hat. Konkret werden zwei Punkte betrachtet – dies ist die Erstellung von Ordnern auf dem Lesezeichen Datensätze in der Tabelle Felder und Erstellen von Ordnern in einem Lesezeichen Ausgewählte Felder, die sich wiederum auf der Registerkarte befindet Einstellungen.

Nehmen wir als Beispiel das, was wir zuvor erstellt haben, und experimentieren wir damit. Ich möchte Sie daran erinnern, dass der Bericht die folgende Tabelle enthält:

Gruppieren von Feldern in Ordnern auf der Registerkarte „Datensätze“.

Wenn ein Bericht eine große Anzahl von Feldern enthält, kann es ratsam sein, diese nach dem einen oder anderen Attribut in Ordnern zu organisieren, damit die Navigation beim Einrichten des Berichts einfacher ist. Und hier hilft das Erstellen von Ordnern auf einem Lesezeichen. Datensätze. Dies hat keinerlei Auswirkungen auf die Funktionsweise des Berichts.

Für unser Beispiel erstellen wir einen Ordner Eigenschaften, in dem wir die Felder platzieren werden Ein Land Und Name. Dies geschieht über die entsprechende Schaltfläche oder über das Kontextmenü:

Jetzt müssen Sie die Felder in diesem Ordner platzieren. Und das bringt erstmals gewisse Schwierigkeiten mit sich, da weder Kopieren noch Ziehen hilft. Dazu müssen Sie den Feldpfad bearbeiten, indem Sie den Ordnernamen und, durch einen Punkt getrennt, den Namen des Feldes selbst angeben.

Kommen wir nun zu den ausgewählten Feldern in den Einstellungen und sehen, wie sich die vorgenommenen Änderungen dort widerspiegeln:

Wie Sie sehen, sind zwei Felder als gelöscht markiert. Daher müssen sie aus der Liste entfernt und erneut hinzugefügt werden, jedoch aus dem Ordner Eigenschaften:


Wurden diese Felder auf anderen Reitern (Auswahl, Sortierung etc.) verwendet, müssen dort auch die entsprechenden Änderungen vorgenommen werden.

Gruppieren Sie Felder, um das Erscheinungsbild eines Berichts zu ändern

Jetzt machen wir die Felder Preis Und Menge wurden im Bericht nicht nebeneinander, sondern untereinander, also Lassen Sie uns eine vertikale Gruppierung dieser Felder erstellen. Klicken Sie dazu auf die Registerkarte Ausgewählte Felder Lass uns einen Ordner erstellen Indikatoren mit einer vertikalen Position, und verschieben Sie es hinein Preis Und Menge:


Wir führen den Bericht aus und erhalten das folgende Erscheinungsbild:


In der Praxis kann es zu recht komplexen Gruppierungsstrukturen mit mehreren Verschachtelungsebenen und unterschiedlichen Anordnungsarten kommen.

Bei einem Datensatz wird „Objekt“ verwendet, um externe Daten an das Zutrittskontrollsystem zu übertragen, beispielsweise eine Wertetabelle, das Ergebnis einer Abfrage. Für diesen Datensatz stehen Feldbeschreibungen sowie der Name des Objekts zur Verfügung, das an das Zutrittskontrollsystem übertragen wird:

Beschreibung der Datensatzfelder
Nachdem wir festgestellt haben, welche Art von Datensatz wir verwenden, sollten wir eine Beschreibung der Felder für die Datenausgabe an den Bericht eingeben:

In der Tabelle „Felder“ werden die Eigenschaften ausgefüllt:
1. „Feld“ – der Name des Feldes, im Falle einer Anfrage wird es automatisch ausgefüllt, im Falle eines Datensatzes „Objekt“ wird es manuell ermittelt.

2. „Pfad“ – gibt den Pfad zu den Daten aus dem Satz an. Der in diesem Feld angegebene Name wird in allen weiteren ACS-Einstellungen angezeigt.

3. „Titel“ – eine Zeile mit dem Titel des Feldes, das im Bericht oder in den Einstellungen angezeigt wird

4. „Feldverfügbarkeit begrenzen“ – eine Reihe von Kontrollkästchen – Einstellungen, mit denen angegeben wird, dass dieses Feld in den Einstellungen nicht verwendet werden kann. Es ist möglich, auf solche Einschränkungen hinzuweisen
A. „Feld“ – das Feld kann nicht in ACS-Auswahlen verwendet werden
B. „Bedingung“ – das Feld kann nicht als Bedingung verwendet werden
C. „Gruppe“ – verbietet die Verwendung des Feldes in Gruppierungen
D. „Ordnen“ – Verbot der Verwendung des Feldes beim Sortieren

5. „Einschränkung der Verfügbarkeit von Felddetails“ – eine Reihe von Kontrollkästchen unten weisen auf Einschränkungen für die Felddetails hin. Die Bedeutung dieser Einschränkungen ist dieselbe wie für das Feld

6. „Rolle“ – bezeichnet zusätzliche Eigenschaften des Feldes und seine Beziehungen zu anderen Feldern. Um Rollen zu bearbeiten, öffnet sich ein spezieller Dialog:

A. „Keine Rolle“ – dem Feld werden keine besonderen „Lasten“ auferlegt, der Standardmodus für die meisten Felder
B. „Periode“ – enthält die Periodennummer, wenn das Feld einen Periodentyp hat. Der jüngste Zeitraum muss vom Typ 1 sein. In einer Abfrage berechnen wir beispielsweise Summen für verschiedene Zeiträume: PeriodSecond = 1, PeriodDay = 2, PeriodWeek = 3 usw. Diese Zahl gibt an, wie die Summen für die Saldenfelder im ACS berechnet werden.
C. „Zusätzlich“ – gibt an, dass das Periodenfeld optional ist
D. „Konto“ – gibt an, dass es sich bei dem Feld um ein Buchhaltungskonto handelt und wird zur Berechnung der Buchhaltungssummen verwendet.
e. „Typ“ ist ein Zeichenfolgenausdruck, der zur Berechnung des Kontotyps verwendet wird. Das Ergebnis des Ausdrucks muss der Wert der AccountType-Enumeration (Aktiv, Passiv, Aktiv/Passiv) oder eine Zahl sein. Der Wert der Zahl 0 entspricht einem aktiven Konto, 1 – passiv, 2 – aktiv-passiv. Der Ausdruck ist in der Ausdruckssprache des Datenkompositionssystems geschrieben. Diese Informationen werden in Berechnungen verwendet, die auf den Feldern der Buchhaltungssalden basieren;
F. „Rest“ – ein Zeichen dafür, dass es sich bei dem Feld um ein Restfeld handelt;
G. „Name“ – eine Zeichenfolge, die den Namen der Gruppe von Restfeldern enthält. Zum Beispiel: „Betrag“, „Menge“;
H. „Typ“ – Art des Rests (InitialRemainder, FinalRemainder, Nein (das Feld ist kein Rest));
ich. "Boom." Typ“ – Art des Buchhaltungssaldos (Soll, Haben, Keine (das Feld ist kein Buchhaltungssaldo));
J. „Kontofeld“ – der Name des Kontofelds, für das Salden berechnet werden;
k. NULL-Werte ignorieren – wenn diese Option festgelegt ist, muss das Ergebnis keine Gruppendatensätze für dieses Feld enthalten, wenn das Feld einen NULL-Wert enthält.
l. „Erforderlich“ – beim Ausführen einer Abfrage ist immer ein Feld mit dem angegebenen Flag vorhanden, auch wenn es in der Auswahl nicht ausgewählt wurde.

7. „Ausdruck anzeigen“ – enthält einen Ausdruck, der beim Anzeigen von Feldwerten in einem Bericht verwendet wird.

Sie müssen beispielsweise ein Datum in ein spezielles Format umwandeln; hierfür geben wir den folgenden Ausdruck an: „Format(PeriodHalf-Year“,DF = """Half-Year from"" dd.MM.yyyy"""" )“ oder wandeln Sie den Link zum Dokument in eine beliebige Form um: „Datum: „+Link.Datum+“Nummer: „+Link.Nummer“.

8. „Bestellausdruck“ – So ordnen Sie dieses Feld an. Beim Bearbeiten öffnet sich ein Dialog:


Im Dialog können Sie festlegen, wie dieses Feld angeordnet werden soll. „Ausdruck“ – wie dieses Feld geordnet ist, „Bestelltyp“ – „aufsteigend“ oder „absteigend“, „Notwendigkeit der automatischen Sortierung“ – automatische Bestimmung der Felder, nach denen das Ergebnis der Datenzusammensetzung geordnet werden muss.

9. „Hierarchie prüfen“ – wird verwendet, wenn Sie nicht standardmäßige Auswahlen erstellen müssen.
A. „Datensatz“ – ein Datensatz zur Überprüfung der Hierarchie;
B. „Parameter“ – ein Parameter, in den der Wert eingesetzt wird, für den Sie untergeordnete Elemente erhalten möchten;

10. „Werttyp“ – Klärung des Werttyps eines Datensatzfelds, nützlich zur Klärung von Feldern eines zusammengesetzten Typs

11. „Design“ – Designparameter für das Datensatzfeld. Beim Bearbeiten öffnet sich ein Dialog:


Sie können folgende Parameter einstellen:
Hintergrundfarbe – Definiert die Hintergrundfarbe der Zellen.
Textfarbe – Definiert die Textfarbe in Zellen
Diagrammfarbe – Definiert die Farbe der Linien im Diagramm.
Randfarbe – Farbe der Randlinie
Rahmenstil – Grenzlinientypen
Randstil links - links
Oberer Randstil - Oben
Randstil rechts - richtig
Unterer Randstil – Unten
Schriftart – Schriftart, Dicke, Neigung usw.
Einzug – Anzahl der Einrückungszeichen
Automatischer Einzug – Anzahl der Einzugszeichen, die in Gruppierungen verwendet werden
Horizontale Position – Horizontale Position des Texts in einer Zelle
Vertikale Position – Die vertikale Position des Textes in der Zelle
Platzierung – Platzieren Sie Text, der nicht in die Zelle passt
Textausrichtung – Textausrichtung in Grad (90-Grad-Drehung senkrecht)
Format – Wertzeichenfolge formatieren
Negativ hervorheben – Vorzeichen, um negative Werte hervorzuheben
Mindestbreite – Mindestzellenbreite in Punkten
Mindesthöhe – Mindestzellenhöhe
Maximale Höhe – Maximale Höhe
Text – Der Text, der anstelle des Werts angezeigt wird

Darüber hinaus werden diese Parameter verwendet, um das bedingte Erscheinungsbild bei der Anzeige von Feldern im Bericht zu konfigurieren.
Zusätzlich zu Feldelementen kann die Beschreibung Ordner enthalten, die dazu dienen, die Position von Feldern in den verfügbaren Feldern zu organisieren.


Um ein Feld in einem Ordner zu platzieren, müssen Sie einen Ordner erstellen, zum Beispiel „Auswahl“, und dann für die im Ordner platzierten Felder den Pfad durch den Punkt angeben: „Auswahl.Organisation“, „Auswahl.Abteilungen“ . Danach sehen wir in den beim Einrichten verfügbaren Feldern einen Ordner mit den von uns angegebenen Elementen.