Kontakty

1c triedenie v tabuľke

Na účtovanie peňazí a tovaru sa v podnikaní široko používajú rôzne tabuľky. Takmer každý dokument je tabuľka.

V jednej tabuľke je uvedený tovar na odoslanie zo skladu. V ďalšej tabuľke sú uvedené povinnosti platiť za tento tovar.

Preto v 1C práca s tabuľkami zaujíma popredné miesto.

Tabuľky v 1C sa tiež nazývajú „tabuľkové časti“. Adresáre, dokumenty a iné ich majú.

Dotaz po vykonaní vráti tabuľku, ku ktorej je možné pristupovať dvoma rôznymi spôsobmi.

Prvý - rýchlejší - výber, získavanie riadkov z neho je možné len v poradí. Druhým je nahranie výsledku dotazu do tabuľky hodnôt a následný náhodný prístup k nemu.

//Možnosť 1 – sekvenčný prístup k výsledkom dotazu

//získajte stôl
Select = Query.Run().Select();
// prejdeme postupne všetky riadky výsledku dotazu
Zatiaľ čo Select.Next() Loop
Report(Selection.Name);
EndCycle;

//Možnosť 2 – nahrávanie do tabuľky hodnôt
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//získajte stôl
Tabuľka = Query.Run().Unload().
//ďalej môžeme prejsť aj všetkými čiarami
Pre každý riadok z cyklu tabuľky
Report(String.Name);
EndCycle;
//alebo ľubovoľný prístup k reťazcom
Riadok = Table.Find("Lopata", "Nazov");

Dôležitou vlastnosťou je, že v tabuľke získanej z výsledku dotazu budú všetky stĺpce presne napísané. To znamená, že vyžiadaním poľa Názov z adresára Nomenklatúra získate stĺpec v tvare String s povolenou dĺžkou najviac N znakov.

Tabuľka vo formulári (hrubý klient)

Používateľ pracuje s tabuľkou, keď je umiestnená na formulári.

Základné princípy práce s formulármi sme rozoberali na hodine a na hodine

Položme teda tabuľku na formulár. Urobíte to tak, že pretiahnete tabuľku z ovládacieho panela. Podobne môžete z ponuky vybrať položku Form/Insert Control.

Dáta je možné uložiť do konfigurácie – vtedy je potrebné vybrať existujúcu (predtým pridanú) tabuľkovú časť konfiguračného objektu, ktorého formulár upravujete.

Kliknite na tlačidlo "..." vo vlastnosti Data. Aby ste videli zoznam tabuľkových častí, musíte rozbaliť vetvu Object.

Keď vyberiete tabuľkovú časť, 1C sám pridá stĺpce do tabuľky vo formulári. Riadky zadané používateľom do takejto tabuľky sa automaticky uložia spolu s referenčnou knihou/dokumentom.

V rovnakej vlastnosti Data môžete zadať ľubovoľný názov a vybrať typ Tabuľka hodnôt.

To znamená, že bola vybratá ľubovoľná tabuľka hodnôt. Nebude automaticky pridávať stĺpce, ani sa nebude automaticky ukladať, ale môžete si s ním robiť, čo chcete.

Kliknutím pravým tlačidlom myši na tabuľku môžete pridať stĺpec. Vo vlastnostiach stĺpca môžete zadať jeho názov (pre referenciu v kóde 1C), záhlavie stĺpca vo formulári, spojenie s atribútom tabuľkovej časti (druhá - ak nie je vybratá ľubovoľná tabuľka, ale tabuľková časť).

Vo vlastnostiach tabuľky vo formulári môžete určiť, či môže používateľ pridávať/odstraňovať riadky. Pokročilejším formulárom je začiarkavacie políčko View Only. Tieto vlastnosti je vhodné použiť na organizovanie tabuliek určených na zobrazovanie informácií, ale nie na úpravu.

Ak chcete spravovať tabuľku, musíte vo formulári zobraziť panel príkazov. Vyberte položku ponuky Formulár/Vložiť ovládací/Príkazový riadok.

Vo vlastnostiach panela príkazov začiarknite políčko Automatické dopĺňanie, aby sa tlačidlá na paneli zobrazovali automaticky.

Tabuľka vo formulári (tenký/spravovaný klient)

Na spravovanom formulári tieto akcie vyzerajú trochu inak. Ak potrebujete umiestniť tabuľkovú časť do formulára, rozbaľte vetvu Objekt a potiahnite jednu z tabuľkových častí doľava. To je všetko!

Ak potrebujete umiestniť tabuľku hodnôt, pridajte nový atribút formulára a v jeho vlastnostiach uveďte typ – tabuľka hodnôt.

Ak chcete pridať stĺpce, kliknite pravým tlačidlom myši na tento atribút formulára a vyberte Pridať stĺpec atribútu.

Potom tiež potiahnite tabuľku doľava.

Ak chcete, aby tabuľka mala panel príkazov, vo vlastnostiach tabuľky vyberte hodnoty v časti Použitie – Umiestnenie panela príkazov.

Nahrávanie tabuľky do Excelu

Akúkoľvek tabuľku 1C umiestnenú vo formulári je možné vytlačiť alebo nahrať do Excelu.

Ak to chcete urobiť, kliknite pravým tlačidlom myši na prázdne miesto v tabuľke a vyberte položku Zoznam.

V spravovanom (tenkom) klientovi je možné podobné akcie vykonávať pomocou položky ponuky Všetky akcie/Zobraziť zoznam.

Tabuľka hodnôt na platforme 1C 8.3 (8.2) je univerzálna zbierka hodnôt, ktoré môže vývojár použiť počas vývoja softvéru na implementáciu svojich algoritmov. Tabuľka hodnôt 1C je v podstate dynamická množina hodnôt, ktoré majú stĺpce a stĺpce.

Články o ďalších univerzálnych zbierkach hodnôt v 1C

Naučte sa programovať v 1C na mieste z mojej knihy „Programovanie v 1C v 11 krokoch“

  1. Kniha je napísaná jasným a jednoduchým jazykom - pre začiatočníka.
  2. Naučte sa porozumieť architektúre 1C;
  3. Začnete písať kód v jazyku 1C;
  4. Ovládať základné programovacie techniky;
  5. Upevnite svoje vedomosti pomocou knihy problémov;

Vynikajúci sprievodca vývojom v spravovanej aplikácii 1C pre začínajúcich vývojárov aj skúsených programátorov.

  1. Veľmi prístupný a zrozumiteľný jazyk prezentácie
  2. Kniha sa posiela e-mailom vo formáte PDF. Dá sa otvoriť na akomkoľvek zariadení!
  3. Pochopte ideológiu riadenej aplikácie 1C
  4. Naučte sa vyvíjať spravovanú aplikáciu;
  5. Naučte sa rozvíjať riadené formuláre 1C;
  6. Budete vedieť pracovať so základnými a potrebnými prvkami riadených formulárov
  7. Programovanie pod riadenou aplikáciou bude prehľadnejšie

Promo kód na 15% zľavu - 48PVXHeYu


Ak vám táto lekcia pomohla vyriešiť akýkoľvek problém, páčila sa vám alebo bola užitočná, môžete podporiť môj projekt darovaním ľubovoľnej sumy:

Môžete zaplatiť manuálne:

Yandex.Money - 410012882996301
Web Money - R955262494655

Pridajte sa k mojim skupinám.

Zdravím všetkých čitateľov infostartu. Tento článok bude venovaný problematike vytvárania ľubovoľnej tabuľky hodnôt vo forme spravovanej aplikácie programovo.

Vlastnosti úlohy.

Každý, kto programoval v bežnej aplikácii, často čelil úlohe získať ľubovoľnú tabuľku hodnôt vo formulári. Ľubovoľná tabuľka hodnôt je tabuľka, ktorej počet a typ stĺpcov nie sú vopred známe. To znamená, že tam môžu byť 3 stĺpce alebo možno 6 alebo možno 8. V bežnej aplikácii je všetko jednoduché: do formulára na spracovanie môžete umiestniť prvok „Tabuľka hodnôt“ a potom preniesť vytvorenú tabuľku hodnôt ​k tomuto prvku programovo. Potom pomocou jednoduchého príkazu:

Form Elements.TableField.CreateColumns();

získajte pripravenú tabuľku hodnôt vo formulári. Zdalo by sa, že by to mohlo byť jednoduchšie.

To všetko bolo v bežnej aplikácii. V spravovanej aplikácii sa všetko zmenilo. Nie je také ľahké vytvoriť ľubovoľnú tabuľku. Teraz musíte buď pevne parametrizovať tabuľku hodnôt vo formulári, alebo ju vytvoriť programovo (popíšte, no, toto je v skutočnosti podstatou samotnej spravovanej aplikácie). Toto sa pokúsime urobiť: programovo vytvorte ľubovoľnú tabuľku hodnôt v riadenom formulári.

Riešenie problému.

Prvá vec, ktorú musíme urobiť, je určiť, ako sa tabuľka zobrazí vo formulári. Hlavná vec je, že pri spracovaní nemusíte vytvárať žiadne prvky formulára. Vytvoríme ho programovo, ako celú tabuľku. To znamená, že tabuľka bude popísaná a vytvorená v momente otvorenia formulára alebo pomocou tlačidla - podľa toho, kto to potrebuje.

K vytvoreniu tabuľky vo formulári dochádza prostredníctvom popisu tabuľky hodnôt ako atribútu:
SelectionTypeArray = Nové pole; Pole SelectionType.Add(Type("Tabuľka hodnôt")); ChoiceTypeDescription = New TypeDescription(ChoiceTypeArray); Pole detailov = Nové pole; Array of Attributes.Add(New Form Attributes("Schedule Table", Description of SelectionType, "", "TZN")); Teraz musíme vytvoriť programovú tabuľku hodnôt, ktorá obsahuje údaje. Ak sa tabuľka hodnôt získa z dotazu, potom je všetko viac-menej v poriadku. Ak je tabuľka vytvorená ručne, význam stĺpcov, ktoré budú obsahovať čísla alebo dátumy, možno vytvoriť pomocou „Popis typov“. Ide o to, že stĺpce v tabuľke hodnôt musia mať nejaký typ. Ak sa napríklad očakáva, že používateľ bude údaje v týchto stĺpcoch vypĺňať interaktívne, potom nemôžete pridať stĺpec tabuľky hodnôt jednoducho s názvom, musí mať typ. Majte na pamäti - je to veľmi dôležité, pretože... Tieto druhy prenesieme do tabuľky na formulári.
Vytvoríme tabuľku, ktorá obsahuje niekoľko stĺpcov:
CD = NewDateQualifiers(DateParts.Time); ArrayKD = Nové pole; ArrayCD.Add(Type("Dátum")); DescriptionTypesTime = New DescriptionTypes(ArrayCD,CD); TZ = New ValueTable;
TK.Columns.Add("S", DescriptionTypesTime);
TK.Columns.Add("Pred", DescriptionTypesTime);
TK.Columns.Add("Názov");
TK.Columns.Add("Note"); // Celé meno a Poznámka - riadky Ďalej naplníme našu tabuľku programu TK potrebnými údajmi. Získame tabuľku TK, ktorá obsahuje potrebné hodnoty a je pripravená na prenos do vytvoreného atribútu formulára. Pre každý stĺpec z cyklu TK

Array of Attributes.Add(New Form Attributes(Column.Name, Column.ValueType,"ScheduleTable"));
EndCycle;
ChangeDetails(ArrayDetails);
SelectionFieldsTable = Elements.Add("TZN", Type("FormTable"));
SelectionFieldsTable.DataPath = "ScheduleTable";
SelectionFieldTable.Display = TableDisplay.List;

Toto je jednoduchá kombinácia a náš stôl je pripravený.

Pre každý stĺpec z cyklu TK

NewElement = Elements.Add(Stĺpec.Názov, Typ("Pole formulára"), Tabuľka výberu poľa);
NewElement.View = FormFieldView.InputField;
NewElement.DataPath = "ScheduleTable." + Názov stĺpca;
NewElement.Width = 10;
EndCycle;

Podmienený dizajn, ak ho potrebujeme, napíšeme ho aj ručne, príkazové menu - ručne. Stolové manipulátory sú tiež písané ručne. Ak chcete napríklad pridať obsluhu udalosti pre tabuľku „Výber“:

Table of SelectionFields.SetAction("Selection","TZNSelection");

Na spracovanie tejto udalosti je predpísaný samostatný postup vo forme postupu:

&OnClient
Procedúra TKNSelection(TK, SelectedRow, Field, StandardProcessing)
//príkazy obsluhy EndProcedure

Všimnite si, že obslužné nástroje tabuliek sa spúšťajú na klientovi, a preto musia mať príkaz ukazovateľa kompilátora

&OnClient

Posledná vec, ktorú som chcel dodať, je, že po všetkých týchto krokoch nezabudnite odovzdať hotovú tabuľku do atribútu formulára:

ValueВFormAttributes(ToR, "ScheduleTable");

Výsledkom je toto:


A tu je spracovanie udalosti „Výber“:



Doslov.

Dúfam, že článok pomôže tým 1C programátorom, ktorí začínajú programovo vytvárať tabuľky na formulári.

Môžete si stiahnuť spracovanie, ktoré programovo vytvorí tabuľku hodnôt a zobrazí ju na spravovateľnom formulári s komentármi, ktoré vám pomôžu vytvoriť si vlastné tabuľky.

tabuľka hodnôt 1C

Tabuľka hodnôt 1C používané na online ukladanie a spracovanie údajov. S veľkým počtom riadkov sa rýchlosť získavania údajov prudko znižuje. Mnoho programátorov podceňuje dôležitosť používania indexov pri vyhľadávaní informácií v tabuľke hodnôt. Chcem vám ukázať, že používanie indexov urýchľuje prácu s technickými špecifikáciami ( tabuľka hodnôt 1C) predtým 100-krát.

Takže na testovacie účely som vytvoril malý kód, ktorý funguje asi takto.

  • Z tabuľkovej časti dokumentu „Implementácia“ sa do tabuľky hodnôt vytiahne 20 tisíc riadkov. Volá sa T1.
  • Urobil som kópiu tej istej tabuľky hodnôt, druhú tabuľku s názvom T2. Takže sme dostali 2 tabuľky hodnôt, T1 a T2, každá s 20 000 riadkami.
  • Ďalej v cykle od 1 do 5 urobíme päť prechodov. Pasáž je nasledovná:
  • V slučke (ktorá je vnorená do slučky od 1 do 5) sa iterujú všetky riadky tabuľky hodnôt T1, všetkých 20 tisíc riadkov.
  • Pre každý aktuálny riadok T1 extrahujeme z tabuľky hodnôt T1 hodnotu v stĺpci „Suma“ - toto je číslo.
  • Hľadáme riadok v tabuľke hodnôt T2, ktorý obsahuje v stĺpci „Suma“ rovnaké číslo, aké bolo extrahované v predchádzajúcom kroku.
  • Meriame čas každého prechodu v milisekundách a zobrazujeme ho na obrazovke.

Inými slovami, prechádzaním všetkých riadkov jednej tabuľky hodnôt 1C a zapamätaním si hodnoty stĺpca „Suma“ hľadáme riadok s rovnakým množstvom v inej tabuľke hodnôt. Používa sa metóda tabuľky hodnôt "Nájsť". Pri jednom prechode sa pátracia operácia vykoná 20 000 krát. Prihrávok je len päť. Sú potrebné na spriemerovanie experimentálnych výsledkov.

Nižšie vidíte tabuľku výsledkov testov. Druhý stĺpec zobrazuje čas vykonania každého z piatich prechodov v normálnom, neoptimalizovanom behu a pod stĺpcom je celkový čas vykonania testu 279 641 milisekúnd alebo približne 279 sekúnd. Tretí stĺpec zobrazuje čas vykonania toho istého testu, ale s možnosťou optimalizovaného vyhľadávania. pomocou indexu v tabuľke hodnôt. Pre prehľadnosť som do tabuľky pridal čas strávený tvorbou indexu (prvý riadok pod nadpisom), je veľmi malý, len 0,047 sekundy. Celkový čas vykonania testu pri druhej možnosti je 2781 milisekúnd, resp 2,78 sekundy.

Takže v prvej možnosti máme - 279 sekúnd, v druhej možnosti - 2,78 sekundy. Rozdiel je 100 krát! Navyše, takéto zrýchlenie sa dosiahne pridaním len JEDNÉHO RIADKU KÓDU!

Čas vykonania, milisekundy
Skúšobná jazda č. Možnosť 1, pravidelná Možnosť 2, optimálna
čas na vytvorenie indexu - 47
1 46531 563
2 55516 547
3 60969 531
4 58688 562
5 57937 531
Celkový čas 279641 2781
Časy zrýchlenia: 100,5541172

Tu je úplný príklad kódu:

Postup knIndexTableValuesPressing(Element) // vytvorte dotaz na načítanie údajovŽiadosť = Nová požiadavka; Žiadosť. Text = "SELECT FIRST 20000 | SalesProducts.Link, | SalesProducts.LineNumber, | SalesProducts.Množstvo, | SalesProducts.Amount, | SalesProducts.Product |FROM | Document.Sales.Products AS SalesProducts"; // umiestnite vybrané údaje do tabuľky hodnôt T1 T1 = Žiadosť. Vykonať (). Unload() ; // vytvorte tabuľku hodnôt T2 skopírovaním obsahu tabuľky hodnôt T1 T2 = T1. Copy() ; StartAddIndex = GetTimeInMilliseconds() ; T2. Indexy. Pridať("Suma"); // TOTO JE NAJDÔLEŽITEJŠÍ RIADOK, PRIDANÝ INDEX DO STĹPCA „SÚČET“ ConAddIndex = GetTimeInMilliseconds() ; Ohlásiť ( "Čas pridania indexu"+ (CondIndexAdding - StartIndexAdding) + "ms" ); Ohlásiť ( "Celkový počet riadkov v našej tabuľke hodnôt: "+ T2. Množstvo() ); // zorganizujeme cyklus piatich priechodov, v podstate spustíme test päťkrát Pre počet = 1 až 5 Začiatok cyklu = GetTimeInMilliseconds(); // zapamätať si čas začiatku Nájdené Raz = 0 ; Pre každú stránku cyklu T1 // iterujte cez všetky riadky tabuľky T1 Spracovanie používateľských prerušení() ; // vyhľadajte riadok v tabuľke T2, v ktorom je stĺpec "Suma" // zodpovedá aktuálnej hodnote "Sum" tabuľky T1 Nájdený reťazec = T2. Nájsť (Súčet stránok, "Súčet" ) ; // Ak je zhoda pevná (reťazec nájdený), zvýšte počítadlo nájdených reťazcov Ak FoundString<>Undefined Then FoundOnce = FoundOnce + 1 ; Koniec Ak ; EndCycle ; // získame čas dokončenia cyklu prehľadávania riadkov tabuľky T1 Koniec = GetTimeInMilliseconds() ; // nahlási číslo testovania, počet nájdených zhôd a čas vykonania v milisekundách Správa ("Č. prejazdu " + Sch) ; Report("Nájdené časy:" + Nájdené časy) ; Ohlásiť ( "Dodacia lehota"+ Reťazec (End-Start) + "milisekundy"); EndCycle ; // nechať vykonať ďalší prechod Koniec procedúry


Príklad je komentovaný a mal by byť jasný. Hlavná vec je v rade T2.Indexy.Add("Suma"); Informujeme 1C, že vykonáme operáciu vyhľadávania v stĺpci „Suma“ v tabuľke hodnôt T1 a požadujeme, aby bol v tomto stĺpci vytvorený index. Systém vytvorí index a potom ho automaticky použije na všetky operácie vyhľadávania pomocou stĺpca „Suma“. Treba si uvedomiť, že vytvorený index je platný len pre vyhľadávanie v stĺpci „Suma“, keďže bol vytvorený pre tento stĺpec. Ak na vyhľadávanie potrebujeme ďalšie stĺpce, mali by sme vytvoriť príslušné indexy s uvedením požadovaných názvov stĺpcov.

Môžeme vytvoriť viacero indexov v tej istej tabuľke, ak budeme hľadať hodnoty pre rôzne stĺpce. Indexy sú uložené v kolekcii indexov tabuľky hodnôt 1C, ktorý vyplýva z kódu: TK.Indexes.Add(ColumnName)

Ak potrebujeme hľadať podľa kombinácie hodnôt stĺpcov, napríklad súčasne podľa stĺpcov „Množstvo“ a „Suma“, mali by sme vytvoriť zložený index: Т2.Indexy.Add("množstvo, množstvo") Takýto index sa použije, keď hľadáme hodnotu v tabuľke pomocou metódy FindRows().

Pole FoundStrings = T2.FindStrings(New Structure("Množstvo, Množstvo", HľadanéMnožstvo, HľadanýSum));

Používa sa vo vzorovom texte.
S pozdravom Degtyarev Roman.

Ako sa naučiť programovať v 1C od začiatku?

Ako pracovať ako programátor 1C a zarobiť až 150 000 rubľov mesačne?

PRIHLÁSTE SA ZDARMA

2 TÝŽDŇOVÝ KURZ

"PROGRAMOVANIE V 1C PRE ZAČIATOČNÍKOV"

Kurz bude zaslaný emailom. Staňte sa programátorom plnením úloh krok za krokom.

Na účasť potrebujete iba počítač a internet

Voľný vstup do kurzu:

Sp-force-hide ( display: none;).sp-form ( display: block; background: #eff2f4; padding: 5px; width: 270px; max-width: 100%; border-radius: 0px; -moz-border -radius: 0px -webkit-border-radius: 0px; nepriehľadnosť: 1; viditeľnosť: viditeľné;).sp-form .sp-form-fields-wrapper ( margin: 0 auto; width: 260px;).sp-form .sp -form-control ( background: #ffffff; border- farba: #cccccc: šírka-šírka písma: 15px; 4px; -webkit-border-radius: 4px; šírka: 100%;).sp-form .sp-field label ( color: #444444; font- size: 13px; font-style: normal; font-weight: bold; ).sp-form .sp-button ( border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; background-color: #f4394c; color: #ffffff; width: 100 % ; štýl písma: normálny; rodina písiem: Arial, "Helvetica Neue", bezpätkové; box-shadow: žiadny; -moz-box-shadow: žiadne; -webkit-box-shadow: none; background: linear-gradient(to top, #e30d22 , #f77380);).sp-form .sp-button-container (text-align: center; width: auto;)

(Tento článok patrí do série článkov 1C od nuly; programovanie 1C od nuly; tabuľka hodnôt 1C)

V minulom článku som hovoril o tvorení tabuľky hodnôt 1s a spôsoby prístupu k údajom, ktoré obsahuje.

Rozšírme si tieto poznatky pre pohodlnejšiu prácu s tabuľkou hodnôt. Začnime s niektorými užitočnými vlastnosťami tabuľky hodnôt.

1. Iterujte cez riadky tabuľky hodnôt pomocou indexov riadkov (čísla riadkov)

Metóda ValueTable.Quantity()- vráti počet riadkov v tabuľke hodnôt.

Pripomínam, že ak metóda ValueTable.Quantity() ukázal, že v tabuľke je 5 riadkov, potom indexy (čísla) týchto riadkov sú: 0, 1, 2, 3, 4.

Predpokladajme, že máme tabuľka hodnôt 1C so stĺpcom "Priezvisko zákazníka"

Ak chceme iterovať cez všetky riadky tabuľky hodnôt pomocou indexu riadku, musíme použiť hlavičku cyklu, ako v nasledujúcom príklade. V ňom zobrazujeme obsah stĺpca „Priezvisko zákazníka“ pre každý riadok, to znamená, že vytlačíme celý stĺpec s priezviskami klientov.
Takže:

Pre RowNumber = 0 By OurTable.Quantity() - 1 Loop // tu sú riadky iterované CurrentLastName = OurTable[RowNumber].CustomerLastName; // "Priezvisko zákazníka" je názov stĺpca obsahujúceho priezvisko klienta Report(CurrentLastName); EndCycle;

Upozorňujeme, že počítadlo slučiek zvyšujeme na hodnotu rovnajúcu sa počtu riadkov tabuľky mínus jeden: OurTable.Quantity() – 1

Poďme zistiť, čo kód znamená: OurTable[RowNumber]. Ide o prístup ku konkrétnemu riadku tabuľky hodnôt podľa jeho indexu (čísla).

V nasledujúcom príklade ukážem ako OurTable[RowNumber] nám vráti objekt, ktorý má typ "ValueTableRow".
Do ďalšej premennej som vložil výsledok prístupu k riadku podľa čísla: TableRow = OurTable[RowNumber]

Ďalej po prijatí objektu - jeden riadok tabuľky hodnôt vo forme premennej RowTable, môžeme s týmto reťazcovým objektom pracovať samostatne. Nižšie uvedený príklad robí to isté ako príklad vyššie, len spodný príklad používa premennú „extra“. RowTable

Pre RowNumber = 0 By OurTable.Quantity() - 1 Loop // tu sú riadky iterované TableLine = OurTable[RowNumber].CustomerLastName; // získame aktuálny riadok tabuľky hodnôt podľa jeho indexu (čísla) CurrentLastName = TableLine.ClientLastName; // "Priezvisko zákazníka" je názov stĺpca obsahujúceho priezvisko klienta Report(CurrentLastName); EndCycle;

Ak je vnútri slučky, napíšeme nasledujúci kód: Prehľad (riadok tabuľky)- tento kód NEBUDE zobrazovať údaje z aktuálneho riadku tabuľky hodnôt (napríklad priezvisko klienta atď.).

Všetko je správne, pretože premenná RowTable predstavuje objekt a k dátam sa pristupuje cez vlastnosti a metódy tohto objektu – a ak píšete Prehľad (riadok tabuľky), potom sa zobrazí informácia o type premennej RowTable: ValueTableRow.

Napríklad kód Riadok tabuľky. Priezvisko zákazníka znamená iba prístup k údajom uloženým v stĺpci „Priezvisko zákazníka“ v aktuálnom riadku objektu. To sme použili v príklade na zobrazenie priezvisk všetkých klientov uložených v tabuľke hodnôt. Prechádzanie všetkými riadkami a zobrazovanie rovnakých mien na obrazovke jeden po druhom.

2. Iterujte cez riadky tabuľky hodnôt pomocou zbernej slučky "Pre každého..."

Iterovať cez reťazce Tabuľky hodnôt 1C môžeme použiť inú verziu cyklu. Ide o špeciálnu slučku na iteráciu cez prvky objektov zbierky. Tabuľka hodnôt 1c je tzv zber. V tomto prípade kolekcia reťazcov.

A akúkoľvek kolekciu v 1C je možné iterovať pomocou slučky:

Pre každú akciu cyklu...... vo vnútri cyklu EndCycle

Zobrazme mená všetkých klientov zo všetkých riadkov tabuľky iteráciou cez kolekciu riadkov v tabuľke hodnôt:

Pre každý riadok tabuľky z našej tabuľky zostava slučky(TableRow.CustomerLastName); Koniec cyklu

Pri iterácii cez kolekciu sme nepotrebovali počítadlo riadkových (indexových) čísel. Špeciálna forma cyklu pomohla zaobísť sa bez počítadla. Do ľubovoľnej premennej RowTable Zakaždým, keď prejde slučka, sa automaticky priradí objekt riadka tabuľky hodnôt.

Teda v RowTable Keď sa cyklus vykonáva, všetky riadky našej tabuľky hodnôt padnú za sebou. A všetko, čo robíme, je, že pre každý riadok, ktorý nám bude odovzdaný, zobrazíme obsah stĺpca „Priezvisko zákazníka“ pomocou konštrukcie Report(TableRow.CustomerPriezvisko);

3.A teraz: zopakovanie učiva.

takže, Tabuľka hodnôt 1C je zbierka reťazcov. Niekto pozbieral reťazce, dal ich na hromadu a ukázalo sa, že je to celá zbierka reťazcov – ktorú nazvali tabuľkou hodnôt.

Len toto je zbierka viac než len obyčajných textových reťazcov. Toto je zbierka objektov typu RowTableValues. A tento samostatný riadkový objekt ukladá údaje pre každý stĺpec v aktuálnom riadku. Ukladá priezvisko klienta, výšku klienta alebo čokoľvek iné, čo bolo potrebné.

K riadku tabuľky hodnôt môžete pristupovať podľa jeho indexu, ktorý začína na nule. Pomocou kódu MyFourthRow = MojaTabuľka- dostaneme štvrtý riadok tabuľky hodnôt, pretože číslovanie riadkov začína od nuly: 0, 1, 2, 3.

Pomocou metódy určíme počet riadkov MyTable.Quantity(). Nezabudnite na zátvorky na konci, keďže metódu voláme bez parametrov.

Pripomeňme si, že môžeme iterovať cez všetky riadky tabuľky hodnôt pomocou cyklu, v ktorom uvádzame indexy riadkov (od nuly po (počet riadkov mínus jeden)), alebo môžeme použiť cyklus opakujúci sa cez kolekcie .

Posledná vec: Ako získam pri iterácii kolekcie číslo riadku tabuľky hodnôt?
Aktuálne číslo riadku získate volaním metódy Index() pre tabuľku hodnôt, do ktorej odovzdáme objekt riadku.

Nasledujúci príklad zobrazí čísla všetkých riadkov v tabuľke hodnôt 1C:

Pre každý riadok tabuľky z našej tabuľky prehľad slučky(NašaTabuľka.Index(Riadok tabuľky)); Koniec cyklu

Pokračovanie materiálov bude v nasledujúcich článkoch.....

Degtyarev Roman.

Ako sa naučiť programovať v 1C od začiatku?

Ako pracovať ako programátor 1C a zarobiť až 150 000 rubľov mesačne?

PRIHLÁSTE SA ZDARMA

2 TÝŽDŇOVÝ KURZ

"PROGRAMOVANIE V 1C PRE ZAČIATOČNÍKOV"

Kurz bude zaslaný emailom. Staňte sa programátorom plnením úloh krok za krokom.

Na účasť potrebujete iba počítač a internet

Voľný vstup do kurzu:

Sp-force-hide ( display: none;).sp-form ( display: block; background: #eff2f4; padding: 5px; width: 270px; max-width: 100%; border-radius: 0px; -moz-border -radius: 0px -webkit-border-radius: 0px; nepriehľadnosť: 1; viditeľnosť: viditeľné;).sp-form .sp-form-fields-wrapper ( margin: 0 auto; width: 260px;).sp-form .sp -form-control ( background: #ffffff; border- farba: #cccccc: šírka-šírka písma: 15px; 4px; -webkit-border-radius: 4px; šírka: 100%;).sp-form .sp-field label ( color: #444444; font- size: 13px; font-style: normal; font-weight: bold; ).sp-form .sp-button ( border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; background-color: #f4394c; color: #ffffff; width: 100 % ; štýl písma: normálny; rodina písiem: Arial, "Helvetica Neue", bezpätkové; box-shadow: žiadny; -moz-box-shadow: žiadne; -webkit-box-shadow: none; background: linear-gradient(to top, #e30d22 , #f77380);).sp-form .sp-button-container (text-align: center; width: auto;)



Páčil sa vám článok? Zdieľaj to