Paano makakuha ng data mula sa tabular na bahagi ng mga dokumento? Access sa tabular na bahagi ng 1s na dokumento 8.3.

Ang mga bahagi ng tabular ay umiiral para sa maraming mga bagay sa 1C:

  • Mga direktoryo
  • Dokumentasyon
  • Mga ulat at pagproseso
  • Mga tsart ng mga account
  • Mga plano sa uri ng katangian
  • Mga plano sa uri ng pagkalkula
  • Mga proseso at gawain sa negosyo

Ang mga bahagi ng tabular ay nagbibigay-daan sa iyo na mag-imbak ng walang limitasyong dami ng nakabalangkas na impormasyon na kabilang sa isang bagay.

Tingnan natin ang ilang mga diskarte para sa pagtatrabaho sa mga bahagi ng tabular.

Paano i-bypass ang tabular na bahagi

Upang madaanan ang bahagi ng talahanayan, maaari kang gumamit ng isang loop Para sa bawat isa

Para sa bawat Hilera mula sa Tabular na Bahagi ng Cycle

Report(String. TabularPart attribute) ;

EndCycle ;

Sa bawat pag-ulit sa variable Linya ang susunod na hilera ng tabular na seksyon ay ipinadala. Ang mga halaga ng mga detalye ng hilera ay maaaring makuha ng expression Line.AttributeName.

Paano makuha at i-bypass ang mga napiling row ng tabular na bahagi

Upang magpakita ng impormasyon mula sa tabular na bahagi ng bagay, gumamit ng elemento ng form Field ng talahanayan. Upang paganahin ang kakayahang pumili ng maramihang mga hilera sa isang field ng talahanayan, kailangan mong itakda ang halaga Maramihan sa kanyang ari-arian Mode ng pagpili.

Upang makakuha ng listahan ng mga napiling linya, gamitin ang sumusunod na code:

Ang isang loop ay ginagamit upang umulit sa mga napiling linya. Para sa bawat isa:

SelectedRows = FormElements. TableFieldName. SelectedRows;

Para sa bawat Row mula sa Selected Rows Loop

//mga nilalaman ng loop

EndCycle ;

Paano pumili ng programmatically ng mga row ng isang tabular na bahagi (table field) at alisin sa pagkakapili ang mga ito

Upang alisin sa pagkakapili ng programmatically ang mga row ng field ng talahanayan:

Mga Elemento ng Form. TableFieldName. SelectedRows. Clear();

Upang piliin ng programmatically ang lahat ng mga row ng isang field ng talahanayan:

Para sa bawat CurrentRow Mula sa TabularPart Loop
Mga Elemento ng Form. TableFieldName. Napiling Linya. Add(CurrentRow) ;
EndCycle ;

Paano i-clear ang bahagi ng talahanayan

TabularPart. Clear();

Paano makuha ang kasalukuyang hilera ng isang seksyon ng talahanayan

Ang kasalukuyang linya ay ang timeline kung saan ang user ay kasalukuyang may cursor. Upang makuha ito, kailangan mong i-access ang control element sa form na nauugnay sa tabular na bahagi.

Para sa mga regular na form ang code ay magiging ganito:

Mga Elemento ng Form. TableFieldName. CurrentData;

Para sa mga pinamamahalaang form:

Mga elemento. TableFieldName. CurrentData;

Paano magdagdag ng bagong row sa isang seksyon ng talahanayan

Pagdaragdag ng bagong linya sa dulo ng bahagi ng talahanayan:

NewRow = TablePart. Magdagdag();

Pagdaragdag ng bagong linya saanman sa seksyon ng talahanayan (ililipat ang mga kasunod na linya):

NewRow = TablePart. Ipasok(Index)
//Index - numero ng idinagdag na linya. Nagsisimula sa zero ang line numbering.

Bagong linya. Props1 = "Halaga" ;

Paano punan ng programmatically ang mga detalye ng isang hilera ng talahanayan

Kung kailangan mong punan ng programmatically ang mga detalye ng row ng seksyon ng talahanayan na idinagdag ng user, dapat mong gamitin ang tagapangasiwa ng kaganapan ng seksyon ng talahanayan Kapag Nagsisimula sa Pag-edit.

Ang pamamaraan na nilikha ng handler ay may tatlong mga parameter:

  • Elemento- naglalaman ng isang elemento ng kontrol TabularField.
  • Bagong linya- boolean. Naglalaman ng halaga totoo, kung may idinagdag na bagong hilera ng talahanayan, at kasinungalingan, kung ang user ay nagsimulang mag-edit ng isang umiiral nang linya.
  • Kopya- boolean. Naglalaman ng halaga totoo, kung kinokopya ng user ang linya, at kasinungalingan sa ibang mga kaso.

Tingnan natin ang isang halimbawa. Sabihin nating kailangan nating punan ang mga detalye ng seksyong tabular AccountAccount, kung sakaling may maidagdag na bagong linya. Kapag nag-e-edit ng kasalukuyang linya, hindi mo kailangang baguhin ang accounting account.

Pamamaraan TabularPartAtStartEditing(Element, NewRow, Copy)

//Kung mag-e-edit ang user ng kasalukuyang linya, wala kaming gagawin
Kung HINDI NewRow Pagkatapos
Bumalik;
Tapusin kung ;

//Kung bago ang linya, itakda ang accounting account
TechString = Item. CurrentData; //Kunin ang kasalukuyang hilera ng tabular na bahagi
TechString. Accounting = Mga Tsart ng Mga Account. Pagsuporta sa sarili. KinakailangangAccount;
Katapusan ng Pamamaraan

Tahanan Para sa mga nagsisimulang developer Pag-aaral sa programa

Paano makakuha ng data mula sa tabular na bahagi ng mga dokumento?

Halimbawa, isaalang-alang ang isang sitwasyon kung saan kailangan mong makuha ang lahat ng item na item na tinukoy sa tabular na seksyon Mga paninda mga dokumento Pagbebenta ng Mga Kalakal at Serbisyo.

Upang gawin ito, maaari kang gumamit ng isang kahilingan na may sumusunod na teksto:

PUMILI NG IBA'T IBANG Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. Katawagan BILANG Katawagan MULA sa Dokumento. Pagbebenta ng Mga Kalakal at Serbisyo. Mga Kalakal BILANG Pagbebenta ng Mga Kalakal at Serbisyo ng mga Kalakal

Bilang isang mapagkukunan ipinapahiwatig namin ang tabular na bahagi ng mga dokumento - talahanayan Dokumento. Pagbebenta ng Mga Produkto at Serbisyo. Mga Produkto. Idineklara namin ang output field bilang field Nomenclature, na bahagi ng source table. Bilang karagdagan, dahil ang parehong item ng produkto, natural, ay maaaring naroroon nang higit sa isang beses sa mga dokumento, ginagamit namin IBA-IBA upang makuha lamang ang natatanging mga hilera sa talahanayan ng output ng query.

Halimbawa, gumawa tayo ng pagproseso Listahan ng Produkto, kung saan napili ang dokumento Pagbebenta ng Mga Kalakal at Serbisyo, at sa pamamagitan ng pag-click sa kaukulang button, ang isang listahan ng mga hindi umuulit na item ng nomenclature na nilalaman sa tabular na bahagi ng dokumentong ito ay ipinapakita sa window ng mensahe.

Upang limitahan ang pagpili ng mga item sa mga item lamang mula sa tabular na bahagi ng isang partikular na dokumento, ginagamit namin ang parameter Link sa kondisyon sa kahilingan ( SAAN...):

PUMILI NG IBA'T IBANG Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. Katawagan BILANG Nomenclature MULA sa Dokumento. Pagbebenta ng mga Kalakal at Serbisyo. Mga Kalakal PAANO Pagbebenta ng Mga Kalakal at Serbisyo ng Mga Kalakal SAAN Mga Pagbebenta ng Mga Kalakal at Serbisyo ng Mga Kalakal. Link = &Link

Upang makapag-account para sa pera at mga kalakal, ang iba't ibang mga talahanayan ay malawakang ginagamit sa negosyo. Halos bawat dokumento ay isang talahanayan.

Ang isang talahanayan ay naglilista ng mga kalakal na ipapadala mula sa bodega. Ang isa pang talahanayan ay nagpapakita ng mga obligasyon na magbayad para sa mga kalakal na ito.

Samakatuwid, sa 1C, ang pagtatrabaho sa mga talahanayan ay sumasakop sa isang kilalang lugar.

Ang mga talahanayan sa 1C ay tinatawag ding "mga bahagi ng tabular". Ang mga direktoryo, dokumento at iba pa ay mayroon nito.

Ang query, kapag naisakatuparan, ay nagbabalik ng isang talahanayan na maaaring ma-access sa dalawang magkaibang paraan.

Ang una - mas mabilis - pagpili, pagkuha ng mga hilera mula dito ay posible lamang sa pagkakasunud-sunod. Ang pangalawa ay ang pag-upload ng resulta ng query sa isang talahanayan ng mga halaga at pagkatapos ay random na pag-access dito.

//Pagpipilian 1 – sunud-sunod na pag-access sa mga resulta ng query

//kunin mo ang mesa
Piliin = Query.Run().Select();
// dumaan tayo sa lahat ng linya ng resulta ng query sa pagkakasunud-sunod
Habang Select.Next() Loop
Ulat(Selection.Name);
EndCycle;

//Pagpipilian 2 – pag-upload sa isang talahanayan ng mga halaga
Kahilingan = Bagong Kahilingan("PUMILI NG Pangalan MULA SA Directory.Nomenclature");
//kunin mo ang mesa
Talahanayan = Query.Run().Unload().
//sa karagdagang maaari din nating umulit sa lahat ng mga linya
Para sa bawat Row mula sa Table Cycle
Ulat(String.Name);
EndCycle;
//o arbitraryong i-access ang mga string
Row = Table.Find("Shovel", "Pangalan");

Ang isang mahalagang tampok ay na sa talahanayan na nakuha mula sa resulta ng query, ang lahat ng mga column ay mahigpit na ita-type. Nangangahulugan ito na sa pamamagitan ng paghiling ng field na Pangalan mula sa direktoryo ng Nomenclature, makakatanggap ka ng column ng uri ng String na may pinapayagang haba na hindi hihigit sa N character.

Talahanayan sa form (makapal na kliyente)

Gumagana ang user sa talahanayan kapag inilagay ito sa form.

Tinalakay namin ang mga pangunahing prinsipyo ng paggawa sa mga form sa aralin sa at sa aralin sa

Kaya, ilagay natin ang talahanayan sa form. Upang gawin ito, maaari mong i-drag ang talahanayan mula sa Controls panel. Katulad nito, maaari mong piliin ang Form/Insert Control mula sa menu.

Ang data ay maaaring maimbak sa pagsasaayos - pagkatapos ay kailangan mong piliin ang umiiral na (dating idinagdag) na bahagi ng tabular ng object ng pagsasaayos na ang anyo ay iyong ini-edit.

I-click ang "..." na button sa Data property. Upang makita ang listahan ng mga bahagi ng tabular, kailangan mong palawakin ang sangay ng Bagay.

Kapag pinili mo ang tabular na bahagi, ang 1C mismo ay magdaragdag ng mga column sa talahanayan sa form. Ang mga row na ipinasok ng user sa naturang talahanayan ay awtomatikong mase-save kasama ng reference na libro/dokumento.

Sa parehong Data property, maaari kang maglagay ng arbitrary na pangalan at piliin ang uri ng Talaan ng Halaga.

Nangangahulugan ito na ang isang arbitrary na talahanayan ng mga halaga ay napili. Hindi ito awtomatikong magdagdag ng mga column, at hindi rin ito awtomatikong mase-save, ngunit magagawa mo ang anumang gusto mo dito.

Sa pamamagitan ng pag-right click sa talahanayan maaari kang magdagdag ng column. Sa mga katangian ng isang column, maaari mong tukuyin ang pangalan nito (para sa sanggunian sa 1C code), ang heading ng column sa form, ang koneksyon sa katangian ng tabular na bahagi (ang huli - kung hindi isang arbitrary na talahanayan ang pipiliin, ngunit isang tabular na bahagi).

Sa mga katangian ng talahanayan sa form, maaari mong tukuyin kung ang user ay maaaring magdagdag/magtanggal ng mga row. Ang isang mas advanced na form ay ang View Only checkbox. Ang mga katangiang ito ay maginhawang gamitin para sa pag-aayos ng mga talahanayan na nilayon para sa pagpapakita ng impormasyon, ngunit hindi sa pag-edit.

Upang pamahalaan ang talahanayan, kailangan mong magpakita ng command panel sa form. Piliin ang menu item na Form/Insert Control/Command Bar.

Sa mga property ng command bar, piliin ang checkbox ng Autofill para awtomatikong lumabas ang mga button sa panel.

Talahanayan sa form (manipis/pinamamahalaang kliyente)

Sa isang pinamamahalaang form, ang mga pagkilos na ito ay medyo naiiba. Kung kailangan mong maglagay ng tabular na bahagi sa form, palawakin ang Object branch at i-drag ang isa sa mga tabular na bahagi sa kaliwa. Iyon lang!

Kung kailangan mong maglagay ng talahanayan ng mga halaga, magdagdag ng bagong katangian ng form at sa mga katangian nito tukuyin ang uri - talahanayan ng mga halaga.

Upang magdagdag ng mga column, gamitin ang right-click na menu sa attribute ng form na ito, piliin ang Add attribute column.

Pagkatapos ay i-drag din ang talahanayan sa kaliwa.

Upang ang isang talahanayan ay magkaroon ng isang command bar, sa mga katangian ng talahanayan, piliin ang mga halaga sa seksyon ng Usage - Command bar na posisyon.

Pag-upload ng talahanayan sa Excel

Anumang 1C table na matatagpuan sa form ay maaaring i-print o i-upload sa Excel.

Upang gawin ito, mag-right-click sa isang walang laman na espasyo sa talahanayan at piliin ang Listahan.

Sa isang pinamamahalaang (manipis) na kliyente, maaaring isagawa ang mga katulad na pagkilos gamit ang item sa menu na Lahat ng aksyon/listahan ng Display.

Nagustuhan mo ba ang artikulo? Ibahagi sa mga kaibigan: