Adjon hozzá egy sort az 1s dokumentum táblázatos részéhez 8.3. Gyorsbillentyűk: általános műveletek

Az előző példában a következő kódsorokat adhatja hozzá:

Form Elements.TableField1.AddRow(); oldal = FormElements.TableField1.CurrentRow; p.Első = 3; p.Second = "liszt"; p.Mennyiség = 350;

Hogyan lehet meghatározni a sorok számát egy értéktáblázatban 1s 8 alatt?

countRows = táblázat.Mennyiség(); Report("Sorok száma a táblázatértékek táblázatában = " + sorok száma);

Eredmény:

A táblázatban található sorok száma = 3

Hogyan lehet törölni egy sort az értéktáblázatból 1s 8 alatt?

rowTable = táblázat; table.Delete(rowTable);

Hogyan lehet összecsukni egy értéktáblázatot 1s 8 alatt?

Összeomlás:

table.Collapse("Második", "Mennyiség");

A konvolúció után kapjuk:

Hogyan rendezzünk egy értéktáblázatot 1s 8-ban?

Rendezés a második és harmadik oszlop szerint:

table.Sort("Második, Mennyiség");

Hogyan helyezzünk el egy táblázat mezőt egy soron az 1c 8-ban?

A második sorban:

Form Elements.TableField1.CurrentRow = táblázat;

Nyomtatható formában 1s 8-ban

Először egy elrendezést készítünk (terület neve: válassza ki az elrendezés kívánt sorait, a tulajdonságokba a Név mezőbe írja be a terület nevét), majd megjeleníti egy táblázatos dokumentumban:

Eljárás CommandPanel1Print(Button) változó td, rs, rs1, elrendezés, kód, név, név; kód = 0; layout = GetLayout("Termékek"); header = elrendezés.GetArea("Fejléc"); header.Parameters.datta = AktuálisDátum(); pc = elrendezés.GetArea("pc"); pc1 = elrendezés.GetArea("pc1"); td = Új táblázatos dokumentum; td.Output(cap); nomen = Directories.Nomenclature; kiválasztás = nom.SelectHierarchically(); while fetch.Next() cikluskód = kód + 1; if sample.ThisGroup = True then pc1.Parameters.code = kód; pc1.Parameters.name = kiválasztás.Név; td.Output(rs1); else rs.Parameters.code = kód; rs.Parameters.name = kiválasztás.Név; td.Visszavonás(ok); endIf; endCycle; stb.ViewOnly = igaz; td.Show("Könyvtár ""Nómenklatúra"""); Az eljárás vége

A programozási nyelvek alapvető képességei általában a számokkal és karakterláncokkal való munkavégzést foglalják magukban. Általában ezek a szolgáltatások a fordítókódba vannak bekódolva (vagy a programozási nyelv „alap” osztályai vannak megvalósítva).

Az 1C-ben magában a platformban van programozva a karakterláncokkal való munkavégzés képessége. Ma megvizsgáljuk az 1C karakterláncokkal való munkavégzés jellemzőit a programokban a beépített 1C nyelven.

Vonalérték 1C

1. Kezdjük a legegyszerűbbel. Változó létrehozása és állandó karakterlánc-érték hozzárendelése így néz ki az 1C-ben:

Változó = "Szia, világ!";

Ha egy idézőjel karaktert kell megadnia egy állandó 1C karakterlánc értékben, akkor meg kell dupláznia ""

Változó = "Szia, világ"!;

2. Az 1C sortörés egyszerre kétféleképpen adható meg. Az első a | szimbólum használata

Változó = "Szia!
| világ! ";

A második a Symbols rendszer felsorolását használja. Lehetővé teszi 1C sortörések és egyéb nem nyomtatható karakterek, például TAB hozzáadását.

Változó = "Hello" + Symbols.PS + "béke!";

3. Az 1C konfigurációi nem csak egy nyelvre (orosz, angol vagy másik) fejleszthetők, hanem egyidejűleg több nyelvre is. Ebben az esetben az 1C ablak alján az aktuálisan használt nyelv kerül kiválasztásra.

A nyelvek listája az Általános/Nyelvek ág konfigurációs ablakában található. Minden nyelvnek van egy rövid azonosítója, mint pl ru vagy eng.

Nyilvánvaló, hogy egy ilyen konfiguráció programozásakor az 1C vonalak többnyelvűek is lehetnek. Ehhez létre lehet hozni egy ilyen 1C sort az átmenő megadásával; lehetőségek nyelvi azonosító szerint:

Változó = "ru=""Szia világ! ""; hu=""Szia világ! """;

Ha az így kialakított 1C sort szokás szerint használod, akkor az lesz ami benne van írva. Ahhoz, hogy a rendszer két lehetőségre bontsa, és a kívántat használja, az НStr() függvényt kell használnia:

//kétnyelvű konfigurációk esetén helyes
Jelentés(NStr(Változó));

1C vonaltípusú kellékek

Az attribútum egy mező az 1C könyvtárban/dokumentumban. Az 1C nyelvű programban lévő változóktól abban különbözik, hogy az attribútumhoz pontosan meg van adva a típusa (szám, 1C karakterlánc stb.). Ha fel kell frissítenie az emlékezetét a kellékről, nézze meg a leckét.

Ha megadja az attribútum típusát - 1C sor, akkor ezenkívül meg kell adnia a paramétereket.

Az 1C sorok korlátlan hosszúságúak (hosszúság = 0) és korlátozott hosszúságúak, jelezve a karakterek pontos számát. A korlátlan hosszúságú 1C sorok külön SQL táblában vannak tárolva, így használatuk kevésbé produktív, mint a korlátozottak.

Éppen ezért a korlátlan hosszúságú 1C húrok használatának megvannak a maga korlátai - nem lehet mindenhol használni őket. Például nem megengedett dokumentumszámként, hivatkozási kódként vagy mérésként.

Munkavégzés 1C húrokkal

Az 1C platform számos beépített funkcióval rendelkezik a húrokkal való munkavégzéshez.

  • AbbrLP ("Hihetetlen, de igaz!")
    Eltávolítja a felesleges szóközöket az 1C sorból. Bármilyen típus 1C karakterláncsá alakítására is használható (például számok).
  • Változó = "Vasya" + AbbrLP(" plusz") + "Olya"; //lesz "Vasya plus Olya"
    Példa több 1C karakterlánc érték összegzésére. Az eredmény egy sor 1C lesz.
  • Változó = Lev("Zene", 2); //"Mu" lesz
    Változó = Közepes("Zene", 2, 2); //lesz "fenyegetés"
    Változó = Jogok("Zene", 2); //lesz "ka"
    Különféle lehetőségek egy részkarakterlánc 1C karakterláncból való beszerzésére.
  • Változó = Find("Zene", "zy"); //3 lesz
    Keressen egy részkarakterláncot az 1C karakterláncban, az 1. karaktertől kezdve.
  • Változó = StrLength("Zene"); //6 lesz
    Az 1C sorban lévő karakterek számát adja vissza.
  • Report("Hello") //az 1C ablak alján lévő üzenetablakban
    Alert("Hello") //felugró párbeszédpanel
    Status("Hello") //az állapotkijelző sorban a bal alsó sarokban
    .

Tárgyak bevitele az 1C sorba

Mint tudják, a strukturált információk cseréjének legnépszerűbb formátuma jelenleg az XML. Még az MS Office Word és Excel legújabb verziója is ebbe a formátumba menti a fájlokat (docx és xlsx, módosítsa a kiterjesztést zip-re, megnyitja archiválóban).

Az 1C adatcserére szolgáló platform számos lehetőséget kínál, amelyek közül a fő szintén az XML.

1. A legegyszerűbb módszer az Abreviation() vagy String() függvény használata. Használhatja a REPRESENTATION() függvényt a kérés törzsében. Műveletük eredménye ugyanaz - bármilyen 1C objektum karakterlánc reprezentációját generálják a felhasználó számára.

Egy könyvtár esetében alapértelmezés szerint ez lesz a neve. Dokumentum esetén – a dokumentum neve, száma és dátuma.

2. Bármely 1C objektum (korlátozásokkal) konvertálható XML-be és fordítva. Az átalakítási folyamatot szerializálásnak nevezik.

StringViewXml = XMLString(Érték); //XML lekérése 1C értékből
Value1C = XMLVérték(Típus("Könyvtárlink.Nómenklatúra"),TípusStringXml); //az 1C értéket az XML karakterláncból kapja meg, meg kell adnia a fogadni kívánt 1C típust

3. Az 1C platform saját módszere van arra, hogy bármilyen 1C objektumot karaktersorozattá alakítson. Az 1C 7.7-es verzióról költözött. Ezt a formátumot más programok nem értik, de más 1C megérti, ami megkönnyíti az 1C adatbázisok közötti cserét.

Sor = ValueInRowInt(Érték1C); //lekéri az 1C karakterláncot az 1C értékből
ValueVFile("C:\Sajátfájl.txt", Érték1C); //egy másik lehetőség, az 1C értékből kapunk egy fájlt egy mentett karakterlánccal
Érték1C = ValueFromStringInt(String); //vissza az 1C sorból
Érték1C = ÉrtékFájl("C:\Sajátfájl.txt"); //vissza a fájlból

1C sorok szerkesztése az űrlapon

Amellett, hogy 1C nyelvű programban 1C karakterláncokkal dolgozom, természetesen szeretném, ha a felhasználó szerkeszthetné azokat. Erre több lehetőség is kínálkozik:

1. A legegyszerűbb módja egy 1C vonal beléptetésének kérése. Ezt a módszert az 1C programozás tanításakor használják; az életben sokkal ritkábban használják (de használják!).

Változó = "";
Row = EnterValue(Változó, "Írja be a teljes nevet");

2. Egy 1C objektum (könyvtár/dokumentum) vagy űrlap részleteinek (lásd) megjelenítéséhez leggyakrabban egy beviteli mezőt használnak. Ez a leggyakoribb eszköz az 1C-ben a felhasználó számára a szerkesztőmezők kezeléséhez.

3. A beviteli mező lehetőségei bővíthetők (lásd a beviteli mező tulajdonságait, kattintson rá jobb gombbal, további részletek):

  • Jelölőnégyzet Többsoros szerkesztési mód
  • Speciális szerkesztés jelölőnégyzet (akkor érhető el, ha az előző jelölőnégyzet be van jelölve)
  • Jelszó mód jelölőnégyzet (lásd).

4. Ha a beviteli mező összes képessége nem elég Önnek, van beépített szerkesztő. Az űrlaphoz való hozzáadásához hozzá kell adni egy Szöveges dokumentum mezőt az Űrlap/Beszúrás vezérlője menühöz. Tulajdonságaiban megadhatja annak működési módját – az Extension tulajdonságot.

Szöveges dokumentummező nem társítható közvetlenül adatokhoz. Az űrlap OnOpen() eseménykezelőjébe függvényt kell írni (lásd:

Űrlapelemek.ElemNévSzövegDokumentumField.SetText(StringValue); //itt a ValueString az a szöveg, amelyet például az attribútumból kapunk

És a mentéskezelőben - például a Mentés gombban - adjon hozzá egy mentést:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ÉrtékAz itt található sor az az attribútum, ahová az értéket mentjük

5. Az 1C 8.2.11-es verziójában a felügyelt űrlapokon egy új lehetőség jelent meg az 1C vonal megjelenítésére - a Formátumozott dokumentum mező.


Hasonlóan a szöveges dokumentum mezőjéhez, ezt megnyitáskor be kell állítani, és a program segítségével saját kezűleg menteni kell.

  • Abban az 1C objektumban, amelynek formáját hozzuk létre (könyvtár, dokumentum, feldolgozás stb.) - adjon hozzá egy attribútumot Value Storage típussal
  • Az OnReadOnServer() függvényben az attribútumból állítjuk be a szöveget

    //itt az Attribútum az 1C objektum hozzáadott attribútuma
    //itt a FormattedDocument a szerkesztendő űrlap mezőjének neve
    &A szerveren

    FormattedDocument = CurrentObject.Attributes.Get();
    Az eljárás vége

  • A BeforeWritingOnServer() függvényben vagy a gomb segítségével írjuk ki a szöveget a mezőből

    &A szerveren
    Eljárás ReadingOnServer(CurrentObject) során
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Az eljárás vége

Az 1C-ben számos objektumhoz léteznek táblázatos részek:

  • Könyvtárak
  • Dokumentáció
  • Jelentések és feldolgozás
  • Számlatáblázatok
  • Jellegzetes típustervek
  • Számítási típusú tervek
  • Üzleti folyamatok és feladatok

A táblázatos részek lehetővé teszik egy objektumhoz tartozó korlátlan mennyiségű strukturált információ tárolását.

Nézzünk meg néhány technikát a táblázatos részekkel való munkavégzéshez.

Hogyan lehet megkerülni a táblázatos részt

A táblázatrész áthaladásához hurkot használhat Az egyes

Minden sorhoz a ciklus táblázatos részéből

Report(String. TabularPart attribútum) ;

EndCycle ;

Minden iterációnál a változóba Vonal a táblázatos rész következő sora kerül továbbításra. A sorrészletek értékeit a kifejezéssel kaphatjuk meg Line.AttributeName.

A táblázatos rész kiválasztott sorainak lekérése és megkerülése

Az objektum táblázatos részéből származó információk megjelenítéséhez használjon űrlapelemet Táblázat mező. Ha engedélyezni szeretné több sor kijelölését egy táblázat mezőjében, be kell állítania az értéket Többszörös az ő birtokán Kiválasztási mód.

A kiválasztott sorok listájának megtekintéséhez használja a következő kódot:

A kiválasztott sorokon való iterációhoz egy hurok szolgál. Az egyes:

SelectedRows = Űrlapelemek. TableFieldName. SelectedRows;

Minden sorhoz a kiválasztott sorokból Loop

//hurok tartalma

EndCycle ;

A táblázatos rész (táblamező) sorainak programozott kijelölése és kijelölésük megszüntetése

A táblázatmező sorainak programozott kijelölésének megszüntetése:

Űrlapelemek. TableFieldName. SelectedRows. Egyértelmű() ;

Egy táblázatmező összes sorának programozott kijelölése:

Minden egyes aktuális sorhoz a TabularPart ciklusból
Űrlapelemek. TableFieldName. SelectedLines. Add(aktuális sor) ;
EndCycle ;

Hogyan kell törölni az asztali részt

TabularPart. Egyértelmű() ;

Hogyan lehet lekérni egy táblázatszakasz aktuális sorát

Az aktuális sor az az idővonal, amelyen a felhasználó jelenleg a kurzort tartja. Ennek eléréséhez el kell érnie a táblázatos részhez társított űrlap vezérlőelemét.

A normál űrlapoknál a kód így fog kinézni:

Űrlapelemek. TableFieldName. CurrentData;

Kezelt űrlapok esetén:

Elemek. TableFieldName. CurrentData;

Hogyan adjunk hozzá új sort egy táblázatszakaszhoz

Új sor hozzáadása a táblázatrész végéhez:

NewRow = Táblázatrész. Add() ;

Új sor hozzáadása bárhol a táblázat szakaszában (a következő sorok eltolódnak):

NewRow = Táblázatrész. Beszúrás (index)
//Index - a hozzáadott sor száma. A sorszámozás nullától kezdődik.

Új sor. Props1 = "Érték" ;

Hogyan lehet programozottan kitölteni egy táblázatsor adatait

Ha programozottan ki kell töltenie egy, a felhasználó által hozzáadott táblázatszakasz sor részleteit, akkor a táblázatszakasz eseménykezelőjét kell használnia. A szerkesztés megkezdésekor.

A kezelő által létrehozott eljárásnak három paramétere van:

  • Elem- vezérlőelemet tartalmaz Táblázatmező.
  • Új sor- logikai. Értéket tartalmaz Igaz, ha új táblázatsor kerül hozzáadásra, és Fekszik, ha a felhasználó elkezdett szerkeszteni egy már meglévő sort.
  • Másolat- logikai. Értéket tartalmaz Igaz, ha a felhasználó másolja a sort, és Fekszik más esetekben.

Nézzünk egy példát. Tegyük fel, hogy ki kell töltenünk a táblázatos rész adatait AccountAccount, ha új sor kerül hozzáadásra. Meglévő sor szerkesztésekor nem kell módosítani a könyvelési számlát.

Eljárás táblázatos rész kezdetén szerkesztés (elem, új sor, másolás)

//Ha a felhasználó szerkeszt egy meglévő sort, akkor nem teszünk semmit
Ha NEM NewRow Akkor
Visszatérés;
EndIf ;

//Ha a sor új, állítsa be a könyvelési számlát
TechString = Elem. CurrentData; //A táblázatos rész aktuális sorának lekérése
TechString. Számvitel = Számlatáblázatok. Önfenntartó. RequiredAccount;
Az eljárás vége