Gyors. Alárendelt címtárak. Gyorsan Hogyan hozzunk létre alárendelt könyvtárat 1c

Klyuev V.V.

http://prof1c.kklab.ru

Alárendelt címtárak

Valószínűleg már többször észrevette a szokásos tipikus konfigurációkban, hogy a könyvtárak összekapcsolódnak, amikor egy könyvtárelem (1. könyvtár) kiválasztásakor egy másik könyvtár (2. könyvtár) értékét „szűri” ez az érték - vagyis az értékek csak az aktuális könyvtárelemhez tartozók vannak kiválasztva; például ez a „Division” Directory, amelynek a tulajdonosa a „Szervezeti” címtár.

Annak érdekében, hogy azonnal megértsük, mi történik, nézzük meg, mi történik a gyakorlatban. Ehhez létrehozhat egy üres konfigurációt a semmiből, vagy ugorhat az információs bázis bármely meglévő példányára, és létrehozhat 2 könyvtárat a konfigurátorban.

Directory1 és Directory2. A 2. könyvtárban lépjen a „Tulajdonosok” fülre, és válassza ki a tulajdonost - „Directory1”, lásd az ábrán látható módon.

Most, amikor elemeket hoz létre a „Directory2”-ben, a rendszer kérni fogja, hogy adja meg a könyvtár1 tulajdonosát. Van egy lehetőség - Az alárendeltség használata -, ha az alárendeltség beállítása Elemek, csoportok vagy csoportok és elemek.

Úgy tűnik, hogy minden egyszerű, de problémák merülnek fel a felhasználók számára. A „Directory 2” megnyitásakor a felhasználó teljesen érthetetlen sorrendben látja az összes elemet, és emellett, ha szabványos konfigurációkkal dolgozott, észrevehette, hogy közvetlenül a „Divisions” könyvtárban nem adja meg a tulajdonost sehol, hanem a címtár megnyitásakor kiválaszthatja a szervezetet, és ennek függvényében az egyik vagy másik szervezetnek alárendelt elemeket fogadhat; Ezen túlmenően, amikor létrehoz egy „Osztályok” címtárelemet, alapértelmezés szerint a kiválasztott tulajdonost kapja meg az osztályok listája formájában.
Tehát kezdjük el, és hozzunk létre egy „Lista űrlapot” a „Directory2”-hez, egyelőre ezt adjuk meg az 1C-nek változtatás nélkül, később módosítjuk a tervező által készített űrlapot.
A „Directory2”-ben lépjen az Űrlapok fülre, és adjon hozzá (+) egy új címtárlista-űrlapot, majd kattintson a Befejezés gombra.

Hozzunk létre egy űrlap attribútumot "Könyvtár1.Link" adattípussal "SelectionDirectory1" néven, és húzzuk az attribútumot az űrlapra, állítsuk be a "Könyvtár1" címet.


Most, hogy „ez a csoda” működjön, meg kell írnia egy kódot, amely kiválaszt egy könyvtárelemet1.

8.2, 8.3 Kezelt űrlapok

Ahhoz, hogy csak a Directory1 kiválasztott eleméhez szükséges elemeket jelenítsük meg címtárlista formájában, programozottan - a kiválasztott elem alapján - ki kell választani, ehhez a SelectionDirectory1 vezérlő előre meghatározott eljárását használjuk. és írjon kódot, amely végrehajtja a megadott feladatot.
Felül válassza ki a „Selection Directory1” elemet, kattintson a jobb gombbal, és válassza a „Tulajdonságok” lehetőséget, a megjelenő ablakban keresse meg az „OnChange” tulajdonságot, és kattintson a nagyítóra, ezzel lépjen az űrlapmodulra; a „Selection Directory1OnChange(Element)” eljárás automatikusan létrejön

Az eljárás során írja be a következő szöveget:

& Az Ügyféleljárás kiválasztása Directory1OnChange(Element) listán. Kiválasztás. Elemek. Egyértelmű() ; // Kijelölési elem = Lista. Kiválasztás. Elemek. Add(Típus(" Selection ElementData Layout" ) ); Kijelölési elem. LeftValue = Új adatösszeállítási mező (" Tulajdonos " ); Kijelölési elem. Összehasonlítási nézet = Adatösszetétel összehasonlító nézet. Egyenlő; Kijelölési elem. Használat = igaz ; Kijelölési elem. RightValue = Kijelölési könyvtár1; Kijelölési elem. Megjelenítési mód = Elemmegjelenítési mód constructionDataComposition.Unavailable;EndProcedure

8.2 Normál nyomtatványok


Űrlapok készítésekor minden a régiben történik, csak az űrlapokat normálként kell létrehozni, a kezelt űrlapok nem működnek normál alkalmazásban.
A különbség a listában szereplő elem kiválasztásában és a kellékek elkészítésében lesz.
Ha részleteket szeretne hozzáadni egy normál űrlaphoz, kattintson a gombra

Eljárás Reference1OnChange(Element)This Form. Kiválasztás. Tulajdonos. Érték = Directory1. Link; Ez a forma. Kiválasztás. Tulajdonos. Használat = Igaz ; Ez a forma. Űrlapelemek. DirectoryList. Kiválasztási beállítások. Tulajdonos. Elérhetőség = False ; //(?) EndProcedure

Az utolsó előtti sor(?) - tiltjuk a kijelölés megváltoztatását, amikor a felhasználó megnyitja a kiválasztási paramétereket - csak a vezérlőelemen keresztül!

Videó (hang nélkül - hang nélkül minden tiszta)

Mik azok az 1C-könyvtárak, és milyen szerepet játszanak az 1C-ben - erről és még sok másról új cikkünkben.

Az 1C könyvtárai azért jönnek létre, hogy olyan információkat tároljanak, amelyeket az 1C más dokumentumaiban, például jelentésekben fognak használni. Kiderül, hogy az 1C rendszerben a munka a referenciakönyvek szerint történik, és a bennük tárolt összes információt normatívnak és hivatkozásnak nevezik.

Mire valók az 1C könyvtárak?

Minden termék világos példaként szolgál a magyarázathoz. A vállalkozáson belüli mozgatásához (vásárlás, raktárban való tárolás, telepítés, értékesítés stb.) speciális dokumentumokat készítenek, például nyomtatványokat, számlákat stb. Normál helyzetben mindezeket a dokumentumokat manuálisan töltenék ki, de ha automatizált rendszert használunk, ezzel nemcsak időt takarítunk meg, hanem sok hiba előfordulását is megelőzzük.

Egy automatizált rendszer lehetővé teszi, hogy egyszer létrehozzon egy listát, amely aztán pontosan ezt a terméket tartalmazza. Szükség esetén a leírásban mindig feltüntetheti a szükséges adatokat, jellemzőket és egyéb információkat. Kiderült, hogy az 1C-könyvtárak kész listák termékekről, ügyfelekről, szolgáltatásokról stb. Szükség esetén a listák módosíthatók, kiegészíthetők.

Hol találhatók az 1C könyvtárak?

Az 1C Enterprise-ban való munkavégzés felületét általában egy programozó fejleszti, ami azt jelenti, hogy a különböző könyvtárak teljesen különböző menükben helyezkedhetnek el.

A vastag kliensben a rendszergazdai jogokkal rendelkező felhasználó bármely 1C dokumentumot megnyithat, és bármely könyvtárhoz hozzáférhet. Ehhez meg kell nyitnia a „műveletek” menüt, kattintson a „könyvtárak” elemre, és válassza ki a kívánt listát.


Ha belenézel a vékonykliensbe, ott is van hasonló menü. "Minden funkciónak" hívják. Működését tekintve hasonló a „műveletek” menühöz.

Konfigurátor módban az összes könyvtárhoz elérhető a konfigurációs ágon keresztül. Innentől kezdve bármilyen könyvtárral dolgozhat, testreszabhatja a sablonját, módosíthatja és így tovább. A kezdéshez kattintson rá duplán az egérrel.

Milyen típusú 1C könyvtárak néznek ki?

Amikor megnyitja az 1C 8 könyvtárat, megnyílik előtted egy lista formájában megjelenő űrlap. A kényelem kedvéért a listák bizonyos jellemzők és jellemzők szerint csoportosíthatók.


Amikor megnyit egy csoportot, megjelenik az összes elem listája. Magára az elemre kattintva pedig elérhetővé válik egy címtárűrlap, melynek mezői kitölthetők, módosíthatók.

Az 1C Enterprise-ban leggyakrabban két kötelező mező van a könyvtárakhoz:

    A könyvtár neve.

Úgy tervezték, hogy segítsenek megkülönböztetni egyik elemet a másiktól. Néha a programozók letiltják ezeket az opciókat, de ez rendkívül ritkán történik.


A „kód” mezőt leggyakrabban a felhasználók szerkeszthetik (speciális hozzáférési jogok szükségesek), és értéke automatikusan generálódik.

Az 1C 8.3 pontban szereplő nómenklatúra anyagokat, félkész termékeket, berendezéseket, szolgáltatásokat, visszaváltható csomagolást, munkaruházatot stb. jelent. Mindezek az adatok a nómenklatúra címtárában vannak tárolva. A „Címtárak” rész „Áruk és szolgáltatások” alszakasz „Nómenklatúra” pontjából érheti el.

Megjelenik a címtárpozíciók listája, amelyek többszintű hierarchikus szerkezettel rendelkeznek.

Ebben a cikkben lépésről lépésre áttekintjük az 1C 8.3 tételeinek kezdeti kitöltésére vonatkozó utasításokat egy példa segítségével.

A kézikönyv használatának megkönnyítése érdekében az 1C Accounting csoportokat (mappákat) használ. Egyesítik a nómenklatúrát, amelynek közös jellemzői vannak. Minden csoportban lehetőség van alcsoportok létrehozására (hasonlóan a számítógép fájlrendszeréhez). A hierarchia szintek számát a programozó határozza meg, de kezdetben nincs korlátozás.

Hozzunk létre egy új csoportot. A „Nómenklatúra” könyvtár lista formájában kattintson a „Csoport létrehozása” gombra.

Adja meg a létrehozandó csoport nevét. A típusát is kitöltheti, de nem szükséges.

Ahogy az alábbi ábrán is látható, az általunk létrehozott csoport az „Anyagok” közé került. Ha át kell helyeznie egy másik csoportba vagy a gyökérbe, nyissa meg a helyi menüt, és válassza az „Áthelyezés csoportba” lehetőséget. Megnyílik egy ablak, ahol meg kell adnia egy új helyet.

Új elem létrehozása

Térjünk át magának a nómenklatúrának a hozzáadására. Ehhez a címtárlista űrlapon kattintson a „Létrehozás” gombra. Megnyílik előtted az új elem kártyája.

Töltse ki a „Név” mezőt. A „Teljes név” mezőben szereplő érték automatikusan beírásra kerül. Felhívjuk figyelmét, hogy a teljes név megjelenik a jelentésekben, nyomtatott dokumentumokban, árcédulákban stb. A „Név” mező a programban található cikkek kényelmes keresésére szolgál.

Ha szükséges, töltse ki a többi adatot:

  • A „Cikk típusa” és a „Csoportban szerepel” mezők automatikusan kitöltésre kerülnek annak a csoportnak az adataiból, amelyben az új cikkelem létrejött. Szükség esetén módosíthatók.
  • Az „Egység” mezőben található érték a tétel egyenlegeinek tárolási egysége.
  • A „% ÁFA” részletben meghatározott adókulcs a bizonylatok generálása során szükség esetén módosítható.
  • Az értékesítési bizonylatokon alapértelmezés szerint az "eladási ár" szerepel. Ez a beállítás a „?” hiperhivatkozásra kattintva módosítható. e mező mellett.
  • A „Gyártás” részben megadható az adott cikkhez tartozó önköltség, illetve annak specifikációja (késztermékeknél), vagyis az összetétel.
  • A nómenklatúra sajátosságaitól függően a többi rovat, mint például az „Alkoholt termékek” és az „Importáruk” kitöltésre kerül.

Miután kitöltötte a létrehozandó cikkhez tartozó kártyát, le kell írnia.

Milyen típusú elemek vannak az 1C 8.3-ban, és hogyan kell konfigurálni őket

A nómenklatúra típusainak konfigurálásához kattintson a megfelelő hiperhivatkozásra a „Nómenklatúra” könyvtár lista formájában.

A tételek elkülönítéséhez a nómenklatúra típusai szükségesek. Mindegyik típushoz hozzá lehet rendelni a sajátját. Nagyon fontos, hogy ne jelenjenek meg ismétlődések ebben a címtárban, ami a cikkelszámolási számlák hibás működéséhez vezethet.

A szállítótól származó szabványos konfiguráció telepítésekor ez a könyvtár már ki lesz töltve a főbb cikktípusokkal. Ha az elem típusa egy szolgáltatás, ne felejtse el megadni a megfelelő jelzőt annak létrehozásakor.

Tételszámviteli számlák az 1C 8.3

A könyvelési bejegyzések generálásához könyvelési számlákat kell beállítani. Ezt a „Nómenklatúra” címtár listás űrlapjáról teheti meg a „Tételszámítási számlák” hivatkozásra kattintva.

Az 1C Accounting 3.0 standard konfigurációjában ez a regiszter már meg van töltve. De ha szükséges, manuálisan is beállítható.

A könyvelési fiókok konfigurálhatók:

  • meghatározott nómenklatúra-tétel szerint;
  • nómenklatúra-csoportonként;
  • a nómenklatúra típusa szerint;
  • raktáronként;
  • raktártípus szerint;
  • szervezet szerint;
  • az egész nómenklatúrában, értékként egy üres hivatkozást adva meg.

Ha egy adott cikkhez és ahhoz különböző könyvelési számlákat állítottak be, akkor a számla a tételből kerül levonásra. Ilyen esetekben a konszolidált beszámoló alacsonyabb prioritást élvez.

Az áruk árának beállítása

Egy terméknek több ára is lehet. Típusban különböznek egymástól, mint például nagykereskedelmi ár, kiskereskedelmi ár stb.

Lépjen a „Nómenklatúra” címtárelem-kártyára, és kövesse az „Árak” hivatkozást.

Megnyílik előtted egy lista, amelyben egy adott típushoz, egy adott időpontban tudsz. Egyszerűen adja meg az árat a megfelelő oszlopban, majd kattintson az „Árak rögzítése” gombra. Automatikusan létrejön egy cikkár-beállítási dokumentum, amelyre mutató hivatkozás látható ebben a listában.

Nézze meg a nómenklatúráról szóló videót is:

Pszichiátriai kórház. Egyik idióta a másiknak:
-Tetszett a történetem, amit tegnap adtam neked elolvasni?
-Igen, de valahogy minden elmosódott és sok a szereplő.
Az orvos belép:
-Szóval idióták, ki lopta el a telefonkönyvemet?...

A címtárak célja
A könyvtár egy adott attribútum lehetséges értékeinek listája. A címtárakat olyan esetekben használják, amikor szükség van a kétértelmű információbevitel kiküszöbölésére.Például ahhoz, hogy a vevő, eladó, raktáros, igazgató megértse, milyen termékről van szó, mindenkinek ugyanúgy kell neveznie. És ebben az esetben referenciakönyvre van szükség. Általában egy kereskedelmi cégnél ez árlista formájú, és ha egy ilyen címtárat számítógépen tárolnak, akkor a teljes lehetséges áruválaszték, amellyel a kereskedő cég dolgozik, bekerül.

Az 1C:Enterprise rendszer lehetővé teszi, hogy szinte korlátlan számú szükséges könyvtárat karbantartson. Minden könyvtár homogén objektumok listája: alkalmazottak, szervezetek, áruk stb. Minden ilyen objektum ún. könyvtárelem.

A felhasználó szempontjából szem előtt kell tartani, hogy a Configuratorban nem maga a könyvtár jön létre értéklistaként, hanem a könyvtárhoz egy sablon, annak sablonja készül. A konfigurációs folyamat során leírják a címtárban tárolandó információk felépítését, kidolgozzák a címtár képernyőjét és szükség esetén nyomtatott reprezentációját, valamint meghatározzák a „viselkedésének” különböző jellemzőit.

Könyvtárattribútumok

Kötelező adatokként minden könyvtár rendelkezik KódÉs Név. A könyvtárelem kódja lehet numerikus vagy szöveges. Az 1C:Enterprise rendszer bőséges lehetőséget biztosít a címtárelemek kódjaival való munkavégzéshez: a kódok automatikus hozzárendelése, a kód egyediségének automatikus vezérlése és mások.

Az 1C:Enterprise rendszerkönyvtáraiban a kódon és a néven kívül minden további információ tárolható a címtárelemekkel kapcsolatban. Az ilyen információk könyvtárban való tárolására egy lista hozható létre részletek. A címtárrészletek mechanizmusával könnyen megszervezhető például egy alkalmazotti fájl.Például egy könyvtár Alkalmazottak szinte biztosan meglesznek az attribútumok Munka megnevezése, Fizetésés mások.Az 1C cég programozókat várt és bemutatott minden referenciakönyv két már definiált attribútum: KódÉs Név. Valójában szinte minden valós objektum tartalmazza ezeket az attribútumokat. Például az alkalmazottak esetében a kód a személyi szám, a név pedig a vezetéknév, keresztnév, családnév (teljes név).

Adattípusok

Minden címtárattribútumhoz meg kell adnia annak adattípusát, például: " szám", "vonal", "dátum"(a 8.0-s verzióban van egy logikai típus is – igaz vagy hamis). Ezek alaptípusok, de összetett adattípusokat is megadhat. Például attribútum Munka megnevezése adattípussal rendelkezik Pozíciók. Ebben az esetben ennek az attribútumnak az értékei a könyvtárból kerülnek kiválasztásra Pozíciók. Így valósul meg a legegyszerűbb kapcsolat a könyvtárak között, ha egy könyvtár attribútumértékeit egy másik könyvtárból választjuk ki.

Hierarchikus könyvtárak

A címtárelemek listája az 1C:Enterprise rendszerben lehet többszintű. Ebben az esetben az összes könyvtársor 2 típusra oszlik: „csak” könyvtárelemek és csoportok szakkönyv. A csoportok segítségével a többszintű címtár alacsonyabb szintjeire léphet. A többszintű címtárak használata lehetővé teszi az információk címtárba történő bevitelének a szükséges részletességgel történő megszervezését. A többszintű címtár elemei és elemcsoportjai átvihetők egyik csoportból a másikba.

Alárendelt címtárak

A könyvtárak között kapcsolat hozható létre alárendeltség. A relációs adatbázis fogalmai szerint a táblák között egy a többhez viszony jön létre. Ebben az esetben az alárendelt könyvtár minden eleme hozzá lesz rendelve a tulajdonos könyvtár valamelyik eleméhez, néha azt is mondhatjuk, hogy egy könyvtár elemei tartozik egy másik elemei. Például a rendszernek lehet Adókedvezmények címtára. Akkor meg lehet csinálni beosztottak Címtár Alkalmazottak. Ez azt jelenti "A munkavállaló adókedvezményekkel rendelkezik".

Könyvtár Alkalmazottak

Könyvtár Adókedvezmények

  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovics
  • Szvetlov Mihail Petrovics
  • Cvetkov Anton Vasziljevics

( tulajdonos Petrov Petr Petrovich)

  • Előnyök veteránok számára
  • Előny a gyermekek számára
  • Ivanov Ivanov Ivanov
  • Petrov Petr Petrovics
  • Szvetlov Mihail Petrovics
  • Cvetkov Anton Vasziljevics

( tulajdonos Szvetlov Mihail Petrovics)

  • Előny az afgánok számára

Asztali részek (csak 8.0-s verzió)

A 8.0-s verzióban lehetővé vált, hogy egy könyvtárelemnek több táblázatos része is legyen. Javasoljuk, hogy ezt a funkciót egy adott elemhez kapcsolódó, de saját objektum entitással nem rendelkező információk tükrözésére használják (amelyhez alárendelt könyvtár létrehozása javasolt). Például referenciaként A termékeknél a Mértékegységek táblázatos szakasz, az Alkalmazottak címtárnál az Oktatás és a Család összetétele táblázatos szakaszok hozhatók létre. A táblázatos részekkel végzett munka hasonló az alárendelt könyvtárakhoz, kivéve, hogy a táblázatos részek nem lehetnek típusok, ami azt jelenti, hogy többé nem lehet Oktatás típusú attribútumot létrehozni.

Könyvtárak összehasonlítása más objektumokkal

Egy tárgy

Hasonlóságok

Különbségek

Állandók értéket tárol, adatbázisba mentve A könyvtár nem csak egy értéket tárol, hanem homogén objektumok teljes listáját.
Dokumentáció adatbázisba mentve, részletekkel rendelkezik, a dokumentumok egymásnak alárendelhetők A címtár normatív és referencia információkat tárol, a dokumentumok pedig valós eseményeket tükröznek. A dokumentum részleteinek értékeit általában könyvtárakból választják ki. A bizonylat általában feladásra kerül, a bizonylatnak dátummal és időponttal kell rendelkeznie, a bizonylat tartalmazhat táblázatos részt, ami nem könyvtárakban található (8.0-s verzióban a könyvtárak és dokumentumok több táblázatos részt is tartalmazhatnak). A címtárak lehetnek többszintűek, a címtár tartalmazhat olyan időszakos adatokat, amelyek nem szerepelnek a dokumentumokban (a 8.0-s verzióban nincsenek időszakos részletek, de vannak időszakos információnyilvántartások).
Átigazolások az adatbázisban tárolva értékek listáját tárolja A felhasználó Vállalati módban beír egy értékeket a könyvtárba, és a felsorolásokhoz az értékek listáját a fejlesztő határozza meg Konfigurátor módban. A felsorolásokat általában az If utasításokban használják.
Értéktáblázat sorokat és oszlopokat tartalmaz (nincs tárolva az adatbázisban) Az értéktáblázatot arra tervezték, hogy közbenső adatokat tároljon a számítógép memóriájában, amelyek a program működése során fordulnak elő. Egy értéktáblázat heterogén objektumokat tárolhat, míg egy könyvtár az összes azonos típusú elemet. Az értéktáblázatok nem lehetnek többszintűek és nem lehetnek egymásnak alárendeltek.
ListValues értékek listáját tárolja (nem menti az adatbázisba) Az értékek listája heterogén objektumokat tárolhat, és egy könyvtárban minden azonos típusú elemet

A programozás alapjai

Új elem létrehozása és rögzítése

Címtárelem keresése


//például elbocsátó végzésben
Ref. FindElement(Munkavállaló);

Ref. FindByCode(123);
Ref. FindByName("Ivanov Ivan Ivanovics");
Ref. FindByDetails("Bérezés", 5000);

//ha az elem megtalálható, akkor az aktuális lesz, és így olvasható:

Ha Spr.FindByName("Ivanov Ivan Ivanovich") = 1 Akkor
........FoundCotr = RefCotr. CurrentItem();
endIf;


//8.0-s verzióban, ha az elem megtalálható, akkor visszaadja, ellenkező esetben Undefined

FoundCotr = RefCotr. FindByCode(123);
FoundCotr = RefCotr. FindByName("Ivanov Ivan Ivanovics");
FoundCotr RefCotr. FindByDetails("Bérezés", 5000);

FoundSotr = SprSotr.FindByName("Ivanov Ivan Ivanovics");
Ha FoundSotr = Undefined Akkor
.....//elem nem található
endIf;

Könyvtárelem törlése

Ref. Töröl(1); //azonnali törlés

Ref. Töröl(0); //kijelölés törlésre
Ref. Törölje a jelölést();


Mark = Ref. FlagDeletion(); //megjegyzés: ez egy módszer


Ref. Töröl(); //azonnali törlés

Ref. SetDeleteMark (igaz); // jelölje meg a törléshez
Ref. SetDeletionMark (hamis); //levesz jelölje meg a törléshez

//ellenőrizheti, hogy egy elem meg van-e jelölve törlésre
//van egy MarkDelete tulajdonság, Boolean típusú - igaz vagy hamis

Mark = Ref. FlagDeletion; //megjegyzés: ez egy tulajdonság
Ha Mark = igaz Akkor
.....//törlésre jelölt elem
endIf;

Könyvtárelemek felsorolása


Ref. Válasszon elemeket();
Míg a SprSotr. GetElement() = 1 Ciklus
...
...Notify("Alkalmazott" + Spr.Name);
EndCycle;


kiválasztás = Könyvtárak.Alkalmazottak. Választ();
Egyelőre csak egy válogatás. Következő() = 1 Ciklus
... //műveletek a következő elemmel
EndCycle;


Szülő
Iteráljon elemekkel egy csoporton belül. Egy csoport az 1C értelemben „szülő”.


Ref.FindByName("Működik");
Működő = Ref.CurrentItem();
Ref. UseParent(Dolgozó);
//további például egy ciklus az alkalmazottaknak (lásd fent)
...



GroupWorking = SprSotr.FindByName("Munka");
kiválasztás = Ref. Választ(Csoportmunka);
Egyelőre csak egy válogatás. Következő() = 1 Ciklus
... //műveletek a következő elemmel
...Notify("Alkalmazott" + kiválasztás.Név);
EndCycle;

Tulajdonos
Egy másik könyvtár eleméhez tartozó könyvtárelemek felsorolása.
Egy referenciakönyv alárendelt egy másik kézikönyv, például referenciakönyv. Az adókedvezmények a Ref. Alkalmazottak.

Időszakos részletek
Időszakos részletek olvasása és írása.
Az időszakos részletek mintavételének dátumának beállítása a teljes címtárra vonatkozóan.


//így megtudjuk, hogy mi volt az alkalmazottnál
//kategória egy adott dátumhoz

Kategória = SprSotr.Category. Kap(SomeDate);

//így fogjuk beállítani a munkavállaló kategóriáját
//egy adott dátumra
RefSort.Category. Telepítés(SomeDate, NewCategory);

//beállíthatja a mintavétel dátumát periodikusra
//részletek a teljes könyvtárra vonatkozóan
Ref. UseDate(SomeDate);

//akkor az alábbiakban már nem használhatod az Install and Get alkalmazást
//az időszakos részletekhez való hozzáférés válik
//ugyanaz, mint a szokásos részleteknél
Kategória = SprSotr.Category;
Spr. Fizetés = 6000;

A 8.0-s verzióban nincsenek időszakos részletek. Ehelyett időben kibővített információs nyilvántartások alkalmazása szükséges.

A kézikönyvek képernyőformái

Címtárlista űrlap

Annak érdekében, hogy a felhasználók könnyebben dolgozhassanak a könyvtárral a konfigurációs szakaszban, többféle típust is létrehozhat képernyő formák a könyvtár megjelenítéséhez. A címtár meghívásának kontextusától függően megadhatja, hogy egy adott párbeszédablakot használjon a címtár használatához.

Jobb egyszer látni, mint százszor hallani, ezért az alábbiakban egy példa az Alkalmazottak címtárának listára:




A lista űrlap modul olyan eljárásokat és függvényeket tartalmaz, amelyek ennek az űrlapnak a környezetében (a Directory objektum környezetében) működnek.

Előre meghatározott eljárások bizonyos előfordulása esetén az 1C rendszer hívja meg eseményeket. Az 1C rendszer előre meghatározott eljárásokat hív meg bizonyos események bekövetkezésekor, tehát ezek eseménykezelők. A 8.0-s verzióban az eljárás neve bármi lehet, nem feltétlenül azonos az esemény nevével. Ezenkívül a 8.0-s verzióban az összes objektum eseménylistája jelentősen bővült.

Esemény

Leírás

Amikor Megnyitás Meghívás a címtárlista űrlap megnyitásakor. Beállíthatja a változók kezdeti értékeit, ellenőrizheti a felhasználói jogosultságokat a könyvtár megnyitásához stb.
Záráskor Akkor hívja meg, ha a címtárlista űrlap be van zárva.
Amikor Felvétel

Meghívás egy könyvtárelem írásakor, ha az elemek közvetlenül a lista formában vannak megadva, és nem az elem űrlapon. Ez az egyszerű szerkezetű könyvtárak, például a Jobs könyvtár esetében használatos. Ez az eljárás lehetővé teszi a bemeneti adatok hibáinak ellenőrzését.

Példa, könyvtár pozíciók

Szülő kiválasztásakor (újszülő) Szülő (csoport) kiválasztásakor hívja meg. Ezzel az eljárással ellenőrizheti a felhasználó jogosultságát egy adott csoport tagjainak megtekintéséhez.
Tulajdonos kiválasztásakor (új tulajdonos) Akkor hívja meg, ha a gazdagép címtár tulajdonosa ki van választva. Akkor van értelme, ha ez a könyvtár egy másiknak van alárendelve.
WhenSettingSelection (Attribútumok, Érték) Előre meghatározott eljárás a kiválasztás bármilyen módon történő interaktív beállításához (kiválasztás, gyorskiválasztás, érték szerinti kiválasztás, kiválasztás előzményei) és a kiválasztás letiltásakor.
OnRowSelect() A sorkiválasztás feldolgozási módja (dupla kattintás vagy Enter billentyű) a Form.RowSelectionProcessing(1) metódussal elérhető címtárlista, bizonylatnapló, számlák, tranzakciós napló, tranzakciós napló formájában. Ezután egy sor kiválasztásakor ez az előre meghatározott eljárás kerül meghívásra.


Válogatás

Könyvtárlista formájában az elemek különböző sorrendbe rendezhetők: kód, név vagy bármely olyan attribútum szerint, amelynél a Rendezés jelölőnégyzet be van jelölve a Konfigurátorban.A rendezés típusát programozottan állíthatja be a rendezési módszerrel (Módszer, ChangePermission Flag)


OnOpen() eljárás
...... Válogatás("Kód",0); //kód szerinti rendezés, a felhasználó nem módosíthatja
Az eljárás vége

OnOpen() eljárás
......DirectoryList.Order.Set("Name Asc, Card Asc");
......//kérdés az olvasókhoz: hogyan lehet megakadályozni, hogy a felhasználó módosítsa a rendezési sorrendet?
Az eljárás vége

Kiválasztás

A címtárlista formában az elemek szűrhetők, pl. A felhasználónak csak a szükséges elemek jelennek meg. Programozottan beállíthatja a kijelölést a SetSelection (Attribútumok, Érték) módszerrel. Ehhez az attribútumnál be kell jelölni a „Kiválasztás attribútum szerint” jelölőnégyzetet a Konfigurátorban .

Statikus szűrő (csak 7.7-es verzió)

Az 1C 7.7-ben nem állítható be a kiválasztás időszakos részletekre vagy egyszerre több részletre (komplex szűrő). Ebben az esetben a UseList of Elements metódus jelenthet kiutat. Ezt a módszert át kell adni a megjelenítendő elemek listájának. Ezt a listát először létre kell hozni.

Eljárás ShowWorking Carpenters()

ElementList = createObject("ValueList");

Ref.SelectItems();

.....Ha (Adv.Parent = csoportMunka) ÉS (Adv.Position = asztalos állás) Akkor
..........Elemek listája.AddValue(Ref.CurrentElement());
.....EndIf;
EndCycle;

UseListElements(ListItems);

Az eljárás vége

Elemforma és csoportforma

Ha a könyvtár összetett szerkezetű, akkor kényelmesebb az elemeit külön ablakban szerkeszteni, nem listában. Az alábbiakban látható az Employees címtárelem formája.


A címtárelem űrlapon is vannak előre meghatározott eljárások (események):

Események

Leírás

OnOpen() Meghívás a címtárelem űrlap megnyitásakor. Beállíthatja a változók kezdeti értékeit, ellenőrizheti a felhasználói jogosultságokat egy adott könyvtárelem megnyitásához stb.
OnClose() A szótári tétel űrlap bezárásakor hívódik meg.
OnWrite()

Egy könyvtárelem írásakor hívják meg. Ez az eljárás lehetővé teszi a bemeneti adatok hibáinak ellenőrzését.

Példa: Alkalmazottak címtár

Felvételi eljárás
....Ha Category.Selected()=0 Akkor
.........Figyelmeztetés("A munkavállalói kategória nincs megadva!");
.........ReturnStatus(0);
.....EndIf;
Az eljárás vége

EnterNew() Új címtárelem interaktív bevitelekor hívják meg. Ebben az eljárásban ellenőrizheti a felhasználó jogait új címtárelemek létrehozására, valamint beállíthatja a részletek kezdeti értékeit.

Meg kell jegyezni, hogy a 8.0-s verzióban az összes objektum eseménylistája jelentősen bővült.

Elem létrehozása és rögzítése

Könyvtárelem programozott létrehozása

Az alábbiakban az Alkalmazottak címtárban egy új alkalmazott programozottan hozzáadódik a munkacsoporthoz. A Név, Átvétel dátuma és néhány időszakos adat kitöltésre kerül a telefonkönyvben.



Ref. Új();


Ref. Írd le();
//periódusos részletek beállítása csak az elem rögzítése után lehetséges
Ref.Category.Set (Ref.ReceptionDate, ktgPartners);
Ref.Position.Set (Ref.ReceptionDate, for Carpenter);

De szebbé teheted:

RefCotr = CreateObject("Directory.Employees");
SprSotr.UseParent(grpWorking);
Ref.UseDate(ReceptionDate); //Figyelem!
Ref.New();
SprSotr.Name = "Ivanov Ivan Ivanovics";
Ref.ReceptionDate = "01/01/2002";
//az időszakos részletekhez való hozzáférés ugyanolyan lesz, mint a szokásosakhoz
SprSotr.Category = ktgPartnerek;
Spr.Position = dljCarpenter;
SprCotr.Write();

Új = Directories.Employees.CreateItem();
Új.Szülő = csoportmunka;
Új.Név = "Ivanov Ivan Ivanovics";
New.ReceptionDate = "01/01/2002";
New.Write();

//A 8.0-s verzióban nincsenek időszakos részletek

Csoportok programozott létrehozása

RefCotr = CreateObject("Directory.Employees");

Ref. Egy új csoport();

Ref. Írd le();

Ref.NewGroup();

SprCotr.Write();

Új = Directories.Employees .Csoport létrehozásához();

Új Írd le();

Új = Könyvtárak["Alkalmazottak"] .Csoport létrehozásához();
New.Name = "Működik";
Új Írd le();

Figyelem!

Tranzakciók

Sok címtárelem létrehozásakor a munka felgyorsítása érdekében beépíthet egy ciklust a tranzakcióba. Ebben az esetben az összes elem tényleges létrehozása csak a CommitTransaction() paranccsal történik. A címtár blokkolva van a tranzakció futása közben.

RefCotr = CreateObject("Directory.Employees");
Tranzakció indítása();

Nom = 1-től 100-ig Ciklus
.....Ref.New();
.....SprSotr.Name = "New" + String(Nom);
.....RepCort.Write();
EndCycle;

CommitTransaction();


SprSotr = Directories.Employees;
Tranzakció indítása();

Nom = 1-től 100-ig Ciklus
.....Új = SprSotr.CreateElement();
.....New.Name = "New" + String(Nom);
.....Új.Write();
EndCycle;

CommitTransaction();

Iteráció elemek felett

Egyszerű keresés

RefCotr = CreateObject("Directory.Employees");
mód = 0; //kiválasztás a hierarchia figyelembevétele nélkül, 1 - figyelembe véve (alapértelmezés szerint)
Ref. Válasszon elemeket(Mód);
Míg a SprSotr. GetElement()=1 Ciklus
.....<действия с очередным элементом/группой>
EndCycle;

Szűrés (kiválasztás)

RefCotr = CreateObject("Directory.Employees");
HierarchyMode = 1; //1 - kiválasztása a hierarchia figyelembevételével, 0 - figyelembevétel nélkül
GroupMode = 0; //0 - ne vegyen fel csoportokat a kiválasztásban, 1 - tartalmazza
AttributeName = "Év"; //a Konfigurátorban az attribútumnál be kell jelölni a Selection jelölőnégyzetet
érték = 1980;
Ref. Válassza az ElementsBy Details lehetőséget(Attribútumnév,Érték,HierarchyMode,GroupMode);
Míg a SprCont.GetElement()=1 ciklus
.....<действия с очередным элементом>
EndCycle;

Szűrés hurokban

RefCotr = CreateObject("Directory.Employees");
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
Ref. Válasszon elemeket();
Míg a SprSotr. GetElement()=1 Ciklus

Ha adminisztratív pozíció<>dlzhCarpenter Akkor
....Folytatni; //ezt az alkalmazottat kihagyjuk, menjünk a ciklus elejére
endIf;

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

EndCycle;

Rendezési sorrend

A mintavétel előtt a következő módszerekkel állíthatja be a rendezési sorrendet:

CodeOrder()
NévRend()
Attribútum sorrendje(ReqName) //az attribútumban be kell jelölni a Rendezés jelölőnégyzetet a konfigurátorban
Fordított sorrendben()

Az alábbiakban például megnyílik az alkalmazottak választéka, szám szerint, csökkenő sorrendben:

RefCotr = CreateObject("Directory.Employees");
Ref.CodesOrder();
Ref.ReverseOrder();
Ref.SelectItems();

Kérés a címtárhoz

A címtárelemek keresése a Request segítségével szervezhető. Ez gyakran kényelmesebb, ha összetett kiválasztási feltételt vagy elemek csoportosítását alkalmazzuk. További részletek megtekintése. Kérések

Keressen egy elemet

Keressen egy elemet

RefCotr = CreateObject("Directory.Employees");
Ha a SprSotr. FindElement(SelectSotr)=1 Akkor
....//az elem aktuálissá válik
....SprSotr.Parent = grpMunka;
....RepCort.Write();
endIf;

Keresés kód alapján

Ha a SprSotr. FindByCode(1) = 1 Akkor
....ElementOrGroup = Ref.CurrentElement();
endIf;

Keresés név szerint

Ha a SprSotr. FindByName("Working")=1 Akkor
....grpWorking = Ref.CurrentItem();
endIf;

mód = 1; // 1 - keresés a megállapított alárendeltségen belül (szülő) (alapértelmezett); 0 - keresés a teljes könyvtárban
SearchFlag = 0; //1 - pontos egyezés keresése; 0 - név keresése az első karakterek alapján (alapértelmezett)
SprSotr.UseParent(grpWorking);
Ha Ref.FindByName("Iv",Mode,SearchFlag)=1 Akkor
....FirstWorkingIv = Ref.CurrentItem();
endIf;

Keresés részletek szerint

ReqName = "Év"; //az attribútumnál be kell jelölni a Rendezés jelölőnégyzetet a Konfigurátorban
SearchGlobeFlag = 1; // 1 - keresés a teljes címtárban, 0 - keresés alárendeltségen belül
Ha a SprSotr. FindByDetails(ReqName,1980,SearchGlobeFlag)=1 Ekkor
.....FoundElement = Ref.CurrentElement();
endIf;

Elem keresése a hurokban

RefCotr = CreateObject("Directory.Employees");
SprSotr.UseParent(grpWorking);
Ref.UseDate(WorkingDate());
Ref. Válasszon elemeket();
Míg a SprSotr. GetElement()=1 Ciklus

Ha Admin.Position = dlzhCarpenter Akkor
....Elvetél; //talált egy működő asztalost! ki a hurokból
endIf;

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

Kérés a címtárhoz

A címtárelem keresése a Request segítségével szervezhető. Ez gyakran kényelmesebb, ha összetett kiválasztási feltételt alkalmazunk. További részletek megtekintése. Kérések

Elemek eltávolítása

Közvetlen eltávolítás

RefCotr = CreateObject("Directory.Employees");
SprEmployee.FindElement(SelectEmployee);
Ref.Delete(); //azonnali törlés

Figyelem! Ha közvetlenül töröl egy elemet, győződjön meg arról, hogy más objektumokban nincs rá hivatkozás. Például az elmozdított alkalmazott felhasználható a Vakáció dokumentumban. Ha törli, az adatbázis hivatkozási integritása megsérül. Ebben az esetben javasolt a használata törlésre megjelölve.

A FindLinks(object) metódus segítségével programozottan beszerezheti a törölni kívánt objektumra mutató hivatkozást tartalmazó objektumok listáját.

Jelölje meg törlésre

Az adatbázis hivatkozási integritásának ellenőrzése érdekében a törölt elemeket egyszerűen megjelöljük törlésre. Ezután egy speciális menüparancs segítségével a Műveletek => „Megjelölt objektumok törlése” exkluzív módban az 1C rendszer ellenőrzi a hivatkozási integritást, és fizikailag törli az elemeket az adatbázisból, ha más objektumokban nincs rájuk hivatkozás.

SprSotr = CreateObject("Directory.Employees");
Ref.FindElement(SelectEmployee);
Ref.Delete(0); //kijelölés törlésre

//ellenőrizheti, hogy egy elem meg van-e jelölve törlésre
//függvény 1 - ha meg van jelölve, 0 - ha nincs
Mark = Ref. FlagDeletion();

//törölheti a jelölést
Ref.FindElement(SelectEmployee);
Ref. Törölje a jelölést();

Tranzakciók

Számos címtárelem törlésekor a munka felgyorsítása érdekében hurkot zárhat be a tranzakcióba. Ebben az esetben az összes elem tényleges törlése (törlés jelölése) csak a CommitTransaction() paranccsal történik. A címtár a tranzakció idejére blokkolva van.

RefCotr = CreateObject("Directory.Employees");
Tranzakció indítása();

Ref.SelectItems();
Míg a SprCont.GetElement()=1 ciklus
......Ref.Delete(0); //kijelölés törlésre
EndCycle;

CommitTransaction();

Hierarchikus könyvtárak

A címtárelemek listája az 1C:Enterprise rendszerben többszintű lehet. Ebben az esetben az összes címtársor 2 típusra lesz felosztva: „egyszerűen” címtárelemekre és címtárcsoportokra. A csoportok segítségével a többszintű címtár alacsonyabb szintjeire léphet. A címtárbeágyazási szintek lehetséges száma a Konfigurátorban állítható be.

A többszintű címtárak használata lehetővé teszi az információk címtárba történő bevitelének a szükséges részletességgel történő megszervezését. A többszintű címtár elemei és elemcsoportjai átvihetők egyik csoportból a másikba.

Figyelem! Hierarchikus kézikönyv is többszintű könyvtárat, vagy a könyvtárat csoportok.
Az 1C-ben lévő címtárcsoportokat gyakran " szülő".

Csoport programozott létrehozása

RefCotr = CreateObject("Directory.Employees");

Ref. Egy új csoport();
SprSotr.Name = "Működik";
Ref. Írd le();

Ref.NewGroup();
Ref.Name = "Elutasítva";
SprCotr.Write();

Figyelem! A Konfigurátorban beállíthatja, hogy az attribútum csak egy elemre, csak egy csoportra vagy mindkettőre legyen érvényes. Például a Fogadás dátuma mezőnek nincs értelme a Munkacsoport számára. Ezért nem szabad hozzáférnie az elem részleteihez, ha csoporttal dolgozik, és fordítva.

Az aktuális csoport beállítása


Ref. UseParent(grpWorking); //most a munkacsoporton belül vagyunk
Ref.SelectItems(); //megnyitja a Munkacsoport elemeinek válogatását

RefCotr = CreateObject("Directory.Employees");
Ref. UseParent(grpWorking);
Ref.New(); //új elem létrehozása a Munkacsoportban

Ha a könyvtár többszintű, akkor hasznos lesz a következő módszerek és attribútumok használata, amelyek lehetővé teszik az aktuális címtárelemről való információszerzést:

Módszer/attribútum

Leírás

Szint()

Ez a módszer az aktuális elem szintjét adja vissza. Például egy alkalmazottnál, aki a munkacsoportban van, a 2-es számot kapjuk.

Példa egy hierarchikus könyvtár kimenete fa formájában:

RefCotr = CreateObject("Directory.Employees");
Ref.SelectItems();

//behúzás megjelenítése az elem beágyazási mélysége szerint
For Nom=1 By Const.Level() Cycle
.....Jelenteni(".....");
EndCycle;

EndCycle;

Ez a csoport() Ez a metódus 1-et ad vissza, ha az aktuális könyvtárelem egy csoport, vagy 0-t, ha nem csoport.

Példa az alkalmazottak kibocsátására (a csoportok nem kibocsátottak):

RefCotr = CreateObject("Directory.Employees");
Ref.SelectItems();
Míg a Ref.GetItems()=1 ciklus

Ha Ref.ThisGroup()=1 Akkor
......Folytatni; //csoportok kihagyása, ugorjon a ciklus elejére
endIf;
Jelentés(Ref.Name);

EndCycle;

A csoporthoz tartozik (...) A metódus ellenőrzi, hogy az aktuális címtárelem a megadott csoporthoz tartozik-e (függetlenül attól, hogy a mögöttes szinten található).
Visszatér: 1 - ha az elem a megadott csoporthoz tartozik, 0 - ha nem.

Példa az Alkohol csoportba tartozó termékek megjelenítésére, függetlenül attól, hogy a pezsgő, sör, vodka, bor stb. alcsoportokba tartoznak-e:




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

EndCycle;

tulajdonság Szülő

Ez az attribútum tartalmazza az aktuális könyvtárelem szülőjét, azaz. az a csoport, amelyben az aktuális elem található. Olvasható és írható.

Példa: az összes termék átvitele az Alkohol csoportból az Eladás csoportba:

DirectoryProducts = CreateObject("Directory.Products");
SprProducts.SelectItems();
Míg a SprProducts.GetItems()=1 ciklus

Ha Termékek.Csoporthoz tartozik(groupAlcohol)=1 Akkor
.....SprSotr.Parent = grpSale;
.....RepCort.Write();
endIf;

EndCycle;

Vagy szebbé teheti, és áthelyezheti az egész Alkohol csoportot az Eladás csoportba, akkor az összes alcsoport és elem is átkerül az Eladás csoportba.

DirectoryProducts = CreateObject("Directory.Products");
SprProducts.FindItem(grpAlcohol);
SprProducts.Parent = grpSale;
SprProducts.Write();

FullCode()

Egy karakterláncot ad vissza, amely tartalmazza a kiválasztott könyvtárelem teljes kódját, az összes magasabb szintet "/" karakterrel elválasztva.

Például "2/7/123"

Teljes név()

Egy karakterláncot ad vissza, amely tartalmazza a kiválasztott könyvtárelem teljes nevét, minden magasabb szinttel „/” karakterrel elválasztva.

Például: "Alkohol/Pezsgő/Szovjet"

Csoport kiválasztásának képessége a párbeszédes kellékekben

Gyakran célszerű az űrlapon található részletekért, amelyek a Címtár típussal rendelkeznek, hogy letiltsák a csoport kiválasztását. Ekkor ebben a mezőben csak egy elem jelölhető ki, csoport pedig nem. Általában könnyebb egyszer megpróbálni, mint többször elmagyarázni.

Form.SelectEmployee. Csoport kiválasztása(0); //letiltja a csoport kiválasztásának lehetőségét

Alárendelt címtárak

Könyvtár- tulajdonos, ez is egy kézikönyv - fő-.
A tulajdonos könyvtár és a slave címtár is meghívásra kerül összefüggő segédkönyvek.
A relációs adatbázis szempontjából a tulajdonosi könyvtár a szülőtábla, a slave könyvtár a gyermektábla.

Alárendelt címtárak hozzárendelése

Bármely könyvtár használható önmagában, vagy alárendelhető egy másik könyvtárnak. Például a szerződések címjegyzéke külön is használható, vagy összekapcsolható a szervezetek névjegyzékével.

Ha egy könyvtárat a rendszerben már létező könyvtárak valamelyikének szeretne alárendelni, az „Alárendelt” mezőben válassza ki a könyvtár nevét. Az 1C:Enterprise rendszerben egy ilyen könyvtárat tulajdonosnak neveznek.

Ellentétben a többszintű könyvtárral, amelyben minden elem azonos szerkezetű, az alárendelt könyvtárak mechanizmusa lehetővé teszi a különböző struktúrájú elemek összekapcsolását. Ebben az esetben az alárendelt címtár minden eleme hozzá lesz rendelve a tulajdonosi címtár valamelyik eleméhez.

Külsőleg így fog kinézni egy alárendelt címtárral való munkavégzés az 1C:Enterprise rendszerben.

Ha a megjelenítési mód hierarchikus lista formájában egy alárendelt könyvtárhoz van beállítva, akkor a címtár használata előtt először a tulajdonos könyvtár elemet kell kiválasztani. A képernyőn megjelenítve az alárendelt könyvtár a címében a tulajdonos elem nevét fogja tartalmazni, az alárendelt könyvtár elemlistája pedig csak a tulajdonos elemhez kapcsolódó elemeket tartalmazza. Amikor a tulajdonos elem megváltozik, az alárendelt könyvtárablakban lévő információk ennek megfelelően frissülnek.

Ha a tulajdonos elem kiválasztása nélkül nyit meg egy alárendelt könyvtárat, akkor az alárendelt könyvtár ablakában nem jelenik meg elem, és az ablak címében a „Tulajdonos elem nincs megadva” üzenet jelenik meg.

Ha az 1C:Enterprise rendszerrel dolgozik, a hierarchikus lista formájában történő megjelenítés letiltható egy alárendelt könyvtárban. Ebben az esetben ennek a könyvtárnak az összes eleme megjelenik a slave könyvtár ablakában, azaz a különböző tulajdonosokhoz rendelt elemek összekeverve jelennek meg. Azonban az alárendelt könyvtár bármely eleme „ismeri” a tulajdonosát: ha a „Szerkesztés párbeszédpanelen” mód engedélyezve van a könyvtárban (lásd alább a „Címtárűrlapok létrehozása”), akkor a tulajdonos elem neve megjelenik a címben. a címtárelem-szerkesztő ablakban.

Az aktuális tulajdonos beállítása


SprAgreements.UseOwner(SelectContractor);
SprAgreements.SelectItems(); //megnyitja a kiválasztott partner szerződéseinek választékát
<...>

Információ az aktuális elemről

Ha a címtár alárendelt, akkor hasznos lesz a következő módszerek és attribútumok használata, amelyek lehetővé teszik az aktuális címtárelemről való információszerzést:

Tulajdonság

Leírás

attribútum Tulajdonos

Ez az attribútum tartalmazza az alárendelt könyvtár aktuális elemének tulajdonosát, azaz. eleme annak a gazdagépnek, amelyhez ez az elem tartozik. Az attribútum olvasható és írható.

Példa az összes szerződés átvitele egyik partnertől a másikhoz (a Szerződések címjegyzéke alárendeltje a szerződő felek címtárának):

DirectoryAgreements = CreateObject("Directory.Agreements");
SprAgreements.UseOwner(Counterparty1);
SprAgreements.SelectItems();
Míg a SprAgreements.GetElements()=1 ciklus

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

EndCycle;


Időszakos részletek

A „Periodikus” opció engedélyezése lehetővé teszi egy könyvtárattribútum megadását, amely tárolja az értékében bekövetkezett változások előzményeit. Az 1C:Enterprise rendszerben egy ilyen részletet periodikusnak neveznek, és a következő tulajdonsággal rendelkezik: a „hétköznapi” (nem időszakos) részletektől eltérően az 1C:Enterprise rendszer az ilyen részlet értékeit a változás dátuma szerint tárolja. . Ha egy ilyen attribútum értékéhez hozzáfér egy adott dátumhoz, akkor az értéke az adott dátumra, vagy ha hiányzik, akkor a legközelebbi korábbi dátumra, amikor az attribútum értékét beállították.

A katalógusrészletek ezen tulajdonsága lehetővé teszi például az árfolyamok előzményeinek egyszerű megszervezését a valutakönyvtárban.

Az időszakos részletek az 1C:Enterprise rendszer beépített nyelvén érhetők el - fogadja és rögzíti a részletek értékét egy megadott dátumra. Figyelembe kell azonban venni, hogy amikor egy változó értékét egy adott időpontra kapjuk, akkor annak értéke a megadott vagy (ha nincs érték a megadott dátumra) a legközelebbi előző dátumra, és a a periodikus változót mindig a megadott dátumra rögzítjük.

Abban a módban, amikor a konfigurációt időszakos részletekhez használja, megnyithatja az „Előzmények” ablakot. Ez az ablak egy táblázat, amely két oszlopból áll: a címtárattribútum értékének módosításának dátumából és az adott dátum értékéből. Az „Előzmények” ablakban közvetlenül szerkesztheti az attribútumérték változástörténetét: írjon be új sorokat, szerkessze vagy törölje a meglévőket.

Időszakos részletezési módszerek
//így tudjuk meg, hogy egy adott napon milyen kategóriája volt a munkavállalónak
Kategória = SprSort.Category.Get(SomeDate);

//így állítjuk be a munkavállaló kategóriáját egy adott időpontra
Ref.Category.Set(SomeDate, NewCategory);

Figyelem! Ezek a módszerek akkor használhatók, ha korábban nem használta a UseDate metódust

Az időszakos részletek mintavételének dátumának beállítása

//beállíthatja az időszakos részletek mintavételének dátumát a teljes címtárra vonatkozóan
Ref. UseDate(SomeDate);

//akkor már alacsonyabb ez tiltott használja a Set and Get metódusokat
//Az időszakos részletek elérése megegyezik a rendszeres részletekkel
Kategória = SprSotr.Category;
Spr. Fizetés = 6000;

"Periodikus" objektum

Az időszakos részletek történetének kezeléséhez nagyon kényelmes a „Periodikus” objektum használata.

Példa, jelenítse meg a munkavállaló karriertörténetét az aktuális évre:

HistoryCareers = CreateObject("Periodikus");
CareerHistory.UseObject("Pozíció", SelectEmployee);
Karriertörténet.SelectValues(Év kezdete(MunkaDátum(),Év vége(MunkaDátum()));
Míg HistoryCareers.GetValue()=1 Loop
....Report(String(KarrierHistory.DateÉrték) + " " + String(Karriertörténet.Érték));
EndCycle;

Az értékeket a Periodikus objektum segítségével is szerkesztheti és törölheti. A módszerek teljes listáját a Syntax Helperben találja.

Dokumentumok elkészítése

Bizonylat feladásakor gyakran szükséges egy adott dátumra vonatkozó időszakos attribútum új értéket beállítani. Ezt nevezik dokumentummozgatásnak. Ebben az esetben a Címtárattribútumok beállítása módszert kell használnia:

Állítsa be a címtár részleteit(Alkalmazott, "Pozíció", Új pozíció, Mozgásdátum);

Az eljárás vége

Ha a bizonylatnak van táblázatos része, és azt szeretné, hogy a dokumentummozgások a bizonylatsorszámhoz legyenek kapcsolva, akkor a BindRow módszert kell használnia.

Eljárás ProcessingConduct()

SelectRows();
Míg a GetString()=1 ciklus

BindString(RowNumber);
Címtár részleteinek beállítása (Alkalmazott, "Pozíció", Új pozíció, Költözési dátum);

EndCycle;

Az eljárás vége

Válogatás a könyvtárból

A kiválasztási funkció lehetővé teszi több érték kiválasztását egy keresésből vagy más objektumból anélkül, hogy bezárná azt.Például létezik egy Számla bizonylat, amelyben a felhasználó több terméket is megadhat.

A kiválasztás szervezése

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

OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);


...Új sor();
...Termék = Cikk;
Az eljárás vége

Használhatja az űrlapkontextust, és azonnal a kívánt csoporthoz léphet, például:

OpenSelection("Directory.Nomenclature","FormForSelection",Cont,1);
Cont.UseParent(grpAlcohol);

Procedure ProcessingFit (Elem, FormContent)
...Új sor();
...Termék = Cikk;
Az eljárás vége

Értékek beállítása és lekérése a kijelölésből

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

<ИмяРеквизита>- sor az értékkiválasztó űrlap attribútuma nevével;
<Значение>- az attribútum értéke.

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

<Выражение>- egy karakterlánc-kifejezés, amelynek értéke a kiválasztási űrlap kontextusában kerül kiszámításra, és ennek eredményeként kerül visszaadásra.

Egyéb hasznos módszerek

Módszer

Leírás

Kilátás() Állítsa be vagy olvassa be a címtártípus aktuális nevét. A címtártípus aktuális nevét adja vissza, a konfigurátorban megadottak szerint, például „Alkalmazottak”. A címtár típusának beállítása a "Könyvtár" típus részleteinél lehetséges, pl. határozatlan típusú könyvtár.
ViewView() Szerezzen egyéni nézetet a címtárnézetről a konfigurátorban megadottak szerint.
Egy karakterlánc-értéket ad vissza, amely a címtárnézet egyéni megjelenítését tartalmazza (szinonimája).
SetAttribute (Attribútumnév, Érték) Állítsa be az attribútum értékét a neve alapján.
<ИмяРеквизита>- egy karakterlánc-kifejezés, amely tartalmazza az attribútum nevét, a konfigurátorban megadottak szerint.<Значение>- a beállítandó attribútum értékét tartalmazó kifejezés.
GetAttribute(AttributeName) Szerezze meg egy attribútum értékét a neve alapján. Az attribútum értékét adja vissza.
Kiválasztott()

1-et ad vissza - ha a könyvtárelem ki van jelölve, 0-t - ha nincs kiválasztva. Gyakran használják a hibák ellenőrzésére, hogy megbizonyosodjanak arról, hogy minden szükséges adat rendelkezésre áll.

Választ(...) Egy párbeszédablak meghívása egy könyvtárelem kiválasztásához.
Visszatér: 1 - ha az elem ki van választva; 0 - ha nincs kiválasztva. A kiválasztott elem lesz az aktuális.

A könyvtárszerkezet olvasása

Kerékpározzon a kézikönyvek szerint

DirectoriesInConfiguration száma = Metadata.Directory();
Nom=1 esetén a konfigurációs ciklusban lévő könyvtárak száma

cfgSpr = Metadata.Directory(Nom);
Azonosító = cfgSpr.Identifier();
FullIdentifier = cfgSpr.FullIdentifier();
Szinonim = cfgSpr.Synonym();

Az 1C könyvtárak egy speciális metaadat-fa objektum, amely statikus hivatkozási információk tárolására szolgál. Például tipikus konfigurációkban a következő nézetek láthatók: , Nómenklatúra, Alkalmazottak, Tárgyi eszközök stb. A könyvtárakban lévő információk általában nem változnak gyakran. A könyvtárakat ezt követően szinte minden számviteli objektumban könyvelési részként vagy referencia információként használják.

Az alábbiakban egy könyvtár beállítását és tervezését tekintjük meg a konfigurátorból, példaként a „Nómenklatúra” könyvtár használatával.

Alapvető lap

Az „Alap” lap megadja a nevet, a szinonimát, az objektumábrázolást és a cél leírását.

„Könyvtárhierarchia” lapon

Itt jön létre a címtár hierarchiája.

Az 1C 8.3 hierarchiája kétféle - " csoportok és elemek"És" elemeket". Abban különbözik, hogy az első esetben csak egy mappa (csoport) lehet szülő (mappa), a második esetben pedig egy elem is lehet szülő.

„Csoportok elhelyezése a tetején” - a zászló felelős a csoportok lista formában történő megjelenítéséért.

Szintén a beállításokban korlátozhatja a csoportok számát a címtárhierarchiában a megfelelő beállítás segítségével.

Tulajdonosok lap

Egy címtár alárendelhető egy másik könyvtárnak. Az 1C 8.3 konfigurálása szempontjából ez azt jelenti, hogy a „Tulajdonos” attribútum kötelezővé válik az alárendelt elemnél. Példa egy ilyen kapcsolatra a címtárak között szabványos konfigurációkban: „Nómenklatúra - Mértékegységek”, „Szerződéses felek – Vállalkozói szerződések”.

A címtár tulajdonosa a következő metaadat-objektumok is lehetnek: , .

Adatok fül

Szerezzen ingyen 267 videóleckét 1C-n:

A legfontosabb lap programozói szempontból. Ez tartalmazza a címtár részleteit.

A könyvtár szabványos részleteket tartalmaz, amelyeket az 1C 8.2 programozó nem szerkeszt; ezek listája a „Standard Details” gombra kattintva tekinthető meg:

Mindegyiknél részletesebben kitérek:

  • Ez a csoport— egy logikai típusú attribútum, amely jelzi, hogy csoportról vagy elemről van-e szó. Csak a hierarchikus könyvtárban érhető el. Jegyzet, ennek az attribútumnak az értéke nem módosítható 1C: Enterprise módban.
  • Kód— kellékek, típusszám vagy karakterlánc (általában karakterlánc). A rendszer által automatikusan kiosztott szám. Általában a következőképpen számítják ki (előző kód + 1). A karakterlánc típusát javaslom, mert a numerikus értékek rendezése nem a várt módon működik. Listában és beviteli mezőkben címtárbemutatóként használható. Általában egy elem keresésére szolgál karakterlánc beírásakor. Ha el kell távolítania a Kód mezőt, írjon be nullát a sor hosszába.
  • Név— kötelező adatok, karakterlánc típusa. A sor maximális hossza 150 karakter. Listában és beviteli mezőkben címtárbemutatóként használható. Általában egy elem keresésére szolgál karakterlánc beírásakor. Ha el kell távolítania a Név mezőt, írjon be nullát a sor hosszába.
  • Szülő— a DirectoryLink típusú attribútum.<ИмяТекущегоСправочника>. Csak a hierarchikus könyvtárban érhető el. A hierarchiában a fölérendelt szülőre mutat. Ha az elem vagy csoport a könyvtár gyökerében található, akkor a Könyvtár érték kerül megadásra.<ИмяТекущегоСправочника>.EmptyLink.
  • Tulajdonos— hivatkozás az aktuális címtárelem (csoport) tulajdonos elemére. Elérhető csak az alárendelt 1C könyvtárban.
  • FlagDeletion— Boolean típusú kellékek. Felelős a „törlési jel” megjelenítéséért a rendszerben. A törlésre megjelölt elem használhatatlannak minősül, de régi dokumentummozgások maradhatnak rajta.
  • Link— karakterlánc típusú mező. Ez az attribútum egy egyedi objektumazonosítót - GUID - tárol. Amit a rendszerben a „link” nevű vizuális megjelenítésben látunk, az csak az objektum reprezentációja. Nem módosítható.
  • Előre meghatározott— logikai típus, megjeleníti, hogy az elem előre definiált-e, erről később. Nem módosítható.

Az „Adatok” fül a könyvtár rendszerbeli reprezentációját is jelzi, a 8.2.16-os verzió előtt az ábrázolás csak Kód vagy Név lehetett. A platform legújabb verzióiban (8.3-tól kezdődően) a nézet önállóan leírható a menedzser modulban a „ViewReceivingProcessing” kezelő segítségével.

Számozás fül

Itt adhatja meg a címtár számozással kapcsolatos beállításait. Az automatikus számozás használata javasolt. Az egyediség ellenőrzése egy zászló, amely szükség esetén segít egyedivé tenni a kódot. Ha a beállított jelzővel megpróbál egy könyvtárelemet nem egyedi kóddal írni, az 1C-ben a „A címtárkód nem egyedivé vált” üzenet jelenik meg.

Kódsorozat - meghatározza a telefonkönyv számozásának módját; megadhatja a számozást tulajdonos szerint. Például a „Szarvak és paták” szerződő félnek saját szerződésszámozása lesz - „1, 2, 3” stb.

Űrlapok lap

A címtár űrlapjai itt találhatók. Ha a konfiguráció normál és felügyelt módban is elindul, akkor alapértelmezés szerint két lap lesz űrlappal: „fő” és „speciális” – a normál és a felügyelt alkalmazások esetében eltérő.

Ezen az oldalon található a könyvtár egyik fontos jellemzője - „“. Ez az 1C 8 nagyon kényelmes funkciója, amely lehetővé teszi, hogy az adatok kitöltésekor a beviteli mezőben ne lépjen be a könyvtárba, hanem írja be a nevét, kódját stb. és válassza ki a kívánt elemet a legördülő listából. Ez így néz ki:

Egyéb lap

A lapon gyorsan hozzáférhet a címtár fő moduljaihoz - az objektummodulhoz és a kezelőmodulhoz.

Az oldalon előre meghatározott könyvtárelemek listáját is megadhatja. Ezek olyan elemek, amelyeket Vállalati módban nem lehet törölni. Az előre definiált elemek név szerint közvetlenül elérhetők a konfigurátorban, például: Directories.Nomenclature.Service.

Ez a lap határozza meg a blokkolási módot is - automatikus vagy vezérelt. 1C: Enterprise módban elérhető teljes szöveges keresés, valamint a címtár referenciainformációinak használata.



Véletlenszerű cikkek

Fel