Die Datentypen, die das 1s-Objekt akzeptieren kann. Verwendung definierter Typen. Generische Wertsammlungen

Datentypen in 1C:Enterprise 8.x

Bevor wir uns mit den Sprachkonstrukten von 1C:Enterprise befassen, müssen wir uns mit den grundlegenden Datentypen vertraut machen. Zum Glück,:

Anfänger, die sich mit der 1C-Plattform befassen, sind manchmal verwirrt über die Definition von Datentypen und alle möglichen Sprachnuancen, die auftreten. Dieser erste Artikel dient der Einführung und ist den primitiven 1C-Datentypen gewidmet, von denen es nicht so viele gibt.

Nummer. Zahlen in 1C bedeuten sowohl Ganzzahlen als auch Gleitkommawerte. Die maximale Bitlänge für einen Zahlentypwert kann einschließlich Dezimalpunkt 32 Stellen betragen. Es sollte auch berücksichtigt werden, dass die 32-stellige Beschränkung für Zahlen gilt, die in die Datenbank geschrieben werden. Es ist möglich, eine Variable zu deklarieren und ihr einen Wert mit mehr als 32 Zeichen zuzuweisen. Für Zahlenwerte die im Speicher abgelegt sind, gilt diese Einschränkung nicht. Wenn sie als Variable vom Typ „Zahl“ deklariert wird, ist ihr Wert 0.

Linie. Wie jede andere Programmiersprache implementiert 1C alle notwendigen Funktionen zum Bearbeiten von Strings. Werte dieser Art werden in Unicode dargestellt. Die Länge von Variablen vom Typ String ist nicht begrenzt.

Datum von. Werte dieser Art enthalten neben dem Datum selbst auch die Uhrzeit. Die Zeit bezieht sich auf Stunden, Minuten und Sekunden. Unmittelbar nach der Initialisierung einer Variablen vom Typ „Datum“ wird ihr der Wert (Datum) „01.01.0001 00 Stunden 00 Minuten 00 Sekunden“ zugewiesen. Das ist manchmal nervig, aber mit der Zeit gewöhnt man sich daran.

Boolescher Wert. Es ist klar, dass Variablen dieses Typs nur zwei Werte annehmen können: True, False.

Nicht definiert. Werte vom Typ „undefiniert“ werden in Fällen verwendet, in denen Sie einen leeren Wert angeben möchten, der zu keinem anderen Datentyp gehört. Beispielsweise müssen Sie eine Variable deklarieren, die dann irgendwo verwendet wird. Sie können ihm einen Wert wie 0 oder „“ (also einen leeren String) zuweisen, aber indem Sie das tun, legen Sie sofort den passenden Typ dafür fest (eine Zahl oder einen String). Was aber, wenn die spätere Installation eines dieser Typen störend sein kann? In solchen Fällen können Sie den Wert vom Typ „undefiniert“ verwenden. Es ist auch erwähnenswert, dass viele Funktionen der integrierten Sprache im Falle einer erfolglosen Ausführung als Ergebnis einen Wert dieses Typs zurückgeben. Bei der Beschreibung Ihrer Funktionen empfiehlt es sich, sich an derselben Regel zu orientieren.

Null. Die allgemeine Bedeutung von Null ist fast dieselbe wie die von „undefiniert“. Werte dieses Typs werden verwendet, um einen fehlenden Wert in der Datenbank zu kennzeichnen. Am häufigsten können Sie Werte dieses Typs mithilfe einer Abfragesprache abrufen. Beispielsweise eine Abfrage, die Tabellenverknüpfungen verwendet. Angenommen, in einer der Tabellen gibt es keinen Wert, der die Bedingung erfüllt. In diesem Fall wird anstelle des fehlenden Werts ein Wert vom Typ Null eingefügt.

Es ist nicht nur bei der Arbeit mit Abfragen möglich, auf einen Wert vom Typ Null zu stoßen. Ein Nullwert akzeptiert beispielsweise Attribute, die vom Objekt nicht verwendet werden. Stellen wir uns vor, wir hätten ein hierarchisches Nachschlagewerk mit dem Attribut „Menge“. Bei der Erstellung dieses Attributs wurde die Eigenschaft „Verwenden“ auf „Für das Element“ gesetzt. Wenn Sie versuchen, auf dieses Attribut für ein Referenzelement vom Typ „Gruppe“ zuzugreifen, ist sein Wert Null.

Typ. Dieser Typ wird verwendet, um verfügbare Typen zu definieren. Klingt etwas verwirrend? Ok, ich versuche es anhand eines Beispiels zu erklären. Stellen Sie sich vor, Sie stehen vor der Aufgabe, die Typen zweier Variablen zu vergleichen. Im Code sieht es etwa so aus:

Variable1 = 123; //Da wir eine Zahl zugewiesen haben, ist der Typ der Variablen „Zahl“.
Variable2 = "string"; //Hier haben wir einen String zugewiesen, sodass der Variablentyp ein String ist.

Jetzt müssen Sie 100 % sicher sein, dass Variable1 numerisch ist. Hier bietet sich der Typ „Type“ an (klingt lustig) sowie ein paar Hilfsfunktionen. Bis Sie ins Detail gehen. Werfen Sie einfach einen Blick darauf und versuchen Sie, das folgende Beispiel zu verstehen:

If (TypeZnch(Variable1) = Type("Number")) Dann

alarm("Variable1 ist numerisch!");

Ansonsten

Alert("Variable1 ist NICHT numerisch:(");

EndIf;

In diesem kleinen Codeausschnitt erhalte ich zunächst den Typ der Variablen mithilfe der Funktion ValueType(). Diese Funktion akzeptiert als Parameter einen Wert, dessen Typ Sie erhalten möchten. In unserem Fall ist dies „Variable1“. Dann muss ich einen Wert vom Typ „Type“ erhalten, der den Typ „Number“ charakterisiert. Hierzu stellt die eingebaute Sprache die Funktion „Type()“ zur Verfügung. Es benötigt nur ein Argument, eine Zeichenfolgendarstellung des Typnamens. Da wir mit dem Typ „Number“ vergleichen müssen, lautet der Parameter für die Funktion „Number“.

Ich danke Igor Antonov für seine Hilfe beim Schreiben des Artikels.

Wir setzen unsere Bekanntschaft mit der neuen Funktionalität von 1C:Enterprise fort, die im vorherigen Artikel des Zyklus begonnen wurde. Nachdem Sie die Materialien in diesem Artikel studiert haben, erfahren Sie:

  • Was sind definierte Typen und wie werden sie verwendet?
  • Wofür wird die Konfigurationseigenschaft „Primäre Rollen“ verwendet?
  • Wie verwende ich den Form Client Event Handler Creation Helper?
  • Wie und warum werden Konfigurations-Dumps in XML-Dateien verwendet?

Anwendbarkeit

Der Artikel befasst sich mit der 1C:Enterprise-Plattformversion 8.3.4.437, seine Materialien können jedoch auch für diejenigen nützlich sein, die an älteren Versionen arbeiten.

So erleichtern Sie die Entwicklung in 1C:Enterprise 8.3

Wir erwägen weiterhin Innovationen in der 1C:Enterprise 8-Plattform, die darauf abzielen, die Konfiguration zu erleichtern.

Definierte Typen

In Plattform 8.3 wurde dem Konfigurationszweig „Allgemein“ ein neues Objekt hinzugefügt – Definierte Typen.

Hierbei handelt es sich um ein spezielles Konfigurationsobjekt, das dazu dient, einen Datentyp zu definieren, der eine häufig verwendete Entität beschreibt oder sich mit hoher Wahrscheinlichkeit bei der Implementierung einer angewandten Lösung ändern kann.

Betrachten Sie beispielsweise einen zusammengesetzten Typ, der einen Link zu den Verzeichnissen „Auftragnehmer“ und „Einzelpersonen“ enthält.

Und dieser Typ wird in einigen entwickelten Konfigurationen häufig als Dimension im Informationsregister verwendet, das Kontaktinformationen beschreibt, als Attribut im Dokument „Bargeldbeleg“ usw.

Bei der Implementierung einer solchen Konfiguration kann sich die Zusammensetzung dieses Typs ändern – es können neue Objekte hinzugefügt werden und umgekehrt – unnötige Typen können ausgeschlossen werden.

Wenn wir anstelle unseres neuen „definierbaren Typs“ an jeder Stelle, an der eine solche Entität verwendet wird, einen zusammengesetzten Typ verwenden, müssen wir die Zusammensetzung der Typen überall ändern. Es ist langwierig, schwierig, arbeitsintensiv und es besteht die Gefahr, dass man einige Requisiten vergisst.

Wenn Sie einen definierten Typ verwenden, müssen Sie im Zuge der Fertigstellung der angewandten Lösung nur die Definition dieses Typs (und den Programmcode, der solche Felder verarbeitet) ändern.

Alle Attribute, für die der definierte Typ als Typ angegeben ist, werden automatisch geändert.

Hier ist ein weiteres Beispiel für die Verwendung eines definierten Typs.

Für einige Attribute gibt es in der Konfiguration einen Typisierungsstandard. Beispielsweise definieren wir eine Menge als eine Zahl der Länge 15 mit einer Genauigkeit von 3 und einen Betrag als eine Zahl der Länge 15 mit einer Genauigkeit von 2.

Nehmen wir an, dass das Unternehmen Aufzeichnungen über hochwertige Güter mit hoher Gewichtsgenauigkeit führen muss.

Dementsprechend mussten wir die Genauigkeit der Details erhöhen, um die Zahl auf bis zu 4 Dezimalstellen zu berücksichtigen. Diese Änderungen müssen gleichzeitig an allen Details von Dokumenten und Registerressourcen vorgenommen werden.

Dies ist eine einfache Aufgabe, die jedoch sehr zeitaufwändig ist und große Sorgfalt und Ausdauer des Entwicklers erfordert.

Wenn Sie einen neuen, von Ihnen definierten Typ erstellen, müssen Sie nur seinen Typ angeben. Wenn Sie dann die Details von Dokumenten erstellen und Ressourcen registrieren, können Sie einen Link zum erstellten definierten Typ auswählen.

Mit diesem Ansatz können Sie an allen Stellen, an denen er verwendet wird, den gleichen Datentyp (gleiche Länge, Genauigkeit, gleiche Zusammensetzung für Felder eines zusammengesetzten Typs usw.) garantieren.

Wenn Sie dann den Datentyp aller Attribute ändern müssen, müssen Sie nicht jedes Attribut einzeln manuell korrigieren, es reicht aus, Änderungen am entsprechenden definierten Typ vorzunehmen.

Der zu definierende Typ kann zusammengesetzt werden. Allerdings gibt es Einschränkungen bei der Verwendung dieses Konfigurationsobjekts. Daher kann der definierte Typ nicht Teil des Werttyps des Merkmalstypenplans und auch nicht Teil des zusammengesetzten Datentyps eines anderen Attributs sein.

Beachten Sie, dass in Plattform 8.3.5 die Möglichkeiten zur Verwendung definierter Typen erweitert wurden, indem die Menge der Typen erweitert wurde, die Teil des definierten Typs sein können.

Bis zu den aktuellen Plattformversionen 8.3.10/8.3.11 gab es keine Änderungen mehr bei der Arbeit mit dem definierten Typ.

Konfigurationseigenschaft „Primäre Rollen“

In Plattform 8.2 verfügte das Root-Konfigurationselement über die Eigenschaft „Primäre Rolle“, in der der Entwickler die Rolle definierte, die verwendet werden würde, wenn Informationsbasis Benutzer sind nicht festgelegt.

In Plattform 8.3 ist es möglich, mehrere Rollen anzugeben, die bei der Festlegung der Zugriffsrechte verwendet werden, wenn die Benutzerliste leer ist. Dementsprechend wurde die Eigenschaft in „Hauptrollen“ umbenannt.

Klicken Sie auf das Bild, um es zu vergrößern.

Erstellen von Formular-Client-Ereignishandlern

Beim Konfigurieren einer verwalteten Anwendung muss der Entwickler den Ausführungskontext des Programmcodes mithilfe der entsprechenden Präprozessoranweisungen sorgfältig überwachen.

Da auf dem Client nur eine begrenzte Anzahl an Datentypen und Methoden verfügbar ist, muss der Entwickler häufig eine Clientprozedur erstellen, von der aus er die Steuerung an den Server überträgt.

Plattform 8.3 führte einen Assistenten zum Erstellen von Formular-Client-Ereignishandlern ein.

Klicken Sie auf das Bild, um es zu vergrößern.

Jetzt muss der Entwickler nicht mehr manuell eine Servermethode erstellen und ihren Aufruf innerhalb der Client-Prozedur angeben, sondern kann sich vollständig auf die Implementierung der Anwendungslogik des Systems konzentrieren.

Hochladen der Konfiguration in Dateien

Eine weitere Neuerung der 8.3-Plattform ist die Möglichkeit, die gesamte Konfiguration als Dateisatz einer bestimmten Struktur auf die Festplatte zu übertragen.

Die Konfiguration wird immer nur vollständig entladen, ohne die Möglichkeit, entladene Objekte zu filtern.

Um die Konfiguration in Dateien zu entladen, wählen Sie den Menüpunkt Konfiguration – Konfiguration in Dateien hochladen. Wählen Sie im sich öffnenden Dialog das Verzeichnis aus, in dem die Dateien gespeichert werden sollen.

Konfigurationsobjekte werden als Satz XML-Dateien hochgeladen. Module und Textlayouts werden als TXT-Dateien gespeichert. Bilder aus der Konfiguration werden als Bilddateien (BMP, PNG usw.) gespeichert. Referenzinformationen in HTML-Dateien exportiert.

Klicken Sie auf das Bild, um es zu vergrößern.

Wie Sie sehen, haben die resultierenden Dateien gemeinsame universelle Formate. Für deren Bearbeitung gibt es eine Vielzahl unterschiedlicher Softwareprodukte.

Sie können auch Versionskontrollsysteme von Drittanbietern verwenden. Sie ermöglichen es Ihnen, mehrere Versionen desselben Dokuments zu speichern, bei Bedarf zu früheren Versionen zurückzukehren und festzustellen, wer und wann diese oder jene Änderung vorgenommen hat.

Bearbeitete Dateien können über den Menüpunkt Konfiguration – Konfiguration aus Dateien laden wieder in die Konfiguration geladen werden.

Das Arbeiten mit der neuen Lade-/Entladefunktionalität ist auch über die Befehlszeilenparameter LoadConfigFromFiles und DumpConfigToFiles möglich. Zum Beispiel so:

„c:\Programme (x86)\1cv8\8.3.4.437\bin\1cv8.exe“ DESIGNER /F „X:\Platform8Demo“ /N „Administrator“ /DumpConfigToFiles „X:\1\“

Zuvor, in Plattform 8.2, gab es einen Mechanismus zum Entladen/Laden von Konfigurationsdateien, der das selektive Entladen/Laden einiger Eigenschaften von Konfigurationsobjekten (Module, Layouts und Referenzinformationen) ermöglichte.

Es wurde festgestellt, dass die Befehle „Konfigurationsdateien entladen“ und „Konfigurationsdateien laden“ standardmäßig vom Konfigurator in Plattform 8.3 ausgeschlossen sind.

Durch Anpassen des Hauptmenüs können Sie diese Befehle jedoch im Menü anzeigen und verwenden.

Der neue Mechanismus zum Entladen der Konfiguration in Dateien entlädt immer die gesamten Daten für die gesamte Konfiguration. Die Möglichkeit, Objekte zum Entladen zu konfigurieren, ist nicht vorgesehen, wodurch die Integrität der Konfiguration sichergestellt wird.

Gewöhnliche Formulare und Schnittstellen werden in binärer Form (intern) hochgeladen und können nicht bearbeitet werden. Auch die Herstellerkonfiguration darf nicht bearbeitet werden.

Die restlichen Objekte werden in Dateien universeller Formate hochgeladen. Im Wesentlichen konzentriert sich der Mechanismus auf eine verwaltete Anwendung.

Der neue Mechanismus bietet dem Entwickler die Möglichkeit einer automatisierten Konfigurationsverarbeitung, indem der Konfigurator im Batch-Modus ausgeführt wird.

Außerdem kann die Konfiguration jetzt von externen Softwaretools bearbeitet werden, beispielsweise im XML-Format.

Beim Entladen wird eine zusätzliche Konfigurationsverarbeitung durchgeführt: hängende Links werden entfernt, nicht verwendete Informationen werden ebenfalls nicht entladen (z. B. Hilfe für eine nicht vorhandene Sprache).

Und beim Laden der Konfiguration wird ihre Integrität überprüft, es ist nicht erlaubt, Dateien mit nicht eindeutigen Bezeichnern, Metadatenobjekten, falschen Datentypnamen usw. zu laden.

Beachten Sie, dass seit Version 8.3.7 ein neues Upload-Format erschienen ist, das „hierarchisch“ heißt. Das alte Format wurde als „linear“ bezeichnet. Die Formatauswahl steht im Fenster zum Hochladen in Dateien zur Verfügung:

Ab Version 8.3.11 steht beim interaktiven Hochladen nur noch das „hierarchische“ Format zur Auswahl:

Wenn Sie diese Funktionalität nutzen, empfehlen wir:

  • erstens, das „hierarchische“ Upload-Format zu verwenden;
  • Zweitens verwenden Sie eine Plattform, die nicht niedriger als Version 8.3.8+ ist, denn Ausgehend davon wurde die Geschwindigkeit des Ladens/Entladens in XML-Dateien deutlich erhöht.

Version 8.3.10 unterstützt jetzt das teilweise Dumpen der Konfiguration in XML-Dateien. Dadurch wurde es möglich, Konfigurations-Dumps in XML in Verbindung mit Git zu verwenden.

/
Erstellen und Ändern von Metadatenobjekten

Verwenden definierter Typen

Geltungsbereich: verwaltete Anwendung, reguläre Anwendung.

1. Definierte Typen dienen dazu, Datentypen zu definieren, die häufig verwendete Entitäten beschreiben oder sich mit hoher Wahrscheinlichkeit bei der Implementierung einer angewandten Lösung ändern können. Sie ermöglichen die Wiederverwendung des beschriebenen Typs oder Satzes von Typen, ohne die Zusammensetzung an verschiedenen Stellen in der Konfiguration (in Attributen, Eigenschaften von Objekten, Formularen usw.) anzugeben.

Siehe auch den Artikel zum ITS: „Konfigurationsobjekte – Definierte Typen“

2.1. Um einen einfachen Typ und seine Qualifizierer zu definieren, die eine angewandte Bedeutung haben, die in verschiedenen Attributen, Ressourcen, Formularattributen, Layouts usw. verwendet wird. innerhalb eines beliebigen Subsystems oder in der gesamten Anwendungslösung. Dies garantiert die gleiche Länge, Datengenauigkeit an allen Einsatzorten und vereinfacht die Nacharbeit bei sich ändernden Anforderungen.
Zum Beispiel:

  • Rechnungsnummer- Zeile, Länge 30. Reguliert das Format der Rechnungsnummer in verschiedenen Dokumenten: Empfang von Waren und Dienstleistungen, WriteBooksKäufe, Waren vom Kunden zurücksenden usw.
  • Versandadresse- String, 500. Textliche Darstellung der Lieferadresse in Dokumenten BestellenLieferant, Lieferadresse des Spediteurs, in Bearbeitung Verkäufer, in Requisiten Lieferadresse des Spediteurs dokumentieren Antrag auf Warenrückgabe durch den Kunden usw.

2.2. Definieren eines zusammengesetzten Typs, der in großem Umfang in Objekten eines Subsystems oder in der gesamten Anwendungslösung verwendet wird. Der definierte Typ garantiert die gleiche Zusammensetzung (Art) der Daten an allen Einsatzorten und vereinfacht zudem die Entwicklung und Implementierung von Subsystemen in Anwendungskonfigurationen.

Beispielsweise ist das Subsystem in die Konfiguration eingebettet Interaktionen, das für die Führung der Korrespondenz bestimmt ist Email, Registrierung von Anrufen und Besprechungen. Bei der Implementierung dieses Subsystems hat sich der Entwickler für die Zusammensetzung von Metadatenobjekten entschieden, die als „Interaktionskontakte“ fungieren können – das sind Elemente von Verzeichnissen Einzelpersonen, Partner, KontaktPartner, und legen Sie diese Typenzusammensetzung im definierten Typ fest KontaktInteraktionen im Subsystem bereitgestellt. Der definierte Typ wiederum wird massiv in Objektattributen und Subsystemformularen (in Dokumenten) verwendet Treffen, Geplante Interaktion- tabellarischer Teil Mitglieder, im Dokument NachrichtSMS- tabellarischer Abschnitt Adressaten, im Dokument Anruf- Requisiten Abonnentenkontakt, in allgemeinen Formen Das Adressbuch, AuswahlKontakt- Requisiten KontakteNach Betreff,im Layout-Parameter HierarchieInteraktionenKontakt Dokumentenjournal Interaktionen usw.) Andernfalls, ohne den Typ zu verwenden, der definiert wird KontaktInteraktionen Es wäre notwendig, die Subsystemobjekte aus der Unterstützung zu entfernen und die erforderliche Typenzusammensetzung an allen aufgeführten Stellen festzulegen.

2.3. Bei der Entwicklung eines injizierten Subsystems zum Überschreiben des Anwendungstyps, der während der Implementierung angegeben wird.
Beispiel: Subsystemtyp Lieferanten kann bei der Bereitstellung durch einen angewendeten Konfigurationstyp ersetzt werden Gegenparteien.

3. Es ist falsch, definierte Typen zu verwenden, um ein „Synonym“ für einen vorhandenen Typ, einen „Ersatz“ von Entitäten, für die lokale (nicht Massen-) Verwendung innerhalb eines Subsystems (Konfiguration) festzulegen, ohne dass eine Implementierung in anderen Konfigurationen erforderlich ist, nur für Gründe für die einfache Verfeinerung. Dies deutet in der Regel auf einen Konstruktionsfehler oder eine methodisch falsche Wahl des ursprünglichen Typnamens hin.

Typensystem ist ein spezielles System, nach dem die von Anwendungslösungen verwendeten Daten organisiert werden. Mit dem Typsystem können Sie reale Informationen in Begriffen darstellen, die für 1C:Enterprise 8 „verständlich“ sind.

Das Typsystem bietet zahlreiche Möglichkeiten sowohl zur direkten Beschreibung der Geschäftslogik angewandter Lösungen als auch zur Durchführung zwischengeschalteter Datenverarbeitungsaufgaben.

Das Typsystem wird im Syntaxassistenten, in der integrierten Hilfe und in der Dokumentation beschrieben.

Das Hauptmerkmal des Typsystems besteht darin, dass es in jeder Anwendungslösung Typen gibt. Diese Typen selbst werden auf Plattformebene definiert und sind immer vorhanden, unabhängig von den Aktionen des Entwicklers. Darüber hinaus können in einer bestimmten Anwendungslösung verschiedene Arten von Daten vorhanden sein, die dieser bestimmten Anwendungslösung innewohnen. Nur für solche Datentypen auf Plattformebene Allgemeine Regeln ihre Kreationen, Muster. Und spezifische Datentypen werden von der Plattform basierend darauf erstellt, wie der Entwickler die Struktur der angewandten Lösung gestaltet und ändert.

Auf Plattformebene definierte Datentypen

Die Arten, mit denen angewandte Lösungen arbeiten können, sind sehr vielfältig. Es ermöglicht Ihnen, sowohl Datenverarbeitungsaufgaben als auch die Aufgaben zu lösen, diese Daten dem Benutzer zu präsentieren und interaktiv mit ihnen zu arbeiten. Es gibt mehrere Hauptkategorien von Datentypen.

Primitive Typen

Primitive Datentypen sind Typen wie Linie, Nummer, Datum, Boolescher Wert und andere. Diese Typen sind für 1C:Enterprise 8 keine Besonderheit. In der Regel gibt es solche Datentypen auch in anderen Softwaresystemen.

Werte primitiver Typen sind einfache unteilbare Werte, bei denen es unmöglich ist, einzelne Komponenten zu unterscheiden. Zum Beispiel Werte wie Nummer kann 1, 8, 15 usw. sein. Um einen Wert eines primitiven Typs zu erstellen, müssen Sie ihn im Programmtext angeben wörtlich- Zeichenidentifikator des Werts.

Generische Wertsammlungen

Es gibt auch komplexere Datentypen. Beispielsweise unterstützt die Plattform eine Reihe von Typen, bei denen es sich um generische Wertesammlungen handelt: Array, Struktur, Liste von Werten und andere.

Allgemeine Typen

Darüber hinaus implementiert die Plattform spezifische Datentypen, die die eine oder andere Funktionalität der angewandten Lösungen implementieren: Text dokument, Tabellendokument, Speicherwerte, Request Builder und andere.

Häufige Typen werden auch genannt gemeinsame Gegenstände. Die Werte dieser Typen sind im Gegensatz zu den Werten primitiver Typen eine Sammlung von Werten einzelner Eigenschaften eines Objekts. Deshalb heißen sie Objektinstanzen.

Objektinstanzen werden mit einem speziellen integrierten Sprachoperator erstellt – Neu.

Schnittstellentypen

Mit Schnittstellentypen können Sie die visuelle Interaktion der angewandten Lösung mit dem Benutzer organisieren. Im Wesentlichen handelt es sich hierbei um Typen, die sich auf die Funktionsweise von Formularen und deren Elementen beziehen.

In der angewandten Lösung generierte Datentypen

Allerdings kann eine bestimmte Anwendungslösung neben den Datentypen, die auf Plattformebene definiert sind, auch eindeutige Datentypen verwenden, die nur in dieser bestimmten Anwendungslösung vorhanden sind. Darüber hinaus unterstützt die Plattform die Arbeit mit diesen Datentypen vollständig, genauso wie mit Typen, die auf der Ebene der Plattform selbst definiert sind.

Das Auftauchen neuer Datentypen in einer Anwendungslösung ist in der Regel mit der Verwendung von Anwendungskonfigurationsobjekten verbunden. Daher werden diese Typen auch genannt Anwendungsarten oder angewandte Objekte.

Auf Plattformebene werden mehrere Klassen (Vorlagen) von Anwendungsobjekten unterstützt, die für sich genommen nicht in einer bestimmten Anwendungslösung verwendet werden können. Sie können beispielsweise solche Anwendungsobjektklassen auflisten wie Nachschlagewerke, Dokumentation, Informationsregister, Pläne von Merkmalstypen usw.

Für jede Klasse von Anwendungsobjekten wird die ihr entsprechende Grundfunktionalität definiert: die Arten von Datenbanktabellen, die zum Speichern von Daten erstellt werden müssen, Standardformulare, typische Sprachobjekte, Rechtesätze usw.

Der Entwickler hat beim Erstellen einer Anwendungslösung nicht die Möglichkeit, diese Klassen direkt zu verwenden, er kann jedoch ein neues Konfigurationsobjekt zu seiner Anwendungslösung hinzufügen, das alle Funktionen einer bestimmten Klasse erbt:

Beispielsweise kann ein Entwickler seiner Anwendungslösung eine neue Referenz hinzufügen Nomenklatur Nachschlagewerke, oder ein neues Dokument CashReport, die die Funktionalität der Klasse erbt Dokumentation.

Unmittelbar nach einer solchen Ergänzung stehen dem Entwickler neue Datentypen zur Verfügung, deren Zusammensetzung durch die Zugehörigkeit des Konfigurationsobjekts zu einer bestimmten Klasse von Anwendungsobjekten bestimmt wird.

Zum Beispiel nach dem Erstellen eines neuen Verzeichnisses Nomenklatur werden folgende Datentypen verfügbar:

  • DirectoryManager.Nomenclature,
  • DirectoryLink.Nomenklatur,
  • DirectoryObject.Nomenclature,
  • DirectorySelection.Nomenclature,
  • DirectoryList.Nomenclature.

Das Typsystem beschreibt nur die allgemeine „Struktur“ dieses Typs, die Regeln, nach denen Objekte dieses Typs gebildet werden. Der konkrete Name des Typs, die Zusammensetzung der Eigenschaften und Methoden des Objekts hängen davon ab, wie der Entwickler das Konfigurationsobjekt aufruft und welche Details, beispielsweise tabellarischen Teile, er ihm hinzufügt.

Gleichzeitig nach der Erstellung eines neuen Akkumulationsregisters Vertriebsgesellschaften, wird die Zusammensetzung der neuen Datentypen unterschiedlich sein:

  • RegisterAccumulationManager.SalesCompanies,
  • RegisterAccumulationSampling.SalesCompanies,
  • RegisterAccumulationList.SalesCompanies,
  • RegisterAccumulationSetRecords.SalesCompany,
  • RegisterAccumulationRecord.SalesCompanies,
  • Akkumulation RegisterRecordKey.CompanySales.

Es ist noch einmal zu beachten, dass diese Datentypen von der Plattform nicht nativ unterstützt werden und nur in einer bestimmten Anwendungslösung vorhanden sind.

Ein weiterer Punkt, der hervorgehoben werden sollte, lässt sich am einfachsten anhand eines Beispiels veranschaulichen.

Angenommen, in der Anwendungslösung werden zwei neue Verzeichnisse erstellt: Nomenklatur Und Preise. Trotz der Tatsache, dass beide Objekte die Funktionalität der entsprechenden Klasse geerbt haben Nachschlagewerke und in der Anwendungslösung derselbe Satz von Datentypen für sie erstellt wurde, handelt es sich bei „gleichnamigen“ Datentypen um unterschiedliche Datentypen. Zum Beispiel, DirectoryObject.Nomenclature Datentyp.

Melden Sie sich als Student an

Melden Sie sich als Schüler an, um auf Schulinhalte zuzugreifen

Interne Programmiersprache 1C 8.3 für Programmieranfänger: Datentypen in 1C

Jetzt wissen wir, wie wir den Computer dazu bringen, unsere Befehle auszuführen (am Beispiel des Befehls „Report“) und wie wir bestimmte Parameter an die Befehle übergeben (den Text der Nachricht, die in Klammern nach „Report“ folgt). Wir haben auch herausgefunden, dass alle Befehle durch ein Semikolon getrennt sind.

Datentypen

Eine der Hauptaufgaben der Programmierung ist die Datenverarbeitung. Lassen Sie uns also herausfinden, was die wichtigsten Datentypen in der 1C-Sprache sind:

  • Linie. Ein hervorragendes Beispiel für solche Daten ist ein Zitat aus einem Gedicht „Der Sturm bedeckt den Himmel mit Nebel“. Beachten Sie, dass String-Daten immer in eingeschlossen sind Anführungszeichen.
  • Nummer. Wir alle kennen den Datentyp. Wir beschäftigen uns oft mit ihm wahres Leben A: Am Zahltag bei der Arbeit und dann im Laden. Zahlen können, wie Sie sicherlich wissen, sein ganz Und gebrochen. Ein Beispiel für eine ganze Zahl: 1000000, aber eine gebrochene Zahl: 3,14. Der gebrochene Teil wird vom Ganzen getrennt Punkt. Zahlen haben auch ein Vorzeichen: Plus oder Minus.
  • Datum. Ein Beispiel für diese Art von Daten ist Ihr Geburtsdatum. Es umfasst Jahr, Monat und Tag. Beispielsweise fand am 12. April 1961 der erste bemannte Flug ins All statt. In Computersprache sehen diese Daten so aus: „ 19610412 ". Versuchen Sie selbst herauszufinden, warum das so ist. Das Datum ist immer drin Einzelzitate ().

Aufgabennummer 6. Notieren Sie im Computerformat (unter Verwendung des entsprechenden Datentyps) die Antworten auf die folgenden Fragen:

  1. Wann wurde der erste künstliche Satellit gestartet?
  2. Wie hieß der erste Astronaut?
  3. Wie viele Planeten gibt es im Sonnensystem?

Überprüfe dich selbst

Basierend auf den Ergebnissen von Aufgabe Nr. 7 können wir eine interessante Schlussfolgerung ziehen: Als Parameter für den Report-Befehl können Sie nicht nur Strings, sondern auch Daten jedes anderen Typs übergeben.

Datenverarbeitung

Lassen Sie uns nun endlich diese Daten verarbeiten! Welche Operationen können wir an Daten durchführen? Es kommt auf ihren Typ an.

Beispielsweise können wir Zeichenfolgen über das Additionszeichen miteinander verbinden:

Für komplexere arithmetische Ausdrücke verwenden Sie Klammern:

Aufgabennummer 8. Führen Sie diese Beispiele auf einem Computer aus.