Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Shkarkoni kolonën e seksionit tabelor 1c. Është kaq e thjeshtë

Një tabelë vlerash është një objekt specifik i përgjithshëm për ruajtjen e të dhënave në një pamje tabele. Dallimi kryesor midis tabelave dhe objekteve të aplikacionit është se ato nuk janë të lidhura me tabelat fizike të bazës së të dhënave. Tabela e vlerave ekziston vetëm në RAM, e cila, nga njëra anë, ofron mundësi unike, dhe nga ana tjetër, vendos kufizime të caktuara. Megjithatë, aftësia për të bashkëvepruar me një tabelë është e krahasueshme me bashkëveprimin me objektet që ekzistojnë në të vërtetë në bazën e të dhënave.

Historikisht, tabela e vlerave në 1C ka një qëllim të dyfishtë, duke qenë një analog virtual i tabelave ekzistuese, por në të njëjtën kohë është edhe një element kontrolli. Me kalimin në një aplikacion të menaxhuar, pjesa më e madhe e këtij funksioni është zhvlerësuar, por tani mund të jetë gjithashtu një element i ndërfaqes së përdoruesit, por me një sërë kufizimesh domethënëse.

Struktura e tabelës së vlerave si objekt

Vetitë e një tabele vlerash përcaktohen nga kombinimet e dy koleksioneve të paracaktuara: kolonat dhe rreshtat e saj.

Tabela e vlerave Kolonat

Kolona e tabelës së vlerave është vetia e saj përcaktuese. Është grupi i kolonave në tabelë që përcakton strukturën e tij. Kolonat korrespondojnë me fushat e tabelave fizike ose me kolonat e seksionit tabelor ose të ditarit të dokumentit që janë të njohura nga ndërfaqja e përdoruesit. Një kolonë mund të ketë një emër të brendshëm, një lloj vlere dhe një titull që shfaqet kur ndërveproni me tabelën.

Meqenëse kolonat janë një koleksion objektesh, ju mund të shtoni, hiqni dhe modifikoni kolona.

Rreshti i tabelës së vlerave

Nga pikëpamja e ndërfaqes së programimit, vargjet janë një koleksion i veçantë i ngulitur në një tabelë vlerash. Ato janë analoge me regjistrimet e tabelave fizike, domethënë rreshtat e seksionit tabelor ose ditarin e dokumenteve që janë të njohura për përdoruesin. Çdo rresht i marrë veçmas është një objekt me një grup karakteristikash të emërtuara, emrat e të cilave korrespondojnë me emrat e kolonave të tabelës.

Kështu, bashkëveprimi me një varg është shumë i ngjashëm me bashkëveprimin me objekte të tjera. Ju mund të lexoni dhe shkruani vetitë e tij, duke përfshirë përdorimin e funksionit të paracaktuar "FillPropertyValues ​​()". Meqenëse rreshtat janë koleksioni kryesor i tabelës së vlerave, metoda "Clear ()" përdoret për të fshirë të gjitha rreshtat në tabelë.

Krijoni një tabelë vlerash

Ka shumë mënyra për të bërë gati për përdorim një tabelë vlerash. Le të hedhim një vështrim në disa prej tyre. Çdo shembull do të jepet si listë kodesh me komente.

Krijimi i një tabele nga projektuesi

Metoda kryesore që ju lejon të krijoni një tabelë të tillë që i nevojitet zhvilluesit, për fat të keq, kërkon më shumë kohë, pasi kërkon të specifikoni manualisht të gjitha vetitë e nevojshme të tabelës.

DemoTable = NewValuesTable; // Para së gjithash, ne inicializojmë TOR // Më pas, përcaktojmë parametrat e nevojshëm për kolonat e reja dhe i shtojmë ato në koleksion // Krijo kolonën "Nomenklature" Emri = "Nomenklatura"; ValueType = Përshkrim i ri i llojeve ("ReferenceLink.Nomenklature"); Titulli = "Nomenklatura (produkti)"; DemoTable.Columns.Add (Emri, Vlera Lloji, Titulli); // Krijo një kolonë "Sasia" Emri = "Sasia"; ValueType = NewTypeDescription ("Numri"); DemoTable.Columns.Add (Emri, ValueType); // Si rezultat i këtyre manipulimeve, ne kemi krijuar një tabelë boshe me kolona të shtypura // Nëse keni nevojë të përdorni shtypje më të saktë të llojeve primitive, atëherë duhet të përdorni sintaksën e zgjeruar të konstruktorit "Përshkrimi i llojeve".

Krijimi i një tabele duke kopjuar

Nëse keni në dorë një referencë me një strukturë dhe/ose përbërje të përshtatshme, mund të kopjoni ose shkarkoni tabelën e referencës së vlerave. Nëse referenca është një tabelë tjetër, atëherë është e nevojshme të aplikohet metoda "Kopjo tabelat e referencës". Nëse keni të bëni me një seksion tabelor ose një grup regjistrash, duhet të përdorni metodën "Shkarko tabelën e vlerave". Nëse ju nevojitet vetëm një strukturë, atëherë mund të përdorni metodën "CopyColumns".

// Opsioni me kopjimin e të gjitha rreshtave nga standardi teknik, por duke mbajtur vetëm dy kolonat e specifikuara Kolonat e Standardit = "Nomenklatura, Sasia"; DemoTable = TableDefault.Copy (, ColumnDefault); // Opsion me kopjimin e rreshtave të parazgjedhur nga shablloni TZ, duke mbajtur dy kolonat e specifikuara. ColumnsStandard = "Nomenklatura, Sasia"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opsioni me kopjimin e rreshtave nga standardi TZ me filtrin e specifikuar, duke mbajtur një kolonë "Nomenklatura" // Të gjitha rreshtat do të zgjidhen ku vlera në kolonën Sasia është 0, vetëm kolona e Nomenklaturës do të përfshihet në tabelën që rezulton ., 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opsioni me kopjimin e plotë të tabelës dhe fshirjen e mëvonshme të një rreshti me vlerën e fushës së sasisë të barabartë me zero dhe fshirjen e të gjithë kolonës “Sasia” Zgjedhja e rreshtave = Struktura e re ("Sasia", 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); TableRow = DemoTable.Find (0, "Sasia"); DemoTable.Delete (TableRow); DemoTable.Columns.Remove ("Sasia"); // Opsione të ngjashme dhe modifikimet e tyre mund të aplikohen në seksionet e tabelave dhe regjistrimin e grupeve të të dhënave

Krijimi i një tabele me një pyetje

Nëse baza e të dhënave përmban një shabllon për tabelën që ju nevojitet, atëherë mund të përdorni një pyetje për të krijuar shpejt një tabelë me strukturën e dëshiruar.

// Një shembull i krijimit të një tabele të zbrazët bazuar në strukturën e regjistrit të akumulimit // Nuk është e vështirë të merret me mend se në këtë mënyrë mund të merrni një tabelë të mbushur Query = New Query ("SELECT THE FIRST 0 * From Accumulation Register. Produktet në Dyqan"); QueryResult = Query.Run (); DemoTable = QueryResult.Ngarko (); // Një shembull i krijimit të një tabele boshe për llojet dhe emrat e fushave të specifikuara në mënyrë eksplicite Query = New Query; Query.Text = "ZGJEDH PARË 0 | Vlera (Directory.Nomenclature.EmptyLink) SI Nomenklaturë, | SHPREHET (0 SI NUMRI (15, 3)) SI Sasi"; QueryResult = Query.Run (); DemoTable = QueryResult.Ngarko (); // E RËNDËSISHME! Mos harroni se llojet e vlerave të kolonave të marra nga një pyetje përmbajnë gjithmonë llojin Null // Kështu, caktimi teknik i krijuar nga një pyetje ka gjithmonë lloje të përbërë kolonash

konkluzioni

Në këtë artikull të shkurtër, ne kemi mbuluar veçoritë bazë dhe praktikat më të mira për krijimin e një tabele vlerash, të mjaftueshme për t'ju filluar dhe kuptuar. Vetë objekti i tabelës së vlerave është aq i shumëanshëm sa që një përshkrim i hollësishëm i aftësive të tij kërkon shkrimin e një artikulli të veçantë mbi teknikat dhe metodat e punës.

Për të llogaritur paratë dhe mallrat, tabela të ndryshme përdoren gjerësisht në biznes. Pothuajse çdo dokument është një tabelë.

Një tabelë liston artikujt që do të dërgohen nga magazina. Në një tabelë tjetër, ka detyrime për të paguar për këto mallra.

Prandaj, në 1C, një vend i spikatur zë puna me tavolina.

Tabelat në 1C quhen gjithashtu "seksione tabelare". Librat e referencës, dokumentet dhe të tjera i kanë ato.

Pyetja, si rezultat i ekzekutimit të saj, kthen një tabelë, qasja në të cilën mund të merret në dy mënyra të ndryshme.

Zgjedhja e parë - më e shpejtë - marrja e rreshtave prej saj është e mundur vetëm sipas rregullit. E dyta është hedhja e rezultatit të pyetjes në një tabelë vlerash dhe më pas aksesi i rastësishëm në të.

// Opsioni 1 - qasja sekuenciale në rezultatet e pyetjeve

// merr tavolinën
Selection = Query.Run ().Zgjidh ();
// me radhë, kalojmë nëpër të gjitha rreshtat e rezultatit të pyetjes
Ndërsa Fetch.Next () Loop
Raporti (Shembull. Emri);
Fundi i Ciklit;

// Opsioni 2 - shkarkimi në një tabelë vlerash
Kërkesë = Kërkesë e re ("SELECT Emri FROM Directory.Nomenklature");
// merr tavolinën
Tabela = Query.Run ().Shkarko ().
// atëherë ne gjithashtu mund të kalojmë nëpër të gjitha rreshtat
Për çdo rresht nga Tabela Loop
Raporti (String.Emri);
Fundi i Ciklit;
// ose akses arbitrarisht te vargjet
Line = Tabela Gjeni ("Lopata", "Emri");

Një veçori e rëndësishme është se në një tabelë që merret nga një rezultat pyetësor, të gjitha kolonat do të shtypen fuqishëm. Kjo do të thotë që duke kërkuar fushën Emri nga libri i referencës së Nomenklaturës, do të merrni një kolonë të tipit String me një gjatësi të lejueshme jo më shumë se N karaktere.

Tabela në formë (klient i trashë)

Përdoruesi punon me tabelën kur vendoset në formular.

Diskutuam për parimet bazë të punës me formularët në orën e mësimit dhe në mësimin me radhë

Pra, le të vendosim tabelën në formular. Për ta bërë këtë, mund të tërhiqni tabelën nga paneli i kontrollit. Në mënyrë të ngjashme, mund të zgjidhni në menynë Forma / Insert Control.

Të dhënat mund të ruhen në konfigurim - atëherë duhet të zgjidhni seksionin ekzistues (të shtuar më parë) tabelor të objektit të konfigurimit, formën e të cilit po redaktoni.

Klikoni butonin "..." në pronën Data. Për të parë listën e seksioneve tabelare, duhet të zgjeroni degën Object.

Kur zgjidhni një seksion tabelor, vetë 1C do të shtojë kolona në tabelën në formular. Linjat e futura nga përdoruesi në një tabelë të tillë do të ruhen automatikisht së bashku me referencën / dokumentin.

Në të njëjtën veti Data, mund të vendosni një emër arbitrar dhe të zgjidhni llojin ValuesTable.

Kjo do të thotë që është zgjedhur një tabelë arbitrare e vlerave. Nuk do të shtojë automatikisht kolona, ​​nuk do të ruhet automatikisht, por ju mund të bëni çfarë të doni me të.

Duke klikuar me të djathtën në tabelë, mund të shtoni një kolonë. Në vetitë e kolonës, mund të specifikoni emrin e saj (për referencë në kodin 1C), titullin e kolonës në formular, lidhjen me atributin e seksionit tabelor (kjo e fundit - nëse jo një tabelë arbitrare, por seksioni tabelor është zgjedhur).

Në vetitë e tabelës në formular, mund të specifikoni nëse përdoruesi mund të shtojë / heqë rreshta. Forma më e avancuar - kutia e kontrollit Vetëm Shiko. Këto veti janë të dobishme për organizimin e tabelave për shfaqjen e informacionit, por jo për redaktimin.

Për të menaxhuar tabelën, duhet të shfaqni shiritin e komandës në formular. Zgjidhni artikullin e menysë Forma / Fut kontrollin / Panelin e komandës.

Në vetitë e shiritit të komandës, zgjidhni kutinë e kontrollit Autocomplete në mënyrë që butonat në shirit të shfaqen automatikisht.

Tabela e formularit (Klient i hollë / i menaxhuar)

Në një formë të menaxhuar, këto veprime duken paksa të ndryshme. Nëse keni nevojë të vendosni një seksion tabelor në formular, hapni degën Object dhe tërhiqni një nga seksionet tabelare në të majtë. Dhe kjo eshte!

Nëse keni nevojë të vendosni një tabelë vlerash, shtoni një atribut të ri të formularit dhe specifikoni llojin në vetitë e tij - tabelën e vlerave.

Për të shtuar kolona, ​​përdorni menynë e klikuar me të djathtën në këtë atribut të formës, artikulli i kolonës Shto atribut.

Më pas tërhiqni edhe tabelën në të majtë.

Për ta bërë tabelën të ketë një shirit komandash, në veçoritë e tabelës, zgjidhni vlerat në seksionin "Përdorimi - pozicioni i shiritit të komandës".

Eksportoni një tabelë në Excel

Çdo tabelë 1C e vendosur në formular mund të printohet ose shkarkohet në Excel.

Për ta bërë këtë, klikoni me të djathtën në një hapësirë ​​boshe në tabelë dhe zgjidhni List.

Në një klient të menaxhuar (të hollë), veprime të ngjashme mund të kryhen duke përdorur artikullin e menusë "Të gjitha veprimet" / "Afisho listën".

Magazinieri duhet të shkarkojë një listë të të gjithë artikujve që nuk janë shënuar për fshirje. Ngarko fushat:

  1. Emri.
  2. Kodi i shitësit.
  3. Lloji i nomenklaturës.
  4. Lloji i artikullit.

Kjo është se si do të duket tabela e Excel pas ngarkimit:

Le të shqyrtojmë dy mënyra zgjidhjeje: pa programim dhe me pjesëmarrjen e një programuesi.

Ne programojmë

Për të shkarkuar një artikull në një skedar XLS, ne do të formojmë një pyetje në bazën e të dhënave për të marrë artikullin dhe do ta vendosim rezultatin në seksionin tabelor të përpunimit të shkarkimit. Këtu është formulari i përpunimit:

Duke klikuar në butonin "Plotëso", plotësohet seksioni tabelor "Ngarko të dhëna" i përpunimit, për të cilin shtohen të dhënat përkatëse. Trajtuesi për këtë buton ka kodin e programit të mëposhtëm:

Procedura Ekzekutimi i butonit Shtypni (Buton) Kërkesë = Kërkesë e re; hetim. Teksti = "ZGJIDH | Nomenklatura. Referenca AS Nomenklature. | Nomenklatura. Kodi i shitësit, | Nomenklatura. Lloji i nomenklaturës, | Nomenklatura. Pamja e nomenklaturës. Lloji i nomenklaturës AS Lloji i nomenklaturës |NGA| Drejtoria ... Nomenklatura AS Nomenklatura| KU | JO nomenklaturë. Shenja e fshirjes | DHE JO nomenklaturë. Ky grup"; Tabela e të dhënave = Pyetje. Ekzekutoni (). Shkarko (); Shkarko të dhënat. Ngarko (Tabela e të dhënave); Procedura e përfundimit

Gjithçka duhet të jetë e qartë këtu. Argëtimi fillon duke klikuar në butonin "Ruaj". Së pari, dialogu i përzgjedhjes së rrugës thirret për të ruajtur tabelën XLS. Më pas, duke përdorur të dhënat në pjesën tabelare të përpunimit, plotësohet dokumenti tabelor sipas paraqitjes së krijuar më parë. Paraqitja e shtuar në përpunim është si më poshtë:

Procedura Veprimet e formës bazë (Butoni) // Thirrni dialogun e përzgjedhjes së skedarit për të ruajtur tabelën XLS Mode = FileSelectDialogueMode. Ruajtja; FileOpen Dialogue = Dialogu i Zgjedhjes së Skedarit të Ri (Modaliteti); Dialogu i hapur i skedarit. FullFileName = ""; Dialogu i hapur i skedarit. MultipleChoice = False; Teksti = "ru = "" Tabela XLS "" ; en ="" Tabela XLS "" "; Filter = НСтр (Tekst) +" (*. xls) | *. xls"; FileOpen Dialogue. Filter = Filter; FileOpen Dialogue. Titulli =" Zgjidhni një shteg për të ruajtur"; Nëse FileOpen Dialog. Zgjidhni () Pastaj FilePath = FileOpenDialog. FullFileName; Përndryshe Tekst =" Nuk është zgjedhur asnjë shteg ruajtjeje!"; Paralajmërim (Tekst); Kthimi; FundIf; // Krijo një dokument spreadsheet SaveTable = TabularDocument i ri; // Merrni paraqitjen e zonave të mbushjes dhe paraqitjes Layout = KyObjekt. GetLayout (" Tabela e shkarkimit"); AreaHeat = Layout. GetArea (" Header "); AreaRow = Layout. GetArea (" Linjë" ) ; // Nxjerr të dhënat në një dokument spreadsheet Tabela e ruajtjes. Ekrani (AreaHap); Për çdo rresht nga cikli i shkarkimit të të dhënave FillPropertyValues ​​(AreaString. Parametrat, Rreshtat); Tabela e ruajtjes. Dalja (AreaString); Fundi i Ciklit; // Ruani dokumentin e fletëllogaritjes në disk Tabela e ruajtjes. Shkruani (FilePath, TabularDocumentFileType. XLS); Fundi i procedurës

Pas ruajtjes, do të ketë një skedar Excel në disk me një listë të nomenklaturës së shkarkuar. Ju mund të shihni një shembull të një skedari në fillim të artikullit.

Përdoruesi mundet vetë

Në fakt, fati i një programuesi nuk është i nevojshëm për një detyrë të tillë. Përdoruesi mund të bëjë gjithçka vetë pa asnjë mashtrim.

Për shembull, duke shkuar te lista e artikujve dhe duke ekzekutuar komandën "Të gjitha veprimet" -> "Shfaq listën" nga lista e artikujve, përdoruesi do të marrë një listë të artikujve në dokumentin e gjeneruar të tabelës.

Pasi të krijohet dokumenti i tabelës duke klikuar në butonin "Ruaj" ose përmes menysë "File-> Ruaj", përdoruesi mund të shkruajë dokumentin e fletëllogaritës në një skedar XLS duke specifikuar emrin dhe direktorinë e destinacionit.

Kjo eshte e gjitha! Asnjë përpunim nuk kërkohet për shkarkim. Sigurisht, nëse keni një rast mjaft të thjeshtë të shkarkimit të të dhënave.

A është kaq e thjeshtë?

Në të vërtetë, gjithçka është e thjeshtë, nuk ka nevojë të lidhet asnjë komponent i jashtëm. Përveç kësaj, ne mund të kryejmë shkarkimin në këtë mënyrë jo vetëm në skedarët e spreadsheet Excel, por edhe në formate të tjera të mbështetura nga platforma.

Ju mund ta trajtoni shembullin nga artikulli shkarkoni nga lidhja.

Artikujt kryesorë të lidhur