heim - Internet-Setup
Ausdruckssprache des Datenkompositionssystems (1Cv8). Erhalten Sie Preise für das Dokumentdatum in einer Anfrage. Wir speichern den Bericht als Datei.

Sehr oft besteht die Notwendigkeit, mit Variablen vom Typ „Datum“ zu arbeiten. In diesem Artikel werden wir uns mit den grundlegenden Techniken befassen – Übergabe des aktuellen Datums, Prüfung auf einen leeren Wert, ein beliebiges Datum.

Beim Schreiben von Abfragen müssen Sie häufig Daten mit dem aktuellen Datum vergleichen. Die integrierte 1C-Sprache verfügt über die Funktion CurrentDate(). Damit können Sie die aktuelle Uhrzeit und das aktuelle Datum auf Ihrem Computer ermitteln. Um Operationen mit dem aktuellen Datum auszuführen, müssen Sie den Wert dieser Funktion als Parameter an die Anfrage übergeben.

Nachfolgend finden Sie eine Abfrage, die alle an Spesenabrechnungen angehängten Dateien mit einem bisherigen Erstellungsdatum auswählt:

BeispielRequest = Neue Anfrage;
Beispiel Request.Text = "
|AUSWÄHLEN
| AdvanceReportAttachedFiles.Link
|VON
| Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|WO
| AdvanceReportAttachedFiles.Date< &ТекДата»;
Beispiel Request.SetParameter("CurrentDate", CurrentDate());

Benutzerdefiniertes Datum

Mit der oben besprochenen Funktion können Sie für jeden Zeitraum vergleichen und somit eine Auswahl treffen. Mit dieser Methode können Sie in der Anfrage eine strikte Auswahl festlegen, ohne zusätzliche Parameter zu verwenden.

Bitte beachten Sie, dass wir bei Verwendung dieser Funktion im obigen Beispiel nur drei Zahlen (Jahr, Monat, Tag) als Eingabeparameter übergeben haben. Die letzten drei (Stunde, Minute, Sekunde) sind optional und werden, falls sie fehlen, durch „0“, also den Beginn des Tages, ersetzt.

In diesem Beispiel werden alle an Spesenabrechnungen angehängten Dateien bis zum Ende des letzten Jahres 2016 abgerufen. In diesem Zusammenhang geben wir die Stunde, Minute und Sekunde an, um den Zeitpunkt „31. Dezember 2016 23:59:59“ zu vergleichen.

WÄHLEN
AdvanceReportAttachedFiles.Link
AUS
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
WO
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Leeres Datum

Der einfachste Weg, eine Variable darauf zu überprüfen, ob sie ein leeres Datum enthält, ist ein einfacher Vergleich. In diesem Beispiel werden wir mithilfe einer Abfrage alle Geldeingänge auf dem Konto auswählen, für die das Eingangsdatum nicht ausgefüllt ist.

SKD 1C steht für Data Composition System. SKD 1C ist eine neue Art, Berichte in 1C zu schreiben, die es dem Benutzer ermöglicht, den Bericht vollständig selbst anzupassen.

Der Nachteil von SKD 1C besteht darin, dass seine Einstellungen recht komplex sind und nicht alle Benutzer schnell erlernen.

Das Schreiben von ACS-Berichten erfordert die Fähigkeit, mit Abfragen in 1C zu arbeiten, was wir in besprochen haben.

Was ist die Technologie zum Erstellen eines SKD 1C-Berichts:

  • Schreiben Sie eine 1C-Anfrage an den 1C SKD, der die Datenerfassung bereitstellt
  • Geben Sie die Rolle von Feldern in SKD 1C an (berechnete Felder, Ressourcen).
  • Geben Sie die Standardeinstellungen für 1C SKD ein.

Der Benutzer hat die Möglichkeit, viele Einstellungen nach Belieben zu ändern.

Was ist die Technologie zum Erstellen eines Berichts über frühere Technologien:

  • Schreiben Sie eine Anfrage im 1C-Programm
  • Entwickeln Sie ein Einstellungsformular (einzigartig für den Bericht), mit dem Sie nur N vom Programmierer ausgewählte Einstellungen ändern können
  • Schreiben Sie den Code (Programm) zum Ausführen der Anfrage und zum Erstellen einer gedruckten Form des Berichts.

Wie Sie sehen, bietet SKD 1C sowohl für den Benutzer als auch für den Programmierer einen erheblichen Vorteil:

  • Programmierer – macht das Schreiben eines Programms zum Ausführen des Berichts und der Einstellungen überflüssig
  • Benutzer – erhält umfassenden Zugriff auf Berichtseinstellungen.

In allen neuen 1C-Konfigurationen werden alle Berichte nur auf dem 1C SKD verwendet.

Sehen wir uns an, wie Sie von Grund auf selbst einen Bericht über SKD 1C erstellen können.

Erstellen eines SKD 1C-Berichts

Klicken Sie im Konfigurator auf die Schaltfläche „Neue Datei“ (Menü „Datei/Neu“).

Wählen Sie den Dateityp Neuer Bericht.

Es wird ein neuer Bericht erstellt. Geben wir einen Namen ein – ohne Leerzeichen für die Konfiguration, ein Synonym für den Benutzer.

Lassen Sie uns das Grundschema von SKD 1C erstellen.

Erstellen Sie eine Anfrage für den SKD 1C-Bericht

Für SKD 1C kann es viele Datenquellen geben. Um beispielsweise zwei separate Abfragen zu verwenden, fügen Sie zuerst „Datensatz – Union“ und dann mehrere Abfragen hinzu.

In unserem Beispiel verwenden wir eine einfache Abfrage.

Lassen Sie uns eine Anfrage zum Erhalt von Daten skizzieren.

Die Arbeit mit dem Abfragekonstruktor unterscheidet sich nicht von der üblichen; wir haben dies in besprochen.

Als Ergebnis der Generierung der Anfrage erstellt SKD 1C eine Liste der zur Verwendung verfügbaren Felder und füllt diese mit Standardnamen.

Wenn Ihnen der Name nicht passt, können Sie ihn hier ändern.

Bitte beachten Sie, dass wir in der Anfrage den Parameter &StartDate verwendet haben. In SKD 1C gibt es einen Standardparameter (Datum) namens &Period, den Sie verwenden können.

Darüber hinaus müssen Sie es nicht direkt in der Anfrage angeben – es wird automatisch verwendet. Es gibt jedoch eine Feinheit: Dies gilt für alle Tabellen, einschließlich Linksverknüpfungen usw., was zu Fehlern führen kann.

Beispielsweise erhalten Sie Salden zu Beginn des Monats und mit der linken Verknüpfung erhalten Sie Daten für heute. Wenn Sie „Periode“ verwenden, wird diese auf alle Tabellen gleichermaßen angewendet und die Abfrage funktioniert nicht korrekt.

SKD 1C-Einstellungen

Auf der Registerkarte „Ressourcen“ geben wir die Felder an, die für die Summen (d. h. Zahlen) summiert werden. Sie können eine Summationsfunktion für Felder angeben. Standardmäßig ist es „Summe“ (d. h. die Zahlen aus allen Zeilen werden addiert und die Gesamtsumme ermittelt), aber Sie können auch „Durchschnitt“, „Menge“, „Maximum“ usw. verwenden.

Auf der Registerkarte „Einstellungen“ deaktivieren wir diejenigen, die wir nicht benötigen, und aktivieren diejenigen, die wir benötigen. Hier können Sie auch einen menschlichen Namen für den Parameter festlegen.

Auf der Registerkarte Einstellungen werden grundlegende Einstellungen vorgenommen:


Öffnen wir es im Enterprise-Modus. Bitte beachten Sie, dass wir keine Programmierung, kein Zeichnen von Formen usw. durchgeführt haben. Um den Parameter festzulegen, klicken Sie auf die Schaltfläche „Einstellungen“.

Der Benutzer sieht nahezu die gleichen Einstellungen wie der Programmierer.

Voila. Der Bericht funktioniert.

SKD 1C-Einstellungen

Alle Einstellungen des SKD 1C-Berichts werden durch Klicken auf die Schaltfläche Einstellungen vorgenommen. Zumindest in der Standardvorlage. Es besteht die Möglichkeit, das SKD 1C-Berichtsformular selbst zu erstellen und die Einstellungen dann auf andere vom Programmierer selbst erstellte Formulare zu übertragen.

Ziehen wir das Warehouse von den Spalten in die Zeilen.

Ziehen wir den Artikel in das Lager.

Klicken Sie auf OK und erstellen Sie den Bericht. Hurra – wir haben gerade die Funktionsweise des Berichts im Programmiermodus ohne Programmierung geändert.

Klicken Sie mit der rechten Maustaste auf Zeilen (oder eines der Felder) und wählen Sie Neue Gruppierung.

Erweitern Sie das Feld Lager und wählen Sie eines seiner Felder aus, zum Beispiel Lagertyp.

Nachdem wir darüber nachgedacht hatten, fiel uns ein, dass wir möchten, dass mehrere Felder gleichzeitig in einer Spalte angezeigt werden. Klicken Sie zweimal mit der linken Maustaste auf das neu erstellte Feld. Hier können Sie Felder hinzufügen.

Wenn Sie eine neue Gruppierung hinzufügen, aber kein Feld auswählen, bedeutet dies „Alle Felder“ (angezeigt als „Detaildatensätze“). Es sieht aus wie das.

Klicken Sie mit der linken Maustaste auf unsere Gruppierung (Lager/Artikel) und ziehen Sie sie in eine neue Gruppierung (Lagertyp).

Das Ergebnis unserer Einstellungen.

Zusätzlich zu den Einstellungen, deren Wirkung anhand des Namens leicht zu erraten ist (Auswahl, Sortierung usw.), gibt es einen Reiter „Andere Einstellungen“. Sie können damit Dinge wie die Anzeige von Summen, das Platzieren von Gruppierungen in Spalten usw. aktivieren oder deaktivieren.

Bitte beachten Sie, dass Einstellungen für den gesamten Bericht (Bericht ausgewählt) oder für eine bestimmte Zeile von Feldern (wählen Sie eine Zeile, z. B. Nomenklatur und dann Einstellungen: Nicht-Nomenklatur) festgelegt werden können.

Nehmen wir an, wir haben eine Aufgabe erhalten, für die der Kunde einen Bericht über die in der Datenbank eingegebenen Dokumente „Verkauf von Waren und Dienstleistungen“ erhalten möchte, und für jedes Dokument muss der Preis aus dem Informationsregister „Artikelpreise“ abgerufen werden ” für das Datum des Dokuments. Der Bericht ist für die Konfigurationsversion 1.3 „Manufacturing Enterprise Management“ geschrieben.

Dem Datensatz aus der Dokumententabelle wird ein Datensatz aus der virtuellen Tabelle „Nomenklaturpreise. SliceLast“ gemäß den entsprechenden Bedingungen der Periode, Preisart und Position hinzugefügt. Die Preisart ergibt sich aus den gleichnamigen Belegdetails.

Für das Problem gibt es mehrere Möglichkeiten, es zu lösen. Betrachten wir zwei davon: einen Bericht über das Zugangskontrollsystem, der zwei Datensätze verwendet und alle erforderlichen Daten in einer Anfrage erhält. Nun der Reihe nach.

Verwenden von ACS

Um einen solchen Bericht über das Zugangskontrollsystem zu implementieren, erstellen wir zwei Datensätze im Datenzusammensetzungsschema. Der erste erhält eine Liste der Dokumente, der zweite erhält Preise für Dokumentdaten entsprechend dem ausgewählten Artikel und der Preisart. Die Verbindung zwischen zwei Datensätzen erfolgt nach Artikel, Zeitraum (Belegdatum) und Preisart. Aus dem ersten Satz ist es notwendig, die Parameter „Nomenklatur“, „Preisart“ und „Zeitraum“ in den zweiten Satz zu übertragen.

Der erste Datensatz enthält die folgende Abfrage:

Die Abfrage wählt aus der Dokumententabelle und dem tabellarischen Teil „Produkte“ folgende Felder aus: „Link“, „Datum“, „Preistyp“, „Nomenklatur“. Schauen wir uns nun den zweiten Datensatz an:

Im zweiten Datensatz sollten Sie auf die an die Anfrage übergebenen Parameter achten. Die Liste der auswählbaren Felder enthält die Parameter „Zeitraum“, „Artikel“ und „Preistyp“. Die gleichen Parameter werden in den Parametern der virtuellen Tabelle „Nomenklaturpreise. Slice of Latest“ verwendet. Es ist notwendig, diese Parameter in der anzuzeigen Liste auswählbarer Felder, damit die Werte dieser Parameter vom ersten Satz zum zweiten Satz übertragen werden können. Dies erfolgt mithilfe der Verbindungseinstellungen zwischen Datensätzen auf der Registerkarte „Datensatzverbindungen“ des Datenzusammensetzungsschema-Designers. Kommen wir zu seiner Betrachtung:

Das Einrichten von Verbindungen zwischen Datenquellen erfolgt über die Auswahlfelder in der Anfrage. Im zweiten Datensatz haben wir den Auswahlfeldern Abfrageparameter hinzugefügt. Wenn Sie beim Erstellen von Beziehungen zwischen Mengen ein Feld in der Spalte „Parameter“ für die Beziehung auswählen, wird der Wert aus der Spalte „Quellausdruck“ in den „Zielausdruck“ übertragen und der ausgewählte Parameter mit dem entsprechenden Wert gefüllt.

Nachdem wir die Berichtsstruktur konfiguriert und generiert haben, erhalten wir folgendes Ergebnis:

Der Bericht funktioniert. Betrachten wir nun die Möglichkeiten, den Preis für das Dokumentdatum in einer Anfrage zu erhalten.

In einer Anfrage

Lassen Sie uns einen neuen Bericht mit ähnlichen Ausgabefeldern und Berichtseinstellungen erstellen. Der einzige Unterschied besteht in den Datenquellen. Diesmal enthält der Bericht einen einzelnen Datensatz, in dem alle Dokumentprodukte und die zugehörigen Preise in einer Abfrage ausgewählt werden. Der Anfragetext sieht so aus:

"SELECT | DocumentNomenclaturePeriod.Document, | DocumentNomenclaturePeriod.Document.Date AS Date, | DocumentNomenclaturePeriod.Document.PriceType AS TypePrice, | DocumentNomenclaturePeriod.Nomenclature, | PricesNomenclature.Price | FROM | (SELECT | Sales of GoodsServicesGoods. Link AS Document, | Sales von Waren DienstleistungenProdukte.Nomenklatur AS Nomenklatur, | MAXIMUM (Preise der Nomenklatur. Zeitraum) AS Zeitraum | VON | Dokument. Verkäufe von Waren und Dienstleistungen. Waren AS Verkäufe von Waren und Dienstleistungen Waren | LINKE VERBINDUNG Informationsregister. Preise Nomenklatur AS Preise Nomenklatur | Software-Verkäufe von Waren und Dienstleistungen. Nomenklatur = Preise. Nomenklatur. Nomenklatur | Und Neuimplementierung von Waren und Dienstleistungen. Link. Datum >= Preise. Nomenklatur. Zeitraum | Und Verkäufe von Waren. ServicesGoods.Link.PriceType = PricesNomenclature.TypePrices | | GRUPPE BY | Sales of GoodsServicesGoods.Link, | Sales of GoodsServicesGoods.Nomenclature) AS DocumentNomenclaturePeriod | LEFT CONNECTION RegisterInformation.PricesNomenclature AS PricesNomenclatures | BY DocumentNomenclature tourPeriod.Nomenclature = PricesNomenclature.Nomenclature | Und DocumentNomenclaturePeriod.Document.PriceType = PricesNomenclature.PriceType | Und DocumentNomenclaturePeriod.Period = PricesNomenclature.Period"

Das Prinzip der Anfrage besteht darin, das nächstgelegene Datum der Preisänderung für jeden gebrauchten Artikel im tabellarischen Abschnitt des Dokuments zu ermitteln und dann Daten aus der physischen Tabelle „Artikelpreise“ nach Zeitraum, Artikel und Preistyp an das resultierende Abfrageergebnis anzuhängen . Auf den ersten Blick mag die Anfrage kompliziert erscheinen, tatsächlich ist ihre Syntax jedoch recht einfach.

Das Ausführungsergebnis ähnelt dem Ergebnis des vorherigen Berichts (siehe Screenshot oben).

Schlussfolgerungen

Welche Möglichkeit zur Erledigung der Aufgabe ist besser? Es hängt alles von den spezifischen Bedingungen ab. In manchen Situationen ist ein Bericht aus zwei Datensätzen schneller als das Abrufen aller Daten für einen Bericht in einer Abfrage. Im Rahmen dieses Artikels können wir nicht auf Leistungsprobleme für die betrachteten Methoden zur Lösung des Problems eingehen.

Es sei auch daran erinnert, dass die Erstellung von Berichten auf der Grundlage von Dokumenttabellen von der Entwicklungsmethodik des Unternehmens 1C nicht empfohlen wird, da davon ausgegangen wird, dass die Informationen in den Dokumenten möglicherweise nicht zuverlässig sind. Alle Meldungen müssen auf Registern basieren.

Ausdruckssprache des Datenkompositionssystems

Die Ausdruckssprache des Datenkompositionssystems dient zum Schreiben von Ausdrücken, die in verschiedenen Teilen des Systems verwendet werden.

Ausdrücke werden in den folgenden Subsystemen verwendet:

  • Datenlayoutdiagramm – zur Beschreibung berechneter Felder, Gesamtfelder, Verbindungsausdrücke usw.;
  • Datenlayouteinstellungen – um benutzerdefinierte Feldausdrücke zu beschreiben;
  • Datenlayout-Layout – zum Beschreiben von Ausdrücken zum Verbinden von Datensätzen, zum Beschreiben von Layout-Parametern usw.

Literale

Der Ausdruck kann Literale enthalten. Folgende Arten von Literalen sind möglich:

  • Linie;
  • Nummer;
  • Datum von;
  • Boolescher Wert.

Linie

Ein String-Literal wird in „“-Zeichen geschrieben, zum Beispiel:

„String-Literal“

Wenn Sie das Zeichen „“ in einem String-Literal verwenden müssen, sollten Sie zwei solcher Zeichen verwenden.

Zum Beispiel:

„Wörtlich“ „in Anführungszeichen““

Nummer

Die Zahl wird ohne Leerzeichen im Dezimalformat geschrieben. Der Nachkommateil wird durch das Symbol „.“ getrennt. Zum Beispiel:

10.5 200

Datum

Ein Datumsliteral wird mit dem Schlüsselliteral DATETIME geschrieben. Nach diesem Schlüsselwort werden Jahr, Monat, Tag, Stunden, Minuten und Sekunden in Klammern und durch Kommas getrennt aufgeführt. Eine Zeitangabe ist nicht erforderlich.

Zum Beispiel:

DATETIME(1975, 1, 06) – 6. Januar 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2. Dezember 2006, 23 Stunden 56 Minuten 57 Sekunden, 23 Stunden 56 Minuten 57 Sekunden

Boolescher Wert

Boolesche Werte können mit den Literalen True (True), False (False) geschrieben werden.

Bedeutung

Um Literale anderer Typen anzugeben (Systemaufzählungen, vordefinierte Daten), wird das Schlüsselwort Value verwendet, gefolgt vom Namen des Literals in Klammern.

Wert(AccountType. Aktiv)

Operationen mit Zahlen

Einstellig -

Mit dieser Operation soll das Vorzeichen einer Zahl in das entgegengesetzte Vorzeichen geändert werden. Zum Beispiel:

Verkaufsmenge

Unär +

Dieser Vorgang führt keine Aktionen für die Nummer aus. Zum Beispiel:

Verkaufsmenge

Binär -

Mit dieser Operation soll die Differenz zweier Zahlen berechnet werden. Zum Beispiel:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

Binär +

Mit dieser Operation soll die Summe zweier Zahlen berechnet werden. Zum Beispiel:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

Arbeiten

Diese Operation dient dazu, das Produkt zweier Zahlen zu berechnen. Zum Beispiel:

Nomenklatur.Preis * 1,2 2 * 3,14

Aufteilung

Diese Operation dient dazu, das Ergebnis der Division eines Operanden durch einen anderen zu erhalten. Zum Beispiel:

Nomenklatur.Preis / 1,2 2 / 3,14

Rest der Division

Diese Operation dient dazu, den Rest zu erhalten, wenn ein Operand durch einen anderen dividiert wird. Zum Beispiel:

Nomenklatur. Preis % 1,2 2 % 3,14

String-Operationen

Verkettung (Binär +)

Diese Operation dient dazu, zwei Zeichenfolgen zu verketten. Zum Beispiel:

Nomenklatur.Artikel + „: „+ Nomenklatur.Name

Wie

Diese Operation prüft, ob die Zeichenfolge mit dem übergebenen Muster übereinstimmt.

Der Wert des LIKE-Operators ist TRUE, wenn der Wert<Выражения>erfüllt das Muster, andernfalls FALSE.

Die folgenden Zeichen in<Строке_шаблона>haben eine andere Bedeutung als nur ein anderes Zeichen in der Zeile:

  • % – Prozentsatz: eine Sequenz, die null oder mehr beliebige Zeichen enthält;
  • _ – Unterstrich: ein beliebiges Zeichen;
  • […] – ein oder mehrere Zeichen in eckigen Klammern: ein Zeichen, eines der in den eckigen Klammern aufgeführten Zeichen. Die Aufzählung kann Bereiche enthalten, zum Beispiel a-z, was bedeutet, dass ein beliebiges Zeichen im Bereich enthalten ist, einschließlich der Enden des Bereichs;
  • [^...] – in eckigen Klammern ein Negationssymbol, gefolgt von einem oder mehreren Zeichen: jedes Zeichen außer denen, die nach dem Negationssymbol aufgeführt sind;

Jedes andere Symbol bedeutet sich selbst und trägt keine zusätzliche Last. Wenn eines der aufgelisteten Zeichen als es selbst geschrieben werden muss, muss ihm ein vorangestellt werden<Спецсимвол>, angegeben nach dem Schlüsselwort SPECIAL CHARACTER (ESCAPE).

Zum Beispiel Vorlage

„%ABV[abvg]\_abv%“ SONDERZEICHEN „\“

bedeutet eine Teilzeichenfolge, die aus einer Folge von Zeichen besteht: dem Buchstaben A; Buchstaben B; Buchstaben B; eine Ziffer; einer der Buchstaben a, b, c oder d; unterstreichen; Buchstaben a; Buchstaben b; Buchstaben v. Darüber hinaus kann diese Sequenz ausgehend von einer beliebigen Position in der Zeile lokalisiert werden.

Vergleichsoperationen

Gleich

Diese Operation dient dazu, zwei Operanden auf Gleichheit zu vergleichen. Zum Beispiel:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Nicht gleich

Diese Operation soll zwei Operanden auf Ungleichheit vergleichen. Zum Beispiel:

Verkäufe.Gegenpartei<>Sales.NomenclatureMainSupplier

Weniger

Mit dieser Operation soll überprüft werden, ob der erste Operand kleiner als der zweite ist. Zum Beispiel:

SalesCurrent.Amount< ПродажиПрошлые.Сумма

Mehr

Mit dieser Operation soll überprüft werden, ob der erste Operand größer als der zweite ist. Zum Beispiel:

SalesCurrent.Sum > SalesPast.Sum

Weniger oder gleich

Mit dieser Operation soll überprüft werden, ob der erste Operand kleiner oder gleich dem zweiten ist. Zum Beispiel:

SalesCurrent.Amount<= ПродажиПрошлые.Сумма

Mehr oder gleich

Mit dieser Operation soll überprüft werden, ob der erste Operand größer oder gleich dem zweiten ist. Zum Beispiel:

SalesCurrent.Amount >= SalesPast.Amount

Operation B

Diese Operation prüft, ob in der übergebenen Werteliste ein Wert vorhanden ist. Das Ergebnis der Operation ist „True“, wenn der Wert gefunden wird, andernfalls „False“. Zum Beispiel:

Artikel B (&Produkt1, &Produkt2)

Vorgang zum Überprüfen des Vorhandenseins eines Werts in einem Datensatz

Die Operation prüft, ob im angegebenen Datensatz ein Wert vorhanden ist. Der Validierungsdatensatz muss ein Feld enthalten. Zum Beispiel:

Verkäufe. Gegenpartei an Gegenparteien

Vorgang zum Überprüfen eines Werts auf NULL

Diese Operation gibt True zurück, wenn der Wert NULL ist. Zum Beispiel:

Sales.Counterparty ist NULL

Vorgang zum Überprüfen eines Werts auf NULL-Ungleichheit

Diese Operation gibt True zurück, wenn der Wert nicht NULL ist. Zum Beispiel:

Verkäufe. Gegenpartei IST NICHT NULL

Logische Operationen

Logische Operationen akzeptieren Ausdrücke vom Typ Boolean als Operanden.

Betrieb NICHT

Die NOT-Operation gibt True zurück, wenn ihr Operand False ist, und False, wenn ihr Operand True ist. Zum Beispiel:

NICHT Document.Consignee = Document.Consignor

Operation I

Die AND-Operation gibt True zurück, wenn beide Operanden True sind, und False, wenn einer der Operanden False ist. Zum Beispiel:

Document.Consignee = Document.Consignor UND Document.Consignee = &Counterparty

ODER-Verknüpfung

Die OR-Operation gibt True zurück, wenn einer ihrer Operanden True ist, und False, wenn beide Operanden False sind. Zum Beispiel:

Document.Consignee = Document.Consignor ODER Document.Consignee = &Counterparty

Aggregatfunktionen

Aggregatfunktionen führen eine Aktion für einen Datensatz aus.

Summe

Die Aggregatfunktion Sum berechnet die Summe der Werte der ihr als Argument übergebenen Ausdrücke für alle Detaildatensätze. Zum Beispiel:

Betrag(Sales.AmountTurnover)

Menge

Die Count-Funktion berechnet die Anzahl der Werte außer NULL. Zum Beispiel:

Menge (Sales.Counterparty)

Anzahl unterschiedlich

Diese Funktion berechnet die Anzahl der unterschiedlichen Werte. Zum Beispiel:

Menge (Verschiedene Verkäufe.Gegenpartei)

Maximal

Die Funktion erhält den Maximalwert. Zum Beispiel:

Maximum (verbleibende Menge)

Minimum

Die Funktion erhält den Mindestwert. Zum Beispiel:

Minimum (verbleibende Menge)

Durchschnitt

Die Funktion ermittelt den Durchschnitt von Nicht-NULL-Werten. Zum Beispiel:

Durchschnitt (verbleibende Menge)

Andere Operationen

Operation AUSWÄHLEN

Die Select-Operation dient dazu, einen von mehreren Werten auszuwählen, wenn bestimmte Bedingungen erfüllt sind. Zum Beispiel:

Wählen Sie „Wenn Betrag > 1000, dann Betrag, andernfalls 0 Ende“.

Regeln zum Vergleich zweier Werte

Wenn sich die Typen der verglichenen Werte voneinander unterscheiden, werden die Beziehungen zwischen den Werten anhand der Rangfolge der Typen bestimmt:

  • NULL (niedrigster Wert);
  • Boolescher Wert;
  • Nummer;
  • Datum von;
  • Linie;
  • Referenztypen

Die Beziehungen zwischen verschiedenen Referenztypen werden anhand der Referenznummern der Tabellen ermittelt, die einem bestimmten Typ entsprechen.

Sind die Datentypen gleich, dann werden die Werte nach folgenden Regeln verglichen:

  • für den Typ Boolean ist der Wert TRUE größer als der Wert FALSE;
  • Der Zahlentyp verfügt über die üblichen Vergleichsregeln für Zahlen.
  • Beim Typ „Datum“ sind frühere Daten kleiner als spätere.
  • für den String-Typ – Vergleich von Strings gemäß den festgelegten nationalen Merkmalen der Datenbank;
  • Referenztypen werden anhand ihrer Werte (Datensatznummer usw.) verglichen.

Arbeiten mit NULL-Werten

Jede Operation, bei der einer der Operanden NULL ist, führt zu einem NULL-Ergebnis.

Es gibt Ausnahmen:

  • Die AND-Operation gibt NULL nur zurück, wenn keiner der Operanden False ist;
  • Die OR-Operation gibt nur dann NULL zurück, wenn keiner ihrer Operanden True ist.

Betriebsprioritäten

Die Operationen haben folgende Prioritäten (die erste Zeile hat die niedrigste Priorität):

  • B, IST NULL, IST NICHT NULL;
  • =, <>, <=, <, >=, >;
  • Binär +, Binär – ;
  • *, /, %;
  • Unär +, Unär -.

Ausdruckssprachenfunktionen des Datenkompositionssystems

Berechnung

Die Funktion „Berechnen“ dient zur Berechnung eines Ausdrucks im Kontext einer bestimmten Gruppierung. Die Funktion hat die folgenden Parameter:

  • Ausdruck. Geben Sie String ein. Enthält einen berechneten Ausdruck;
  • Gruppierung. Geben Sie String ein. 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.

Ebene

Die Funktion dient dazu, den aktuellen Aufnahmepegel zu ermitteln.

Ebene()

NumberInOrder

Holen Sie sich die nächste Sequenznummer.

NumberByOrder()

NumberInOrderInGrouping

Gibt die nächste Ordnungszahl in der aktuellen Gruppierung zurück.

NumberByOrderInGroup()

Format

Rufen Sie eine formatierte Zeichenfolge des übergebenen Werts ab.

Die Formatzeichenfolge wird gemäß der 1C:Enterprise-Formatzeichenfolge festgelegt.

Optionen:

  • Bedeutung;
  • Zeichenfolge formatieren.

Format(Invoices.Doc Amount, „NPV=2“)

Beginn der Periode

Optionen:

    • Minute;
    • Der Tag;
    • Die Woche;
    • Monat;
    • Quartal;
    • Jahrzehnt;
    • Halbes Jahr.

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

Ergebnis:

01.10.2002 0:00:00

Ende der Periode

Die Funktion dient dazu, ein bestimmtes Datum aus einem bestimmten Datum zu extrahieren.

Optionen:

  • Datum von. Geben Sie Datum ein. Angegebenes Datum;
  • Periodentyp. Geben Sie String ein. Enthält einen der folgenden Werte:
    • Minute;
    • Der Tag;
    • Die Woche;
    • Monat;
    • Quartal;
    • Jahrzehnt;
    • Halbes Jahr.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Woche“)

Ergebnis:

13.10.2002 23:59:59

AddToDate

Die Funktion dient dazu, einem Datum einen bestimmten Wert hinzuzufügen.

Optionen:

  • Vergrößerungstyp. Geben Sie String ein. Enthält einen der folgenden Werte:
    • Minute;
    • Der Tag;
    • Die Woche;
    • Monat;
    • Quartal;
    • Jahrzehnt;
    • Halbes Jahr.
  • Betrag – um wie viel Sie das Datum erhöhen müssen. Nummer eingeben. Der Bruchteil wird ignoriert.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Monat", 1)

Ergebnis:

12.11.2002 10:15:34

Datumsunterschied

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

Optionen:

  • Ausdruck. Geben Sie Datum ein. Ursprüngliches Datum;
  • Ausdruck. Geben Sie Datum ein. Subtrahiertes Datum;
  • Differenztyp. Geben Sie String ein. Enthält einen der folgenden Werte:
    • Zweite;
    • Minute;
    • Der Tag;
    • Monat;
    • Quartal;

DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "DAY")

Ergebnis:

Teilzeichenfolge

Diese Funktion dient zum Extrahieren eines Teilstrings aus einem String.

Optionen:

  • Linie. Geben Sie String ein. Die Zeichenfolge, aus der die Teilzeichenfolge extrahiert wird;
  • Position. Nummer eingeben. Die Position des Zeichens, an der die aus der Zeichenfolge zu extrahierende Teilzeichenfolge beginnt;
  • Länge. Nummer eingeben. Länge des zugewiesenen Teilstrings.

SUBSTRING(Accounts.Address, 1, 4)

Linienlänge

Die Funktion dient dazu, die Länge einer Zeichenfolge zu bestimmen.

Parameter:

  • Linie. Geben Sie String ein. Eine Zeichenfolge, deren Länge bestimmt wird.

Zeile(Gegenparteien.Adresse)

Jahr

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

Parameter:

  • Datum von. Geben Sie Datum ein. Das Datum, nach dem das Jahr bestimmt wird.

JAHR (Ausgabendatum)

Quartal

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

Parameter

  • Datum von. Geben Sie Datum ein. Das Datum, bis zu dem das Quartal bestimmt wird
QUARTER(Ausgaben.Datum)

Monat

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

  • Datum von. Geben Sie Datum ein. Das Datum, nach dem der Monat bestimmt wird.
MONAT (Ausgabendatum)

Tag des Jahres

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).

  • Datum von. Geben Sie Datum ein. Das Datum, anhand dessen der Tag im Jahr bestimmt wird.
DAYYEAR(ExpenseAccount.Date)

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.

  • Datum von. Geben Sie Datum ein. Das Datum, anhand dessen der Tag des Monats bestimmt wird.
TAG (Ausgabendatum)

Die 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.

  • Datum von. Geben Sie Datum ein. Das Datum, nach dem die Wochennummern bestimmt werden.
WOCHE (Ausgabendatum)

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).

  • Datum von. Geben Sie Datum ein. Das Datum, nach dem der Wochentag bestimmt wird.
TAG DER WOCHE (Ausgabendatum)

Stunde

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

  • Datum von. Geben Sie Datum ein. Das Datum, anhand dessen die Stunde des Tages bestimmt wird.
STUNDE (Ausgabendatum)

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.

  • Datum von. Geben Sie Datum ein. Das Datum, anhand dessen die Minute der Stunde bestimmt wird.
MINUTE(Ausgabendatum)

Zweite

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.

  • Datum von. Geben Sie Datum ein. Das Datum, anhand dessen die Sekunden der Minute bestimmt werden.
SECOND(Ausgabendatum)

Äußern

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.

Optionen:

  • Zu konvertierender Ausdruck;
  • Typangabe. Geben Sie String ein. 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.

Express(Data.Props1, "Number(10,3)")

Ist Null

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.

YesNULL(Amount(Sales.AmountTurnover), 0)

Funktionen allgemeiner 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.

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.

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 Nomenklaturgruppierung den Ausdruck nicht verwenden CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. 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.

Layout-Linker beim Generieren eines Funktionsausdrucks Ausdruck berechnen, wenn der Sortierausdruck Felder enthält, die nicht in der Gruppierung verwendet werden können, ersetzt die Funktion Ausdruck berechnen An NULL.

Optionen

Typ: Linie. Der auszuwertende Ausdruck.

Typ: 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 GeneralTotal-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 der Summe pro Feld Sales.AmountTurnover Gruppieren von Datensätzen zur Summe desselben Felds im gesamten Layout;

Typ: Linie. Der Parameter kann folgende Werte annehmen:

· Gesamtsumme– Der Ausdruck wird für alle Gruppierungsdatensätze berechnet.

· Hierarchie– Der Ausdruck wird für den übergeordneten hierarchischen Datensatz ausgewertet, falls vorhanden, und für die gesamte Gruppierung, wenn kein übergeordneter hierarchischer Datensatz vorhanden ist.

· Gruppierung– Der Ausdruck wird für den aktuellen Gruppengruppierungsdatensatz ausgewertet.

· GroupingNonResource— Bei der Berechnung einer Funktion für einen Gruppendatensatz nach Ressourcen wird der Ausdruck für den ersten Gruppendatensatz der ursprünglichen Gruppierung berechnet.

Bei der Berechnung einer Funktion CalculateExpression() mit Bedeutung GroupingNonResource Für Gruppendatensätze, die nicht nach Ressourcen gruppiert sind, wird die Funktion auf die gleiche Weise berechnet, wie sie berechnet würde, wenn der Parameterwert gleich dem Wert wäre Gruppierung.

Der Datenzusammensetzungslayout-Generator platziert beim Generieren eines Datenzusammensetzungslayouts 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() , Angabe des Parameters GroupingNonResource. Für andere Ressourcen werden die üblichen Ressourcenausdrücke in der Ressourcengruppierung platziert.

Typ: Linie. 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:

· Erste

· Letzter (letzter)

· Vorherige

· Weiter (Weiter)

· Aktuell

· Begrenzungswert(Grenzwert) Begrenzungswert

Typ: Linie. 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 Anfang 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.

· Letzter (letzter). 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 ü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.

· Weiter (Weiter). 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. Beispiel: Next(2) – Nächstes vom 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 Next() empfängt, 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.

· Begrenzungswert(Grenzwert). Die Notwendigkeit, einen Datensatz mit dem angegebenen Wert zu erhalten. Nach dem Wort Begrenzungswert 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 erhalten möchten LimitingValue(DateTime(2010, 1, 15)), dann wird ein Datensatz mit dem Datum 01.02.2010 empfangen.

Typ: Linie. 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 ein Schlüsselwort angeben Alter(für die Bestellung in aufsteigender Reihenfolge), Absteigend(für die Bestellung in absteigender Reihenfolge) und Automatische Bestellung(um Referenzfelder nach den Feldern zu ordnen, nach denen Sie das referenzierte Objekt ordnen möchten). Wort Automatische Bestellung kann wie mit dem Wort verwendet werden Alter, also mit dem Wort Absteigend.

Typ: Linie. Identisch mit Parameter Sortierung. Wird zum Organisieren hierarchischer Datensätze verwendet. Wenn nicht angegeben, generiert der Layout-Builder die Reihenfolge entsprechend der im Parameter angegebenen Reihenfolge Sortierung.

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

· Separat gibt an, dass eine Folge geordneter Datensätze verwendet wird, um die vorherigen und nächsten Datensätze zu bestimmen. Standardwert.

· Zusammen gibt an, 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

Separat, Das:

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

Aktuell, aktuell(entsprechend Parameter Start Und Ende), dann besteht dieses Fragment für Datensatz 2 aus einem Datensatz 2. Der Ausdruck ist gleich 20.

Wenn der Parameterwert ist Zusammen, Das:

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

§ wenn das Berechnungsfragment definiert ist als Aktuell, aktuell(entsprechend Parameter Start Und Ende), dann besteht dieses Fragment für Datensatz 2 aus den Datensätzen 2 und 3. Ausdruck CalculateExpression("Sum(Value)", Current, Current) wird gleich 50 sein.

Bei Angabe eines Parameterwerts gleich Zusammen, in Parametern Start Und Ende Sie können keinen Offset für Positionen angeben Zuerst, Letzter, Vorheriger, Nächster.

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 ein leerer Verweis oder ein anderer als Undefiniert ist. Boolesche Werte werden auf NULL-Werte ü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 ist ein 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 „;“-Zeichen. Wenn eine Wertetabelle als Parameter übergeben wird, gibt die Funktion eine Zeichenfolge zurück, die Zeichenfolgendarstellungen aller Zeilen der Wertetabelle enthält, wobei die Zelldarstellungen jeder Zeile durch „;“-Zeichen und die Zeilen durch einen Zeilenumbruch getrennt sind Charakter. Wenn die Zeichenfolgendarstellung eines Elements leer ist, wird anstelle seiner Darstellung eine Zeichenfolge angezeigt.



 


Lesen:



So löschen Sie ein Foto von Facebook. So löschen Sie einen Freund von Facebook

So löschen Sie ein Foto von Facebook. So löschen Sie einen Freund von Facebook

Wenn Sie ein Foto nach dem Hochladen löschen müssen, ist dies dank einfacher Einstellungen ganz einfach möglich.

Mediaget, was ist das für ein Programm Mediaget, was ist das für ein Programm?

Mediaget, was ist das für ein Programm Mediaget, was ist das für ein Programm?

Wir erzählen Ihnen von einem guten Torrent-Client MediaGet (gelesen als Mediadget). Finden Sie heraus, was es ist und wie Sie das MediaGet-Programm verwenden....

Was sind JavaScript-Skripte und wie aktiviere ich sie in meinem Browser?

Was sind JavaScript-Skripte und wie aktiviere ich sie in meinem Browser?

Es gibt immer weniger Websites im Internet, die ohne JavaScript funktionieren. Mit Skripten können Sie verschiedene interaktive... hinzufügen.

So geben Sie ein Telefon im Rahmen der Garantie zurück und erhalten Geld

So geben Sie ein Telefon im Rahmen der Garantie zurück und erhalten Geld

Garifullina Alla 28.07.2013 um 13:27 Uhr Russland, Naberezhnye Chelny | Fragen: 1 Alla Garifullina, Naberezhnye Chelny, 28.07.2013 Gekauft...

Feed-Bild RSS