Kiire. Alluvad kataloogid. Kiiresti Kuidas luua alluvat kataloogi 1c

Klyuev V.V.

http://prof1c.kklab.ru

Alluvad kataloogid

Tõenäoliselt olete tavalistes tüüpilistes konfiguratsioonides juba korduvalt märganud, et kataloogid on omavahel ühendatud, kui kataloogielemendi (kataloog 1) valimisel filtreeritakse selle väärtusega teise kataloogi (kataloog 2) väärtus - see tähendab väärtusi. valitud on need, mis kuuluvad ainult praegusele kataloogielemendile; Näiteks see on kataloog “Division”, mille omanik on “Organisatsiooni” kataloog.

Selleks, et saada kohe aru toimuva olemusest, vaatame, mis toimub praktikas. Selleks saate luua nullist tühja konfiguratsiooni või minna teabebaasi mis tahes olemasolevasse koopiasse ja luua konfiguraatoris 2 kataloogi.

Kataloog1 ja Kataloog2. Kataloogis 2 minge vahekaardile "Omanikud" ja valige omanik - "Kataloog1", vaadake joonisel näidatud viisil.

Nüüd, kui loote kaustas "Kataloog2" elemente, palub süsteem teil sisestada kataloogi 1 omanik. Kui alluvuseks on seatud Elemendid, rühmad või rühmad ja elemendid, on valik – Kasutades alluvust.

Näib, et kõik on lihtne, kuid kasutajatel tekivad probleemid. “Directory 2” avamisel näeb kasutaja kõiki elemente täiesti arusaamatus järjestuses ja pealegi, kui töötasite standardsete konfiguratsioonidega, võisite märgata, et otse kataloogis “Divisions” sa ei määra kuskil omanikku, vaid kataloogi avades saate valida organisatsiooni ja vastavalt sellele vastu võtta ühele või teisele organisatsioonile alluvaid elemente; Veelgi enam, kataloogiüksuse "Divisjonid" loomisel saate vaikimisi jaotuste loendi kujul omaniku, kelle valisite.
Nii et alustame ja loome oma "Directory2" jaoks loendivormi, praegu esitage see 1C-le ilma muudatusi tegemata, hiljem kohandame kujundaja loodud vormi.
Minge jaotises "Kataloog2" vahekaardile Vormid ja lisage (+) uus kataloogiloendi vorm ja klõpsake nuppu Lõpeta.

Loome vormiatribuudi andmetüübiga "Kataloog1.Link" nimega "SelectionDirectory1" ja lohistame selle atribuudi vormile, määrame pealkirjaks "Kataloog1".


Nüüd, et "see ime" toimiks, peate kirjutama koodi, mis teeb kataloogielemendi1 valimisel valiku.

8.2, 8.3 Hallatavad vormid

Selleks, et kuvada kataloogiloendi kujul ainult need elemendid, mida vajame kataloogi1 valitud elemendi jaoks, peame tegema programmiliselt valiku - valitud elemendi järgi, selleks kasutame juhtelemendi SelectionDirectory1 etteantud protseduuri ja kirjutage kood, mis täidab määratud ülesande.
Valige ülaosas "Selection Directory1", paremklõpsake ja valige "Properties", ilmuvas aknas leidke atribuut "OnChange" ja klõpsake suurendusklaasil, minnes seeläbi vormimoodulisse; automaatselt luuakse protseduur “Selection Directory1OnChange(Element)”.

Protseduuri käigus sisestage järgmine tekst:

& Kliendiprotseduuride valiku kataloog1OnChange(Element) loendis. Valik. Elemendid. Clear() ; // Valikuelement = loend. Valik. Elemendid. Add(Type(" Valik ElementData Layout" ) ); Valikuelement. LeftValue = uus andmekompositsiooni väli (" omanik "); valikuelement. võrdlusvaade = andmete kompositsiooni võrdlusvaade. võrdub; valikuelement. kasutus = tõene ; valikuelement. RightValue = valikukataloog1; valikuelement. kuvarežiim = Elemendi kuvarežiimi ehitusDataComposition.Unavailable;EndProcedure

8.2 Tavavormid


Vormide koostamisel on kõik endine, ainult vormid tuleb luua tavalistena, hallatavad vormid tavarakenduses ei tööta.
Erinevus seisneb loendivormis elemendi valikumenetluses ja rekvisiitide loomises.
Tavalisele vormile üksikasjade lisamiseks klõpsake nuppu

Protseduuri viide1Muuda(Element)See vorm. Valik. Omanik. Väärtus = Kataloog1. Link; See vorm. Valik. Omanik. Kasutus = tõene ; See vorm. Vormi elemendid. Kataloogiloend. Valiku sätted. Omanik. Kättesaadavus = Vale ; //(?) LõppProtseduur

Eelviimane rida(?) - keelame valiku muutmise, kui kasutaja avab valikuparameetrid - ainult juhtelemendi kaudu!

Video (ilma helita - ilma helita on kõik selge)

Mis on 1C kataloogid ja millist rolli nad 1C-s mängivad - selle ja palju muu kohta meie uues artiklis.

1C kataloogid luuakse teabe salvestamiseks, mida kasutatakse 1C muudes dokumentides, näiteks aruannetes, töötamiseks. Selgub, et töö 1C süsteemis toimub teatmeteoste järgi ja kogu neisse salvestatud teavet nimetatakse normatiivseks ja referentsiks.

Milleks on 1C kataloogid mõeldud?

Iga toode on selge näide selgituseks. Selle ettevõttes liikumiseks (ost, laos hoidmine, paigaldamine, müük jne) koostatakse spetsiaalsed dokumendid, näiteks blanketid, arved jne. Tavaolukorras täidetaks kõik need dokumendid käsitsi, kuid automatiseeritud süsteemi kasutamisel ei säästa see mitte ainult aega, vaid hoiab ära ka paljude vigade tekkimise.

Automatiseeritud süsteem võimaldab teil ühe korra luua loendi, mis seejärel sisaldab just seda toodet. Vajadusel saate kirjelduses alati märkida vajalikud andmed, omadused ja muu teabe. Selgub, et 1C kataloogid on valmis loendid toodete, klientide, teenuste jms andmetega. Vajadusel saab nimekirju muuta ja täiendada.

Kus asuvad 1C kataloogid?

Tavaliselt töötab 1C Enterprise'is töötamise liidese välja programmeerija, mis tähendab, et erinevad kataloogid võivad asuda täiesti erinevates menüüdes.

Paksus kliendis saab administraatoriõigustega kasutaja avada mis tahes 1C dokumendi ja tal on juurdepääs mis tahes kataloogile. Selleks peate avama menüü "toimingud", klõpsama "kataloogid" ja valige pakutavast loendist vajalik.


Kui vaadata õhukesest kliendist, siis seal on ka sarnane menüü. Seda nimetatakse "kõikideks funktsioonideks". Oma toimimise poolest sarnaneb see "toimingute" menüüga.

Konfiguraatorirežiimis on juurdepääs kõikidele kataloogidele konfiguratsiooniharu kaudu. Sealt saate töötada mis tahes kataloogiga, kohandada selle malli, muuta seda ja nii edasi. Alustamiseks topeltklõpsake sellel hiirega.

Mis tüüpi 1C kataloogid need välja näevad?

Kui avate kataloogi 1C 8, avaneb teie ees loendi kujul olev vorm. Mugavuse huvides saab loendeid rühmitada vastavalt teatud omadustele ja omadustele.


Kui avate rühma, kuvatakse teie ees kõigi elementide loend. Ja pärast elemendil endal klõpsamist avaneb kataloogivorm, mille välju saab täita ja muuta.

Enamasti on 1C Enterprise'is kataloogide jaoks kaks nõutavat välja:

    Kataloogi nimi.

Need on loodud selleks, et eristada üht elementi teisest. Mõnikord keelavad programmeerijad need valikud, kuid seda juhtub äärmiselt harva.


Enamasti suletakse väli “kood” kasutajate redigeerimiseks (vajalikud on spetsiaalsed juurdepääsuõigused) ja selle väärtus genereeritakse automaatselt.

Nomenklatuur punktis 1C 8.3 tähendab materjale, pooltooteid, seadmeid, teenuseid, tagastatavaid pakendeid, töörõivaid jne. Kõik need andmed salvestatakse nomenklatuuri kataloogi. Selle juurde pääsete jaotise "Kataloogid" alajaotise "Kaubad ja teenused" jaotisest "Nomenklatuur"

Näete mitmetasandilise hierarhilise struktuuriga kataloogipositsioonide loendit.

Selles artiklis vaatleme näite abil samm-sammult kõiki juhiseid punktis 1C 8.3 üksuste esmaseks täitmiseks

Selle teatmeraamatu kasutamise hõlbustamiseks kasutab 1C Accounting rühmi (kaustu). Need ühendavad nomenklatuuri, millel on ühised omadused. Igas rühmas on omakorda võimalik luua alamrühmi (sarnaselt failisüsteemile arvutis). Hierarhia tasemete arvu määrab programmeerija, kuid esialgu piiranguid pole.

Loome uue grupi. Kataloogi "Nomenklatuur" loendivormis klõpsake nuppu "Loo rühm".

Määrake loodava rühma nimi. Võite ka selle tüübi täita, kuid see pole vajalik.

Nagu näete alloleval joonisel, paigutati meie loodud rühm "Materjalidesse". Kui teil on vaja see teisaldada teise rühma või juure, avage kontekstimenüü ja valige "Teisalda rühma". Avaneb aken, kus peate määrama uue asukoha.

Uue üksuse loomine

Liigume edasi nomenklatuuri enda lisamisega. Selleks klõpsake kataloogide loendi vormis nuppu "Loo". Teie ees avaneb uue kauba kaart.

Täitke väli "Nimi". Väärtus väljale "Täisnimi" sisestatakse automaatselt. Pange tähele, et täisnimi kuvatakse aruannetes, dokumentide trükivormides, hinnasiltides jne. Välja “Nimi” kasutatakse kaupade mugavaks otsimiseks programmis.

Vajadusel täitke ülejäänud andmed:

  • Väljad “Kauba tüüp” ja “Kaasas gruppi” täidetakse automaatselt selle grupi andmetest, kuhu uus kaubaartikkel luuakse. Vajadusel saab neid muuta.
  • Väljal “Ühik” olev väärtus on selle kauba saldode salvestusühik.
  • Detailis “KM%” toodud maksumäära saab vajadusel muuta dokumentide koostamise käigus.
  • Müügidokumentidel on vaikimisi märgitud "Müügihind". Seda sätet saab muuta, klõpsates hüperlingil "?" selle välja kõrval.
  • Jaotises “Tootmine” saate märkida antud kauba kuluartikli ja selle spetsifikatsiooni (valmistoodete puhul), teisisõnu koostise.
  • Sõltuvalt nomenklatuuri spetsiifikast täidetakse ülejäänud rubriigid, näiteks “Alkoholitooted” ja “Importkaubad”.

Kui olete loodava kauba kaardi täitnud, peate selle üles kirjutama.

Mis on 1C 8.3 üksuse tüüp ja kuidas neid konfigureerida

Nomenklatuuri tüüpide konfigureerimiseks klõpsake kataloogi “Nomenklatuur” loendi vormis vastavat hüperlingi.

Nomenklatuuritüübid on vajalikud kaubaartiklite eraldamiseks. Igale tüübile saab määrata oma. Väga oluline on vältida duplikaatide esinemist selles kataloogis, mis võib viia kaubaarvestuse kontode ebaõige toimimiseni.

Tarnijalt standardkonfiguratsiooni installimisel täidetakse see kataloog juba peamiste kaupade tüüpidega. Kui üksuse tüübiks on teenus, ärge unustage selle loomisel vastavat lippu panna.

Kaubaarvestuse kontod punktis 1C 8.3

Raamatupidamiskannete genereerimiseks tuleb seadistada raamatupidamiskontod. Seda saab teha kataloogi "Nomenklatuur" loendivormil, klõpsates hüperlingil "Kaubaarvestuse kontod".

1C Accounting 3.0 standardkonfiguratsioonis on see register juba täidetud. Kuid vajadusel saab seda käsitsi reguleerida.

Raamatupidamiskontosid saab konfigureerida:

  • vastavalt konkreetsele nomenklatuuri kirjele;
  • nomenklatuurirühma järgi;
  • nomenklatuuri tüübi järgi;
  • lao järgi;
  • laotüübi järgi;
  • organisatsiooni järgi;
  • kogu nomenklatuuri ulatuses, määrates väärtuseks tühja lingi.

Kui konkreetsele kaubale ja selle jaoks olid seadistatud erinevad raamatupidamiskontod, siis võetakse konto kirjelt. Sellistel juhtudel on konsolideeritud aruannete prioriteet madalam.

Kauba hindade määramine

Ühel kaubal võib olla mitu hinda. Need erinevad tüüpide poolest, nagu hulgimüügihind, jaehind jne.

Minge kataloogielementide kaardile "Nomenklatuur" ja järgige hüperlinki "Hinnad".

Teie ees avaneb loend, milles saate konkreetse tüübi jaoks konkreetsel kuupäeval. Lihtsalt märkige hind vastavasse veergu ja seejärel klõpsake nuppu "Salvesta hinnad". Kauba hinna määramise dokument luuakse automaatselt ja selles loendis näete selle linki.

Vaata ka videot nomenklatuuri kohta:

Psühhiaatriahaigla. Üks idioot teisele:
-Kas sulle meeldis mu lugu, mille ma sulle eile lugeda andsin?
-Jah, aga kuidagi on kõik udune ja tegelasi on palju.
Arst siseneb:
- Niisiis, idioodid, kes varastas mu telefoniraamatu?...

Kataloogide eesmärk
Kataloog on konkreetse atribuudi võimalike väärtuste loend. Katalooge kasutatakse juhtudel, kui on vaja kõrvaldada ebaselge teabe sisestamine.Näiteks selleks, et ostja, müüja, laopidaja, direktor saaks aru, millisest tootest me räägime, peavad kõik seda ühtemoodi nimetama. Ja sel juhul on vaja teatmeteost. Tavaliselt on kaubandusettevõttes see hinnakirja kujul ja kui selline kataloog on salvestatud arvutisse, siis sisestatakse sinna kogu võimalik kaubavalik, millega kaubandusettevõte töötab.

1C:Enterprise süsteem võimaldab teil säilitada peaaegu piiramatul hulgal vajalikke katalooge. Iga kataloog on homogeensete objektide loend: töötajad, organisatsioonid, kaubad jne. Iga selline objekt on nn. kataloogi element.

Kasutaja seisukohast tuleb meeles pidada, et Configuratoris ei looda väärtuste loendina mitte kataloogi ennast, vaid töötatakse välja kataloogi mall, selle mall. Seadistamise käigus kirjeldatakse kataloogi salvestatava teabe ülesehitust, töötatakse välja kataloogi ekraan ja vajadusel ka trükitud esitus ning täpsustatakse selle “käitumise” erinevaid tunnuseid.

Kataloogi atribuudid

Igas kataloogis on kohustuslikud andmed Kood Ja Nimi. Kataloogi elemendi kood võib olla kas numbriline või tekst. Süsteem 1C:Enterprise pakub rohkelt võimalusi kataloogielementide koodidega töötamiseks: koodide automaatne määramine, koodi unikaalsuse automaatne juhtimine ja muud.

Lisaks koodile ja nimele saab 1C:Enterprise süsteemi kataloogidesse salvestada mis tahes lisateavet kataloogielemendi kohta. Sellise teabe salvestamiseks kataloogis saab luua loendi üksikasjad. Kataloogide andmete mehhanismi kasutades on lihtne korrastada näiteks töötaja faili.Näiteks kataloog Töötajad atribuudid on peaaegu kindlasti olemas Töö nimetus, Palk ja teised.1C ettevõte ootas programmeerijaid ja tutvustas kõik teatmeteosed kaks juba määratletud atribuuti: Kood Ja Nimi. Tõepoolest, peaaegu iga päriselu objekt sisaldab neid atribuute. Näiteks töötajate puhul on kood personalinumber ja nimi perekonnanimi, eesnimi, isanimi (täisnimi).

Andmetüübid

Iga kataloogiatribuudi jaoks peate määrama selle andmetüübi, näiteks " number", "rida", "kuupäev"(versioonis 8.0 on ka Boole'i ​​tüüp – tõene või väär). Need on põhitüübid, kuid saate määrata ka keerukaid andmetüüpe. Näiteks atribuut Töö nimetus on andmetüüp Positsioonid. Sel juhul valitakse selle atribuudi väärtused kataloogist Positsioonid. Nii saavutatakse lihtsaim ühendus kataloogide vahel, kui ühe kataloogi atribuutide väärtused valitakse teisest kataloogist.

Hierarhilised kataloogid

1C:Enterprise süsteemi kataloogielementide loend võib olla mitmetasandiline. Sel juhul jagatakse kõik kataloogiread kahte tüüpi: "lihtsalt" kataloogielemendid ja rühmad teatmeteos. Rühmad võimaldavad teil liikuda mitmetasandilise kataloogi madalamatele tasemetele. Mitmetasandiliste kataloogide kasutamine võimaldab korraldada teabe sisestamist kataloogi vajaliku detailsusega. Mitmetasandilise kataloogi elemente ja elementide rühmi saab üle kanda ühest rühmast teise.

Alluvad kataloogid

Kataloogide vahel saab luua suhte alluvus. Relatsiooniandmebaasi mõistes luuakse tabelite vahel üks-mitmele seos. Sel juhul seostatakse alluva kataloogi iga element ühe omanikukataloogi elemendiga. Mõnikord võime öelda, et ühe kataloogi elemendid kuuluma teise elemendid. Näiteks võib süsteemis olla maksusoodustuste kataloog. Siis saab seda teha alluvad Kataloog Töötajad. See tähendab et "Töötaja omab maksusoodustusi".

Kataloog Töötajad

Kataloog Maksusoodustused

  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovitš
  • Svetlov Mihhail Petrovitš
  • Tsvetkov Anton Vassiljevitš

( omanik Petrov Petr Petrovitš)

  • Kasu veteranidele
  • Kasu lastele
  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovitš
  • Svetlov Mihhail Petrovitš
  • Tsvetkov Anton Vassiljevitš

( omanik Svetlov Mihhail Petrovitš)

  • Kasu afgaanidele

Tabeliosad (ainult versioon 8.0)

Versioonis 8.0 sai võimalikuks, et kataloogielemendil on mitu tabeliosa. Soovitatav on seda funktsiooni kasutada antud elemendiga seotud teabe kajastamiseks, kuid millel ei ole oma objekti olemit (mille jaoks on soovitatav luua alamkataloog). Näiteks viitamiseks Toodete jaoks saab luua tabelijaotise Mõõtühikud, Töötajate kataloogi jaoks saab luua tabelijaotised Haridus ja Perekonna koosseis. Tabeliosadega töötamine sarnaneb alluvate kataloogidega töötamisele, välja arvatud see, et tabeliosad ei saa olla tüübid, mis tähendab, et haridustüübi atribuuti pole enam võimalik luua.

Kataloogide võrdlus teiste objektidega

Objekt

Sarnasused

Erinevused

Konstandid salvestab väärtuse, salvestatakse andmebaasi Kataloog ei salvesta ainult ühte väärtust, vaid tervet nimekirja homogeensetest objektidest.
Dokumentatsioon salvestatakse andmebaasi, on üksikasjad, dokumendid võivad olla üksteisele allutatud Kataloog salvestab normatiiv- ja viiteteavet ning dokumendid kajastavad tegelikke sündmusi. Tavaliselt valitakse dokumendi üksikasjade väärtused kataloogidest. Tavaliselt on dokument postitatud, dokumendil peab olema kuupäev ja kellaaeg, dokument võib sisaldada tabeliosa, mis ei ole kataloogides (versioonis 8.0 võib kataloogidel ja dokumentidel olla mitu tabeliosa). Kataloogid võivad olla mitmetasandilised, kataloog võib sisaldada perioodilisi üksikasju, mida dokumentides pole (versioonis 8.0 perioodilisi üksikasju pole, küll aga on perioodilised teaberegistrid).
Ülekanded andmebaasi salvestatud, salvestab väärtuste loendi Kasutaja sisestab väärtuste komplekti kataloogi Enterprise-režiimis ja loenduste jaoks määrab väärtuste loendi arendaja režiimis Configurator. If-lausetes kasutatakse tavaliselt loendeid.
Väärtuste tabel sisaldab ridu ja veerge (ei salvestata andmebaasi) Väärtustabel on mõeldud programmi töö ajal tekkivate vaheandmete salvestamiseks arvuti mällu. Väärtuste tabel võib salvestada heterogeenseid objekte, kataloog aga kõiki sama tüüpi elemente. Väärtustabelid ei saa olla mitmetasandilised ega üksteisele allutatud.
Väärtuste loend salvestab väärtuste loendi (ei salvestata andmebaasi) Väärtuste loend võib salvestada heterogeenseid objekte ja kataloogis kõiki sama tüüpi elemente

Programmeerimise alused

Uue elemendi loomine ja salvestamine

Kataloogiüksuse leidmine


//näiteks vallandamise korralduses
Ref. FindElement(Töötaja);

Ref. FindByCode(123);
Ref. FindByName("Ivanov Ivan Ivanovitš");
Ref. FindByDetails("Palk", 5000);

//Kui element leitakse, muutub see praeguseks ja seda saab lugeda järgmiselt:

Kui Spr.FindByName("Ivanov Ivan Ivanovitš") = 1 Siis
........LeitudCotr = RefCotr. Praegune ese();
endIf;


//versioonis 8.0, kui element leitakse, siis see tagastatakse, muidu tagastatakse Määramata

FoundCotr = RefCotr. FindByCode(123);
FoundCotr = RefCotr. FindByName("Ivanov Ivan Ivanovitš");
FoundCotr RefCotr. FindByDetails("Palk", 5000);

FoundSotr = SprSotr.FindByName("Ivanov Ivan Ivanovitš");
Kui FoundSotr = Määratlemata Siis
.....//elementi ei leitud
endIf;

Kataloogi elemendi kustutamine

Ref. Kustuta(1); //kohene kustutamine

Ref. Kustuta(0); //märkige kustutamiseks
Ref. Tühjendage märkeruut Kustuta();


Mark = Ref. Lipu kustutamine(); //märkus: see on meetod


Ref. Kustuta(); //kohene kustutamine

Ref. SetDeleteMark (tõene); // märkige kustutamiseks
Ref. SetDeletionMark (vale); //tõusma märkige kustutamiseks

//saate kontrollida, kas element on kustutamiseks märgitud
//seal on atribuut MarkDelete, see on tüüpi Boolean - True või False

Mark = Ref. Lipu kustutamine; //märkus: see on omadus
Kui Mark = Tõene Siis
.....//element märgitud kustutamiseks
endIf;

Kataloogi elementide loetlemine


Ref. Valige üksused();
Kuigi SprSotr. GetElement() = 1 tsükkel
...
...Notify("Töötaja" + Spr.Name);
EndCycle;


valik = Kataloogid.Töötajad. Vali();
Hetkel vaid valik. Edasi() = 1 tsükkel
... //toimingud järgmise elemendiga
EndCycle;


Lapsevanem
Itereerige rühma elemente. Grupp 1C mõistes on "vanem".


Ref.FindByName("Töötab");
Töötab = Ref.CurrentItem();
Ref. UseParent(Töötab);
//edasi näiteks tsükkel töötajatele (vt ülalt)
...



GroupWorking = SprSotr.FindByName("Töötab");
valik = Ref. Vali(Rühmatöö);
Hetkel vaid valik. Edasi() = 1 tsükkel
... //toimingud järgmise elemendiga
...Notify("Töötaja" + valik.Nimi);
EndCycle;

Omanik
Teise kataloogi elemendi juurde kuuluvate kataloogielementide loetlemine.
Üks teatmeteos alluv muu teatmeteos, näiteks teatmeteos. Maksusoodustused kehtivad Ref. Töötajad.

Perioodilised üksikasjad
Perioodiliste üksikasjade lugemine ja kirjutamine.
Kogu kataloogi perioodiliste üksikasjade proovivõtu kuupäeva määramine.


//nii saame teada, mis töötajal oli
//kategooria konkreetse kuupäeva jaoks

Kategooria = SprSotr.Category. Hangi(SomeDate);

//nii paneme töötajale kategooria
//kindlaks kuupäevaks
RefSort.Category. Installige(SomeDate, NewCategory);

//saate määrata perioodilise proovivõtu kuupäeva
//üksikasjad kogu kataloogi kohta
Ref. Kasutamise kuupäev(SomeDate);

//siis allpool ei saa te enam installida ja hankida
//juurdepääs perioodilistele detailidele muutub
//sama mis tavaliste detailide puhul
Kategooria = SprSotr.Category;
Spr.Palk = 6000;

Versioonis 8.0 pole perioodilisi üksikasju. Selle asemel on vaja kasutada ajas laiendatud teaberegistreid.

Teatmeteoste ekraanivormid

Kataloogide loendi vorm

Selleks, et kasutajatel oleks konfigureerimisetapis kataloogiga hõlpsam töötada, saate luua mitut tüüpi ekraanivormid kataloogi kuvamiseks. Sõltuvalt kataloogi kutsumise kontekstist saate määrata konkreetse dialoogi kasutamise sellega töötamiseks.

Parem on üks kord näha kui sada korda kuulda, nii et allpool on näide töötajate kataloogi loendivormist:




Loendivormi moodul sisaldab protseduure ja funktsioone, mis töötavad selle vormi kontekstis (objekti Directory kontekstis).

Eelmääratletud protseduurid 1C süsteem kutsub neid teatud esinemisel sündmused. Teatud sündmuste toimumisel kutsub 1C süsteem välja eelmääratletud protseduurid, seega on need sündmuste käitlejad. Versioonis 8.0 võib protseduuri nimi olla ükskõik milline, mitte tingimata sama, mis sündmuse nimi. Lisaks on versioonis 8.0 kõigi objektide sündmuste loendit oluliselt laiendatud.

Sündmus

Kirjeldus

Avamisel Kutsutakse välja kataloogiloendi vormi avamisel. Saate määrata muutujatele algväärtusi, kontrollida kasutajaõigusi selle kataloogi avamiseks jne.
Sulgemisel Kutsutakse välja, kui kataloogide loendi vorm on suletud.
Kui salvestamine

Kutsutakse välja kataloogielemendi kirjutamisel, kui elemendid sisestatakse otse loendivormile, mitte elemendivormile. Seda kasutatakse lihtsa struktuuriga kataloogide puhul, näiteks kataloog Tööd. See protseduur võimaldab teil kontrollida sisendandmetes vigu.

Näide, kataloog Positsioonid

Vanema valimisel (uus vanem) Kutsutakse, kui on valitud vanem (rühm). Kasutage seda protseduuri, et kontrollida kasutaja õigusi vaadata antud rühma liikmeid.
Omaniku valimisel (uus omanik) Kutsutakse välja, kui on valitud hostikataloogi omanik. On mõistlik, kui see kataloog on teisele allutatud.
MillalSettingSelection (atribuudid, väärtus) Eelmääratletud protseduur valiku interaktiivseks määramiseks mis tahes viisil (valik, kiirvalik, väärtuse järgi valimine, valiku ajalugu) ja valiku keelamisel.
OnRowSelect() Reavaliku töötlemise režiim (topeltklõps või sisestusklahv) on lubatud kataloogiloendi, dokumendipäeviku, kontode, tehingute päeviku, tehingupäeviku kujul, kasutades meetodit Form.RowSelectionProcessing(1). Seejärel, kui rida on valitud, kutsutakse see eelmääratletud protseduur.


Sorteerimine

Kataloogiloendi kujul saab elemente sortida erinevas järjekorras: koodi, nime või mis tahes atribuudi järgi, mille konfiguraatoris on märgitud märkeruut Sortimine.Sorteerimistüübi saate määrata programmiliselt, kasutades sortimismeetodit (Method, ChangePermission Flag)


Protseduur OnOpen()
...... Sorteerimine("Kood",0); //sorteerimine koodi järgi, kasutaja ei saa muuta
Menetluse lõpp

Protseduur OnOpen()
......DirectoryList.Order.Set("Name Asc, Card Asc");
......//küsimus lugejatele: kuidas takistada kasutajal sortimisjärjekorra muutmist?
Menetluse lõpp

Valik

Kataloogiloendi vormis saab üksusi filtreerida, st. Kasutajale kuvatakse ainult vajalikud elemendid. Saate programmiliselt määrata valiku SetSelection (Atribuudid, Väärtus) meetodi abil. Selleks peab atribuudi konfiguraatoris olema märgitud ruut “Valik atribuudi järgi”. .

Staatiline filter (ainult versioon 7.7)

1C 7.7 puhul ei saa te valikut määrata perioodiliste detailide või korraga mitme detaili järgi (kompleksfilter). Sel juhul võib väljapääsuks olla meetod UseList of Elements. See meetod peab edastama kuvatavate elementide loendi. See loend tuleb kõigepealt luua.

Protseduur ShowWorkingCarpenters()

ElementList = createObject("ValueList");

Ref.SelectItems();

.....Kui (Adv.Parent = groupWorking) JA (Adv.Position = puusepa töö) Siis
........Elementide loend.AddValue(Ref.CurrentElement());
.....EndIf;
EndCycle;

UseListElements(ListItems);

Menetluse lõpp

Elemendivorm ja rühmavorm

Kui kataloog on keerulise struktuuriga, siis on mugavam redigeerida selle elemente eraldi aknas, mitte loendis. Allpool on kataloogielemendi Töötajad vorm.


Kataloogielemendi vormil on ka eelmääratletud protseduurid (sündmused):

Sündmused

Kirjeldus

OnOpen() Kutsutakse välja kataloogiüksuse vormi avamisel. Saate määrata muutujatele algväärtusi, kontrollida kasutajaõigusi antud kataloogielemendi avamiseks jne.
OnClose() Kutsutakse välja, kui sõnastiku üksuse vorm on suletud.
OnWrite()

Kutsutakse välja kataloogielemendi kirjutamisel. See protseduur võimaldab teil kontrollida sisendandmetes vigu.

Näide, kataloog Töötajad

Salvestamise protseduur
....Kui Kategooria.Selected()=0 Siis
.........Warning("Töötaja kategooriat pole määratud!");
.........ReturnStatus(0);
.....EndIf;
Menetluse lõpp

EnterNew() Kutsutakse välja, kui interaktiivselt sisestatakse uus kataloogielement. Selle protseduuri käigus saate kontrollida kasutaja õigusi luua uusi kataloogielemente, samuti määrata üksikasjade algväärtused.

Tuleb märkida, et versioonis 8.0 on kõigi objektide sündmuste loendit oluliselt laiendatud.

Elemendi loomine ja salvestamine

Kataloogielemendi programmiline loomine

Allpool kataloogis Töötajad lisatakse uus töötaja programmiliselt töörühma. Kataloogis täidetakse väljad Nimi, Vastuvõtmise kuupäev ja paar perioodilist detaili.



Ref. Uus();


Ref. Kirjuta üles();
//Perioodiliste detailide seadistamine on võimalik alles pärast elemendi salvestamist
Ref.Category.Set (Ref.ReceptionDate, ktgPartners);
Ref.Position.Set (Ref.ReceptionDate, puusepa jaoks);

Kuid saate selle ilusamaks muuta:

RefCotr = CreateObject("Kataloog.Töötajad");
SprSotr.UseParent(grpWorking);
Ref.UseDate(ReceptionDate); //tähelepanu!
Ref.New();
SprSotr.Name = "Ivanov Ivan Ivanovitš";
Ref.ReceptionDate = "01/01/2002";
//juurdepääs perioodilistele detailidele muutub samasuguseks, mis tavalistele
SprSotr.Category = ktgPartnerid;
Spr.Position = dljPuusepp;
SprCotr.Write();

Uus = Directories.Employees.CreateItem();
Uus.Vanem = rühmTöö;
Uus.Nimi = "Ivanov Ivan Ivanovitš";
Uus.Vastuvõtukuupäev = "01/01/2002";
Uus.Kirjuta();

//Versioonis 8.0 pole perioodilisi üksikasju

Gruppide programmiline loomine

RefCotr = CreateObject("Kataloog.Töötajad");

Ref. Uus grupp();

Ref. Kirjuta üles();

Ref.NewGroup();

SprCotr.Write();

Uus = Kataloogid.Töötajad .Rühma loomiseks();

Uus Kirjuta üles();

Uus = kataloogid["Töötajad"] .Rühma loomiseks();
New.Name = "Töötab";
Uus Kirjuta üles();

Tähelepanu!

Tehingud

Paljude kataloogielementide loomisel saate töö kiirendamiseks lisada tehingusse tsükli. Sel juhul toimub kõigi elementide tegelik loomine ainult käsuga CommitTransaction(). Kataloog on tehingu ajal blokeeritud.

RefCotr = CreateObject("Kataloog.Töötajad");
Käivitage tehing();

Nom = 1 kuni 100 tsükkel
.....Ref.New();
.....SprSotr.Name = "New" + String(Nom);
.....RepCort.Write();
EndCycle;

CommitTransaction();


SprSotr = kataloogid.Töötajad;
Käivitage tehing();

Nom = 1 kuni 100 tsükkel
.....Uus = SprSotr.CreateElement();
.....Uus.Nimi = "New" + String(Nom);
.....Uus.Write();
EndCycle;

CommitTransaction();

Elementide kordamine

Lihtne otsing

RefCotr = CreateObject("Kataloog.Töötajad");
režiim = 0; //valige ilma hierarhiat arvesse võtmata, 1 - võttes arvesse (vaikimisi)
Ref. Valige üksused(Režiim);
Kuigi SprSotr. GetElement()=1 tsükkel
.....<действия с очередным элементом/группой>
EndCycle;

Filtreerimine (valik)

RefCotr = CreateObject("Kataloog.Töötajad");
HierarchyMode = 1; //1 - vali hierarhiat arvesse võttes, 0 - arvestamata
GroupMode = 0; //0 - ei kaasa gruppe valikusse, 1 - kaasa
AttributeName = "Aasta"; //konfiguraatoris peab atribuudil olema märgitud ruut Valik
väärtus = 1980;
Ref. Valige ElementsBy Details(Atribuudi nimi, väärtus, hierarhiarežiim, rühmarežiim);
Kuigi SprCont.GetElement()=1 Loop
.....<действия с очередным элементом>
EndCycle;

Filtreerimine silmuses

RefCotr = CreateObject("Kataloog.Töötajad");
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
Ref. Valige üksused();
Kuigi SprSotr. GetElement()=1 tsükkel

Kui ametikoht on administratiivne<>dlzhCarpenter Siis
....Jätka; //jätame selle töötaja vahele, mine tsükli algusesse
endIf;

<действия с очередным элементом>

EndCycle;

Sorteerimisjärjekord

Enne proovide võtmist saate sortimisjärjestuse määrata järgmiste meetoditega.

CodeOrder()
NameOrder()
Atribuudi järjekord(ReqName) //atribuudil peab olema konfiguraatoris märgitud ruut Sorting
Vastupidises järjekorras()

Näiteks avaneb allpool töötajate valik, mis on sorteeritud arvu järgi kahanevas järjekorras:

RefCotr = CreateObject("Kataloog.Töötajad");
Ref.CodesOrder();
Ref.ReverseOrder();
Ref.SelectItems();

Taotlus kataloogile

Kataloogielementide otsimist saab korraldada päringu kaudu. See on sageli mugavam, kui kasutatakse keerulist valikutingimust või elementide rühmitamist. Vaata täpsemalt. Taotlused

Otsige elementi

Otsige elementi

RefCotr = CreateObject("Kataloog.Töötajad");
Kui SprSotr. FindElement(SelectSotr)=1 Siis
....//element muutub vooluks
....SprSotr.Parent = grpTöötab;
....RepCort.Write();
endIf;

Otsi koodi järgi

Kui SprSotr. FindByCode(1) = 1 Siis
....ElementOrGroup = Ref.CurrentElement();
endIf;

Otsi nime järgi

Kui SprSotr. FindByName("Töötab")=1 Siis
....grpWorking = Ref.CurrentItem();
endIf;

režiim = 1; // 1 - otsing kehtestatud alluvuse (vanema) piires (vaikimisi); 0 - otsige kogu kataloogist
Otsingulipp = 0; //1 - täpse vaste leidmine; 0 – otsi nimi esimeste tähemärkide järgi (vaikimisi)
SprSotr.UseParent(grpWorking);
Kui Ref.FindByName("Iv",Mode,SearchFlag)=1 Siis
....FirstWorkingIv = Ref.CurrentItem();
endIf;

Otsige üksikasjade järgi

ReqName = "Aasta"; //atribuudil peab konfiguraatoris olema märgitud ruut Sortimine
SearchGlobeFlag = 1; // 1 - otsing kogu kataloogist, 0 - otsing alluvuse piires
Kui SprSotr. FindByDetails(ReqName,1980,SearchGlobeFlag)=1 Siis
.....LeitudElement = Ref.CurrentElement();
endIf;

Elemendi leidmine tsüklist

RefCotr = CreateObject("Kataloog.Töötajad");
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
Ref. Valige üksused();
Kuigi SprSotr. GetElement()=1 tsükkel

Kui Admin.Position = dlzhCarpenter Siis
....Abort; //leidis töölise puusepa! ahelast välja tulla
endIf;

EndCycle;
<действия с найденным элементом>

Taotlus kataloogile

Kataloogielemendi otsimist saab korraldada päringu kaudu. See on sageli mugavam, kui rakendatakse keerukat valikutingimust. Vaata täpsemalt. Taotlused

Üksuste eemaldamine

Otsene eemaldamine

RefCotr = CreateObject("Kataloog.Töötajad");
SprEmployee.FindElement(SelectEmployee);
Ref.Delete(); //kohene kustutamine

Tähelepanu! Kui kustutate elemendi otse, veenduge, et teistes objektides poleks sellele viiteid. Näiteks saab puhkuse dokumendis kasutada eemaldatavat töötajat. Kui see kustutatakse, rikutakse andmebaasi viiteterviklikkust. Sel juhul on soovitatav kasutada kustutamiseks märgitud.

Saate programmiliselt hankida objektide loendi, mis sisaldab linki kustutatavale objektile, kasutades FindLinks(object) meetodit.

Märgi kustutamiseks

Andmebaasi viiteterviklikkuse kontrollimiseks märgitakse kustutatud elemendid lihtsalt kustutamiseks. Seejärel, kasutades eksklusiivses režiimis spetsiaalset menüükäsku Operatsioonid => “Märgitud objektide kustutamine”, kontrollib 1C süsteem viiteterviklikkust ja kustutab elemendid füüsiliselt andmebaasist, kui teistes objektides pole neile viiteid.

SprSotr = CreateObject("Kataloog.Töötajad");
Ref.FindElement(SelectEmployee);
Ref.Delete(0); //märkige kustutamiseks

//saate kontrollida, kas element on kustutamiseks märgitud
//funktsioon tagastab 1 - kui märgitud, 0 - kui mitte
Mark = Ref. Lipu kustutamine();

//saate kustutamismärge eemaldada
Ref.FindElement(SelectEmployee);
Ref. Tühjendage märkeruut Kustuta();

Tehingud

Paljude kataloogielementide kustutamisel saate töö kiirendamiseks lisada tehingusse tsükli. Sel juhul toimub kõigi elementide tegelik kustutamine (kustutamise märk) ainult käsuga CommitTransaction(). Kataloog on tehingu ajaks blokeeritud.

RefCotr = CreateObject("Kataloog.Töötajad");
Käivitage tehing();

Ref.SelectItems();
Kuigi SprCont.GetElement()=1 Loop
......Ref.Delete(0); //märkige kustutamiseks
EndCycle;

CommitTransaction();

Hierarhilised kataloogid

1C:Enterprise süsteemi kataloogielementide loend võib olla mitmetasandiline. Sel juhul jagatakse kõik kataloogiread kahte tüüpi: "lihtsalt" kataloogielemendid ja kataloogirühmad. Rühmad võimaldavad teil liikuda mitmetasandilise kataloogi madalamatele tasemetele. Kataloogide pesastustasemete võimalik arv määratakse konfiguraatoris.

Mitmetasandiliste kataloogide kasutamine võimaldab korraldada teabe sisestamist kataloogi vajaliku detailsusega. Mitmetasandilise kataloogi elemente ja elementide rühmi saab üle kanda ühest rühmast teise.

Tähelepanu! Hierarhiline teatmeteos on ka mitmetasandiline kataloog või kataloog koos rühmad.
1C kataloogirühma nimetatakse sageli " lapsevanem".

Grupi programmiline loomine

RefCotr = CreateObject("Kataloog.Töötajad");

Ref. Uus grupp();
SprSotr.Name = "Töötab";
Ref. Kirjuta üles();

Ref.NewGroup();
Ref.Name = "Loobunud";
SprCotr.Write();

Tähelepanu! Konfiguraatoris saate määrata atribuudi kehtima ainult elemendi, ainult rühma või mõlema jaoks. Näiteks väljal Vastuvõtmise kuupäev ei ole töörühma jaoks mõtet. Seetõttu ei tohiks te juurdepääsu elemendi üksikasjadele, kui töötate rühmaga ja vastupidi.

Praeguse grupi seadistamine


Ref. UseParent(grpWorking); //nüüd oleme töörühma sees
Ref.SelectItems(); //avavad töörühma elementide valiku

RefCotr = CreateObject("Kataloog.Töötajad");
Ref. UseParent(grpWorking);
Ref.New(); //uue elemendi loomine töörühmas

Kui kataloog on mitmetasandiline, on kasulik kasutada järgmisi meetodeid ja atribuute, mis võimaldavad teil saada teavet praeguse kataloogielemendi kohta:

Meetod/atribuut

Kirjeldus

Tase()

See meetod tagastab praeguse elemendi taseme. Näiteks töörühma kuuluva töötaja kohta saame numbri 2.

Näide, hierarhilise kataloogi väljund puu kujul:

RefCotr = CreateObject("Kataloog.Töötajad");
Ref.SelectItems();

//näitab taande vastavalt elementide pesastussügavusele
Nom=1 jaoks Const.Level() tsükli järgi
.....Teatama(".....");
EndCycle;

EndCycle;

See grupp () See meetod tagastab 1, kui praegune kataloogielement on rühm, või 0, kui see pole rühm.

Näide, töötajate toodang (rühmad ei ole väljund):

RefCotr = CreateObject("Kataloog.Töötajad");
Ref.SelectItems();
Kuigi Ref.GetItems()=1 Loop

Kui Ref.ThisGroup()=1 Siis
......Jätka; //jätke rühmad vahele, minge tsükli algusesse
endIf;
Aruanne(Ref.Nimi);

EndCycle;

Kuulub gruppi (...) Meetod kontrollib, kas praegune kataloogielement kuulub määratud rühma (olenemata sellest, millisel alustasemel see asub).
Tagastab: 1 - kui element kuulub määratud rühma, 0 - kui ei.

Näiteks alkoholigruppi kuuluvate toodete kuvamine, olenemata sellest, kas need kuuluvad alarühmadesse Šampanja, Õlu, Viin, Vein jne:




.....Notify(SprProducts.Name);
endIf;

EndCycle;

atribuut Vanem

See atribuut sisaldab praeguse kataloogielemendi vanemat, st. rühm, milles praegune element asub. Loetav ja kirjutatav.

Näide, kõikide toodete viimine alkoholigrupist müügigruppi:

DirectoryProducts = CreateObject("Kataloog.Tooted");
SprProducts.SelectItems();
Kuigi SprProducts.GetItems()=1 Loop

Kui Tooted.Kuuluvad rühma(gruppAlkohol)=1 Siis
.....SprSotr.Parent = grpSale;
.....RepCort.Write();
endIf;

EndCycle;

Või saate selle ilusamaks muuta ja viia kogu Alkoholi grupp Müügi gruppi, siis kantakse kõik alagrupid ja elemendid üle ka Müügigruppi.

DirectoryProducts = CreateObject("Kataloog.Tooted");
SprProducts.FindItem(grpAlcohol);
SprProducts.Parent = grpSale;
SprProducts.Write();

FullCode()

Tagastab stringi, mis sisaldab valitud kataloogielemendi täielikku koodi, kusjuures kõik kõrgemad tasemed on eraldatud märgiga "/".

Näiteks "2/7/123"

Täisnimi()

Tagastab stringi, mis sisaldab valitud kataloogielemendi täisnime, kusjuures kõik kõrgemad tasemed on eraldatud märgiga "/".

Näiteks "Alkohol/Šampanja/Nõukogude"

Võimalus valida rühma dialoogirekvisiidis

Sageli on mugav grupi valimise keelata vormi üksikasjad, mille tüüp on Kataloog. Siis saab sellel väljal valida ainult elemendi ja gruppi valida ei saa. Üldiselt on lihtsam üks kord proovida kui mitu korda selgitada.

Vorm.SelectEmployee. Grupi valik(0); //rühma valimise võimaluse keelamine

Alluvad kataloogid

Kataloog- omanik, see on ka teatmeteos - meister.
Samuti kutsutakse välja omanikukataloog ja alamkataloog seotud teatmeteosed.
Relatsiooniandmebaasi mõistes on omaniku kataloog ematabel, alamkataloog on alamtabel.

Alluvate kataloogide määramine

Iga kataloogi saab kasutada kas iseseisvalt või allutada mõnele teisele kataloogile. Näiteks võib lepingute kataloogi kasutada eraldi või siduda see organisatsioonide kataloogiga.

Kataloogi allutamiseks mõnele süsteemis juba olemasolevale kataloogile valige väljal „Alutatud” selle kataloogi nimi. Sellist kataloogi 1C:Enterprise süsteemis nimetatakse omanikuks.

Erinevalt mitmetasandilisest kataloogist, milles kõik elemendid on ühesuguse struktuuriga, võimaldab alluvate kataloogide mehhanismi kasutamine siduda erineva struktuuriga elemente. Sel juhul seostatakse alluva kataloogi iga element ühe omanikukataloogi elemendiga.

Väliselt näeb 1C: Enterprise süsteemis alluva kataloogiga töötamine välja selline.

Kui hierarhilise loendi kujul kuvamisrežiim on seatud alamkataloogile, siis enne kataloogi kasutamist tuleb esmalt valida omanikkataloogi element. Ekraanil kuvatuna sisaldab allutatud kataloog oma pealkirjas omaniku elemendi nime ja alluva kataloogi elementide loend sisaldab ainult omaniku elemendiga seotud elemente. Kui omaniku element muutub, uuendatakse vastavalt alluva kataloogi akna teavet.

Kui avate alluva kataloogi ilma omanikelementi valimata, siis alluva kataloogi aknas elementi ei kuvata ning akna pealkirjas kuvatakse teade “Omanik element pole määratud”.

Süsteemiga 1C:Enterprise töötades saab alluva kataloogi jaoks hierarhilise loendi kujul kuvamise keelata. Sel juhul kuvatakse alluva kataloogi aknas kõik selle kataloogi elemendid, st erinevatele omanikele määratud elemente kuvatakse segamini. Kuid iga alluva kataloogi element "teab" oma omanikku: kui kataloogis on sisse lülitatud režiim "Muuda dialoogis" (vt allpool jaotist "Kaustavormide loomine"), kuvatakse pealkirjas omaniku elemendi nimi. kataloogielementide redigeerimise aknast.

Praeguse omaniku määramine


SprAgreements.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //avage valik valitud vastaspoole lepingutest
<...>

Teave praeguse elemendi kohta

Kui kataloog on allutatud, on kasulik kasutada järgmisi meetodeid ja atribuute, mis võimaldavad teil saada teavet praeguse kataloogielemendi kohta:

Atribuut

Kirjeldus

atribuut Omanik

See atribuut sisaldab alluva kataloogi aktiivse elemendi omanikku, st. selle hosti kataloogi element, kuhu see element kuulub. Atribuut on loetav ja kirjutatav.

Näide, kõigi lepingute ülekandmine ühelt osapoolelt teisele (lepingute kataloog on vastaspoolte kataloogi alluvus):

DirectoryAgreements = CreateObject("Kataloog.Lepingud");
SprAgreements.UseOwner(Counterparty1);
SprAgreements.SelectItems();
Kuigi SprAgreements.GetElements()=1 Loop

SprAgreements.Owner = vastaspool2;
SprAgreements.Write();

EndCycle;


Perioodilised üksikasjad

Suvandi „Perioodiline” lubamine võimaldab määrata kataloogiatribuudi jaoks, et salvestada selle väärtuse muutuste ajalugu. Sellist detaili süsteemis 1C:Enterprise nimetatakse perioodiliseks ja sellel on järgmine omadus: erinevalt “tavalistest” (mitteperioodilistest) detailidest salvestab süsteem 1C:Enterprise sellise detaili väärtused nende muutmise kuupäevade järgi. . Sellise atribuudi väärtusele juurdepääsul teatud kuupäeva kohta tagastatakse selle väärtus selle kuupäeva kohta või kui see puudub, siis lähima eelmise kuupäeva kohta, mil atribuudi väärtus määrati.

See kataloogiandmete omadus võimaldab näiteks hõlpsasti korraldada valuutakataloogis vahetuskursside ajaloo salvestamist.

Perioodilistele üksikasjadele pääseb juurde 1C:Enterprise süsteemi sisseehitatud keele abil - saate ja salvestage üksikasjade väärtus määratud kuupäevaks. Siiski tuleb meeles pidada, et muutuja väärtuse saamisel teatud kuupäeva kohta leitakse selle väärtus määratud või (kui määratud kuupäeva väärtus puudub) lähima eelneva kuupäeva kohta ja perioodiline muutuja registreeritakse alati määratud kuupäevaks.

Perioodiliste üksikasjade konfiguratsiooni kasutamise režiimis saate avada akna "Ajalugu". See aken on tabel, mis koosneb kahest veerust: kataloogi atribuudi väärtuse muutmise kuupäev ja selle kuupäeva seisuga väärtus. Aknas "Ajalugu" saate otse redigeerida atribuudi väärtuse muudatuste ajalugu: sisestada uusi ridu, redigeerida või kustutada olemasolevaid.

Perioodilised üksikasjade meetodid
//nii saame teada, mis kategooria töötajal teatud kuupäeval oli
Kategooria = SprSort.Category.Get(SomeDate);

//nii määrame konkreetse kuupäeva jaoks töötaja kategooria
Ref.Category.Set(SomeDate, NewCategory);

Tähelepanu! Neid meetodeid saab kasutada, kui te pole varem kasutanud meetodit UseDate

Kuupäeva määramine perioodiliste üksikasjade proovivõtmiseks

//saate määrata kogu kataloogi perioodiliste üksikasjade proovivõtu kuupäeva
Ref. Kasutamise kuupäev(SomeDate);

//siis on see juba madalam see on keelatud kasutage meetodeid Määra ja hanki
//juurdepääs perioodilistele detailidele muutub samasuguseks kui tavalistele detailidele
Kategooria = SprSotr.Category;
Spr.Palk = 6000;

Objekt "Perioodiline"

Perioodiliste detailide ajalooga töötamiseks on väga mugav kasutada objekti "Perioodiline".

Näide, kuvage töötaja jooksva aasta karjäärilugu:

HistoryCareers = CreateObject("Perioodiline");
CareerHistory.UseObject("Positsioon", SelectEmployee);
Karjääriajalugu.SelectValues(Start of Year(WorkingDate(),End of Year(WorkingDate()));
Kuigi HistoryCareers.GetValue()=1 Loop
....Aruanne(String(Karjääriajalugu.KuupäevaVäärtus) + " " + String(Karjääriajalugu.Väärtus));
EndCycle;

Väärtusi saate muuta ja kustutada ka objekti Perioodiline abil. Meetodite täieliku loendi leiate süntaksiabist.

Dokumentide läbiviimine

Dokumendi postitamisel on sageli vaja määrata perioodilise atribuudi uus väärtus konkreetse kuupäeva jaoks. Seda nimetatakse dokumendi liikumiseks. Sel juhul peaksite kasutama meetodit Määra kataloogi atribuudid:

Määrake kataloogi üksikasjad(Töötaja, "Ametikoht", UusPosition, MoveDate);

Menetluse lõpp

Kui dokumendil on tabeliosa ja soovite, et dokumendi liikumised oleksid seotud dokumendi rea numbriga, peaksite kasutama BindRow meetodit.

Protseduuri töötlemisviis()

SelectRows();
Kuigi GetString()=1 tsükkel

BindString(ReaNumber);
Määra kataloogi üksikasjad (Töötaja, "Ametikoht", Uus ametikoht, Kolimise kuupäev);

EndCycle;

Menetluse lõpp

Valik kataloogist

Valikufunktsioon võimaldab teil valida otsingust või muust objektist mitu väärtust ilma seda sulgemata.Näiteks on olemas Arve dokument, milles kasutaja saab määrata mitu toodet.

Valiku korraldamine

Süntaks: OpenSelect(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)

OpenSelection("Kataloog. Nomenklatuur","Valimise vorm",Järg,1);


...Uus rida();
...Toode = Kaup;
Menetluse lõpp

Võite kasutada vormi konteksti ja minna kohe soovitud rühma, näiteks:

OpenSelection("Kataloog. Nomenklatuur","Valimise vorm",Järg,1);
Cont.UseParent(grpAlcohol);

Protseduur ProcessingFit (element, vormisisu)
...Uus rida();
...Toode = Kaup;
Menetluse lõpp

Väärtuste määramine ja valikust hankimine

ContFormSelection. SetValueInSelection(<ИмяРеквизита>,<Значение>)

<ИмяРеквизита>- rida väärtuse valiku vormi atribuudi nimetusega;
<Значение>- atribuudi väärtus.

ContFormSelection. GetValueFromSelection(<Выражение>)

<Выражение>- stringi avaldis, mille väärtus arvutatakse valikuvormi kontekstis ja tagastatakse selle tulemusena.

Muud kasulikud meetodid

meetod

Kirjeldus

Vaata() Määrake või lugege kataloogitüübi praegust nime. Tagastab kataloogitüübi praeguse nime, nagu on määratud konfiguraatoris, näiteks "Töötajad". Kataloogi tüübi määramine on võimalik "Kataloog" tüüpi üksikasjade jaoks, st. määramatut tüüpi kataloog.
Vaatavaade() Hankige konfiguraatoris määratud kataloogivaate kohandatud vaade.
Tagastab stringiväärtuse, mis sisaldab kataloogivaate kohandatud esitust (sünonüüm).
SetAttribute (atribuudi nimi, väärtus) Määrake atribuudi väärtus selle nime järgi.
<ИмяРеквизита>- stringi avaldis, mis sisaldab konfiguraatoris määratud atribuudi nime.<Значение>- avaldis, mis sisaldab määratava atribuudi väärtust.
Hangi atribuut(atribuudinimi) Hankige atribuudi väärtus selle nime järgi. Tagastab atribuudi väärtuse.
Valitud()

Tagastab 1 - kui kataloogielement on valitud, 0 - kui pole valitud. Kasutatakse sageli vigade kontrollimiseks, et tagada kõigi nõutavate andmete esitamine.

Vali (...) Dialoogi avamine kataloogielemendi valimiseks.
Tagastab: 1 - kui element on valitud; 0 – kui pole valitud. Valitud element muutub praeguseks.

Kataloogistruktuuri lugemine

Tsükkel teatmeteoste järgi

Kataloogide arv konfiguratsioonis = Metadata.Directory();
Nom=1 puhul kuni kataloogide arvuni konfiguratsioonitsüklis

cfgSpr = Metadata.Directory(Nom);
Identifier = cfgSpr.Identifier();
FullIdentifier = cfgSpr.FullIdentifier();
Sünonüüm = cfgSpr.Synonym();

1C kataloogid on spetsiaalne metaandmete puu objekt, mis salvestab staatilise viiteteabe. Näiteks tüüpilistes konfiguratsioonides näete järgmisi vaateid: , Nomenklatuur, Töötajad, Põhivara jne. Teave kataloogides ei muutu reeglina sageli. Katalooge kasutatakse hiljem peaaegu kõigis raamatupidamisobjektides raamatupidamise jaotise või viiteteabena.

Allpool vaatleme kataloogi seadistamist ja kujundamist konfiguraatorist, kasutades näitena kataloogi "Nomenclature".

Põhivahekaart

Vahekaart „Põhiline” määrab nime, sünonüümi, objekti esituse ja eesmärgi kirjelduse.

Vahekaart "Kataloogide hierarhia".

Siin määratakse kataloogi hierarhia.

1C 8.3 hierarhiat on kahte tüüpi - " rühmad ja elemendid"Ja" elemendid". See erineb selle poolest, et esimesel juhul saab vanemaks (kaustaks) olla ainult kaust (rühm), teisel juhul aga element.

"Paigutage rühmad üles" - lipp vastutab rühmade kuvamise eest loendi kujul.

Ka seadetes saab vastava seadistuse abil piirata rühmade arvu kataloogihierarhias.

Omanikute vahekaart

Kataloog võib olla allutatud teisele kataloogile. 1C 8.3 konfigureerimise seisukohalt tähendab see, et atribuut „Omanik” muutub alluva elemendi jaoks kohustuslikuks. Näide sellisest ühendusest kataloogide vahel standardkonfiguratsioonides “Nomenklatuur – mõõtühikud”, “Vastaspooled – töövõtjate lepingud”.

Kataloogi omanikuks võivad olla ka järgmised metaandmeobjektid: , .

Andmete vahekaart

Hankige 267 videotundi 1C-s tasuta:

Programmeerija seisukohast kõige olulisem vahekaart. See sisaldab kataloogi üksikasju.

Kataloogis on standardsete üksikasjade komplekt, mida 1C 8.2 programmeerija ei redigeeri; nende loendit näete, klõpsates nuppu "Standardsed üksikasjad":

Ma peatun igaühel üksikasjalikumalt:

  • See rühm— Boole'i ​​tüüpi atribuut, mis näitab, kas tegemist on rühma või elemendiga. Saadaval ainult hierarhilises kataloogis. Märge, selle atribuudi väärtust ei saa režiimis 1C: Enterprise muuta.
  • Kood— rekvisiidid, tüübinumber või string (tavaliselt string). Süsteemi poolt automaatselt määratud number. Tavaliselt arvutatakse (eelmine kood + 1). Soovitan kasutada stringitüüpi, kuna arvväärtuste sortimine ei toimi ootuspäraselt. Saab kasutada kataloogi esitlusena loendis ja sisestusväljadel. Tavaliselt kasutatakse stringi sisestamisel elemendi otsimiseks. Kui teil on vaja välja Kood eemaldada, sisestage rea pikkusesse null.
  • Nimi— kohustuslikud andmed, stringi tüüp. Maksimaalne rea pikkus on 150 tähemärki. Saab kasutada kataloogi esitlusena loendis ja sisestusväljadel. Tavaliselt kasutatakse stringi sisestamisel elemendi otsimiseks. Kui peate välja Nimi eemaldama, sisestage rea pikkusesse null.
  • Lapsevanem— DirectoryLink tüüpi atribuut.<ИмяТекущегоСправочника>. Saadaval ainult hierarhilises kataloogis. Osutab hierarhias kõrgemale vanemale. Kui element või rühm asub kataloogi juurtes, määratakse väärtus Kataloog.<ИмяТекущегоСправочника>.EmptyLink.
  • Omanik— link praeguse kataloogielemendi (rühma) omanikuelemendile. Saadaval ainult alluvas kataloogis 1C.
  • Lipu kustutamine— rekvisiidid tüübiga Boolean. Vastutab "kustutusmärgi" kuvamise eest süsteemis. Kustutamiseks märgitud element loetakse kasutuskõlbmatuks, kuid sellele võivad jääda vanad dokumendiliigutused.
  • Link— stringitüübi väli. See atribuut salvestab unikaalse objekti identifikaatori - GUID. See, mida me süsteemis näeme visuaalsel kuval, mida nimetatakse lingiks, on lihtsalt objekti esitus. Ei saa muuta.
  • Eelmääratletud— Boolean tüüp, kuvab, kas element on eelmääratletud, sellest lähemalt hiljem. Ei saa muuta.

Vahekaart "Andmed" näitab ka kataloogi esitust süsteemis; enne versiooni 8.2.16 võis esitus olla ainult kood või nimi. Platvormi viimastes versioonides (alates 8.3) saab vaadet kirjeldada iseseisvalt haldurimoodulis, kasutades töötlejat “ViewReceivingProcessing”.

Nummerdamise vahekaart

Siin saate määrata kataloogi nummerdamise sätted. Soovitatav on kasutada automaatset nummerdamist. Unikaalsuskontroll on lipp, mis aitab vajadusel koodi ainulaadseks muuta. Kui proovite koos lipuga kirjutada kataloogielementi mitteunikaalse koodiga, kuvatakse 1C-s teade "Kaustakood on muutunud ebaunikaalseks".

Koodiseeria - määrab, kuidas kataloogi nummerdada; saate sisestada kataloogi nummerdamise omaniku järgi. Näiteks on vastaspoolel "Sarved ja sõrad" oma lepingute numeratsioon - "1, 2, 3" jne.

Vahekaart Vormid

Kataloogi vorme kirjeldatakse siin. Kui konfiguratsioon käivitatakse nii tava- kui ka hallatud režiimis, on vaikimisi kaks vormiga vahekaarti: "peamine" ja "täiustatud" - tavaliste ja hallatavate rakenduste jaoks erinevad.

Sellel lehel on kataloogi oluline funktsioon - "". See on 1C 8 väga mugav funktsioon, mis võimaldab teil sisestusväljal andmete täitmisel mitte kataloogi siseneda, vaid sisestada selle nimi, kood jne. ja valige ripploendist soovitud element. See näeb välja selline:

Muu vahekaart

Vahekaardilt saate kiire juurdepääsu kataloogi põhimoodulitele - objektimoodulile ja halduri moodulile.

Samuti saate lehel määratleda eelmääratletud kataloogielementide loendi. Need on üksused, mida ei saa ettevõtterežiimis kustutada. Eelmääratletud elementidele pääseb juurde otse konfiguraatoris nime järgi, näiteks: Directories.Nomenclature.Service.

See vahekaart määrab ka blokeerimisrežiimi - automaatne või juhitav. Täistekstiotsingu kasutamine, samuti kataloogi viiteteave, mis on saadaval režiimis 1C: Enterprise.



Juhuslikud artiklid

Üles