Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Rreshti aktual i vendosur nga fusha e tabelës 1c. Si të merrni dhe anashkaloni rreshtat e zgjedhur të seksionit tabelor

Rreshti aktual i vendosur nga fusha e tabelës 1c. Si të merrni dhe anashkaloni rreshtat e zgjedhur të seksionit tabelor

Si të vendosni vargun në 8.2 (Format e menaxhuara) lexoni .

Për të filluar, dua t'ju kujtoj se të dhënat e pjesës tabelare të dokumentit (ose tabelës së vlerave) dhe fusha e tabelës janë objekte të ndryshme. Për të bërë disa veprime vizuale, ne punojmë me një fushë tabele. Në këtë rast, ne do të përdorim vetinë e tij "CurrentRow", e cila është pikërisht ajo që është përgjegjëse për cilin rresht është aktiv.

Për të zgjedhur rreshtin që na nevojitet në fushën e tabelës, na duhen dy hapa:

1. Gjeni vargun që na nevojitet në objektin e të dhënave që shfaq fusha e tabelës
Theksoj se këtu keni nevojë për një objekt të dhënash. Për shembull, ne kemi një dokument Realizimi i Mallrave dhe Shërbimeve i cili ka një seksion tabelor "Mallrat" dhe vendosëm të bëjmë aktiv rreshtin e 2-të në formularin e dokumentit. Më pas në modulin e formës së dokumentit do të shkruajmë:


// rreshti i dytë ka një indeks të barabartë me një
RequiredString = Produktet;

Ose e dimë që në rreshtin e dytë në kolonën e Nomenklaturës, elementi Kodi është i barabartë me "001", atëherë përdorim konstruksionin:


// së pari gjeni artikullin e referencës Nomenklatura sipas kodit
// dhe më pas kërkoni atë në pjesën tabelare "Produktet"
RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));

2. Vendosni vlerën e linjës aktuale në vijën e gjetur
Tani duhet të caktojmë vlerën e ndryshores DesiredRow në vetinë e fushës së tabelës CurrentRow:


// nëse fusha jonë e tabelës quhet gjithashtu Mallra
FormElements.Products.CurrentLine = DesiredLine;

// nëse fusha e tabelës quhet TableField1

Si rezultat, linjat e kodit mund të duken kështu:

RequiredString = Products.Find(Directories.Nomenclature.FindByCode("001"));
FormElements.TableField1.CurrentRow = DesiredRow;

Së pari ju duhet të kuptoni se ekziston një objekt që përmban të dhëna, për shembull, FormDataCollection dhe ekziston një objekt që shfaq të dhënat vizualisht - një tabelë.

Tabela ka vetëm rreshtin aktual, nuk mund të përdoret për të gjetur të gjitha vlerat ekzistuese të FormDataCollection me të cilin është i lidhur. Nga ana tjetër, FormDataCollection nuk ka një rresht aktual. Për lidhjen e këtyre objekteve në 1, përdoret Identifikuesi, sepse renditja e rreshtave mund të ndryshohet si në pjesën vizuale ashtu edhe në të dhëna, por lidhja nuk duhet të prishet.

Le ta shohim këtë me një shembull:

Formulari ka një atribut të tipit TK (ValueTable) - në kllapa sepse lloji aktual është FormDataCollection

Kërkesa shfaqet në formular në formën e një Tabele.

Përcaktimi i rreshtit të tabelës së vlerave nga rreshti aktual i tabelës

Për të përcaktuar se cila linjë e TK është aktualisht aktuale, së pari duhet të merrni ID-në e rreshtit në Tabelë dhe më pas ta përdorni për të gjetur rreshtin në TK

RowId = Elements.TK.Razhi aktual; // Merrni identifikuesin në tabelën StringT3 = T3.FindByIdentifier(RowId);

Vendosja e rreshtit aktual në një tabelë

Për të vendosur rreshtin aktual të tabelës, duhet të bëni të kundërtën. Së pari, merrni ID-në e TK dhe më pas vendosni rreshtin aktual të Tabelës në të.

StringT3 = FormDataCollection; // për shembull, merrni rreshtin 1 StringID = StringT3.GetIdentifier(); Elements.TK.CurrentLine = LineID;

Për një kuptim më të mirë, mund të shkarkoni

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

  • Libra referencë
  • Dokumentet
  • Raportet dhe përpunimi
  • Planet e llogarive
  • Planet e llojeve të karakteristikave
  • Planet e Llojeve të Llogaritjes
  • Proceset dhe detyrat e biznesit

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

Le të shohim disa metoda të punës me pjesët tabelare.

Si të anashkaloni pjesën tabelare

Ju mund të përdorni një lak për të përshkuar pjesën tabelare Per secilin

Për çdo rresht nga TabularPart Loop

Raporti (String.TablePartAttribute) ;

Cikli i Fundit ;

Në çdo përsëritje në një ndryshore Linjë bartet rreshti tjetër i pjesës tabelare. Vlerat e atributeve të vargut mund të merren nga shprehja Vargu.Atributi Emri.

Si të merrni dhe anashkaloni rreshtat e zgjedhur të seksionit tabelor

Elementi i formës përdoret për të shfaqur informacionin nga pjesa tabelare e objektit. fushë tabele. Për të aktivizuar mundësinë për të zgjedhur rreshta të shumtë në një fushë tabele, duhet të vendosni vlerën Të shumëfishta në pronën e saj Mënyra e përzgjedhjes.

Për të marrë një listë të rreshtave të zgjedhur, përdorni kodin e mëposhtëm:

Loop përdoret për të përsëritur mbi linjat e zgjedhura Per secilin:

SelectedLines = FormElements. Emri i fushës së tabelës. Linjat e zgjedhura;

Për çdo rresht nga cikli i rreshtave të zgjedhur

//përmbajtja e ciklit

Cikli i Fundit ;

Si të zgjedhim programatikisht rreshtat e pjesës tabelare (fushën e tabelës) dhe të heqim përzgjedhjen

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

ElementetForma. Emri i fushës së tabelës. Vargjet e zgjedhura. Qartë() ;

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

Për çdo CurrentRow nga TablePart Loop
ElementetForma. Emri i fushës së tabelës. Linjat e zgjedhura. Shto (Rreshti aktual) ;
Cikli i Fundit ;

Si të pastroni tabelën

TabelaPjesa. Qartë() ;

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

Linja aktuale është periudha 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 pjesën tabelare.

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

ElementetForma. Emri i fushës së tabelës. Të dhënat aktuale;

Për format e menaxhuara:

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

Si të shtoni një rresht të ri në një spreadsheet

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

NewRow = TablePart. Add() ;

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

NewRow = TablePart. Ngjit (Indeksi)
//Indeksi - numri i rreshtit të shtuar. Numërimi i rreshtave fillon nga zero.

Linja e re. Atributi1 = "Vlera" ;

Si të plotësoni në mënyrë programore detajet e një rreshti tabele

Nëse ju duhet të plotësoni në mënyrë programore detajet e rreshtit të seksionit tabelor që përdoruesi shton, duhet të përdorni mbajtësin e ngjarjeve të seksionit tabelor NëStartEditing.

Procedura e krijuar nga mbajtësi ka tre parametra:

  • Elementi- përmban një kontroll Fusha e tabelës.
  • 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ë rresht tashmë ekzistues.
  • kopjimi- logjike. Përmban vlerë E vërtetë nëse përdoruesi po kopjon vargun, dhe Gënjeshtra në raste të tjera.

Konsideroni një shembull. Le të themi se duhet të plotësojmë detajet e seksionit tabelor Llogaria Llogaria, në rastin kur shtohet një rresht i ri. Kur redaktoni një rresht ekzistues, nuk keni nevojë të ndryshoni llogarinë e librit.

Procedura TabularPartAt EditingStart(Element, New Row, Copy)

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

//Nëse vargu është i ri, vendosni llogarinë
TextString = Element. Të dhënat aktuale; //Marrë rreshtin aktual të seksionit tabelor
TekString. Llogaria e llogarisë = Skema e llogarive. Vetë-mbështetës. Llogaria e dëshiruar;
Përfundimi i procedurës

Artikujt kryesorë të lidhur