ecosmak.ru

Kuidas saada andmeid dokumentide tabeliosast? 1s 83 loe dokumendi tabeliosade nimetusi.

Raha ja kaubaga arvestamiseks kasutatakse ettevõtluses laialdaselt erinevaid tabeleid. Peaaegu iga dokument on tabel.

Ühes tabelis on kirjas kaubad, mis laost välja saadetakse. Teises tabelis - nende kaupade eest tasumise kohustus.

Seetõttu on 1C-s töö tabelitega silmapaistval kohal.

Punktis 1C olevaid tabeleid nimetatakse ka "lauaosadeks". Teatmeteostel, dokumentidel ja muudel on need olemas.

Päring tagastab selle täitmise tulemusel tabeli, millele pääseb juurde kahel erineval viisil.

Esimene - kiirem - valik, sellest ridade hankimine on võimalik ainult järjekorras. Teine on päringu tulemuse laadimine väärtuste tabelisse ja seejärel juhuslik juurdepääs sellele.

//Valik 1 – järjestikune juurdepääs päringutulemustele

// hanki laud
Valik = Query.Execute().Select();
// möödub kõigist päringutulemuse ridadest järjekorras
Kuigi Selection.Next() Loop
Aruanne(Valik.Nimi);
EndCycle;

//Valik 2 – väärtuste tabelisse üleslaadimine
Query = New Query("SELECT nimi kataloogist.Nomenklatuur");
// hanki laud
Tabel = Query.Execute().Upload().
// siis saame ka kõikidest ridadest mööda minna
Tabelitsükli iga rea ​​jaoks
Aruanne(String.Nimi);
EndCycle;
//või suvalise juurdepääsu stringidele
String = Tabel.Leia("Kühvel", "Nimi");

Oluline omadus on see, et tabelis, mis saadakse päringu tulemusest, on kõik veerud tugevasti trükitud. See tähendab, et taotledes nomenklatuuri otsingust välja Nimi, saate String tüüpi veeru, mille lubatud pikkus ei ületa N tähemärki.

Tabel vormil (paks klient)

Kasutaja töötab tabeliga, kui see on vormile paigutatud.

Vormiga töötamise põhiprintsiipe arutasime edasi- ja edasitunnis

Niisiis, paneme tabeli vormile. Selleks saate tabeli juhtpaneelilt lohistada. Samamoodi saate valida menüüst juhtelemendi Vorm/Sisesta.

Andmeid saab salvestada konfiguratsioonis – siis tuleb valida olemasolev (varem lisatud) tabeliosa konfiguratsiooniobjektist, mille vormi redigeerite.

Klõpsake atribuudis Andmed nuppu "...". Tabeliosade loendi nägemiseks peate laiendama objekti haru.

Tabeliosa valimisel lisab 1C ise vormi tabelisse veerge. Kasutaja poolt sellisesse tabelisse sisestatud stringid salvestatakse automaatselt koos kataloogi/dokumendiga.

Samas atribuudis Data saate sisestada suvalise nime ja valida väärtustabeli tüübi.

See tähendab, et valitud on suvaline väärtuste tabel. See ei lisa automaatselt veerge, seda ei salvestata automaatselt, kuid saate sellega teha, mida soovite.

Tabelil paremklõpsuga saate lisada veeru. Veeru atribuutides saate määrata selle nime (viitmiseks koodis 1C), vormi veeru pealkirja, seose tabeliosa atribuudiga (viimane - kui pole valitud suvalist tabelit, kuid tabeliosa).

Vormi tabeli atribuutides saate määrata, kas kasutaja saab ridu lisada/kustutada. Täpsem vorm on märkeruut ViewOnly. Need omadused on kasulikud teabe kuvamiseks, kuid mitte redigeerimiseks mõeldud tabelite korraldamiseks.

Tabeli haldamiseks peate vormil kuvama käsupaneeli. Valige menüükäsk Vorm/Insert Control/Command Panel.

Märkige käsuriba atribuutides ruut Automaatne täitmine, et tööriistariba nupud ilmuksid automaatselt.

Tabel vormil (õhuke/hallatud klient)

Hallatud vormil näevad need toimingud veidi teistsugused välja. Kui teil on vaja vormile paigutada tabeliosa, laiendage haru Objekt ja lohistage üks tabeliosadest vasakule. Ja see ongi kõik!

Kui teil on vaja paigutada väärtuste tabel, lisage uus vormiatribuut ja määrake selle atribuutides tüüp - väärtuste tabel.

Veergude lisamiseks kasutage selle vormi atribuudi üksuse Lisa atribuudi veerg hiire parema nupu menüüd.

Seejärel lohistage tabel ka vasakule.

Selleks, et tabelis oleks käsuriba, valige tabeli atribuutides väärtused jaotises Kasutus – käsuriba asukoht.

Tabeli eksportimine Excelisse

Mis tahes vormil asuvat 1C tabelit saab printida või Excelisse üles laadida.

Selleks paremklõpsake tabelis tühjal kohal ja valige Näita loendit.

Hallatavas (õhukeses) kliendis saab sarnaseid toiminguid teha kasutades menüükäsku Kõik toimingud/Kuvaloend.

Paljude 1C objektide jaoks on olemas tabelikujulised osad:

  • Teatmeteosed
  • Dokumentatsioon
  • Aruanded ja töötlemine
  • Kontoplaanid
  • Tunnuste tüüpide plaanid
  • Arvutustüübi plaanid
  • Äriprotsessid ja ülesanded

Tabeliosad võimaldavad salvestada piiramatul hulgal ühe objekti juurde kuuluvat struktureeritud teavet.

Vaatame mõningaid tabeliosadega töötamise meetodeid.

Kuidas tabeliosast mööda minna

Tabeliosa läbimiseks saate kasutada silmust Igaühele

TabularPart Loopi iga rea ​​jaoks

Aruanne(String.TablePartAttribute) ;

EndCycle ;

Igal iteratsioonil muutujaks Liin tabeliosa järgmine rida kantakse üle. Stringi atribuudi väärtused saab avaldise abil String.Atribuudinimi.

Kuidas tabeliosa valitud ridu hankida ja neist mööda minna

Vormielementi kasutatakse teabe kuvamiseks objekti tabeliosast. tabeli väli. Tabeliväljal mitme rea valimise võimaluse lubamiseks peate määrama väärtuse Mitu tema kinnistul Valikurežiim.

Valitud ridade loendi vaatamiseks kasutage järgmist koodi:

Silmust kasutatakse valitud ridade kordamiseks Igaühele:

SelectedLines = Vormielemendid. Tabeliväljanimi. Valitud read;

Iga rea ​​jaoks valitud ridadest Loop

//tsükli sisu

EndCycle ;

Kuidas programmiliselt valida tabeliosa (tabelivälja) ridu ja eemaldada valik

Tabelivälja ridade programmiliseks tühistamiseks tehke järgmist.

Elemendid Vorm. Tabeliväljanimi. SelectedStrings. Clear() ;

Tabelivälja kõigi ridade programmiliseks valimiseks tehke järgmist.

Iga tabeliosa tsükli praeguse rea jaoks
Elemendid Vorm. Tabeliväljanimi. Valitud read. Lisa(praegune rida) ;
EndCycle ;

Kuidas arvutustabelit tühjendada

Tabeliosa. Clear() ;

Kuidas saada tabeliosa praegune rida

Praegune rida on periood, mille jooksul kasutaja on Sel hetkel kursor asub. Selle saamiseks peate viitama vormi juhtelemendile, mis on seotud tabeliosaga.

Tavaliste vormide puhul näeb kood välja selline:

Elemendid Vorm. Tabeliväljanimi. CurrentData;

Hallatud vormide puhul:

Elemendid. Tabeliväljanimi. CurrentData;

Kuidas lisada arvutustabelisse uut rida

Uue rea lisamine tabeliosa lõppu:

UusRida = Tabeliosa. Lisama() ;

Uue rea lisamine suvalises tabeliosas (järgmised read nihutatakse):

UusRida = Tabeliosa. Kleebi (indeks)
//Indeks - lisatud rea number. Rea nummerdamine algab nullist.

Uus rida. Atribuut1 = "Väärtus" ;

Kuidas programmiliselt täita tabelirea üksikasju

Kui peate programmiliselt täitma kasutaja lisatava tabeli sektsiooni rea üksikasju, peate kasutama tabeliosa sündmuste töötlejat AtStartEditing.

Käitleja loodud protseduuril on kolm parameetrit:

  • Element- sisaldab juhtelementi Tabeliväli.
  • Uus rida- Boolean. Sisaldab väärtust Tõsi, kui lisatakse tabeliosa uus rida ja valeta, kui kasutaja hakkas redigeerima juba olemasolevat rida.
  • kopeerimine- Boolean. Sisaldab väärtust Tõsi kui kasutaja kopeerib stringi ja Valetage muudel juhtudel.

Kaaluge näidet. Oletame, et peame täitma tabeliosa üksikasjad Kontokonto, juhul kui lisatakse uus rida. Olemasoleva rea ​​redigeerimisel ei pea pearaamatu kontot muutma.

Protseduur TabularPartAt Redigeerimise alguses (element, uus rida, koopia)

//Kui kasutaja redigeerib olemasolevat rida, siis ärge tehke midagi
Kui EI NewString, siis
Tagastamine;
EndIf ;

//Kui string on uus, määrake konto
TextString = Element. CurrentData; //Saadud tabeliosa aktiivse rea
TekString. AccountAccount = kontoplaanid. Isemajandav. soovitud konto;
Lõppprotseduur

Kodu Algajatele arendajatele Programmeerimise õppimine

Kuidas saada andmeid dokumentide tabeliosast?

Mõelge näiteks olukorrale, kus soovite hankida kõik tabeliosas määratud laoartiklid Kaubad dokumente Kaupade ja teenuste realiseerimine.

Selleks saate kasutada järgmise tekstiga päringut:

VALI ERINEVAD Teenuste kauba realiseerimine Kaup.Nomenklatuur AS-i nomenklatuur Dokumendist Teenuste kaupade realiseerimine Kaubad AS Teenuste kaupade realiseerimine Kaubad

Allikana märgime dokumentide tabeliosa - tabeli Dokument.Kaupade müükTeenused.Kaubad. Välja deklareerimine väljundväljaks Nomenklatuur A, mis on osa lähtetabelist. Lisaks, kuna sama kaubaartikkel võis dokumentides esineda loomulikult rohkem kui üks kord, siis rakendame ERINEVAD et saada päringu väljundtabelis ainult erinevad read.

Näiteks loome töötluse Tootenimekiri kus dokument on valitud Kaupade ja teenuste realiseerimine, ja klõpsates vastaval nupul, kuvatakse teateaknas selle dokumendi tabeliosas sisalduvate nomenklatuuri mittekorduvate üksuste loend.

Selleks et piirata nomenklatuuri valikut ainult konkreetse dokumendi tabeliosast pärit nomenklatuuriga, kasutame parameetrit Link taotluses esitatud olekus ( KUS...):

VALI ERINEVAD Teenuste kaupade realiseerimine Kaup Nomenklatuur AS Nomenklatuur dokumendist Teenuste kaupade realiseerimine Kaup AS Teenuste kaupade realiseerimine Kaubad KUS Teenuste kaupade realiseerimine Kaubad Link = & Link

Laadimine...