Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.

Grüße alle Leser infostart'a. Dieser Artikel wird dem Problem der Erstellung eines beliebigen Wertes von Werten in Form einer verwalteten Anwendung gewidmet software.

Merkmale der Aufgabe.

Jeder, der im üblichen Anhang programmiert ist, standen oft vor der Aufgabe, ein beliebiges Werteabladen auf dem Formular zu erhalten. Unter einer beliebigen Werte-Tabelle wird als Tabelle verstanden, deren Anzahl und Art der Säulen nicht bekannt ist. Das heißt, die Säulen können 3 und vielleicht 6 oder vielleicht 8 sein. Werte an diesen Artikel an diesen Artikel. Dann ein einfaches Team:

ElementForms Ticketpass. Commons ();

erhalten fertigtisch Werte im Formular. Es scheint, dass es einfacher sein kann.

Es war alles in der üblichen Anwendung. In der verwalteten Anwendung hat sich alles geändert. So einfach ein beliebiger Tisch nicht zu erstellen. Jetzt müssen Sie entweder starr parametrieren, um die Wertetabelle in der Form zu parametrieren, oder erstellen Sie sie programmgesteuert (in dieser Tatsache, in diesem Fall, tatsächlich das Wesen der autorisierten Anwendung selbst) zu erstellen. Dies werden wir versuchen zu tun: software Erstellen Sie ein beliebiger Name der Werte in einem verwalteten Formular.

Die Lösung des Problems.

Das erste, was wir tun müssen, ist zu bestimmen, wie die Tabelle in der Form erscheint. Die Hauptsache ist, dass kein Element des Formulars in der Verarbeitung nicht erforderlich ist. Wir erstellen es programmgesteuert, wie die gesamte Tabelle. Das heißt, die Tabelle wird beschrieben und zum Zeitpunkt des Öffnens des Formulars oder der Verwendung der Taste erstellt - so ist es notwendig.

Das Erstellen einer Tabelle auf dem Formular erfolgt durch die Beschreibung der Werte-Tabelle als Anforderung:
MASSIFERBOABOR \u003d Neues Array; Massivierbarer Kunde. Fantastisch (Typ ("Tabelle Apposition")); BeschreibungCareBar \u003d neue Beschreibungen (Massifizität); Massive \u003d Neues Array; Massive. Fantastisch (neuer Voraussetzung ("Tablescript", Beschreibungen, "", "TZN"); Jetzt müssen wir eine Softwaretabelle der Werte erstellen, die Daten enthalten. Wenn die Wertentabelle aus der Anforderung erhalten wird, ist alles weniger als die Reihenfolge. Wenn die Tabelle manuell erstellt wird, kann der Wert der Lautsprecher, die Zahlen oder Termine enthalten, über die "Beschreibung" erstellt werden. Die unterste Linie besteht darin, dass die Spalten in der Wertetabelle eine Art Typ haben müssen. Wenn beispielsweise angenommen wird, dass der Benutzer die Daten in diesen Spalten interaktiv einfügt, können Sie die Werte der Werte nicht einfach mit dem Namen hinzufügen, sondern es sollte ein Typ sein. Denken Sie daran - das ist sehr wichtig, weil Wir geben diesen Typen dem Tisch auf dem Formular.
Erstellen Sie eine Tabelle, die mehrere Spalten enthält:
KD \u003d neue qualifizierende Daten (Partikel. Veria); Massiig \u003d Neues Array; Arme. Fantastisch (Typ ("Datum")); Lookup-Grafiken \u003d neue Beschreibungen (Arme, CD); Tk \u003d neue Tische;
Tk.colonki. Fantast ("c", Beschreibungen.
Tk.colonks. Fantast ("bis", Beschreibungen.
Tk.colonki. Fantastischer ("vollständiger Name");
Tk. Solonks. Fantastisch ("Hinweis"); // voller Hinweis - Zeilen Weiter, wir füllen unsere Software-Tabelle TK mit den erforderlichen Daten. Wir erhalten den TK-Tisch, der die erforderlichen Werte enthält, und ist zur Übertragung an die erstellten Requisitenstationen bereitgestellt. Für jede Spalte von TK. Säulenzyklus

MassiveVizites. Fantastisch (neuer Anforderung (Spalte. Ich meine, Spalte. Typ, "Taxcripts");
Endrad;
Wechselt (Massivervizits);
TablePoles Captivity \u003d Elemente. Fantastisch ("TZN", Typ ("Tabellenform");
TablePoles Capture. Powded \u003d "Taxcripts";
Tablepoleseboat. Beispiel \u003d Angezeigt. Gelegenheiten;

Hier ist eine solche einfache Kombination und unser Tisch ist fertig.

Für jede Spalte von TK. Säulenzyklus

Newelent \u003d Elemente. Fantast (Spalte. Ich meine, tippen ("Vor- oder" Vor-), Tipfrollen);
Neues Element. Vid \u003d vidpolare Form. Macht;
Neues Element. Powdly \u003d "Taxcripts." + Spalte.
Neues Element.shirina \u003d 10;
Endrad;

Bedingtes Design, wenn wir brauchen, schreiben wir auch manuell, Befehlsmenü - manuell. Tafelhandler werden auch mit Händen geschrieben. So fügen Sie beispielsweise ein Event-Handler-Ereignis hinzu:

Tischplatten erfassen. Einstellung ("Wahl", "Tznvybor");

Um dieses Ereignis zu verarbeiten, wird in Form des Verfahrens ein separates Verfahren verschrieben:

& Svalette.
Verfahren TZNVSB (TK, ausgewählt, Feld, Standardbearbeitung)
// Prozessorbefehle Endsteuerungen

Bitte beachten Sie, dass die Tabellenhandler auf dem Client ausgelöst werden und daher einen Compiler-Zeigerbefehl haben müssen

& Svalette.

Nun, und das letzte, was ich hinzufügen wollte, dass wir nach all diesen Handlungen definitiv nicht vergessen, den fertigen Tisch in die Anforderung des Formulars zu übertragen:

Kürzlichrerevisitforms (TK, "Taxcripts");

Hier ist das, was wir als Ergebnis haben:


Aber die Verarbeitung der Ereignisse "Wahl":



Nachwort.

Ich hoffe, der Artikel hilft diesen Programmierern 1c, die mit der Erstellung von Tabellen in Form der programmatischen Methode erstellen.

Sie können die Verarbeitung herunterladen, in der Software eine Wertentabelle erstellt und ein verwaltetes Formular mit Kommentaren anzeigt, mit denen Sie Ihre eigenen Tabellen erstellen können.

Veröffentlicht am 21. September 2011

Tabelle 1c-Werte - 3 Teil. Metadaten. Shruise-Säulen-Tabellenwerte

In diesem Artikel werde ich Ihnen sagen, wie Sie mit der Tabelle der "unbekannten" Werte der Struktur arbeiten können, wie Sie die Lautsprecher der Werte der Werte sortieren, wie Sie Daten aus Spalten und Zeilen ohne extrahieren können Verwenden der Spaltennamen. (Dieser Artikel bezieht sich auf 1C-Artikel von Null; Programmierung 1c von Null; Tabelle 1c Werte)

Um das Material zu erklären und so dass Sie unsere Beispiele des Programmcodes "Live" ausführen können, brauchen wir eine Art testtabellenwerte 1c. Einige unserer Beispiele extrahieren Daten aus der Werte-Tabelle, sodass wir einen Tisch mit drei Spalten "Nachname", "Name", "Patronymic" erstellen und eine kleine Menge an Daten darin erstellen - bereits 3 Zeilen :)

Lassen Sie uns also einen Test-Tisch mit 1C-Werten erstellen und füllen:

Washt \u003d neue Tische; // Erstellen neue Tabelle Die in der variablen Waschen "Washtz" gespeicherten Werte. SCINTINGS. FÜNFLUNG ("Nachname"); // Erstellen Sie einen "Nachnamen" -Schandel "mytz.colonks. Fantastisch (" Name "); // Erstellen Sie eine "Name" -Schandeläule. Schneiden. Hinzufügen ("patronymic"); // Erstellen Sie eine Spalte "patronymic" // Fügen Sie der ersten Zeile unserem Tisch der Werte des newstream \u003d Waschtischs hinzu. Hinzufügen (); Newstock.familia \u003d "chapaev"; Newstock Ich meine \u003d "vasily"; Newstock. Zierlich \u003d "Ivanovich"; // Fügen Sie die zweite Zeile des Newstreams \u003d Waschtisch hinzu. Fügen Sie () hinzu;); NewStock.Familia \u003d "Dzerzhinsky"; NewStock. Ich meine \u003d "Felix"; NewStock. Delikatesse \u003d "Edmundovich"; // Fügen Sie die dritte Linie der neuen Straße hinzu \u003d Wawt. Hinzufügen (); Newstock.familia \u003d "Kotovsky"; NewStock. Ich meine \u003d "Grigory"; Newstock. Zierlich \u003d "Ivanovich";

Unsere Test-Tabelle besteht aus drei Spalten: Name, Nachname, PatronyMic; Und hat drei gefüllte Linien mit den Namen der Helden des Bürgerkriegs.

Der erste Beispielcode besteht darin, die Spalten der Tabelle von 1C-Werten als Sammlung zu bauen.

// Wir zeigen die Namen aller Spalten der TK für jede Spalte von Wooat an. Colloniks-Bericht ("Spaltenname:" + Spalte. Endrad;

Unser Zyklus zeigt 1C-Nachrichten im Nachrichtenfenster alle Namen der Spalten an:

Spaltenname: Nachname Spaltenname: Name Spaltenname: Patronymic

Wir sehen, dass ein spezielles Zyklus einer Sammlung einer Sammlung einer Sammlung ähnlich dem Busting Cycle of Saiten (letzter Artikel) verwendet wird, um die Spalten aufzulagern. Washtz. Solonki. - Dies ist eine Sammlung von Spalten des Tisches von 1C-Werten "Washtz". Die Sammlung enthält Objekte wie z "Colonkotable" Jede Aufgabe dieses Typs ist eine Spalte einer Werte-Tabelle und enthält Eigenschaften und Verfahren. Um diese Eigenschaften und Methoden zu wenden, erhalten wir die erforderlichen Informationen zu einer Spalte oder produzieren einige andere Aktionen damit.

Zum Beispiel Bezug auf die Eigenschaft "Name" (Säule) Wir erhalten den Namen der aktuellen Spalte.

Ich möchte Ihre Aufmerksamkeit auf den Zyklusheader ziehen: "Für jeden Säule Vom Waschen. Cutouts-Zyklus "Variable namens "Säule" Von uns erfunden. Verwenden Sie optional denselben Namen. Sie können diese Variable beispielsweise so anrufen, wie Sie möchten "Matheccling" Dann sieht das obige Beispiel so aus:

// Wir leiten die Namen aller Spalten des TK für jeden Waschwhirlpool ab Waschen ab. Solonki-Zyklusbericht ("Spaltenname:" + Waschen von Colaconka Endrad;

Wenn das 1C-Subsystem den Zyklus dieses Typs erfüllt, weist er mit jedem Zyklusdurchgang eine Variable zu angegebener Name Ein Element aus unserer Sammlung, in diesem Fall - ein Element Sammlung Spalten Tabellenwerte Washtz. Solonki. Und dann appellieren wir an die Variable, die die aktuelle Spalte enthält, und verwenden Sie die Eigenschaft. "Name".

Ich schlage neben dem Namen der Spalte vor, um auch die Anzahl jeder Spalte in der Spaltensammlung zurückzuziehen:

// Nennen Sie die Anzahl und Namen aller Spalten der Werte-Tabelle für jede Waschsäule. Coole Zyklus-Puppen \u003d Washtz. Solonki. // Holen Sie sich die Anzahl der SpaltennummerCionics \u003d Spalte. // Holen Sie sich den Namen der Spalte, um zu informieren ("Lautsprechernummer:" + Umfragen + "Spaltenname:" + Namecolonnames); Endrad;

Der folgende Text wird im Fenster 1C-Nachricht angezeigt:

Spaltennummer: 0 Lautsprecher Name: Nachname Lautsprecher: 1 Spaltenname: Name Spaltennummer: 2 Spaltenname: Patronymic

Wir beachten, dass die Spalten in der 1c-Werte-Tabelle von Grund auf nummeriert sind, sowie die Werte-Tabellenzeilen.

Die Anzahl der Spalten in der Tabelle der 1C-Werte

Um die Anzahl der Spalten in der Werte-Tabelle herauszufinden, verwenden wir die Methode "Quantity ()" in der Spaltensammlung.

Automaticolone \u003d Waschen. Coole Uhren. Nummer (); Bericht (Sendungsgeräte);

Die Ziffer "3" wird auf dem Bildschirm angezeigt. In der Tat, in unserem Tisch drei Spalten: "Nachname", "Name", "Patronymic"

Erhalten Sie ein Objekt - Spalte an der Nummer (Index) und rohe Kraftspalten mit dem Spaltenindex

Wir erstellen einen Zyklus von über allen Spalten der Werte-Tabelle mit Spaltenindizes (Zahlen). Denken Sie daran, dass die Nummerierung der Spalten mit Null beginnt. Daher müssen der SC-Zyklus-Zähler von Null bis zu einer Zahl, die der Anzahl der Spalten minus eins ist, zunehmen.

Für SCH \u003d 0 für Wasytz. Solonki. Nummer () - 1 Zyklus der fließenden Spalte \u003d Washtz. Solonks [SC]; Bericht (fließende Spalte. Endrad;

Auf dem Bildschirm erhalten wir folgende

Vollständiger Name

Ich denke, dieses Beispiel war verständlich. Wir haben uns an die Methode gerichtet Nummer() Sammlungen von Spalten " Washtz. Solonki. Nummer ()", erhielt die Anzahl der Spalten und startete einen Zyklus mit einem Meter von null Vor anzahl der Spalten minus eins. Innerhalb des Zyklus erhalten wir jede Spalte von der Spaltensammlung und weisen der Variablen des aktuellen Spaltenobjekts zu Colving Colonka. Nächste variabel. Colving Colonka. Wir appellieren an Immobilien Name und zeigen Sie den Wert dieser Eigenschaft auf dem Bildschirm an: Bericht (fließende Spalte.

Es ist wichtig, niemals die Objekteigenschaft und die Objektmethode zu verwechseln.

Das Eigentum ist ein bestimmter statischer Wert und appelliert, dass er zum Beispiel ohne Klammern geschrieben wird Colving colonk.imp.. Das Verfahren ist im Wesentlichen die Prozedur oder Funktion des Objekts, und die Herausforderungen von Verfahren und Funktionen werden immer mit Klammern geschrieben (auch wenn keine Eingabeparameter vorhanden sind). Beispielsweise: Washtz. Solonki. Nummer ()

Wenn wir uns an die Methode wenden, vergessen Sie das Vergessen, Klammern zu verfassen - Interpreter 1c gibt uns eine Fehlermeldung und startet den Code nicht zur Ausführung. Da der Dolmetscher davon ausgehen, dass wir nicht an die Methode ansprechen, aber auf das Grundstück - weil es keine Klammern gibt. Und die Eigenschaften mit diesem Namen werden nicht gefunden (da es nur eine Methode mit diesem Namen gibt) - da in einer Fehlermeldung angegeben wird.

Das ist, was der Dolmetscher schreibt, wenn ich die Klammern vergessen, um die Methode auf so einen falschen Weg aufzurufen Washtz. Solonki.Golism. (ohne Klammern nach "Menge ()"):

Das Feld des Objekts wird nicht erkannt (Nummer)

In diesem Fall sollten das "Feld" und "Eigentum" als Synonyme oder die Ungenauigkeit der Terminologie von 1C-Entwicklern verstanden werden. Sie verwenden beide Wörter, um das gleiche Konzept zu bezeichnen. Obwohl in anderen Programmiersprachen, können diese Bedingungen jedoch unterschiedliche Konzepte bedeuten.

Daten aus der 1C-Werte-Tabelle mit Lautsprechernummern erhalten

Ich empfehle Ihnen, zu einem Start ein einfaches Beispiel für das Erhalten von Daten aus der ersten Zeile unseres Tabellens. Bitte beachten Sie, dass wir von Anfang an eine vorabgeschlossene Tabelle verwenden. Wir wissen sicher, dass der Tisch die erste Zeile ist, und es gibt mindestens eine Spalte. Wenn wir dieses Beispiel in eine leere Tabelle anwenden, tritt ein Fehler auf. So:

Der latist \u003d waschen; // Wir erhalten die erste Zeile (Nummerierung von Null) des Wertes des Viccountion \u003d der erste Mann; // Wir erhalten den Wert der ersten Spalte (die Nummerierung der Spalten ist auch von Null) zum Bericht (Value-County); // Zeigen Sie den Wert der ersten Spalte in der ersten Zeile der Tabelle an

Der Bildschirm wird angezeigt:

Chapaev.

Zunächst haben wir das Objektzeilenobjekt der Werte erhalten, wenden Sie sich an die Wertetabelle mit dem [...] Bediener. (Wenn Sie vergessen haben, wie dies erledigt ist, können Sie in den Bereichen das Argument "0" das Argument "0" sehen. Dies ist der Index der ersten Zeile der Werte-Tabelle. Der latist \u003d waschen;

Ferner haben wir auch das Recht, mit Hilfe des [...] Bedieners auf das Zeilenobjekt anzuwenden. Innerhalb dieser Bediener haben wir in diesem Fall auch die Anzahl der Sätze der Werte bestanden, in diesem Fall "0". Und somit haben wir den Wert der Spalte mit der Nummer "0" für die aktuelle Linie der Tabelle an der Nummer "0". Dieser Wert, den wir auf dem Bildschirm angezeigt haben, und es ist die Zeichenfolge "Chapaev".

Ein wenig kompliziert unser Beispiel:

Der latist \u003d waschen; // Wir erhalten die erste Zeile (Nummerierung von Grundsatz), um zu informieren (erster Aest); // Zeigen Sie den Wert der ersten Spalte in der ersten Zeile der Tabelle an, um den Bericht (das erste Astrum) zu melden; // Zeigen Sie den Wert der zweiten Spalte in der ersten Zeile der Tabelle an, um zu informieren (das erste Astrum); // Zeigen Sie den Wert der dritten Spalte in der ersten Zeile der Tabelle an

Jetzt haben wir Werte aus allen drei Spalten der ersten Zeile unserer Wertetabelle angezeigt:

Chapaev Vasily Ivanovich.

Jetzt ändere ich dieses Beispiel noch, um eine Variable zu verzichten "Erste Linie"

Bericht (waschen); // Zeigen Sie den Wert der ersten Spalte in der ersten Zeile der Tabelle an, um den Bericht (Waschen) zu berichten; // Zeigen Sie den Wert der zweiten Spalte in der ersten Zeile der Tabelle der Tabelle (Wawtz) an; // Zeigen Sie den Wert der dritten Spalte in der ersten Zeile der Tabelle an

Auf dem Bildschirm wird auch

Chapaev Vasily Ivanovich.

Wir haben in dem obigen Beispiel gesehen, mit dem wir den Wert in einer bestimmten Zeile und einer speziellen Wertespalte ansprechen können, den wir den sequentiellen Anruf von zwei Bedienern [...] in diesem Formular verwenden können: Beurteilungen [AUTOMA] [Indexierung]

So können wir einen Zyklus des Löschens und zum Erstellen von Daten für alle Zeilen und alle Säulen mit Zeilen- und Spaltenindizes erstellen:

Für einen Zähler \u003d 0 zum Waschen. Natürlich () - 1 Zyklus // Zyklus des Busteigs von Saiten für Gegenkolonen \u003d 0 für Abfälle. Sumpls. Nalität () - 1 Zyklus // Investiertes Busting-Zyklus von Säulen // aus der aktuellen Zeile und den aktuellen Spalten) Wertgrößenzahl \u003d Wawtz [Zähler] [Gegencocks]; // Zeigt die Zeilennummer, die Lautsprechernummer und den Zellenwert der Zelle an ("Zeilennummer" + Zähler + "Spalten-Nr." + Spalte + "\u003d" + Wert); Endrad; Endrad;

Der Bildschirm wird wie folgt angezeigt:

Reihe Nr. 10 Spalte Nr. 0 \u003d Chapaev-Reihe Nr. 10 Spalte Nr. 1 \u003d VASLY-Zeile # 0 Spalte Nr. 2 \u003d Ivanovich-Zeichenfolge Nr. 1 Spalte Nr. 0 \u003d Dzerzinsky Zeile Nr. 1 Spalte Nr. 1 \u003d Felix-Zeichenfolge-Nr. 1 Spalte Nr. 2 \u003d EDMundovich String Nr. 2 2 Spalte Nr. 0 \u003d Kotovsky Reihe Nr. 2 Spalte Nr. 1 \u003d Gregor-Reihe Nr. 2 Spalte Nr. 2 \u003d Ivanovich

Mit zwei Zyklen, von denen einer in eine andere investiert ist, haben wir die Werte aller Spalten aus allen Zeilen der Tabelle von 1C-Werten gebracht. Gleichzeitig haben wir die Namen der Spalten nicht verwendet und auf die Spalten und Zeilen auf ihren Indizes verwiesen. Achten Sie zum mehr Verständnis auf Kommentare im Beispiel.

Ich empfehle, abschließend ein wenig ändere unser Beispiel, damit er den Namen ihres Namens anstelle der Lautsprechernummern erfüllt. Und ferner wird ein weiterhin mehr konstellierbarer Design des Inhalts des Inhalts auf dem Bildschirm.

Für einen Zähler \u003d 0 zum Waschen Anzahl () - 1 Zyklus // Die Zerschlagung Zyklus von Strings Report ( "\u003d\u003d\u003d\u003d\u003d\u003d\u003d Zeilennummer" + Zähler + "\u003d\u003d\u003d\u003d\u003d\u003d\u003d."); Etwas melden(" "); // Übersetzung der Zeichenfolge (Einfügung einer leeren String) für die Gegenkolonone \u003d 0 für Washztz. Stecklinge. Nalqual () - 1 Zyklus // Investierter Zyklus der Sortiersäulen // Wir erhalten den Wert der Zelle (von der aktuellen Zeile aus der aktuellen Linie) und die aktuelle Spalte) des Wertes des Wertes \u003d washtz [counter] [Countercolon); // Wir erhalten den Namen der Name Spalten \u003d Washtz. Solonks [Countercolonchikov]. // Zeigen Sie den Namen der Spalte und den Zellenwert an, um zu informieren (Namenssammlung + ":" + Wert); Endrad; Etwas melden(" "); // Translation der Zeichenfolge (Einfügung einer leeren Zeichenkette) des endackel;

Nun auf unserem Bildschirm begann die Informationen repräsentativere aussehen:

Zeilennummer 0 \u003d\u003d\u003d\u003d\u003d\u003d\u003d Name: Chapaev Name: Vasily Patronyma: Ivanovich \u003d\u003d\u003d\u003d\u003d\u003d\u003d Line No. 1 \u003d\u003d\u003d\u003d\u003d\u003d\u003d Name: Dzerzhinsky Name: Felix Patronymische: Edmundovich \u003d\u003d\u003d\u003d \u003d \u003d\u003d Zeilennummer 2 \u003d\u003d\u003d\u003d\u003d\u003d\u003d Nachname: Cottovsky Name: Grigory Patronymische: Ivanovich

Ja, ich habe fast vergessen. Wenn in einer Reihe zwei Operatoren mit [...] [...] können wir anstelle der Spaltenindex den Namen dieser Spalte übertragen: Bewertungen [Bewertung] [NAMECOLONNAME]

Für einen Zähler \u003d 0 zum Waschen Anzahl () - 1 Zyklus // Die Zerschlagung Zyklus von Strings Report ( "\u003d\u003d\u003d\u003d\u003d\u003d\u003d Zeilennummer" + Zähler + "\u003d\u003d\u003d\u003d\u003d\u003d\u003d."); Etwas melden(" "); // Übersetzung der Zeichenfolge (Einfügung einer leeren String) für die Gegenkolonone \u003d 0 für Washztz. Solonki. Nality () - 1 Zyklus // Investierter Zyklus des Busteigs der Namenskolonnen \u003d Wawtz. // Wir haben den Namen des Modells des Wertes der Größe \u003d washtz erhalten [counter] [NameColon Name]; //

Hinweis auf die Saite durch den Pfeil gekennzeichnet. „In dieser Zeile geben wir den Namen der aktuellen Spalte in dem Argument in dieser Linie. eckige Klammern [...] Das Ergebnis wird dasselbe sein.

Und jetzt, der letzte in diesem Artikel.

Ordnungsgemäßer Empfang aller Datentabelle 1C Werte, unter Verwendung der Zyklen der Zerschlagung der Reihe Sammlung und Spalten collection

Für jeden Strom aus Waschzyklus // der Busting-Zyklus der Sammlung von Zeichenfolgen in den Bericht ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d RECK NUMMER" + "CINDEX (Circuit) +" \u003d\u003d\u003d\u003d\u003d\u003d\u003d "); Etwas melden(" "); Für jede fließende Säule von Wooat. Kühlzyklus // Investierter Zyklus der Busting-Sammlung von Spalten-Namescionics \u003d fließende Säule. // Wir erhalten den Namen der Wertspalte \u003d aktuell [namecolonneName]; // Holen Sie sich den Wert der Zelle mit dem Namen der Spalte, um zu informieren (Namecolionics + ":" + Validacy); // Zeigen Sie den Namen der Spalte und den Wert der Deckzelle an; Etwas melden(" "); Endrad;

Im Beispiel wurden zwei Zyklen verwendet. Der lebhafte Zyklus der Säulensammlung wird in den geschäftigen Zyklus der Reihen eingesetzt. Wenn Sie mit den obigen Beispielen zerlegt und vorherige Artikel lesen, haben Sie keine Schwierigkeiten, die Arbeit dieses Beispiels zu verstehen.

Schließlich minimiere ich die Anzahl der Zeilen des Codes unseres letzten Beispiels und beseitigt die Verwendung von Zwischenvariablen. Wir erhalten ein Problem von "Industrial Code", das in echten Aufgaben verwendet wird.

Es sollte nur getan werden, wenn Sie verstehen, was Sie tun. Wenn der Code sehr kompliziert ist, ist es zulässig, Zwischenvariablen zu hinterlassen, um das Verständnis Ihres eigenen Codes anschließend zu erleichtern. Jeder Code sollte auch zumindest minimal kommentieren, so dass es nach einiger Zeit einfacher war, mit den Texten des Programms umzugehen.

Für jeden Strom aus Waschzyklus // Switching Strings Report ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d Lockennummer" + "hytz.index (aktuell) +" \u003d\u003d\u003d\u003d\u003d\u003d\u003d "+ Symbole. PS); Für jede fließende Säule von WASYTZ. Coole Zyklus // Bust die Spalten, um zu informieren (fließende Spalte. Ince + ":" + circuit [aktuelles Spalte. Endrad; Etwas melden(" "); Endrad;

Die Ausgabe an den Bildschirm hat sich nicht geändert, bleibt das gleiche wie im letzten Beispiel:

2-wöchiger Kurs

"Programmierung in 1c für Neulinge"

Der Kurs wird eingehen email. Werden Sie Programmierer, führen Sie Schritt-für-Schritt-Aufgaben aus.

Nur mit Computer und Internet teilnehmen

Kostenloser Kurszugang:

SP-Force-Hide (Anzeige: Block; Hintergrund: # EFF2F4; Padding: 5px; Breite: 270px; max-Breite: 100%; Grenzradius: 0px; -moz-grenze -Radius: 0px; -Webkit-Border- Radius: 0px; Schriftgesicht: Arial, "Helvetica Neue", Sans-Serif; Hintergrundwiederholung: No-Repeat; Hintergrundposition: Mitte; Hintergrundgröße: Auto;) .sp-Formeingabe (Anzeige: Inline- Block; Deckkraft: 1; Sichtbarkeit: sichtbar;). SP-Form .sp-form-Felder-Wrapper (Rand: 0 Auto; Breite: 260px;). SP-Form .sp -FFFFFFFFF; Randfarbe: #cccccc; Grenzbild Borderradius: 4px; Höhe: 35px; Breite: 100%;). SP-Form .sp-Feldaufkleber (Farbe: # 444444; Schriftgröße: 13px; Schriftart: Normal; font-weight: fett;) . SP-Form .sp-Button (Randradius: 4Px; -Moz-Border-Radius: 4PX; -Webkit-Rand-Radius: 4PX; Hintergrundfarbe: # F4394C; Farbe: #FFFFFFF; Breite: 100%; Schrift -Wig. HT: 700; Schriftart: Normal; Schriftfamilie: Arial, "Helvetica Neue", Sans-Serif; Kastenschatten: Keine; -Oz-Box-Schatten: Keine; -Webkit-box-schatten: keine; Hintergrund: Lineargradient (nach oben, # E30D22, # F77380);). SP-Form .sp-Button-Container (Text-Align: Center; Breite: Auto;)

Um Geld und Güter berücksichtigen zu können, verwenden verschiedene Tabellen, die in einem Geschäft weit verbreitet sind. Fast jedes Dokument ist ein Tisch.

Der Tisch listet die Waren in den Versand aus dem Lager auf. In einer anderen Tabelle - Verpflichtungen, diese Waren zu bezahlen.

Daher beschäftigt sich 1c prominenter Arbeiten mit Tischen.

Tabellen in 1c werden auch als "tabellarische Teile" bezeichnet. Sie haben Referenzbücher, Dokumente und andere.

Die Anforderung als Ergebnis seiner Ausführung bringt eine Tabelle zurück, auf den Zugriff auf zwei verschiedene Arten möglich ist.

Der erste ist schneller - Probenahme, die nur in der Reihenfolge von Reihen ergibt. Der zweite entlädt das Ergebnis der Abfrage in der Werte-Tabelle und einen weiteren beliebigen Zugriff darauf.

// Option 1 - Ablaufender Zugriff auf die Ergebnisse der Abfrage

// Tisch erhalten.
Probenahme \u003d Abfrage. Fill (). Wählen Sie ();
// In Ordnung gehen wir alle Reihen des Abfrageergebnisses
Während der Probe. Nächster () Zyklus
Bericht (Beispiel. Name);
Endrad;

// Option 2 - Entladen in der Wertetabelle
Anfrage \u003d Neue Abfrage ("Wählen Sie den Namen aus dem Verzeichnis aus. NameClature");
// Tisch erhalten.
Tabelle \u003d Abfrage. Fill (). Entladen ().
// Dann können wir auch alle Linien umgehen
Für jede Zeile aus dem Tabellenzyklus
Bericht (Zeichenfolge. Name);
Endrad;
// oder willkürlich Zugang zu Linien
Linie \u003d Tabelle. Init ("Shovel", "Name");

Ein wichtiges Merkmal befindet sich in der Tabelle, die aus dem Abfrageergebnis erhalten wird, alle Säulen werden streng eingegeben. Dies bedeutet, dass Sie durch Anfragen des Namensfelds aus der Verzeichnis Nomenklatur eine Spalte eines String-Typs mit einer zulässigen Länge von nicht mehr als n Zeichen erhalten.

Tabelle auf der Form (dicker Client)

Der Benutzer arbeitet mit einem Tisch, wenn er auf dem Formular platziert ist.

Die Grundprinzipien der Arbeit mit Formen, wir diskutierten in der Lektion in der Lektion in

Stellen Sie also einen Tisch auf das Formular. Dazu können Sie die Tabelle über das Bedienfeld ziehen. In ähnlicher Weise können Sie das Formular- / Einfügensteuerung im Menü auswählen.

Daten können in der Konfiguration gespeichert werden - Sie müssen dann einen vorhandenen (zuvor hinzugefügten) Tabellenteil des Konfigurationsobjekts auswählen, dessen Form Sie bearbeiten.

Drücken Sie die Taste "..." in der Dateneigenschaft. Um eine Liste von tabellarischen Teilen zu sehen, müssen Sie das Zweigobjekt anzeigen.

Bei der Auswahl eines tabellarischen Teils 1c ergibt sich selbst Spalten an der Tabelle im Formular. Die vom Benutzer in einer solchen Tabelle eingegebenen Reihen werden automatisch zusammen mit dem Referenz / Dokument gespeichert.

In derselben Eigenschaft können Sie einen beliebigen Namen eingeben und den Typ der Tabelle auswählen.

Dies bedeutet, dass eine beliebige Werteabteilung ausgewählt ist. Es wird nicht automatische Spalten hinzugefügt, es wird nicht automatisch gespeichert, es ist jedoch möglich, mit ihm etwas zu tun.

Drücken Sie rechtsklick Auf der Tabelle können Sie eine Spalte hinzufügen. In den Spalteneigenschaften können Sie den Namen (zum Bezugnahme auf den 1C-Code), den Säulenkopf in der Form, der Verbindung mit den Details des tafelförmigen Teils (Last-falls nicht ein beliebiger Tabelle, und der Tabellenteil ausgewählt). .

In den Eigenschaften der Tabelle in Form können Sie angeben, ob Zeilen an den Benutzer hinzugefügt / gelöscht werden soll. Ein fortgeschritteneres Formular - nur ein Tick. Diese Eigenschaften sind praktisch, um Tabellen zu organisieren, die zur Anzeige von Informationen, aber nicht bearbeitet werden, zu organisieren.

Um die Tabelle zu verwalten, müssen Sie das Befehlsfeld anzeigen. Wählen Sie das Menüpunkt Formular / Setzen Sie das Steuerelement / Befehlsfeld ein.

Wählen Sie in den Command-Panel-Eigenschaften eine Tick-Autofill aus, die die Schaltflächen auf dem Panel automatisch erscheinen.

Tabelle auf der Form (dünner / verwalteter Kunde)

Im verwalteten Formular sehen die angegebenen Aktionen ein wenig anders aus. Wenn Sie an der Form des tafelförmigen Teils platzieren müssen, öffnen Sie den Zweig des Objekts und ziehen Sie einen der Tafelteile nach links. Und alle!

Wenn Sie die Wertetabelle platzieren müssen, fügen Sie in ihren Eigenschaften ein neues Formular-Requisiten hinzu und geben Sie den Typ an - die Werte-Tabelle.

Um Lautsprecher hinzufügen, verwenden Sie das Menü auf der rechten Maustaste auf diesen Angaben zum Formular des Formulars. Die Option fügt eine Spalte des Propumens hinzu.

Danach ziehen Sie auch den Tisch links ab.

Damit die Tabelle zum Befehlspanel angezeigt wird, wählen Sie in den Tabelleneigenschaften die Werte im Bereich verwenden - die Befehlspanelposition.

Tabelle in Excel abladen

Jede in der Form angeordnete Tabelle 1c kann in Excel gedruckt oder entladen werden.

Klicken Sie dazu mit der rechten Maustaste auf die Tabelle und wählen Sie die Anzeigeliste aus.

Im kontrollierten (feinen) Client können ähnliche Aktionen mit dem Menüpunkt Alle Aktionen / LISTE ausgeführt werden.

Um in der Werte-Tabelle zu suchen, gibt es zwei spezielle Methoden:

1. FINDEN

TVGORIZONT \u003d Referenzbücher. Nomelaklatur. Intepponation ("TV-Horizont");
Ergebnisse \u003d Tznenenklatur. Inite (TV, TV);
// Wir können auch angeben, in welchen Lautsprechern suchen, um die Suche zu beschleunigen
Stiftung \u003d TZNOMENCLATE. INITE (TV, "Nomenklatur");

Diese Methode gibt die erste gefundene Linie mit dem gewünschten Wert oder undefiniert an, wenn er nicht gefunden wird. So ist es praktisch, um zu suchen einzigartige Werteweil Andernfalls müssen Sie es bei der Suche nach Folgendem von der Tabelle löschen.

Um nicht zu leiden, besteht die folgende Methode, mit der Sie ein Array geeigneter Linien finden können:

2. Flug.


Structuralboration. Hold ("Nomenklatur", TVGorizont); // Geben Sie zunächst die Spalte an, nach der Sie suchen müssen, und dann, wonach Sie suchen können.

Diese Methode gibt immer ein Array zurück, aber es kann leer sein, wenn nichts gefunden wird. Und auch diese Methode sowie die vorherigen gibt die Zeilen der Werte der Werte und nicht die Werte selbst in einem separaten Array zurück. Ändern der Werte in der Array-Zeile oder in der vorherigen Methode an der gefundenen Zeile, ändern Sie den Wert in der erfassten Wertetabelle.

Je besser diese Methode ist, dass sie gleichzeitig in mehreren Spalten der Werte-Tabelle suchen kann:


Strukturen \u003d neue Struktur;
Structuralboration. Hold ("Nomenklatur", TVGorizont);
Structuralboat. Hold ("Menge", 10);
StiftungMassivests \u003d Tznenenklatur. Einträge (Strukturen);

Der einzige Minus, wie er gesehen werden kann, können nicht andere Vergleiche verwendet werden, außer "gleich"

Hier ist eine kleine Fabrik für ein Start-einfache Beispiele für das Arbeiten mit einem Werte-Treffer:

1. Erstellen Sie eine Wertetabelle

Tische \u003d neue Tische;


2. Erstellen Sie Spalten-Tabellenwerte:

Tische. Colonges. Fantastisch ("Name");
Tischzeichen. Coolclocks. Fantastisch ("Nachname");


3. Fügen Sie neue Zeilen mit Spaltennamen hinzu:


Newstock Ich meine \u003d "vasily";
Newstock.familia \u003d "PUPKIN";


4. Wie Sie nach einem Wert in der Werte-Tabelle suchen:
Es ist notwendig, eine Tabellenzeichenfolge zu finden, die den gewünschten Wert enthält.

Foundation \u003d Tablement. Nights. Interty (Raffinesse);


5. Finden Sie den ersten Eintrag in bestimmten Spalten der Werte-Tabelle

Foundation \u003d Tablelinge. Interzersteinigungen (SUPPONS, "Lieferant, Käufer");


6. Wenn Sie den gesamten Eintrag in der Werte-Tabelle finden müssen:
Verwenden Sie die Suchstruktur.

Strukturalität \u003d Struktur ("Mitarbeiter", Incoming);
MASSWORDSNEWS \u003d Tabellenzeichen. Einträge (Strukturen);


Erstellen Sie eine Suchstruktur, von denen jedes Element den Namen der Spalte als Schlüssel und den gewünschten Wert in dieser Spalte enthält - als Wert. Wir übertragen die strukturelle Struktur mit der Methode TRAR Hub () als Parameter. Infolgedessen erhalten wir die Reihen des Tisches.
Wenn Sie nach dem gewünschten Wert in der Suchstruktur suchten, z. B. in der Partitionsspalte, dann erhalten wir infolge der Verwendung der Flug- () -Methode (). Wir erhalten alle Zeilen, in denen der Mitarbeiter und Verantwortliche gleich sind auf den gewünschten Wert.

7. So sortieren Sie die Sortierung der Werte-Tabelle in zufälliger Reihenfolge

Für jeden Strom aus dem Tisch des Zyklus
Bericht (aktuell);
Endrad;

Dieselbe Verwendung von Indizes:

Älteredex \u003d Tabellenanwendungen. Nummer () - 1;
Für SCH \u003d 0 beim älterendex-Zyklus
Bericht (Tablumings [SC].
Endrad;


8. Löschen der vorhandenen Zeile der Werte-Tabelle

Tabellen. Löschen (entfernt);

nach Index.

Tabellen. Löschen (0);


9. Entfernen der vorhandenen Spalte der Werte-Tabelle

Tabellen Solonks. Löschen (Entfernungs-Alone-Spalte);


nach Index.

Tische Solonks. Löschen (0);

Es ist zu berücksichtigen, dass das Entfernen einer Zeichenfolge (oder der Spalte) "von der Mitte" der Wertetabelle zu einer Abnahme der Einheitsindizes der Linien führt, die nach der Fernbedienung standen

10. So füllen Sie das Wertetabelle, wenn die Namen der Spalten in Variablen enthalten sind?

Neue Hub \u003d Tabellen-Tabellen. Fantast ();
Newstruke [namecolonneName] \u003d Wert;


11. So füllen Sie die gesamte Spalte der Tabellenwerte in den gewünschten Wert?
Die Flagflage-Spalte in der Tabelle der Tabellenwerte muss mit einem falschen Wert gefüllt werden

Tabellenzeichen. Füllen Sie aus (Lügen, "Flag defocked");


Beantragen Sie die Werte der Füllung (). Der erste Parameter, den wir einen Füllwert übertragen. Der zweite Parameter ist der Name der gefüllten Säule.

12. Wie füllt die Tabelle der Werte des "TABLEPRIGNER" die Datentabelle der Werte "Quellcode" aus?

Wenn der Tabellentaster zum Zeitpunkt der Operation noch nicht vorhanden ist oder seine vorherigen Lautsprecher nicht aufbewahrt werden müssen, können Sie es als vollständige Kopie der Quelle erstellen

TableThe Collector \u003d Tisch wertvoll .copy ();


Option Zweiter: TABLE thabethe Collector existiert, und es tut mir leid, seine Säulen und Einschränkungen auf die Säulenarten zu verlieren. Sie müssen die Daten jedoch in den Spalten ausfüllen, deren Namen mit den Namen der Quelltabelle zusammenfallen.

Teildatenübertragung für Spalten mit passenden Namen:

Für jede Zeichenfolge, die vom Quellcode des Zyklus valuretabel ist
Ausfüllen (Newtroke, Saite Valuetlasts);
Endrad


Für jede Zeile der Quelltabelle wird der Empfängertabelle eine neue Zeile hinzugefügt, und die Werte füllen in diesen Spalten der neuen Tabelle aus, deren Namen mit den Namen der Spalten in der Quelltabelle übereinstimmen

Wenn die Tabellen keine Spalten mit denselben Namen haben, resultiert die Empfängertabelle, dass die Empfängertabelle so viele Zeilen mit leeren Werten enthält, wie viele Reihen in der Tischquelle waren.
Wenn einige Name-Lautsprecher die Art des Datenwerts von der Quelltabelle haben, fällt er nicht in das Array des zulässigen Typs der Tabellenspalte des Empfängers in solchen Feldern, in denen wir leere Werte erhalten.
Betrachten Sie den dritten Fall. Im Falle derselben Namenspalten muss die Spalte der Empfängertabelle in vollständiger Korrespondenz der Quelltabellenspalte durchgeführt werden.

Vollkopierdaten für Spalten mit passenden Namen

Single-Ring \u003d Neues Array ();

Für jede Spalte aus dem Quellcode. Schneidzyklus
Sobatovativonka \u003d Tablesspigner. Coolclocks. Init (Spalte.

Wenn der zusammenfallende'ovykolonka.<> Undefined dann

// Holen Sie sich die Eigenschaften der Spalte.
Name \u003d Spalte.
Geben Sie Typ \u003d Spalte ein. Typen;
Titel \u003d Spalte. Hände;
Breite \u003d Spalte. Wilina;

// Säulen in der Empfängertabelle ersetzen.
Index \u003d TableThhe Collector. Solonki.Index (Zufallszweig);

Tischkollektor. Coolclocks. Release (Index);
TableThe Collector. Solonks Hold (Index, Name, Titel, Titel, Breite);

// Fügen Sie den nächsten Namen der zusammenfälligen Säulen in ein Array hinzu.
Einzelring. Fantast (Spalte.

Endete

Endrad;

// Zyklus des Übersehens der Reihen der Quelltabelle.
Für jede Zeichenfolge, die vom Quellcode des Zyklus valuretabel ist

// Hinzufügen neue String in der Empfängertabelle.
Neuer Schlaganfall \u003d TABLEPRIGNER. FAG ();

// Füllen Sie die Werte in den zusammenfälligen Zellen.
Für jeden Namenskollektor aus demselben Namen Zyklus
Neuer Strich [namecolonka] \u003d gestrichenetische Tabellen [namecolonneName];

Endrad;

Endrad;


Wir müssen die Spalte in der Empfängertabelle für einen neuen ersetzen, dessen Eigenschaften vollständig mit der Spalte Quelltabelle übereinstimmen.
Daher sammeln wir bei der Erkennung in dem vom jeweiligen Namen des erfassten Namens alle Eigenschaften in Variablen für eine neue Spalte. Als Nächstes löschen wir das Alte und erstellen eine neue Spalte. Führen Sie dann einen Zyklus des Busting der Zeile der Quelltabelle aus.
Fügen Sie im Zyklus eine neue Zeile an die Empfängertabelle hinzu und öffnen Sie den Zyklus der Gelehrten im Array der zusammenfallenden Spalten.
In diesem investierten Zyklus bilden wir die Füllung der Zellen der Empfängertabellendaten der Quelltischzellen.

13. So fügen Sie mit den Typenbegrenzungen Spalten in der Tabelle "Tabelle" hinzu?

Wenn Sie einen Lautsprecher hinzufügen, können Sie einfach seinen Namen angeben, und der zweite Parameter der Methode ADD () () kann nicht berührt werden. In diesem Fall ist der Typ der Datenspalte beliebig.

Hinzufügen einer Spalte, ohne den Datentyp anzugeben

// Fügen Sie eine Spalte ohne Einschränkungen nach Typ hinzu.
Appositionssysteme. Fantastisch ("Objekt");


Sie können den Wert des zweiten Parameters ausfüllen. Es muss auf die Beschreibung des Typs übertragen werden, der für die Spalte Type zulässig ist. Die Beschreibung selbst kann mit einem Designer erhalten werden, indem der letztere Typ als Parameter (falls viele Typen, dann durch das Komma) oder ein Array gültiger Typen vorhanden ist.

Hinzufügen einer Spalte mit Datentypanzeige

// Einschränkungen für Datentypspalte:
// nur Elemente des Referenzbuchs "Gegenparteien".
Tischschilder. Coolclocks. Fantastisch ("Gegenpartei", neue Beschreibungen ("DirectoryAds. Sprachlungen"));


Wenn zwischen den Typen, die die Spaltendaten füllen, gibt es eine Zeichenfolge, Sie können das Bit (Länge) einschränken, die Verwendung von Variablen oder Festlänge angeben. All dies wird sichergestellt, indem ein Objekt mit Hilfe eines Designer-Qualifikationsbilds erstellt wird. Als nächstes wird dieses Objekt als eine der Parameter der Designerbeschreibung verwendet.

Verwenden Sie Qualifikanten, um die Art der Datenspalten zu klären

// Vorbereitung und Installation von Einschränkungen für Datentypdaten.
Qualifikationen Texte \u003d neue Qualifikationen (20, Zulässig, Permut);
Admissibles \u003d neue Beschreibungen ("String", Qualifikationen);
Tabellen Solonki. Fantastisch ("notterity-protbar", zulässig);


Ähnliche Maßnahmen können in Bezug auf Qualifikationsqualifikationen der Anzahl und des Datums durchgeführt werden.
Bitte beachten Sie: Die Beschreibung der Typen können vom Designer als "von Scratch" erstellen und als Basis bereits vorhandene Beschreibung der Typen verwenden

Verwenden Sie vorhandene Arten von Typen, um Datentyp-Datenspaltenwerte anzuzeigen

// Erweiterung der zuvor verwendeten Beschreibungen von Typen.
Qualifikationen \u003d neue Qualifikationen (10, 2, zulässige Token. Nicht negativ);
Qualifikationsdaten \u003d neues Qualificatorat) (Teile. Daten);
Erweiterte Felder \u003d neue Beschreibungen (Berechtigungen, "Nummer, Datum", Qualifikationen, qualifizierend);

Tischschilder. Coolclocks. Fantastisch ("Hinweis", erweiterte Additive);

Die Klingel.

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie Artikel frisch.
Email
Name
Nachname
Wie willst du die Glocke lesen?
Ohne spam.