Kā iegūt datus no dokumentu tabulas daļas? Iegūstiet datus no 1C dokumenta tabulas daļas

Sākums Iesācējiem izstrādātājiem Mācās programmēt

Kā iegūt datus no dokumentu tabulas daļas?

Piemēram, apsveriet situāciju, kad jums jāiegūst visi tabulas sadaļā norādītie vienumi Preces dokumentus Preču un pakalpojumu pārdošana.

Lai to izdarītu, varat izmantot pieprasījumu ar šādu tekstu:

IZVĒLĒTIES DAŽĀDU Preču un pakalpojumu preču pārdošana. Nomenklatūra AS Nomenklatūra NO dokumenta. Preču un pakalpojumu pārdošana Preču AS Preču un pakalpojumu pārdošana Preces

Kā avotu norādām dokumentu tabulas daļu – tabulu Dokuments. Preču un pakalpojumu pārdošana Preces. Mēs pasludinām izvades lauku par lauku Nomenklatūra, kas ir daļa no avota tabulas. Turklāt, tā kā viena un tā pati preces vienība, protams, dokumentos varētu būt atrodama vairākkārt, mēs izmantojam DAŽĀDI lai vaicājuma izvades tabulā iegūtu tikai atšķirīgās rindas.

Piemēram, izveidosim apstrādi Produktu saraksts, kur ir atlasīts dokuments Preču un pakalpojumu pārdošana, un, noklikšķinot uz atbilstošās pogas, ziņojuma logā tiek parādīts šī dokumenta tabulas daļā ietverto nomenklatūras vienību saraksts, kas neatkārtojas.

Lai ierobežotu vienumu atlasi tikai ar vienumiem no konkrēta dokumenta tabulas daļas, mēs izmantojam parametru Saite pieprasījumā norādītajā stāvoklī ( KUR...):

IZVĒLĒTIES DAŽĀDU Preču un pakalpojumu preču pārdošana. Nomenklatūra AS nomenklatūra NO dokumenta. Preču un pakalpojumu pārdošana. Preces KĀ Preču un pakalpojumu pārdošana Preces KUR Preču un pakalpojumu preču pārdošana. Saite = &Saite

Naudas un preču uzskaitei biznesā plaši tiek izmantotas dažādas tabulas. Gandrīz katrs dokuments ir tabula.

Vienā tabulā ir norādītas preces, kas jānosūta no noliktavas. Citā tabulā norādītas saistības maksāt par šīm precēm.

Tāpēc 1C darbs ar galdiem ieņem ievērojamu vietu.

1C tabulas tiek sauktas arī par “tabulu daļām”. Tādi ir direktoriji, dokumenti un citi.

Vaicājums, kad tas tiek izpildīts, atgriež tabulu, kurai var piekļūt divos dažādos veidos.

Pirmā - ātrāka - atlase, rindu iegūšana no tās iespējama tikai secībā. Otrais ir vaicājuma rezultāta augšupielāde vērtību tabulā un pēc tam nejauša piekļuve tai.

//1. iespēja – secīga piekļuve vaicājuma rezultātiem

//iegūstiet tabulu
Select = Query.Run().Select();
// mēs izejam visas vaicājuma rezultāta rindas secībā
Kamēr Select.Next() Loop
Atskaite(Atlase.Vārds);
EndCycle;

//Opcija 2 – augšupielāde vērtību tabulā
Pieprasījums = New Request("SELECT Name FROM Directory.Nomenclature");
//iegūstiet tabulu
Tabula = Query.Run().Unload().
//tālāk mēs varam arī atkārtot visas rindas
Katrai rindai no tabulas cikla
Report(String.Name);
EndCycle;
//vai patvaļīgi piekļūt virknēm
Rinda = tabula.Atrast("Lāpsta", "Vārds");

Svarīga iezīme ir tā, ka tabulā, kas iegūta no vaicājuma rezultāta, visas kolonnas tiks stingri drukātas. Tas nozīmē, ka, pieprasot Nomenklatūras direktorijā lauku Nosaukums, jūs saņemsiet String tipa kolonnu ar pieļaujamo garumu ne vairāk kā N rakstzīmes.

Tabula uz veidlapas (biezs klients)

Lietotājs strādā ar tabulu, kad tā ir novietota uz veidlapas.

Darbā ar formām pamatprincipus apspriedām nodarbībā un nodarbībā tālāk

Tātad, novietosim tabulu uz veidlapas. Lai to izdarītu, varat vilkt tabulu no vadības paneļa. Tāpat izvēlnē varat atlasīt Form/Insert Control.

Datus var glabāt konfigurācijā – tad jāizvēlas esošā (iepriekš pievienotā) tabulas daļa konfigurācijas objektam, kura formu rediģējat.

Datu rekvizītā noklikšķiniet uz pogas "...". Lai redzētu sarakstu tabulas daļas, jums ir jāpaplašina objekta filiāle.

Atlasot tabulas daļu, 1C pati pievienos kolonnas veidlapas tabulai. Rindas, ko lietotājs ievadījis šādā tabulā, tiks automātiski saglabātas kopā ar atsauces grāmatu/dokumentu.

Tajā pašā datu rekvizītā varat ievadīt patvaļīgu nosaukumu un atlasīt vērtību tabulas veidu.

Tas nozīmē, ka ir izvēlēta patvaļīga vērtību tabula. Tas automātiski nepievienos kolonnas, kā arī netiks automātiski saglabāts, taču jūs varat ar to darīt visu, ko vēlaties.

Ar peles labo pogu noklikšķinot uz tabulas, varat pievienot kolonnu. Kolonnas rekvizītos varat norādīt tās nosaukumu (atsaucei 1C kodā), veidlapas kolonnas virsrakstu, savienojumu ar tabulas daļas atribūtu (pēdējais - ja nav atlasīta patvaļīga tabula, bet gan tabulas daļa).

Veidlapas tabulas rekvizītos varat norādīt, vai lietotājs var pievienot/dzēst rindas. Izvērstāka veidlapa ir izvēles rūtiņa Tikai skats. Šos rekvizītus ir ērti izmantot tabulu kārtošanai, kas paredzētas informācijas attēlošanai, bet ne rediģēšanai.

Lai pārvaldītu tabulu, veidlapā ir jāparāda komandu panelis. Atlasiet izvēlnes vienumu Form/Insert Control/Command Bar.

Komandjoslas rekvizītos atzīmējiet izvēles rūtiņu Automātiskā aizpilde, lai paneļa pogas tiktu parādītas automātiski.

Veidlapas tabula (plāns/pārvaldīts klients)

Ieslēgts pārvaldāmā formāŠīs darbības izskatās nedaudz savādāk. Ja veidlapā ir jāievieto tabulas daļa, izvērsiet zaru Objekts un velciet vienu no tabulas daļām pa kreisi. Tas ir viss!

Ja nepieciešams ievietot vērtību tabulu, pievienojiet jaunu formas atribūtu un tā rekvizītos norādiet veidu – vērtību tabula.

Lai pievienotu kolonnas, izmantojiet labās pogas izvēlni uz šī formas atribūta un atlasiet Pievienot atribūta kolonnu.

Pēc tam arī velciet tabulu pa kreisi.

Lai tabulai būtu komandjosla, tabulas rekvizītos atlasiet vērtības sadaļā Lietošana – Komandjoslas pozīcija.

Tabulas augšupielāde programmā Excel

Jebkuru 1C tabulu, kas atrodas veidlapā, var izdrukāt vai augšupielādēt programmā Excel.

Lai to izdarītu, ar peles labo pogu noklikšķiniet uz brīva vieta tabulā un atlasiet Saraksts.

Pārvaldītā (plānā) klientā līdzīgas darbības var veikt, izmantojot izvēlnes vienumu Visas darbības/Displeja saraksts.

Daudziem 1C objektiem pastāv tabulas daļas:

  • Katalogi
  • Dokumentācija
  • Pārskati un apstrāde
  • Kontu shēmas
  • Raksturīgi tipa plāni
  • Aprēķinu tipa plāni
  • Biznesa procesi un uzdevumi

Tabulas daļas ļauj glabāt neierobežotu daudzumu strukturētas informācijas, kas pieder vienam objektam.

Apskatīsim dažus paņēmienus darbam ar tabulas daļām.

Kā apiet tabulas daļu

Lai šķērsotu galda daļu, varat izmantot cilpu Katram

Katrai rindai no cikla tabulas daļas

Report(String. TabularPart atribūts) ;

EndCycle ;

Katrā mainīgā atkārtojumā Līnija tiek pārsūtīta nākamā tabulas sadaļas rinda. Rindas detaļu vērtības var iegūt ar izteiksmi Line.AttributeName.

Kā iegūt un apiet atlasītās tabulas daļas rindas

Lai parādītu informāciju no objekta tabulas daļas, izmantojiet formas elementu Tabulas lauks. Lai iespējotu iespēju tabulas laukā atlasīt vairākas rindas, ir jāiestata vērtība Vairāki viņa īpašumā Atlases režīms.

Lai iegūtu atlasīto rindu sarakstu, izmantojiet šādu kodu:

Atlasīto līniju atkārtošanai tiek izmantota cilpa. Katram:

SelectedRows = FormElements. Tabulas lauka nosaukums. SelectedRows;

Katrai rindai no atlasīto rindu cilpa

//cilpas saturs

EndCycle ;

Kā programmatiski atlasīt tabulas daļas (tabulas lauka) rindas un noņemt to atlasi

Lai programmatiski atceltu tabulas lauka rindu atlasi:

Veidlapas elementi. Tabulas lauka nosaukums. SelectedRows. Clear() ;

Lai programmatiski atlasītu visas tabulas lauka rindas:

Katrai pašreizējai rindai no TabularPart Loop
Veidlapas elementi. Tabulas lauka nosaukums. SelectedLines. Pievienot(pašreizējā rinda) ;
EndCycle ;

Kā notīrīt galda daļu

Tabulārā daļa. Clear() ;

Kā iegūt tabulas sadaļas pašreizējo rindu

Pašreizējā rinda ir periods, kurā lietotājs ir Šis brīdis kursors atrodas. Lai to iegūtu, jums ir jāpiekļūst vadības elementam veidlapā, kas ir saistīta ar tabulas daļu.

Parastajām formām kods izskatīsies šādi:

Veidlapas elementi. Tabulas lauka nosaukums. CurrentData;

Pārvaldītām veidlapām:

Elementi. Tabulas lauka nosaukums. CurrentData;

Kā tabulas sadaļai pievienot jaunu rindu

Jaunas rindiņas pievienošana tabulas sadaļas beigām:

NewRow = tabulas daļa. Pievienot() ;

Jaunas rindas pievienošana jebkurā tabulas sadaļā (nākamās rindas tiks pārvietotas):

NewRow = tabulas daļa. Ievietot (rādītājs)
//Indekss - pievienotās rindas numurs. Rindas numerācija sākas no nulles.

Jauna līnija. Props1 = "Vērtība" ;

Kā programmatiski aizpildīt tabulas rindas informāciju

Ja jums ir programmatiski jāaizpilda informācija par tabulas sadaļas rindu, kuru pievienojis lietotājs, jums ir jāizmanto tabulas sadaļas notikumu apdarinātājs. Kad sākas rediģēšana.

Apdarinātāja izveidotajai procedūrai ir trīs parametri:

  • Elements- satur vadības elementu Tabulārais lauks.
  • Jauna līnija- Būla. Satur vērtību Taisnība, ja tiek pievienota jauna tabulas rinda, un meli, ja lietotājs sāka rediģēt jau esošu rindiņu.
  • Kopēt- Būla. Satur vērtību Taisnība, ja lietotājs kopē līniju, un Meli citos gadījumos.

Apskatīsim piemēru. Pieņemsim, ka mums ir jāaizpilda tabulas sadaļas informācija KontsKonts, ja tiek pievienota jauna rinda. Rediģējot esošu rindu, grāmatvedības konts nav jāmaina.

Procedūra TabularPartAtStartRediģēšana (elements, jauna rinda, kopija)

//Ja lietotājs rediģē esošu rindiņu, mēs neko nedarām
Ja NAV NewRow, tad
Atgriezties;
EndIf ;

//Ja rinda ir jauna, iestatiet grāmatvedības kontu
TechString = vienums. CurrentData; //Iegūt tabulas daļas pašreizējo rindu
TechString. Grāmatvedība = kontu plāni. Pašpietiekams. Nepieciešamais konts;
Procedūras beigas




Tops