Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows Phone
  • 1c punoni me pjesën tabelare të dokumentit. Si të plotësoni në mënyrë programore detajet e rreshtit të seksionit të tabelës

1c punoni me pjesën tabelare të dokumentit. Si të plotësoni në mënyrë programore detajet e rreshtit të seksionit të tabelës

Pjesët tabelare ekzistojnë për shumë objekte në 1C:

  • Drejtoritë
  • Dokumentet
  • Raportet dhe përpunimi
  • Grafikët e llogarisë
  • Grafikët e llojeve karakteristike
  • Grafikët e Llojeve të Llogaritjes
  • Proceset dhe detyrat e biznesit

Seksionet tabelare ju lejojnë të ruani një sasi të pakufizuar informacioni të strukturuar që i përket një objekti.

Le të shqyrtojmë disa teknika për të punuar me seksione tabelare.

Si të anashkaloni seksionin tabelor

Për të kapërcyer seksionin tabelor, mund të përdorni një lak Per secilin

Për çdo rresht nga TabularPart Loop

Raporti (String. TabularSection Props);

Fundi i Ciklit;

Në çdo përsëritje në një ndryshore Linjë transferohet rreshti tjetër i seksionit tabelor. Vlerat e atributeve të vargut mund të merren nga shprehja Vargu.PropsEmri.

Si të merrni dhe anashkaloni rreshtat e zgjedhur të një seksioni tabelor

Për të shfaqur informacionin nga pjesa tabelare e objektit, përdorni elementin e formës Fusha e tabelës... Për të mundësuar mundësinë për të zgjedhur rreshta të shumtë në një fushë tabele, vendosni vlerën Të shumëfishta pronë e saj Mënyra e përzgjedhjes.

Kodi i mëposhtëm përdoret për të marrë një listë të linjave të theksuara:

Për të anashkaluar linjat e zgjedhura, përdoret një lak Per secilin:

SelectedRows = Elementet e Formës. Tabular Emri i fushës. Linjat e zgjedhura;

Për çdo rresht të rreshtave të përzgjedhur, qarku

// përmbajtja e lakut

Fundi i Ciklit;

Si të zgjidhni në mënyrë programore rreshtat e një seksioni tabelor (fushë tabele) dhe t'i çaktivizoni ato

Për të çzgjedhur në mënyrë programore rreshtat e një fushe tabele:

Elementet e Formës. Tabular Emri i fushës. Rreshtat e përkushtuar. Qartë ();

Për të zgjedhur në mënyrë programore të gjitha rreshtat e një fushe tabele:

Për çdo CurrentRow Nga TabularPart Loop
Elementet e Formës. Tabular Emri i fushës. Rreshtat e zgjedhur. Shto (CurrentLine);
Fundi i Ciklit;

Si të pastroni seksionin tabelor

TabelaPjesa. Qartë ();

Si të merrni rreshtin aktual të një seksioni tabelor

Linja aktuale është koha në të cilën përdoruesi ka aktualisht kursorin. Për ta marrë atë, duhet t'i referoheni kontrollit në formular, i cili shoqërohet me seksionin tabelor.

Për format normale, kodi do të duket si ky:

Elementet e Formës. Tabular Emri i fushës. Të dhënat aktuale;

Për format e menaxhuara:

Elementet. Tabular Emri i fushës. Të dhënat aktuale;

Si të shtoni një rresht të ri në seksionin tabelor

Shtimi i një rreshti të ri në fund të seksionit tabelor:

NewRow = Tabular Section. Add() ;

Shtimi i një rreshti të ri kudo në seksionin tabelor (rreshtat pasues do të zhvendosen):

NewRow = Tabular Section. Fut (Indeksi)
// Indeksi është numri i rreshtit të shtuar. Numërimi i rreshtave fillon me zero.

Linja e re. Props1 = "Vlera";

Si të plotësoni në mënyrë programore detajet e rreshtit të seksionit të tabelës

Nëse ju duhet të plotësoni në mënyrë programore atributet e një rreshti seksioni tabelor që përdoruesi shton, duhet të përdorni mbajtësin e ngjarjeve të seksionit tabelor Në fillim të redaktimit.

Procedura e krijuar nga mbajtësi ka tre parametra:

  • Elementi- përmban një kontroll Fusha Tabelore.
  • Linja e re- logjike. Përmban vlerë E vërtetë nëse shtohet një rresht i ri i seksionit tabelor, dhe Gënjeshtra, nëse përdoruesi ka filluar të redaktojë një linjë tashmë ekzistuese.
  • Duke kopjuar- logjike. Përmban vlerë E vërtetë nëse përdoruesi kopjon vargun, dhe Gënjeshtra në raste të tjera.

Le të shohim një shembull. Le të themi se duhet të plotësojmë mbështetësit e seksionit tabelor Llogaria e llogarisë, në rast se shtohet një rresht i ri. Kur redaktoni një linjë ekzistuese, nuk keni nevojë të ndryshoni llogarinë e kontabilitetit.

Procedura TabularParton StartEditing (Artikulli, Rreshti i Ri, Kopjo)

// Nëse përdoruesi është duke redaktuar një linjë ekzistuese, atëherë mos bëni asgjë
Nëse JO NewString Atëherë
Kthimi;
FundNëse;

// Nëse linja është e re, vendosni llogarinë e kontabilitetit
TextString = Element. Të dhënat aktuale; // Merrni rreshtin aktual të seksionit tabelor
TextString. Llogaria e Llogarisë = Planet e Llogarisë. Vetë-mbështetës. Llogaria e kërkuar;
Fundi i procedurës

Në kuadër të këtij artikulli, ne do të shkruajmë përpunimin e plotësimit të seksionit tabelor në 1C 8.3 për një konfigurim tipik të 1C: ERP 2.1. Supozoni se qëllimi i detyrës është të vendosni një zbritje manuale prej 5% për të gjithë artikujt e nomenklaturës të këtij dokumenti. Një shembull nga artikulli mund të shkarkohet nga ose një përpunim tjetër i ngjashëm nga.

Ky udhëzim është për format e menaxhuara (8.2 dhe 8.3). Për format e zakonshme (8.1, 8.2) mund të përdorni.

Krijoni një trajtim të ri dhe ruajeni në kompjuterin tuaj. Së pari, duhet të kryeni disa hapa regjistrimi.

Hapni modulin e objektit dhe shkruani kodin më poshtë (mund ta merrni edhe nga përpunimi i mësipërm). Në përgjithësi, struktura nuk do të ndryshojë në varësi të situatës. Vetëm disa nga parametrat e cilësimeve redaktohen, si dhe, nëse është e nevojshme, emrat e variablave.

Në kuadrin e këtij neni, ne nuk do të ndalemi në regjistrimin e formularëve të përpunimit dhe printimit të jashtëm në 1C. Të gjitha këto informacione janë në artikujt tanë të tjerë.

Plotësimi i seksionit tabelor të dokumentit

Le të krijojmë një formë të re përpunimi.

Tani duhet të shtojmë një komandë të re në formën e krijuar. Supozohet se do të ndryshojë automatikisht të dhënat në pjesën tabelare të një dhe disa dokumenteve (forma e listës së tyre) njëkohësisht, duke i regjistruar ato më vonë.

Në kuadër të shembullit tonë, do të përpunohet seksioni tashmë ekzistues tabelor "Produktet". Për çdo linjë do të vendoset një zbritje manuale prej 5%. Gjithashtu, do të llogarisim vetë shumën e kësaj zbritjeje, e barabartë me sasinë e mallrave në linjë, shumëzuar me 0.05.

& OnServer Procedura RunCommand (Command, AssignmentObjects) Për çdo OrderClient nga AssignmentObjects Cikli OrderClientObject = OrderClient. GetObject (); Për çdo varg TK nga CustomerOrderObject. Vargu i Ciklit të Mallrave TZ. PërqindjaManualDiscount = 5; Vargu TK. Shuma e zbritjes manuale = varg TK. Shuma * 0. 05; Fundi i Ciklit; Objekti i porosisë së klientit. Shkruaj (); Fundi i Ciklit; Fundi i procedurës

Regjistrimi i përpunimit të jashtëm

Filloni 1C në modalitetin "Ndërmarrja" dhe hapni drejtorinë "Raporte shtesë dhe përpunim". Do ta gjejmë përmes menysë "Të gjitha funksionet".

Krijoni një element të ri në drejtorinë e hapur dhe përdorni butonin me të njëjtin emër për të ngarkuar përpunimin tuaj nga skedari. Do ta vendosim njëkohësisht në formularin e listës dhe në formularin e vetë kartës së dokumentit.

Tani në formën e listës së dokumenteve "Renditja e klientit" do të ketë një buton "Plotësoni ..."

Ky buton do të jetë gjithashtu i disponueshëm në kartën e vetë dokumentit.

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.

Pastaj tërhiqeni 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".

Artikujt kryesorë të lidhur