Pridať riadok do tabuľkovej časti dokumentu 1s 8.3. Klávesové skratky: všeobecné akcie

Pre predchádzajúci príklad môžete pridať nasledujúce riadky kódu:

Form Elements.TableField1.AddRow(); page = FormElements.TableField1.CurrentRow; p.Prvé = 3; p.Second = "Múka"; p.Množstvo = 350;

Ako určiť počet riadkov v tabuľke hodnôt za 1 s 8?

countRows = tabuľka.Množstvo(); Report("Počet riadkov v tabuľke hodnôt tabuľky = " + počet riadkov);

výsledok:

Počet riadkov v tabuľke hodnôt tabuľky = 3

Ako odstrániť riadok v tabuľke hodnôt za 1 s 8?

riadokTabuľka = tabuľka; table.Delete(rowTable);

Ako zbaliť tabuľku hodnôt za 1 s 8?

Zbaliť:

table.Collapse("Druhá", "Množstvo");

Po konvolúcii dostaneme:

Ako zoradiť tabuľku hodnôt v 1 s 8?

Zoradiť podľa druhého a tretieho stĺpca:

tabuľka.Sort("Druhá, Množstvo");

Ako umiestniť pole tabuľky na riadok v 1c 8?

Na druhom riadku:

Form Elements.TableField1.CurrentRow = tabuľka;

Tlačiteľná forma za 1 s 8

Najprv vytvoríme rozloženie (názov oblasti: vyberte požadované riadky rozloženia, vo vlastnostiach do poľa Názov zadajte názov oblasti), potom ho zobrazíme v tabuľkovom dokumente:

Procedúra CommandPanel1Print(Button) premenná td, rs, rs1, layout, code, name, nomen; kód = 0; layout = GetLayout("Produkty"); header = layout.GetArea("Header"); header.Parameters.datta = CurrentDate(); pc = layout.GetArea("pc"); pc1 = layout.GetArea("pc1"); td = New TabularDocument; td.Output(cap); nomen = Adresáre.Nomenklatúra; vyber = nom.VyberHierarchicky(); while fetch.Next() kód cyklu = kód + 1; if sample.ThisGroup = True then pc1.Parameters.code = code; pc1.Parameters.name = selection.Name; td.Output(rs1); else rs.Parameters.code = kód; rs.Parameters.name = selection.Name; td.Withdraw(rs); koniec Ak; endCycle; atď.ViewOnly = True; td.Show("Adresár ""Nomenklatúra"""); Koniec procedúry

Medzi základné možnosti programovacieho jazyka zvyčajne patrí práca s číslami a reťazcami. Zvyčajne sú tieto vlastnosti pevne zakódované do kódu kompilátora (alebo sú implementované „základné“ triedy programovacieho jazyka).

V 1C je možnosť práce s reťazcami naprogramovaná v samotnej platforme. Dnes sa pozrieme na funkcie práce s 1C reťazcami v programoch vo vstavanom jazyku 1C.

Hodnota riadku 1C

1. Začnime tým najjednoduchším. Vytvorenie premennej a priradenie konštantnej hodnoty reťazca vyzerá takto v 1C:

Premenná = "Ahoj, svet!";

Ak potrebujete zadať znak úvodzovky v konštantnej hodnote reťazca 1C, musíte ho zdvojnásobiť „“

Premenná = "Ahoj, svet"!;

2. Zalomenie riadku 1C môže byť špecifikované dvoma spôsobmi naraz. Prvým je použitie symbolu |

Premenná = "Dobrý deň,
| svet! ";

Druhým je použitie systémovej enumerácie Symbols. Umožňuje vám pridať zalomenia riadkov 1C a ďalšie netlačiteľné znaky, ako napríklad TAB.

Premenná = "Ahoj" + Symboly.PS + "mier!";

3. Konfigurácie v 1C môžu byť vyvinuté nielen pre jeden jazyk (ruština, angličtina alebo iný) - ale súčasne pre niekoľko jazykov. V tomto prípade sa aktuálne používaný jazyk vyberie v spodnej časti okna 1C.

Zoznam jazykov sa nachádza v konfiguračnom okne vo vetve Všeobecné/Jazyky. Každý jazyk má krátky identifikátor ako napr ru alebo Ing.

Je jasné, že pri programovaní takejto konfigurácie môžu byť linky 1C aj viacjazyčné. Na tento účel je možné vytvoriť takýto riadok 1C zadaním cez; možnosti podľa identifikátora jazyka:

Premenná = "ru=""Ahoj svet! ""; en=""Ahoj svet! """;

Ak použijete čiaru 1C vytvorenú týmto spôsobom ako obvykle, bude to, čo je v nej napísané. Aby ho systém rozdelil na dve možnosti a použil požadovanú, musíte použiť funkciu НStr():

//správne pre dvojjazyčné konfigurácie
Správa(NStr(Premenná));

Rekvizity s líniou typu 1C

Atribút je pole v adresári/dokumente 1C. Od premennej v programe v jazyku 1C sa líši tým, že pre atribút je presne uvedený jej typ (číslo, reťazec 1C atď.). Ak si potrebujete osviežiť pamäť, čo je to rekvizita, pozrite si lekciu ďalej.

Ak zadáte typ atribútu - riadok 1C, musíte dodatočne zadať parametre.

1C riadky majú neobmedzenú dĺžku (označuje sa ako dĺžka = 0) a obmedzenú dĺžku s uvedením presného počtu znakov. 1C riadky neobmedzenej dĺžky sú uložené v samostatnej SQL tabuľke, takže ich použitie je menej produktívne ako obmedzené.

Preto má použitie 1C strún neobmedzenej dĺžky svoje obmedzenia - nie je možné ich použiť všade. Napríklad nie je povolené ako číslo dokumentu, referenčný kód alebo meranie.

Práca so strunami 1C

Pre prácu so strunami je v platforme 1C zabudovaných niekoľko funkcií.

  • AbbrLP („Neuveriteľné, ale pravdivé!“)
    Odstraňuje nadbytočné medzery z riadku 1C. Dá sa použiť aj na prevod akýchkoľvek typov na reťazec 1C (napríklad čísla).
  • Premenná = "Vasya" + AbbrLP(" plus") + "Olya"; //bude "Vasya plus Olya"
    Príklad sčítania niekoľkých hodnôt reťazca 1C. Výsledkom bude jeden riadok 1C.
  • Premenná = Lev("Hudba", 2); //bude "Mu"
    Premenná = Medium("Hudba", 2, 2); //bude tam "hrozba"
    Premenná = Práva("Hudba", 2); //bude "ka"
    Rôzne možnosti získania podreťazca z reťazca 1C.
  • Premenná = Nájsť ("Hudba", "zy"); //budú 3
    Vyhľadajte podreťazec v reťazci 1C, začínajúci znakom 1.
  • Premenná = StrLength("Hudba"); //bude ich 6
    Vráti počet znakov v riadku 1C.
  • Report("Ahoj") //v okne správy v spodnej časti okna 1C
    Alert("Ahoj") //vyskakovacie dialógové okno
    Status("Ahoj") //v riadku zobrazenia stavu vľavo dole
    .

Prineste predmety na riadok 1C

Ako viete, v súčasnosti je najpopulárnejším formátom na výmenu štruktúrovaných informácií XML. Dokonca aj najnovšia verzia MS Office Word a Excel ukladá súbory v tomto formáte (docx a xlsx zmenia príponu na zip, otvoria v archivátore).

Platforma 1C na výmenu údajov poskytuje niekoľko možností, z ktorých hlavnou je tiež XML.

1. Najjednoduchšou metódou je použitie funkcie Abbreviation() alebo String(). V tele žiadosti môžete použiť funkciu REPRESENTATION(). Výsledok ich akcie je rovnaký – používateľovi vygenerujú reťazcovú reprezentáciu ľubovoľného objektu 1C.

V prípade adresára to bude štandardne jeho názov. Pre dokument - názov dokumentu, číslo a dátum.

2. Akýkoľvek objekt 1C (s obmedzeniami) je možné previesť do XML a naopak. Proces konverzie sa nazýva serializácia.

StringViewXml = XMLString(Hodnota); //získanie XML z hodnoty 1C
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypStringXml); //získajte hodnotu 1C z reťazca XML, musíte zadať typ 1C, ktorý sa má prijať

3. Existuje vlastný spôsob platformy 1C, ako previesť akýkoľvek objekt 1C na reťazec. Prešiel z verzie 1C 7.7. Tomuto formátu iné programy nerozumejú, ale iné 1C mu rozumejú, čo uľahčuje jeho používanie na výmenu medzi databázami 1C.

Riadok = ValueInRowInt(Value1C); //získame reťazec 1C z hodnoty 1C
ValueVFile("C:\MyFile.txt", Hodnota1C); //ďalšia možnosť, z hodnoty 1C dostaneme súbor s uloženým reťazcom
Hodnota1C = ValueFromStringInt(String); //späť z riadku 1C
Hodnota1C = ValueFile("C:\MyFile.txt"); //späť zo súboru

Úprava riadkov 1C vo formulári

Okrem práce s 1C reťazcami v programe v jazyku 1C by som bol samozrejme rád, keby ich používateľ mohol upravovať. Existuje na to niekoľko možností:

1. Najjednoduchším spôsobom je požiadať o vstup linky 1C na požiadanie. Táto metóda sa používa pri výučbe programovania 1C, v živote sa používa oveľa menej často (ale používa sa!).

Premenná = "";
Riadok = EnterValue(Premenná, "Zadajte celé meno");

2. Na zobrazenie detailov objektu 1C (adresár/dokument) alebo detailov formulára (pozri) sa najčastejšie používa vstupné pole. Toto je najbežnejší nástroj v 1C pre používateľa na prácu s poľami úprav.

3. Možnosti vstupného poľa je možné rozšíriť (pozrite si vlastnosti vstupného poľa, kliknite naň pravým tlačidlom myši, ďalšie podrobnosti):

  • Začiarkavacie políčko Režim úpravy viacerých riadkov
  • Začiarkavacie políčko Rozšírené úpravy (dostupné, ak je začiarknuté predchádzajúce políčko)
  • Zaškrtávacie políčko Režim hesla (pozri).

4. Ak by vám nestačili všetky možnosti vstupného poľa, je tu zabudovaný editor. Ak ho chcete pridať do formulára, musíte pridať pole textového dokumentu do ponuky Ovládací prvok formulára/vložiť. V jeho vlastnostiach môžete určiť jeho prevádzkový režim – vlastnosť Rozšírenie.

Pole textového dokumentu nemožno priamo priradiť k údajom. Je potrebné napísať funkciu do obsluhy udalosti OnOpen() formulára (pozri):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //tu ValueString je text prijatý napríklad z atribútu

A v obslužnom programe uloženia - napríklad v tlačidle Uložiť - pridajte uloženie:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //HodnotaRiadok je atribút, do ktorého uložíme hodnotu

5. Vo verzii 1C 8.2.11 sa v spravovaných formulároch objavila nová možnosť reprezentácie riadku 1C - pole Formátovaný dokument.


Podobne ako pole textového dokumentu si ho musíte nastaviť pri jeho otváraní a zapísať si ho pri ukladaní sami pomocou programu.

  • V objekte 1C, ktorého formulár vytvárame (adresár, dokument, spracovanie atď.) - pridajte atribút s typom Uloženie hodnoty
  • Vo funkcii OnReadOnServer() nastavíme text z atribútu

    //tu Atribút je pridaný atribút objektu 1C
    //tu FormattedDocument je názov poľa vo formulári na úpravu
    &Na serveri

    FormattedDocument = CurrentObject.Attributes.Get();
    Koniec procedúry

  • Vo funkcii BeforeWritingOnServer() alebo pomocou tlačidla napíšeme text z poľa

    &Na serveri
    Postup pri ReadingOnServer(CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Koniec procedúry

Tabuľkové časti existujú pre mnoho objektov v 1C:

  • Adresáre
  • Dokumentácia
  • Správy a spracovanie
  • Účtovné osnovy
  • Plány charakteristického typu
  • Plány typu výpočtu
  • Obchodné procesy a úlohy

Tabuľkové časti umožňujú uložiť neobmedzené množstvo štruktúrovaných informácií patriacich k jednému objektu.

Pozrime sa na niektoré techniky práce s tabuľkovými časťami.

Ako obísť tabuľkovú časť

Na prechod stolovou časťou môžete použiť slučku Pre každý

Pre každý riadok z tabuľkovej časti cyklu

Report(String. Atribút TabularPart) ;

EndCycle ;

Pri každej iterácii do premennej Linka prenáša sa ďalší riadok tabuľkovej časti. Hodnoty podrobností riadku možno získať výrazom Riadok.Názov atribútu.

Ako získať a obísť vybrané riadky tabuľkovej časti

Ak chcete zobraziť informácie z tabuľkovej časti objektu, použite prvok formulára Pole tabuľky. Ak chcete povoliť možnosť výberu viacerých riadkov v poli tabuľky, musíte nastaviť hodnotu Viacnásobné na jeho majetku Režim výberu.

Ak chcete získať zoznam vybraných riadkov, použite nasledujúci kód:

Slučka sa používa na iteráciu cez vybrané riadky. Pre každý:

SelectedRows = FormElements. TableFieldName. SelectedRows;

Pre každý riadok z vybraných riadkov slučka

//obsah slučky

EndCycle ;

Ako programovo vybrať riadky tabuľkovej časti (pole tabuľky) a zrušiť ich výber

Ak chcete programovo zrušiť výber riadkov poľa tabuľky:

Prvky formulára. TableFieldName. SelectedRows. Jasný() ;

Ak chcete programovo vybrať všetky riadky poľa tabuľky:

Pre každý CurrentRow From TabularPart Loop
Prvky formulára. TableFieldName. SelectedLines. Add(CurrentRow) ;
EndCycle ;

Ako vyčistiť časť stola

TabularPart. Jasný() ;

Ako získať aktuálny riadok sekcie tabuľky

Aktuálna čiara je časová os, na ktorej má používateľ aktuálne kurzor. Ak ho chcete získať, musíte získať prístup k ovládaciemu prvku vo formulári, ktorý je spojený s tabuľkovou časťou.

Pre bežné formuláre bude kód vyzerať takto:

Prvky formulára. TableFieldName. CurrentData;

Pre spravované formuláre:

Prvky. TableFieldName. CurrentData;

Ako pridať nový riadok do časti tabuľky

Pridanie nového riadku na koniec časti tabuľky:

NewRow = TablePart. Add() ;

Pridanie nového riadku kdekoľvek v sekcii tabuľky (nasledujúce riadky budú posunuté):

NewRow = TablePart. Vložiť (index)
//Index - číslo pridaného riadku. Číslovanie riadkov začína od nuly.

Nový riadok. Props1 = "Hodnota" ;

Ako programovo vyplniť podrobnosti o riadku tabuľky

Ak potrebujete programovo vyplniť podrobnosti riadka sekcie tabuľky, ktorý pridá používateľ, musíte použiť obsluhu udalosti sekcie tabuľky Pri spustení úprav.

Procedúra vytvorená obsluhou má tri parametre:

  • Element- obsahuje ovládací prvok TabularField.
  • Nový riadok- boolovský. Obsahuje hodnotu Pravda, ak sa pridá nový riadok tabuľky, a lož, ak používateľ začal upravovať už existujúci riadok.
  • Kopírovať- boolovský. Obsahuje hodnotu Pravda, ak používateľ skopíruje riadok, a Klamať v iných prípadoch.

Pozrime sa na príklad. Povedzme, že potrebujeme vyplniť podrobnosti tabuľkovej časti ÚčetÚčet, v prípade, že sa pridá nový riadok. Pri úprave existujúceho riadku nemusíte meniť účtovný účet.

Procedúra TabularPartAtStartEditing(Element, NewRow, Copy)

//Ak používateľ upraví existujúci riadok, neurobíme nič
Ak NIE JE NewRow Then
Návrat;
Koniec Ak ;

//Ak je riadok nový, nastavte účtovný účet
TechString = Položka. CurrentData; //Získajte aktuálny riadok tabuľkovej časti
TechString. Účtovníctvo = Účtovné osnovy. Samonosné. Požadovaný účet;
Koniec procedúry