1c gaukite eilutę iš lentelinės dokumento dalies. Kaip gauti duomenis iš lentelinės dokumentų dalies? Kaip programiškai užpildyti lentelės eilutės informaciją

Lentelinės dalys egzistuoja daugeliui objektų 1C:

  • Katalogai
  • Dokumentacija
  • Ataskaitos ir apdorojimas
  • Sąskaitų planai
  • Būdingi tipo planai
  • Skaičiavimo tipo planai
  • Verslo procesai ir užduotys

Lentelinės dalys leidžia saugoti neribotą kiekį struktūrinės informacijos, priklausančios vienam objektui.

Pažvelkime į kai kuriuos darbo su lentelių dalimis būdus.

Kaip apeiti lentelės dalį

Norėdami pereiti stalo dalį, galite naudoti kilpą Kiekvienam

Kiekvienai eilutei iš lentelės formos ciklo dalies

Report(String. TabularPart atributas) ;

EndCycle ;

Kiekvienoje iteracijoje į kintamąjį Linija perduodama kita lentelės skyriaus eilutė. Eilučių detalių reikšmes galima gauti pagal išraišką Line.AttributeName.

Kaip gauti ir apeiti pasirinktas lentelės dalies eilutes

Norėdami rodyti informaciją iš objekto lentelės dalies, naudokite formos elementą Lentelės laukas. Norėdami įgalinti galimybę lentelės lauke pasirinkti kelias eilutes, turite nustatyti reikšmę Daugkartinis jo nuosavybėje Pasirinkimo režimas.

Norėdami gauti pasirinktų eilučių sąrašą, naudokite šį kodą:

Pasirinktoms eilutėms kartoti naudojama kilpa. Kiekvienam:

SelectedRows = Formos elementai. Lentelės lauko pavadinimas. SelectedRows;

Kiekvienai eilutei iš pasirinktų eilučių ciklo

//ciklo turinys

EndCycle ;

Kaip programiškai pasirinkti lentelės dalies (lentelės lauko) eilutes ir panaikinti jų pasirinkimą

Norėdami programiškai panaikinti lentelės lauko eilučių pasirinkimą:

Formos elementai. Lentelės lauko pavadinimas. Pasirinktos eilutės. Išvalyti () ;

Norėdami programiškai pasirinkti visas lentelės lauko eilutes:

Kiekvienai esamai eilutei iš lentelės dalies ciklo
Formos elementai. Lentelės lauko pavadinimas. SelectedLines. Pridėti(dabartinė eilutė) ;
EndCycle ;

Kaip išvalyti stalo dalį

Lentelinė dalis. Išvalyti () ;

Kaip gauti dabartinę lentelės sekcijos eilutę

Dabartinė eilutė yra laiko juosta, kurioje vartotojas šiuo metu turi žymeklį. Norėdami jį gauti, turite pasiekti formos valdymo elementą, susietą su lentelės dalimi.

Įprastoms formoms kodas atrodys taip:

Formos elementai. Lentelės lauko pavadinimas. CurrentData;

Tvarkomoms formoms:

Elementai. Lentelės lauko pavadinimas. CurrentData;

Kaip į lentelės skyrių įtraukti naują eilutę

Naujos eilutės įtraukimas į lentelės skyriaus pabaigą:

NewRow = lentelės dalis. Papildyti() ;

Naujos eilutės pridėjimas bet kurioje lentelės skilties vietoje (paskesnės eilutės bus perkeltos):

NewRow = lentelės dalis. Įterpti (indeksas)
//Indeksas – pridėtos eilutės numeris. Eilučių numeracija prasideda nuo nulio.

Nauja linija. Props1 = "Vertė" ;

Kaip programiškai užpildyti lentelės eilutės informaciją

Jei reikia programiškai užpildyti vartotojo pridėtos lentelės sekcijos eilutės informaciją, turite naudoti lentelės sekcijos įvykių tvarkyklę Pradėjus redaguoti.

Prižiūrėtojo sukurta procedūra turi tris parametrus:

  • Elementas- yra valdymo elementas Lentelės laukas.
  • Nauja linija- loginis. Sudėtyje yra vertės Tiesa, jei pridedama nauja lentelės eilutė, ir melas, jei vartotojas pradėjo redaguoti jau esamą eilutę.
  • Kopijuoti- loginis. Sudėtyje yra vertės Tiesa, jei vartotojas nukopijuoja eilutę, ir Melas kitais atvejais.

Pažiūrėkime į pavyzdį. Tarkime, kad turime užpildyti lentelės skyriaus duomenis PaskyraPaskyra, jei bus pridėta nauja eilutė. Redaguojant esamą eilutę, apskaitos sąskaitos keisti nereikia.

Procedūros lentelės dalies redagavimo pradžioje (elementas, nauja eilutė, kopija)

//Jei vartotojas redaguoja esamą eilutę, nieko nedarome
Jei NE NewRow Tada
Grąžinti;
EndIf ;

//Jei eilutė nauja, nustatykite apskaitos sąskaitą
TechString = elementas. CurrentData; //Gauti dabartinę lentelės dalies eilutę
TechString. Apskaita = sąskaitų planai. Savarankiškas. ReikalingaPaskyra;
Procedūros pabaiga

Pradžia Pradedantiesiems kūrėjams Mokymasis programuoti

Kaip gauti duomenis iš lentelinės dokumentų dalies?

Pavyzdžiui, apsvarstykite situaciją, kai jums reikia gauti visus lentelės skyriuje nurodytus elementus Prekės dokumentus Prekių ir paslaugų pardavimas.

Norėdami tai padaryti, galite naudoti užklausą su šiuo tekstu:

PASIRINKITE ĮVAIRUS Prekių ir paslaugų pardavimas Prekės. Nomenklatūra AS Nomenklatūra IŠ dokumento. Prekių ir paslaugų pardavimas Prekės AS Prekių ir paslaugų pardavimas Prekės

Kaip šaltinį nurodome lentelinę dokumentų dalį – lentelę Dokumentas. Prekių ir paslaugų pardavimas Prekės. Mes deklaruojame išvesties lauką kaip lauką Nomenklatūra, kuri yra šaltinio lentelės dalis. Be to, kadangi ta pati prekė, savaime suprantama, dokumentuose galėjo būti daugiau nei vieną kartą, mes naudojame ĮVAIRUS kad gautumėte tik atskiras eilutes užklausos išvesties lentelėje.

Pavyzdžiui, sukurkime apdorojimą Produktų sąrašas, kur pasirinktas dokumentas Prekių ir paslaugų pardavimas, o paspaudus atitinkamą mygtuką, pranešimo lange rodomas nesikartojančių nomenklatūros elementų sąrašas, esantis šio dokumento lentelinėje dalyje.

Siekdami apriboti elementų pasirinkimą tik iš konkretaus dokumento lentelės dalies, naudojame parametrą Nuoroda prašyme nurodytomis sąlygomis ( KUR...):

PASIRINKITE ĮVAIRIUS Prekių ir paslaugų prekių pardavimas. Nomenklatūra AS Nomenklatūra IŠ dokumento. Prekių ir paslaugų pardavimas. Prekės KAIP Prekių ir paslaugų pardavimas Prekės KUR Prekių ir paslaugų pardavimas Prekės. Nuoroda = &Nuoroda

Norint apskaityti pinigus ir prekes, versle plačiai naudojamos įvairios lentelės. Beveik kiekvienas dokumentas yra lentelė.

Vienoje lentelėje nurodytos prekės, kurias reikia išsiųsti iš sandėlio. Kitoje lentelėje pateikiami įsipareigojimai mokėti už šias prekes.

Todėl 1C darbas su stalais užima svarbią vietą.

1C lentelės taip pat vadinamos „lentelių dalimis“. Juos turi katalogai, dokumentai ir kiti.

Užklausa, kai ji vykdoma, grąžina lentelę, kurią galima pasiekti dviem skirtingais būdais.

Pirmasis – greitesnis – pasirinkimas, iš jo gauti eilutes galima tik eilės tvarka. Antrasis yra užklausos rezultato įkėlimas į verčių lentelę ir atsitiktinė prieiga prie jos.

//1 variantas – nuosekli prieiga prie užklausos rezultatų

//gauti lentelę
Select = Query.Run().Select();
// eilės tvarka einame per visas užklausos rezultato eilutes
Nors Select.Next() Loop
Ataskaita(Pasirinkimas.Vardas);
EndCycle;

//2 variantas – įkėlimas į reikšmių lentelę
Užklausa = New Request("SELECT Vardas IŠ Katalogo. Nomenklatūra");
//gauti lentelę
Lentelė = Query.Run().Iškrauti().
//toliau taip pat galime kartoti visas eilutes
Kiekvienai lentelės ciklo eilutei
Report(String.Name);
EndCycle;
//arba savavališkai pasiekti eilutes
Eilutė = Lentelė.Rasti("Kastuvas", "Vardas");

Svarbi savybė yra ta, kad lentelėje, kuri gaunama iš užklausos rezultato, visi stulpeliai bus griežtai įvesti. Tai reiškia, kad užklausę Pavadinimas iš katalogo Nomenklatūra, gausite String tipo stulpelį, kurio leistinas ilgis yra ne didesnis nei N simbolių.

Lentelė ant formos (storas klientas)

Vartotojas dirba su lentele, kai ji dedama į formą.

Pamokoje ir pamokoje aptarėme pagrindinius darbo su formomis principus

Taigi, padėkite lentelę ant formos. Norėdami tai padaryti, galite nuvilkti lentelę iš valdymo skydelio. Panašiai meniu galite pasirinkti Form/Insert Control.

Duomenys gali būti saugomi konfigūracijoje – tuomet reikia pasirinkti esamą (anksčiau pridėtą) konfigūracijos objekto lentelę, kurios formą redaguojate.

Duomenų ypatybėje spustelėkite mygtuką „...“. Norėdami pamatyti lentelės dalių sąrašą, turite išplėsti objekto šaką.

Kai pasirenkate lentelės dalį, 1C pati pridės stulpelius į formos lentelę. Eilutės, kurias naudotojas įvedė į tokią lentelę, bus automatiškai išsaugomos kartu su žinynu/dokumentu.

Toje pačioje duomenų ypatybėje galite įvesti savavališką pavadinimą ir pasirinkti verčių lentelės tipą.

Tai reiškia, kad pasirinkta savavališka verčių lentelė. Jis automatiškai nepridės stulpelių ir nebus automatiškai išsaugotas, bet su juo galite daryti ką norite.

Dešiniuoju pelės mygtuku spustelėję lentelę galite pridėti stulpelį. Stulpelio ypatybėse galite nurodyti jo pavadinimą (nuorodai 1C kode), formos stulpelio antraštę, ryšį su lentelės dalies atributu (pastaroji - jei pasirinkta ne savavališka lentelė, o lentelės dalis).

Formos lentelės ypatybėse galite nurodyti, ar vartotojas gali pridėti / ištrinti eilutes. Išplėstesnė forma yra žymės langelis Tik peržiūrėti. Šias savybes patogu naudoti tvarkant lenteles, skirtas informacijai rodyti, bet ne redaguoti.

Norėdami valdyti lentelę, formoje turite parodyti komandų skydelį. Pasirinkite meniu elementą Forma/Įterpti valdiklį/Komandų juostą.

Komandų juostos ypatybėse pažymėkite žymės langelį Automatinis pildymas, kad mygtukai skydelyje būtų rodomi automatiškai.

Lentelė formoje (plonas / valdomas klientas)

Tvarkomoje formoje šie veiksmai atrodo šiek tiek kitaip. Jei formoje reikia įdėti lentelės dalį, išplėskite šaką Objektas ir vilkite vieną iš lentelės dalių į kairę. Tai viskas!

Jei reikia įdėti reikšmių lentelę, pridėkite naują formos atributą ir jo savybėse nurodykite tipą – reikšmių lentelė.

Norėdami pridėti stulpelių, dešiniuoju pelės mygtuku spustelėkite šio formos atributo meniu, pasirinkite Pridėti atributo stulpelį.

Tada taip pat vilkite lentelę į kairę.

Kad lentelė turėtų komandų juostą, lentelės ypatybėse pasirinkite reikšmes skyriuje Naudojimas – Komandų juostos padėtis.

Lentelės įkėlimas į Excel

Bet kurią formoje esančią 1C lentelę galima atspausdinti arba įkelti į „Excel“.

Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite tuščią vietą lentelėje ir pasirinkite Sąrašas.

Valdomame (ploname) kliente panašius veiksmus galima atlikti naudojant meniu punktą Visi veiksmai/Rodymo sąrašas.

mob_info