Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu

Pozdrowienia wszyscy czytelnicy Infostart'a. Niniejszy artykuł zostanie poświęcony kwestie tworzenia dowolnej tabeli wartości w formie zarządzanej aplikacji oprogramowanie.

Cechy zadania.

Każdy, kto zaprogramował w zwykłym załączniku często stanęli przed zadaniem uzyskania dowolnego arbitralnego tabeli wartości w formie. Pod dowolny arbitralny stół jest rozumiany jako tabela, liczba i rodzaj kolumn, których nie jest znany. Oznacza to, że kolumny mogą być 3, a może 6, a może 8. W zwykłym zastosowaniu wszystko jest proste: możliwe było umieszczenie elementu "stosowanie tabeli" na formularzu formacji, a następnie przenieść tabelę wartości do wartości do tego elementu do tego elementu. Następnie prosty zespół:

ElementForms. TITTLEPRYSED.

otrzymać gotowy stolik Wartości na formie. Wydawałoby się, że może to być łatwiejsze.

Wszystko było w zwykłym zastosowaniu. W zarządzanej aplikacji wszystko się zmieniło. Więc po prostu arbitralny stół, aby nie tworzyć. Teraz musisz albo sztywnie parametrować tabelę wartości w formularzu, lub utwórz go programowo (opisać, dobrze, w rzeczywistości, w rzeczywistości istotą samą aplikację). Spróbujemy to zrobić: oprogramowanie Utwórz dowolną tabelę wartości w formie zarządzanej.

Rozwiązanie problemu.

Pierwszą rzeczą, którą musimy zrobić, jest określić, jak pojawia się tabela na formularzu. Najważniejsze jest to, że żaden element formularza w przetwarzaniu nie jest konieczny. Tworzymy to programowo, jak cały stół. Oznacza to, że tabela zostanie opisana i utworzyć w momencie otwarcia formularza lub przy użyciu przycisku - tak jest konieczne.

Tworzenie tabeli na formie występuje przez opis tabeli wartości jako rekwizycji:
Massiferboabor \u003d Nowa tablica; Masowy klient. Dodatkowo (typ (stosunek tabeli ")); OpisCareBar \u003d Nowe opisy (masacyjność); Masywy \u003d nowa tablica; Masywy. Dodatkowo (nowy wymagania ("Tablescript", opisy, "", "TZN")); Teraz musimy utworzyć tabelę oprogramowania wartości zawierającej dane. Jeśli tabela wartości zostanie uzyskana z żądania, to wszystko jest mniejsze niż zamówienie. Jeśli tabela zostanie utworzona ręcznie, wartość głośników, które będą zawierać liczby lub daty, można utworzyć za pomocą "opisu". Dolna linia jest to, że kolumny w tabeli wartości muszą mieć jakiś rodzaj typu. Jeśli na przykład zakłada się, że użytkownik wypełnia dane w tych kolumnach interaktywnie, nie można dodać wartości kolumny wartości po prostu z nazwą, powinno być typ. Należy pamiętać - to bardzo ważne, ponieważ Podamy te typy stołu na formularzu.
Utwórz tabelę zawierającą kilka kolumn:
KD \u003d nowe daty kwalifikacyjne (cząsteczki. Veria); Massigs \u003d Nowa tablica; Ramiona. Daleko (typ ("Data")); Lookup Graphics \u003d Nowe opisy (ramiona, CD); Tk \u003d nowe tabele;
Tk.colonki. Dodatkowo ("C", opisy.
Tk.colonks. Dodatkowo ("do", opisy.
Tk.colonki. Daleko ("Pełna nazwa");
Tk. Solonki. Dodatkowo ("Uwaga"); // Full Note - Wiersze Następne, wypełnią nam naszą tabelę oprogramowania TK z niezbędnymi danymi. Uzyskujemy tabelę TK, która zawiera niezbędne wartości i jest gotowy do transmisji do utworzonych rekwizytów formularza. Dla każdej kolumny TK. Cykl kolumny

Massiverevizes. Dodatkowo (nowy wymagania (kolumna. To znaczy, kolumna. Typ, "taksówki"));
Endcycle;
Changerevizes (Masivevizes);
Tablepoles niewoli \u003d elementy. Dodatkowo ("TZN", typ ("Tableform"));
Tablepoles wychwytywanie. Powazy \u003d taksówki ";
Tabelspoleseboat. Przykład \u003d wyświetlany. Komentarze;

Oto taka prosta kombinacja, a nasz stół jest gotowy.

Dla każdej kolumny TK. Cykl kolumny

Newelent \u003d Elements. Dodatkowo (kolumna. To znaczy, wpisz ("Foreform"), tablepole);
Nowy element. Formularz Vid \u003d Vidpolar. Moc;
Nowy element. POWDLY \u003d "TAPŁYWY." + Kolumna.
Nowy element.Shirina \u003d 10;
Endcycle;

Projekt warunkowy, jeśli potrzebujemy również pisać ręcznie, menu poleceń - ręcznie. Pełnomocniki stołowe są również napisane rękami. Na przykład, aby dodać wydarzenie "wybór" Wydarzenie ":

Tablepoles wychwytywanie. Ustawienie ("wybór", "TZNVYBOR");

Aby przetworzyć to zdarzenie, oddzielna procedura jest przepisywana w formie procedury:

& Svalete.
Procedura TZNVSB (TK, wybrany, pole, Standardowalnictwo)
// Polecenia procesora Kontrole końcowe

Należy pamiętać, że ładowarki tabeli są wywołane na kliencie, a zatem muszą mieć polecenie pointer kompilatora

& Svalete.

Cóż, a ostatnia rzecz, którą chciałem dodać, że po tych wszystkich tych działaniach zdecydowanie nie zapomnieć o przeniesieniu gotowego tabeli do zapotrzebowania formularza:

NiezwyklerevisitForms (TK, "taksówki");

Oto, co mamy w wyniku:


Ale przetwarzanie wydarzenia "wybór":



Przyszłość.

Mam nadzieję, że artykuł pomoże tym programistom 1C, który zaczynają tworzyć tabele w postaci metody programowej.

Możesz pobrać przetwarzanie, które oprogramowanie tworzy tabelę wartościową i wyświetla formularz zarządzany z komentarzami, które pomogą Ci utworzyć własne stoły.

Opublikowano 21 września 2011

Wartości stołowe 1C - 3 część. Metadane. Wartości tabeli kolumn siniaków

W tym artykule powiem ci, jak pracować z tabelą "nieznanych" wartości struktury, jak uporządkować głośniki o wartościach wartości, jak wyodrębnić dane z kolumn i wierszy bez za pomocą nazw kolumn. (Artykuł ten odnosi się do artykułów 1C z zera; programowanie 1C od zera; wartości tabeli 1C)

Aby wyjaśnić materiał, a więc możesz uruchomić nasze przykłady kodu programu "Live", potrzebujemy jakiegoś rodzaju wartości tabel testowych 1C. Niektóre z naszych przykładów wyodrębnią dane z tabeli wartości, więc wykonamy tabelę z trzema kolumnami "Nazwisko", "Nazwa", "Patronimic" i wykonaj niewielką ilość danych w nim - już 3 linie :)

Uwórzmy więc tabelę testową wartości 1C i wypełnij:

Washt \u003d nowe tabele; // Stwórz nowy stół Wartości przechowywane w zmiennej myciu "Washtz". Sadzonki. Dodatkowo ("Nazwisko"); // Utwórz kolumnę "Nazwisko" "Mytz.colonks. Allowly (" Nazwa "); // Utwórz kolumnę "Nazwa" do prania. Cięcie. Dodaj ("Patronimic"); // Utwórz kolumnę "Patronimic" // Dodaj pierwszą linię do naszej tabeli wartości NewtTream \u003d Wash. Dodaj (); Newstock.familia \u003d "Chapaev"; Newstock. To znaczy \u003d "Wasily"; Newstock. Delikatny \u003d "Ivanovich"; // Dodaj drugi wiersz NewtTream \u003d Washt. Dodaj (); Newstock.familia \u003d "Dezerzhinsky"; Newstock. To znaczy \u003d "Felix"; Newstock. Delikatność \u003d "Edmundovich"; // Dodaj trzecią linię nowej ulicy \u003d Washt. Dodaj (); Newstock.familia \u003d "Kotovsky"; Newstock. To znaczy \u003d "Grigory"; Newstock. Delikatny \u003d "Ivanovich";

Nasza tabela testowa składa się z trzech kolumn: nazwa, nazwisko, patronimy; I ma trzy wypełnione linie z nazwiskami bohaterów wojny domowej.

Pierwszym kodem próbkowania jest zniszczenie kolumn tabeli wartości 1C jako kolekcji.

// Wyświetlamy nazwy wszystkich kolumn TK dla każdej kolumny Wooat. Raport Colloniks ("Nazwa kolumny:" + kolumna. Endcycle;

Nasz cykl wyświetli wiadomości 1C w oknie wiadomości wszystkie nazwy kolumn:

Nazwa kolumny: Nazwisko Nazwa kolumny: Nazwa kolumny Nazwa: Patronymic

Widzimy, że specjalny cykl zbiórki kolekcji podobnej do cyklu rozciągacza (ostatni artykuł) jest używany do wyłączania kolumn. Washtz. Solonki. - Jest to zbiór kolumn tabeli wartości 1C "Washtz". Kolekcja zawiera obiekty, takie jak "Colonckotable" Każdy obiekt tego typu jest kolumna tabeli wartości i zawiera właściwości i metody. Włączając te właściwości i metody, otrzymujemy niezbędne informacje o jednej kolumnie lub wytwarzamy inne działania z nim.

Na przykład odnosząc się do nieruchomości "Nazwa" (Kolumna) Otrzymujemy nazwę bieżącej kolumny.

Chcę zwrócić uwagę na nagłówek cyklu: "Dla każdego Kolumna Z mycia. Cykl wycinanki "Zmienna nazwa "Kolumna" Wymyślony przez nas. Opcjonalnie użyj tej samej nazwy. Możesz nazwać tę zmienną, na przykład, na przykład "Matheccling" Następnie powyższy przykład będzie taki:

// Wydyskujemy nazwy wszystkich kolumn TK dla każdego birowskazania z prania. Raport cyklu Solonki ("Nazwa kolumny:" + Umyć Coleconka. Endcycle;

Gdy podsystem wykonania 1C spełnia cykl tego typu, przypisuje zmienną z każdym przejściem cyklu określona nazwa Jeden element z naszej kolekcji, w tym przypadku - jedna kolekcja elementów Wartości tabeli kolumn. Washtz. Solonki. A potem apelujemy do zmiennej, która zawiera bieżącą kolumnę i używać nieruchomości. "Nazwa".

Proponuję obok nazwy kolumny, aby wycofać się również numer każdej kolumny w kolekcji kolumn:

// Powiedz numer i nazwy wszystkich kolumn tabeli wartości dla każdej kolumny prania. Fajne lalki cyklu \u003d Washtz. Solonki.index (kolumna); // Uzyskaj numer kolumny numerowej \u003d kolumna. // Uzyskaj nazwę kolumny, aby poinformować ("Numer głośnika:" + ankiety + "Nazwa kolumny:" + namecolonna); Endcycle;

W oknie wiadomości 1C pojawi się następujący tekst:

Numer kolumny: 0 Nazwa głośnika: Nazwisko głośniki: 1 Nazwa kolumny: Nazwa Nazwa kolumny: 2 Nazwa kolumny: Patronymic

Należy pamiętać, że kolumny w tabeli wartości 1C są ponumerowane od podstaw, a także wartości tabeli wartości.

Liczba kolumn w tabeli wartości 1C

Aby znaleźć liczbę kolumn w tabeli Wartości, używamy metody "Ilość ()" w kolekcji kolumn.

Automaticolone \u003d Mycie. Cool zegary. Numer (); Raport (Sumelle);

Digit "3" zostanie wyświetlona na ekranie. Rzeczywiście, w naszym stole trzy kolumny: "Nazwisko", "Nazwisko", "Patronymic"

Uzyskanie obiektu - kolumna na jego numer (indeks) i brutalne kolumny siłowe za pomocą indeksu kolumn

Dokonamy cyklu nad wszystkimi kolumnami wartości za pomocą indeksów kolumnowych (liczby). Pamiętaj, że numeracja kolumn rozpoczyna się od zera. Dlatego licznik cyklu SC musimy wzrosnąć z zera do liczby równej liczbie kolumn minus jeden.

Dla Sch \u003d 0 dla Wasytz. Solonki. Numer () - 1 cykl płynącej kolumny \u003d Washtz. Solonks [SC]; Raport (płynąca kolumna. Endcycle;

Na ekranie otrzymamy następujące elementy

Pełne imię i nazwisko

Myślę, że ten przykład był zrozumiały. Odwróciliśmy się do metody Numer() Kolekcje kolumn " Washtz. Solonki. Numer ()", Otrzymano liczbę kolumn i uruchomił cykl z metrem zero przed liczba kolumn minus jeden. Wewnątrz cyklu otrzymujemy każdą kolekcję z kolekcji kolekcji i przypisać aktualny obiekt kolumny do zmiennej Colving Colonka. Następnie zmienna Colving Colonka. Apelujemy do nieruchomości Nazwa i wyświetl wartość tej właściwości na ekranie: Raport (płynąca kolumna.

Ważne jest, aby nigdy nie mylić właściwości obiektu i metody obiektów.

Nieruchomość jest pewną wartością statyczną i odwołaniem jest na przykład napisany bez wsporników Colower Colonk.imp. A metoda jest zasadniczo procedura lub funkcja obiektu, a wyzwania procedur i funkcji są zawsze zapisywane z nawiasami (nawet jeśli nie ma parametrów wejściowych). Na przykład: Washtz. Solonki. Numer ()

Jeśli zwrócimy się do metody, zapominając o zapisie wsporników - tłumacza 1C poda nam komunikat o błędzie i nie uruchomi kodu wykonania. Ponieważ tłumacz założy, że nie odwołujemy się do metody, ale do nieruchomości - ponieważ nie ma nawiasów. Nie znaleziono właściwości z tą nazwą (ponieważ istnieje tylko metoda z tą nazwą) - jak zostanie podana w komunikacie o błędzie.

To właśnie pisze tłumacz, jeśli zapomnę wsporników w nazwie metody w taki nieprawidłowy sposób Washtz. Solonki.golizm. (bez wsporników po "Ilość ()"):

Pole obiektu nie jest wykryte (numer)

W takim przypadku należy rozumieć "pole" i "własność" jako synonimy lub niedokładność terminologii deweloperów 1C. Używają obu tych słów, aby wyznaczyć tę samą koncepcję. Chociaż w innych językach programowania, te terminy mogą oznaczać różne koncepcje.

Uzyskiwanie danych z tabeli wartości 1C za pomocą numerów głośników

Zaproponuję, na samodzielnie, prosty przykład uzyskania danych z pierwszej linii naszej tabeli. Należy pamiętać, że używamy wcześniej zakończonej tabeli od początku artykułu. Wiemy na pewno, że tabela jest pierwszą linią, a jest co najmniej jedna kolumna. Jeśli zastosujemy ten przykład do pustej tabeli, wystąpi błąd. Więc:

Pierwszy \u003d pranie; // Uzyskujemy pierwszą linię (numerowanie z zera) wartości Viccinie \u003d pierwszy człowiek; // Uzyskujemy wartość pierwszej kolumny (numeracja kolumn wynosi również z zera) do raportu (hrabstwo wartość); // Wyświetl wartość pierwszej kolumny w pierwszym rzędzie tabeli

Ekran zostanie wyświetlony:

Chapaev.

Początkowo otrzymaliśmy obiekt obiektu obiektów wartości, skontaktowanie się z tabelą wartości za pomocą operatora [...]. (Jeśli zapomniałeś, jak to się dzieje, możesz zobaczyć poprzednie artykuły) wewnątrz operatora, minęliśmy argument "0". Jest to indeks pierwszego rzędu tabeli wartości. Pierwszy \u003d pranie;

Ponadto mamy również prawo do zastosowania do obiektu linii za pomocą operatora [...]. Wewnątrz tych operatorów minęliśmy liczbę kolumny Wartości, w tym przypadku też "0". A zatem otrzymaliśmy wartość kolumny za pomocą numeru "0" dla bieżącej linii tabeli pod numer "0". Ta wartość wyświetlona na ekranie i jest to ciąg ciągów "Chapaev".

Trochę komplikuje naszego przykładu:

Pierwszy \u003d pranie; // Uzyskujemy pierwszą linię (numerowanie od podstaw), aby poinformować (pierwszy est); // Wyświetl wartość pierwszej kolumny w pierwszym wierszu tabeli do raportu (pierwsza Aestrum); // Wyświetl wartość drugiej kolumny w pierwszym rzędzie tabeli, aby poinformować (pierwszy AESTRUM); // Wyświetl wartość trzeciej kolumny w pierwszym rzędzie tabeli

Teraz wyświetlamy wartości ze wszystkich trzech kolumn pierwszej linii naszego tabeli wartości:

Chapaev Wasilia Ivanovich.

Teraz nadal modyfikuję ten przykład, aby zrobić bez zmiennej "Pierwsza linia"

Raport (umyć); // Wyświetl wartość pierwszej kolumny w pierwszym wierszu tabeli do raportu (pranie); // Wyświetl wartość drugiej kolumny w pierwszym wierszu tabeli tabeli (Washtz); // Wyświetl wartość trzeciej kolumny w pierwszym rzędzie tabeli

Na ekranie również

Chapaev Wasilia Ivanovich.

Widzieliśmy w powyższym przykładzie, który można odwołać się do wartości w określonej linii i określone wartości kolumny, możemy użyć sekwencyjnego wywołania dwóch operatorów [...] w tym formularzu: Oceny [asseska] [indeksowanie]

Jesteśmy więc gotowi stworzyć cykl gaśniczych i uzyskiwania danych dla wszystkich wierszy i wszystkich kolumn za pomocą wskaźników wiersza i kolumn:

Dla licznika \u003d 0 do prania. Nalalność () - 1 cykl // cykl rzucania ciągów dla bluza \u003d 0 dla odpadów. Sumps. Nalność () - 1 cykl // zainwestowany cykl rozbudowy kolumn // Uzyskaj wartość komórki ( z bieżącego wiersza i bieżących kolumn) wielkość wielkości \u003d Washtz [Counter] [LITSSCOCKS]; // Wyświetl numer linii, numer głośnika i wartość komórki komórki ("Numer linii" + licznik + "Kolumna nr" + kolumna + "\u003d" + wartość); Endcycle; Endcycle;

Ekran zostanie wyświetlony w następujący sposób:

Row # 10 Kolumna nr 0 \u003d Chapaev Row # 10 Kolumna Nr 1 \u003d Wasily Row # 0 Kolumna nr 2 \u003d Łańcuch Ivanovich Nr 1 Kolumna Nr 0 \u003d Derzhinsky Row No. 1 Kolumna nr 1 \u003d Felix String Nr 1 kolumna nr 2 \u003d Edmundovich łańcuch nr 2 2 Kolumny nr 0 \u003d Kotovsky Row nr 2 Kolumny nr 1 \u003d Gregory Row # 2 Kolumna nr 2 \u003d Ivanovich

Korzystanie z dwóch cykli, z których jeden jest zainwestowany w inny, przynieśliśmy wartości wszystkich kolumn ze wszystkich linii tabeli wartości 1C. Jednocześnie nie użyliśmy nazw kolumn i odnosiliśmy się do kolumn i wierszy na ich indeksy. Dla większego zrozumienia, zwróć uwagę na komentarze wewnątrz przykładu.

Sugeruję, podsumowując, niewielka zmiana naszego przykładu tak, że potrzeba nazwy swojej nazwy zamiast numerów głośników. I jeszcze bardziej prezentowany projekt treści treści na ekranie.

Dla licznika \u003d 0 do mycia. Liczba () - 1 cykl // Rozbijający się cykl Raportu Struncji ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d Numer wiersza" + licznik + "\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); Zgłosić(" "); // Tłumaczenie łańcucha (wkładanie pustego łańcucha) dla kontroli \u003d 0 do Waszyngtonu. Sadzonki i bieżąca kolumna) wartości wartości \u003d Washtz [Counter] [Councolon]; // Uzyskujemy nazwę kolumn nazw \u003d Washtz. Solonks [Councolonchikov]. // Wyświetl nazwę kolumny i wartość komórki, aby poinformować (nazwa-zbieranie + ":" + wartość); Endcycle; Zgłosić(" "); // tłumaczenie ciągu (wkładanie pustego łańcucha) endackel;

Teraz na naszym ekranie informacje zaczęły wyglądać bardziej przedstawiciel:

Row Numer 0 \u003d\u003d\u003d\u003d\u003d\u003d\u003d Nazwisko: Nazwa Chapaeva: Wasily Patronyma: Ivanovich \u003d\u003d\u003d\u003d\u003d\u003d\u003d Linia Nr 1 \u003d\u003d\u003d\u003d\u003d\u003d\u003d NAZWISKO: Nazwisko Dezerzhinsky: Felix Patronymic: Edmundovich \u003d\u003d\u003d\u003d \u003d\u003d rzędowy numer 2 \u003d\u003d\u003d\u003d\u003d\u003d\u003d Nazwa: Nazwa Cottovsky: Grigory Patronymic: Ivanovich

Tak, prawie zapomniałem. Używając w rzędzie dwóch operatorów [...], możemy zamiast indeksu kolumny, aby przesyłać nazwę tej kolumny: Oceny [Ocena] [NameColonna nazwa]

Dla licznika \u003d 0 do mycia. Liczba () - 1 cykl // Rozbijający się cykl Raportu Struncji ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d Numer wiersza" + licznik + "\u003d\u003d\u003d\u003d\u003d\u003d\u003d"); Zgłosić(" "); // Tłumaczenie ciągu (wkładanie pustego łańcucha) dla bluzy \u003d 0 do waszyngtonu. Solonki. Nalalność () - 1 cykl // zainwestowany cykl rozbijania kolumn zbiorowemu nazwami \u003d Washtz. Kolumna // Uzyskujemy nazwę modelu wartości \u003d Washtz [Counter] [Namecolon's Name]; //

Uwaga na ciąg znakowany strzałką. "W tej linii przesyła nazwę bieżącej kolumny w argumencie w tej linii. nawiasy kwadratowe [...] Wynik będzie taki sam.

A teraz ostatni w tym artykule.

Właściwy odbiór wszystkich wartości tabeli danych 1C, przy użyciu cykli rozbijania kolekcji rzędów i kolekcji kolekcji

Dla każdego prądu z cyklu prania // rozbijający cykl zbierania ciągów do raportu ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d Numer blokady" + "CINDEX (obwód) +" \u003d\u003d\u003d\u003d\u003d\u003d\u003d "); Zgłosić(" "); Dla każdej płynącej kolumny Wooat. Cool Cykl // zainwestowany cykl rozbijający się kolekcji kolumnowej NamyZSIONICS \u003d płynąca kolumna. // Uzyskujemy nazwę kolumny wartości \u003d prąd [NameColonnen nazwa]; // Uzyskaj wartość komórki według nazwy kolumny, aby poinformować (Namecolionics + ":" + Validacja); // Wyświetl nazwę kolumny i wartość komórki pokładowej; Zgłosić(" "); Endcycle;

W przykładzie zastosowano dwa cykle. Tętniący cykl kolekcji kolumn jest włożony wewnątrz tętniczego cyklu wierszy. Jeśli zdemontowałeś się z powyższymi przykładami i przeczytaj poprzednie artykuły, nie będziesz miał trudności w zrozumieniu pracy tego przykładu.

Wreszcie zminimalizuję liczbę rzędów Kodeksu naszego ostatniego przykładu, eliminując użycie zmiennych pośrednich. Otrzymamy próbkę "kodu przemysłowego", który jest używany w prawdziwych zadaniach.

Należy to zrobić tylko wtedy, gdy rozumiesz, co robisz. Jeśli kod jest bardzo skomplikowany, dopuszczalne jest pozostawienie zmiennych pośrednich, aby następnie ułatwić zrozumienie własnego kodu. Ponadto każdy kod powinien być co najmniej minimalny komentowanie, aby po pewnym czasie było łatwiejsze do radzenia sobie z tekstami programu.

Dla każdego prądu z cyklu prania // Raport ciągów przełączających ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d Numer blokady" + "Hytz.index (prąd) +" \u003d\u003d\u003d\u003d\u003d\u003d\u003d "+ Symbole. PS); Dla każdej płynącej kolumny Wasytz. Cool cykl // bije kolumny, aby poinformować (przepływająca kolumna. Ince + ":" + obwód [Aktualna kolumna. Endcycle; Zgłosić(" "); Endcycle;

Wyjście do ekranu nie zmieniło się, pozostało takie samo jak w ostatnim przykładzie:

Kurs 2-tygodniowy

"Programowanie w 1C dla początkujących"

Kurs przyjdzie e-mail. Zostań programistą, wykonując zadania krok po kroku.

Uczestniczyć tylko komputer i internet

Darmowy dostęp kursowy:

Sp-Force-Hide (wyświetlacz: blok; tło: # EFF2F4; Wypełnienie: 5px; Szerokość: 270px; Max-szerokość: 100%; Border-Radius: 0px; -moz-border -Radius: 0px; -Webkit-border- RADIUS: 0PX; Font-Face: Arial, "Helvetica Neue", Sans-Serif; Powtórzono tło: Bez powtórzeń; Pozycja tła: Centrum; Rozmiar tło: Auto;). blok; nieprzezroczystość: 1; widoczność: widoczna;). Forma sp-forma .sp-forma-pól (marża: 0 Auto; Szerokość: 260px;). Spryty sprycie .SP -FFFFFFFF; Border-Color: #CCCCC; Border-Style: Solid; Szerokość graniczna: 1px; Rozmiar czcionki: 15px; Padding-Left: 8.75px; Padding-Light: 8.75px; Granica -Radius: 4px; -moz-border-promień: 4px; -webkit- Promień graniczny: 4px; Wysokość: 35px; Szerokość: 100%;). Etykieta sprytualna (kolor: # 444444; czcionka: 13px; . Przycisk SP-FORMS .SP (promień graniczny: 4px; -moz-border-promień: 4px; -webkit-border-promień: 4px; kolor-kolor: # F4394C; Kolor: #FFFFFF; Szerokość: 100%; czcionka -Wyg HT: 700; Styl czcionki: normalny; Czcionka: Arial, "Helvetica Neue", Sans-Serif; Box-Cień: Brak; -Moz-box-cień: brak; -Webkit-box-cień: brak; Tło: gradient liniowy (do góry, # E30D22, # F77380);). Sprytusowy pojemnik (Tekst-Dignowy: Centrum; Szerokość: Auto;)

W celu uwzględnienia pieniędzy i towarów, różne stoły używają szeroko w biznesie. Prawie każdy dokument jest stołem.

Tabela zawiera listę towarów do wysyłki z magazynu. W innej tabeli - zobowiązania do zapłaty za te towary.

Dlatego 1c wybitny zajmuje pracę z tabelami.

Tabele w 1C są również nazywane "częściami tabelarycznymi". Mają książki referencyjne, dokumenty i inne.

Wniosek w wyniku jego wykonania zwraca tabelę, dostęp do której można uzyskać na dwa różne sposoby.

Pierwszy jest szybszy - pobieranie próbek, uzyskanie rzędów tylko w porządku. Drugi rozładuje wynik zapytania w tabeli Wartości i dalszy arbitralny dostęp do niego.

// Opcja 1 - sekwencyjny dostęp do wyników zapytania

// odbierać tabelę
Próbkowanie \u003d zapytanie. Wypełnij (). Wybierz ();
// Aby przejść do wszystkich rzędów wyniku zapytań
Podczas próbki. Następny () cykl
Raport (próbka. Nazwa);
Endcycle;

// Opcja 2 - Rozładunek w tabeli wartości
Poproś o nowe zapytanie ("Wybierz nazwę z katalogu. Namenklaturze");
// odbierać tabelę
Tabela \u003d zapytanie. Wypełnij (). Rozładuj ().
// wtedy możemy również obejść wszystkie linie
Dla każdego wiersza z cyklu tabeli
Raport (ciąg. Nazwa);
Endcycle;
// lub arbitralnie dostęp do linii
Linia \u003d tabela. Init ("łopata", "nazwa");

Ważną funkcją znajduje się w tabeli uzyskanej z wyniku zapytania, wszystkie kolumny będą ściśle wpisane. Oznacza to, że zażądając polecenia nazwy z nomenklaturze katalogów, otrzymasz kolumnę typu ciągów z dopuszczalną długością nie więcej niż n znaków.

Stół na kształt (gruby klient)

Użytkownik pracuje z tabelą, gdy jest umieszczony na formularzu.

Podstawowe zasady pracy z formami, omówiliśmy w lekcji w lekcji

Więc umieść stół na formularzu. Aby to zrobić, możesz przeciągnąć tabelę z panelu sterowania. Podobnie możesz wybrać sterowanie formularzem / wkładaniem w menu.

Dane mogą być przechowywane w konfiguracji - wówczas trzeba wybrać istniejącą (wcześniej dodaną) część tabeli obiektu konfiguracji, którego kształt można edytować.

Naciśnij przycisk "..." w nieruchomości Data. Aby zobaczyć listę części tabelarycznych, musisz ujawnić obiekt branży.

Przy wyborze części tabelarycznej 1C, dodaje kolumny przy stole na formularzu. Wiersze wprowadzone przez użytkownika w takiej tabeli zostaną zapisane automatycznie wraz z odniesieniem / dokumentem.

W tej samej nieruchomości możesz wprowadzić dowolną nazwę i wybierz typ tabeli.

Oznacza to, że wybrana jest dowolna tabela wartości. Nie dodanie automatycznie kolumn, nie zostanie automatycznie zapisany, ale można to zrobić z tym wszystkim.

naciśnij kliknij prawym przyciskiem myszy Na stole możesz dodać kolumnę. W właściwościach kolumnowych można określić jego nazwę (do odniesienia do kodu 1C), nagłówek kolumny w formularzu, połączenie ze szczegółami części tabelarycznej (ostatnie - jeśli nie jest dowolna tabela, a część tabeli jest wybrana) .

W przypadku właściwości tabeli w formularzu można określić, czy dodać / usuwać linie do użytkownika. Bardziej zaawansowana forma - tylko kleszcz. Właściwości te są wygodne w celu zorganizowania tabel przeznaczonych do wyświetlania informacji, ale nie edycji.

Aby zarządzać tabelą, musisz wyświetlić panel poleceń. Wybierz Menu Element Form / Wstaw panel sterowania / polecenia.

W Właściwości panelu poleceń wybierz autofilla kleszcza, że \u200b\u200bprzyciski na panelu pojawiają się automatycznie.

Stół na kształt (cienki / zarządzany klient)

Na formie zarządzanej określone działania wyglądają trochę inaczej. Jeśli trzeba umieścić na kształcie części tabelarycznej - otwórz gałąź obiektu i przeciągnij jeden ze części stołowych w lewo. I wszystkie!

Jeśli chcesz umieścić tabelę wartości, dodaj nowe rekwizyty formularza i jego właściwości. Określ typ - tabela wartości.

Aby dodać głośniki, użyj menu na prawym przycisku myszy na tych szczegółach formularza, opcja dodawała kolumnę Propumes.

Po tym przeciągnij stół w lewo.

Aby tabela pojawi się na panelu poleceń, w Właściwości tabeli wybierz wartości w sekcji Użyj - pozycja panelu poleceń.

Wyłączaj stół w Excelu

Każda tabela 1C, znajduje się na formularzu, może być drukowana lub rozładowana do programu Excel.

Aby to zrobić, kliknij prawym przyciskiem myszy tabelę i wybierz listę wyświetlania.

W kontrolowanym (drobnym) kliencie można wykonać podobne działania przy użyciu elementu menu Wszystkie działania / lista.

Aby wyszukać w tabeli wartości, istnieją dwie specjalne metody:

1. Znajdź

TVGorizont \u003d książki referencyjne. Nomelaklature. Intepponation ("Horizon TV");
Wyniki \u003d tznenclature. Inite (telewizor, telewizor);
// możemy również określić, w którym głośniki do wyszukiwania, aby przyspieszyć wyszukiwanie
Foundation \u003d Tznomenclature. Inite (TV, "Nomenclature");

Metoda ta zwraca pierwszą linię z żądaną wartością lub niezdefiniowaną, jeśli nie znajdzie. Jest to wygodne do wyszukiwania unikalne wartościdlatego W przeciwnym razie będziesz musiał go usunąć ze stołu podczas wyszukiwania następujących.

Aby nie cierpieć, istnieje następująca metoda, która pozwala znaleźć tablicę odpowiednich linii:

2. Lot


Konstrukcja. Hold ("Nomenklatura", TVGorizont); // Najpierw określ kolumnę, na której chcesz szukać, a następnie, czego szukać.

Ta metoda zawsze zwraca tablicę, ale może być pusty, jeśli nic nie zostanie znalezione. A ta metoda, a także poprzednia zwraca wiersze wartości wartości, a nie same wartości w oddzielnej tablicy. Dlatego zmiana wartości w wierszu tablicy lub w poprzedniej metodzie w Line Found, zmienisz wartość w tabeli przetwarzanych wartości.

Bardziej dobrą metodą jest to, że może wyszukiwać jednocześnie w kilku kolumnach tabeli wartości w tym samym czasie:


Struktury \u003d nowa struktura;
Konstrukcja. Hold ("Nomenklatura", TVGorizont);
Konstrukcyjny. Przytrzymaj ("Ilość", 10);
FoundationMassivests \u003d TzNenNcLature. Wpisy (struktury);

Jedyny minus, jak widać, nie można użyć innych porównań, z wyjątkiem "równych"

Oto mała fabryka na start - proste przykłady pracy z tabelą wartości:

1. Utwórz tabelę wartości

Tabele \u003d nowe stoły;


2. Utwórz wartości tabeli kolumn:

Stoły. Kolonie. Dodatkowo ("Nazwa");
Znaki stołowe. CoolClocks. Dodatkowo ("Nazwisko");


3. Dodaj nowe linie za pomocą nazw kolumn:


Newstock. To znaczy \u003d "Wasily";
NewStock.familia \u003d "Pupkin";


4. Jak poszukać wartości w tabeli wartości:
Konieczne jest znalezienie łańcucha tabeli zawierającego żądaną wartość.

Fundacja \u003d Tablement. Nights. Interty (wyrafinowanie);


5. Znajdź pierwszy wpis w określonych kolumnach tabeli wartości

Fundacja \u003d Tableingi. Interties (sophony, "dostawca, kupujący");


6. Jeśli chcesz znaleźć wszystkie wpis w tabeli wartości:
Użyj struktury wyszukiwania.

Strukturalność \u003d struktura ("pracownik", przychodzący);
Masmwordsnews \u003d znaki tabeli. Wpisy (struktury);


Utwórz strukturę wyszukiwania, z których każdy element będzie zawierał nazwę kolumny jako klucz i żądaną wartość w tej kolumnie - jako wartość. Przesyłamy strukturę strukturalną za pomocą metody daleko () jako parametru. W rezultacie otrzymujemy rzędy stołu.
Jeśli dodasz poszukiwanie żądanej wartości w strukturze wyszukiwania, na przykład w kolumnie partycji, a następnie w wyniku zastosowania metody lotu (), otrzymujemy wszystkie wiersze, gdzie pracownik i odpowiedzialny są równe do żądanej wartości.

7. Jak uporządkować tabelę wartości w losowej kolejności

Dla każdego prądu z tabeli cyklu
Raport (prąd);
Endcycle;

Te same indeksy:

Stosowcy starsze \u003d tabela. Numer () - 1;
Dla Sch \u003d 0 na cyklu starsze
Raport (tableny [sc].
Endcycle;


8. Usuwanie istniejącego wiersza tabeli wartości

Tabele. Usuń (usunięty);

według indeksu

Tabele. Usuń (0);


9. Usuwanie istniejącej kolumny tabeli wartości

Stoły. Solonks. Usuń (wyjąć sam kolumnę);


według indeksu

Stoły. Solonki. Usuń (0);

Należy pamiętać, że usuwanie ciągu (lub kolumny) "z środka" tabeli wartości doprowadzi do zmniejszenia indeksów jednostek linii, które stały "po" odległe

10. Jak wypełnić tabelę wartości, jeśli nazwy kolumn są zawarte w zmiennych?

Nowy skok \u003d tabele tabel. Dodatkowo ();
NewsTrook [NameColonName] \u003d wartość;


11. Jak wypełnić całą kolumnę wartości tabel w żądanej wartości?
Kolumna flagowa w tabeli wartości tabel musi być wypełniona fałszywą wartością

Znaki tabeli. Wypełnij (kłamstwa, "flag obrócony");


Złóż wniosek o wartości metody wypełniania (). Pierwszym parametrem przesyłamy wartość wypełnienia. Drugi parametr jest nazwą wypełnionej kolumny.

12. W jaki sposób tabela wartości "TablePrigner" wypełnia tabelę danych wartości "Kod źródłowy"?

Jeśli sprawca stołu w momencie operacji nie istnieje jeszcze lub jego poprzednie głośniki nie muszą być przechowywane, możesz utworzyć go jako pełną kopię źródła

Tablethe Collector \u003d Tabela Cenny .Copy ();


Opcja Druga: Tabela Tablethe Collector istnieje i przepraszam, że stracił kolumny i ograniczenia na typach kolumn. Ale musisz wypełnić dane na kolumnach, których nazwy pokrywają się z nazwami tabeli źródłowej.

Częściowy transfer danych dla kolumn z pasującymi nazwami:

Dla każdego ciągów Valuetlable z kodu źródłowego cyklu
Wypełnienie (NewsTrook, String Valuetlasts);
Endcykl


Dla każdej linii tabeli źródłowej nowa linia jest dodawana do tabeli odbiorcy, a wartości wypełniają się w tych kolumnach nowej tabeli, których nazwy zbiegają się z nazwami kolumn w tabeli źródłowej

Jeśli tabele nie mają kolumn o tych samych nazwach, tabela odbiorcy spowoduje powstrzymanie jak największej liczby wierszy z pustymi wartościami, ile wierszy były w źródle tabeli.
Jeśli niektóre głośniki nazwy mają rodzaj wartości danych z tabeli źródłowej, nie wpadnie w tablicę dozwolonego typu kolumny tabeli odbiorcy, w takich dziedzinach uzyskujemy puste wartości.
Rozważ trzecią sprawę. W przypadku tej samej nazwy kolumny odbiorcy kolumna tabeli musi być wykonana w pełnej korespondencji kolumny tabeli źródłowej.

Pełne kopiowanie danych dla kolumn z pasującymi nazwami

Pojedynczy pierścień \u003d nowa tablica ();

Dla każdej kolumny z kodu źródłowego. Cykl cięcia
Sobatovativonka \u003d TablesPrigner. Coolclocks. Init (kolumna.

Jeśli coincedent'ovykolonka.<> Niezdefiniowany wtedy

// Uzyskaj właściwości kolumny.
Nazwa \u003d kolumna.
Typ Type \u003d Kolumna. Typy;
Tytuł \u003d kolumna. Ręce;
Szerokość \u003d kolumna. Willina;

// wymień kolumny w tabeli odbiornika.
Indeks \u003d Tablethe Collector. Solonki.index (coinkentcation);

Tablethe Collector. CoolClocks. Zwolnienie (indeks);
Tablethe Collector. Solonki. Hold (Indeks, Nazwa, tytuł, tytuł, szerokość);

// Dodaj następną nazwę kolumn zbieżnych do tablicy.
Pojedynczy pierścionek. Dodatkowo (kolumna.

Zakończony;

Endcycle;

// cykl z widokiem na rzędy tabeli źródłowej.
Dla każdego ciągów Valuetlable z kodu źródłowego cyklu

// Dodaj nowy ciąg W tabeli odbiorcy.
Nowy Stroke \u003d TablePrigner. Daleko ();

// Wypełnij wartości w komórkach zbieżnymi.
Dla każdej nazwy kolektora z tego samego cyklu nazwy
Nowy skok [NameColonka] \u003d Slice Tabels [NameColonName];

Endcycle;

Endcycle;


Będziemy musieli wymienić kolumnę w tabeli odbiorcy dla nowego, którego właściwości w pełni pasują do kolumny tabeli źródłowej.
Dlatego w przypadku wykrycia w odbiorcy tabeli o tej samej nazwie zbieramy wszystkie właściwości w zmiennych dla nowej kolumny. Następnie usuwamy stare i tworzymy nową kolumnę. Następnie wykonaj cykl rozbicia wiersza tabeli źródłowej.
W cyklu dodaj nową linię do tabeli odbiorcy i otworzyć cykl uczonych w tablicy kolumn zbieżnych.
W tym zainwestowanym cyklu wypełniamy komórki danych tabeli odbiorców komórek tabeli źródłowych.

13. Jak dodać kolumny do tabeli "tabeli tabeli" z ograniczeniami typu?

Po dodaniu głośnika możesz po prostu określić jego nazwę, a drugi parametr metody Dodaj () () nie można dotknąć. W takim przypadku typ kolumny danych jest arbitralny.

Dodawanie kolumny bez określania typu danych

// Dodaj kolumnę bez ograniczeń według typu.
Tabele appozycyjne. Dodatkowo ("obiekt");


Możesz wypełnić wartość drugiego parametru. Musi zostać przeniesiony do opisu typu dozwolonego dla kolumny typu. Sam opis można uzyskać za pomocą projektanta, przekazując ten ostatni typ jako parametr (jeśli wiele typów, a następnie przez przecinek) lub tablicę prawidłowych typów.

Dodawanie kolumny z wskazaniem typu danych

// Ograniczenia w kolumnie typu danych:
// Tylko elementy książki referencyjnej "kontrahentów".
Znaki tabeli. Coolclocks. Dodatkowo ("kontrahent", nowe opisy ("katalogiad. PROTTLEMEMENTS"));


Jeśli wśród typów pozostawiono do wypełnienia danych kolumn, istnieje ciąg, można ograniczyć jej bit (długość), określając stosowanie zmiennej lub stałej długości. Wszystko to jest zapewnione, tworząc obiekt za pomocą kwalifikatorów projektantów. Następnie obiekt ten zostanie użyty jako jeden z parametrów opisu projektanta.

Korzystanie z kwalifikacji do wyjaśnienia typu kolumn danych

// Przygotowanie i montaż ograniczeń danych typu danych.
Kwalifikacje Texts \u003d nowe kwalifikacje (20, dopuszczalne, z perspektywy);
Admity \u003d nowe opisy ("ciąg", kwalifikacje);
Stoły. Solonki. Dodatkowo ("Notmerity-dowód", dopuszczalny);


Podobne działania można przeprowadzić w odniesieniu do kwalifikatorów liczby i daty.
Uwaga: opis typów można zbudować przez projektant jako "od podstaw" i używać jako podstawa już istniejący opis typów

Korzystanie z istniejących typów typów, aby wskazać wartości kolumn danych typu danych

// Rozszerzenie wcześniej stosowanych opisów typów.
Kwalifikacje \u003d nowe kwalifikacje (10, 2, dopuszczalne token. Nie ujemny);
Kwalifikacyjne daty \u003d nowe kwalifikacyjne) (części. Dane);
Rozszerzone fulies \u003d nowe opisy (uprawnienia, "liczba, data", kwalifikacje, kwalifikacyjne);

Znaki tabeli. Coolclocks. Dodatkowo ("Uwaga", rozszerzone dodatki);

Dzwon.

Są ci, którzy przeczytali tę wiadomość przed tobą.
Subskrybuj odbieranie artykułów świeżych.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać dzwonek
Bez spamu