Kaj so periodični registri informacij v 1s. Periodični registri informacij. Igranje s ponovnimi izračuni

Ta članek bo obravnaval tak koncept, kot so dokumenti 1C, kakšen konfiguracijski objekt je, kakšen je njegov namen, katere lastnosti po meri obstajajo za predmet; kako je mogoče s tem objektom delati interaktivno in programsko.


Življenje katerega koli podjetja ni mogoče brez registracije različnih vrst dogodkov, ki se pojavljajo zelo pogosto. Ti dogodki se imenujejo poslovne transakcije. Registracija poslovne transakcije v 1C je dokument.

Primeri poslovnih transakcij: prejem blaga v skladišče, odpis blaga iz skladišča, prejem sredstev v blagajno, najem delavca itd.

Vse te transakcije morajo biti dokumentirane v ustreznih papirnih dokumentih. Objekt dokumenta, registriran v sistemu 1C, je ravno analog tega papirnega dokumenta. Opozoriti je treba, da imamo vsaj dva različna računa. To sta poslovodno računovodstvo in regulirano računovodstvo. V urejenem računovodstvu poslovne transakcije ne more obstajati brez listine, ki jo potrjuje. V poslovodnem računovodstvu prisotnost listine za poslovno transakcijo ni pogoj, saj je seznam poslov, ki se izvajajo v poslovodnem računovodstvu, lahko raznolik. V tem primeru se nekatere informacije preprosto zabeležijo v obliki elektronskega dokumenta.

Imamo torej papirni dokument in elektronski dokument. Med njima je treba narediti analogijo. Pri izdaji papirnega dokumenta je predpogoj prisotnost številke in datuma v njem. Podobno mora elektronski dokument vsebovati številko in datum. Po teh poljih lahko najdemo dokument, ki ga potrebujemo. Zato sta številka in datum ključni lastnosti.

Upoštevajte ključno lastnost "Datum". V različici 7.7 je bil imenovan "DataDoc", vendar je bil v različici 8 preprosto poklican "Datum". To je zelo pomembna lastnost dokumenta. Zakaj je tako Razmislite o situaciji s trgovinsko organizacijo, v kateri se izvaja registracija dejstva o prejemu blaga in njegove prodaje. Torej blaga, katerega datum prejema je daljši od datuma prodaje, ni mogoče prodati, ker je nemogoče prodati blago, ki še ni prispelo.

Upoštevajte, da je v nekaterih standardnih konfiguracijah možno prodati blago, ki še ni prispelo. Vendar je to prej izjema kot pravilo in se nanaša na posebnosti trgovskega podjetja.

Zato je datum v dokumentu tako pomemben. Opozoriti je treba tudi, da v nepremičnini "Datum" vsebuje ne samo datum, ampak tudi čas dokumenta na najbližjo sekundo.

Zelo pogosto takšna identifikacija dokumenta na časovni osi ni dovolj.

Predstavljajmo si situacijo, ko 1. v mesecu prispe v skladišče 100 enot blaga. Nato je 2. dan istega meseca ob 23:59:59 prodan v količini 80 enot. Dokument se izvede brez težav, ker je blaga dovolj. Recimo, da tudi 2. ob 23:59:59 nekdo drug prav tako proda isti izdelek v količini 50 enot. Tudi ta dokument bo potekal brez težav, saj je v času 23:59:59 ta izdelek na voljo. Čeprav v resnici imamo, se zaradi drugega dokumenta oblikuje negativno stanje 30 enot blaga.

Da do takih situacij ne bi prišlo, je datumu in uri dodana tudi pozicija dokumenta, in sicer njegova povezava. Ta identifikacija dokumenta po datumu in času + povezava se imenuje trenutek časa. In pri knjiženju drugega dokumenta bo sistem prikazal sporočilo o pomanjkanju 30 enot blaga in ne bo dovolil knjiženja dokumenta.

Kako dobiti trenutek v času? In pridobljeno je z metodo "Trenutek časa", ki pripada razredu "DocumentObject". To vrne vrsto podatkov "Trenutek časa".

To vrsto podatkov je treba posredovati kot parameter zahtevam, ki prejmejo stanje blaga.

Primer pridobivanja točke v času:

&OnClient Procedure GetTimePoint(Command) GetTimePointOnServer(Object.Reference) ; EndProcedure &OnServer Procedure GetTimeOnServer(Reference) If Reference. Izprazni() Nato prijavi( "Dokument ni zabeležen!") ; Vrnitev ; EndIf ; DocumentObject = Povezava. GetObject(); MomentTime = DocumentObject. Trenutek časa(); Poročilo(MomentInTime); EndProcedure // GetTimeOnServer()

Nastavitev časa dokumenta

Analizirajmo, kako sistem nastavi časovni žig za novo vnesene dokumente. Ko je dokument ustvarjen, je privzeto nastavljen na trenutni sistemski datum z ničelnim časom, in ko je napisan, je nastavljen na trenutni časovni žig.


V operativnem izvajanju je naslednji odtenek. Če je njegov datum enak trenutnemu času, bo čas nastavljen na trenutni čas. Če bi bil dokument knjižen neoperativno, bi bil samo ob vnosu dodeljen trenutni časovni žig, nato pa bi ostal nespremenjen. Če dokument ni vnesen do tekočega datuma, se najprej dodeli ničelni časovni žig, pri snemanju pa zadnja oznaka za ta dan. To pomeni, da sistem poišče zadnji vneseni dokument za ta dan, pogleda njegov čas, ga poveča za sekundo in ga dodeli našemu dokumentu. Če ustvarite dokument za datum, v katerem ni bil vnesen dokument te vrste (npr. prejem blaga), ampak so bili vneseni dokumenti druge vrste (npr. odpis blaga), bo sistem vzel največ zadnji datum dokumenta druge vrste, mu dodamo sekundo in dodelimo naš dokument. Če ustvarite dokument z datumom, v katerem ni bil vnesen noben dokument, noben tip, mu bo platforma dodelila čas 12:00:00.

In še ena situacija. Predstavljajmo si, da imamo v bazi dokument s časovnim žigom 23:59:59 in če dodamo še eno sekundo, bo to že naslednji dan. Zato sistem zapusti isti čas, to je 23:59:59. Zgoraj opisan sistem nastavitve časa dokumenta je samo privzeta vrednost. Toda to vedenje je mogoče preglasiti. Odprimo obrazec dokumenta v konfiguratorju in se obrnemo na njegove lastnosti. V lastnostih bomo videli polje "Samodejni čas". Če v tej lastnosti ne spremenimo ničesar, potem poteka oblikovanje časa dokumenta, kot je opisano zgoraj. Lahko pa določite čas: trenutni ali na začetku dneva, vedno prvi, vedno zadnji in ne uporabljajte.

Druga ključna lastnost dokumenta je število. Številka dokumenta je tako kot datum obvezna lastnost katerega koli dokumenta. Potreben je za prepoznavanje dokumenta na izpisu.

Možnost držanja

Dokument ima lahko tri stanja: ustvarjeno, označeno za brisanje in potekala. Knjiženi dokument lahko spremeni finančno stanje podjetja, spremeni količino blaga na zalogi itd. To pomeni, da je neknjiženi dokument nekakšen osnutek, in ko je knjižen, začne veljati in v skladu s tem registrira nek dogodek. Sistem 1C omogoča spreminjanje knjiženega dokumenta, preklic njegovega zadrževanja, kar je za razliko od zahodnih analogov programov mehkejše načelo računovodstva.

Standardni podatki o dokumentu

Poleg atributov, ki jih razvijalec doda dokumentu, obstaja tudi standardni nabor atributov, ki so že vgrajeni v dokument na ravni platforme. To: povezava, številka, datum, oznaka za izbris, objavljeno. Najdete jih na zavihku. "Podatki", gumb "Standardne podrobnosti".

O številki in datumu smo že govorili. Zastavica za izbris je logična vrednost, ki vsebuje informacije o tem, ali je dokument označen za izbris ali ne. Povezava- pogoj za enolično identifikacijo dokumenta v tabeli dokumentov. Zadržano- logična lastnost, ki vsebuje informacije o tem, ali je bil dokument objavljen ali ne.

Dokument je lahko v treh stanjih:

  • Ni označeno za brisanje in ni izvedeno;
  • Ni označeno za izbris in izvedeno;
  • Označeno za brisanje in neizvedeno.

Kot smo že omenili, lahko razvijalec samostojno doda potrebne podrobnosti, pa tudi tabelarične dele. Vsak tabelarični del ima en standardni atribut - "Številka vrstice".


Shranjevanje dokumentov v informacijski bazi

V bazi podatkov je vsaka vrsta dokumenta shranjena v ločeni tabeli. Ta tabela vsebuje vse podrobnosti dokumenta. Tabelarni deli so shranjeni v ločenih tabelah. Povezavo s tabelo dokumentov vzpostavi atribut "povezava".

Oštevilčenje dokumentov

Vsak dokument ima številko, katere nastavitev nastavimo na zavihku "Številčenje". Na tem zavihku lahko nastavite funkcijo samodejnega številčenja, funkcijo nadzora edinstvenosti, vrsto številke (številska ali niz) in njeno dolžino.

Priporočljivo je, da nastavite vrsto niza številke, ker bo v prihodnosti morda treba navesti predpono organizacije v številki, kar se zelo pogosto zgodi.

Predpona je nastavljena v modulu predmeta dokumenta, v postopku "Pri nastavitvi nove številke".

NewNumberSetting Procedure(StandardProcessing, Prefix) EndProcedure

Tudi na zavihku "Številčenje" lahko nastavimo pogostost dokumenta.

Možne vrednosti:
  • Neperiodično;
  • V enem letu;
  • znotraj bloka;
  • V enem mesecu;
  • V enem dnevu.
Običajno izberite vrednost "v enem letu", to pomeni, da se bo v novem letu začelo številčenje dokumentov od začetka.

Včasih obstajajo situacije, ko je potrebno neprekinjeno oštevilčenje za več vrst dokumentov. Za te primere sistem zagotavlja tak predmet kot števec.

Vnesti ga je treba v polje "Števec".

Hranjenje dokumentov

Malo o vodenju dokumentov. Za sistem pomeni, da je dokument knjižen, če je logična zastavica "Zadržano" dokument je nastavljen na "Prav". Na splošnem seznamu so takšni dokumenti označeni z ustrezno ikono. Za platformo to ne pomeni nič več, z vidika logike programa pa lahko objavljeni dokument vpliva na finančni rezultat podjetja. To pomeni, da lahko generira premike v registrih, na podlagi katerih se generirajo poročila.

Ko pride do interaktivne ali programske izvedbe, se sproži izvedba postopka "HandlingHandling()", ki je v modulu objekta dokumenta.

// Vstavite vsebino obdelovalca. EndProcedure

Ta postopek ima dva parametra: zavrnitev in način. Če nastavite parameter napake na vrednost "Prav", knjiženje ne bo izvedeno. Parameter "Način" nastavi način knjiženja dokumenta - operativni oz neoperativno. Izvajalec mora v tem postopku premike vpisati v same registre.

V katerih registrih bo dokument izvajal premike nastavite na zavihku "Gibanja".

Primer postopka naknadne obdelave

Postopek obravnavanja knjiženja (napaka, način knjiženja) // Ta fragment zgradi konstruktor. // Pri ponovni uporabi konstruktorja ročne spremembe // bo izgubljen!!! // registracija potrdila GoodsInStock Premikanje. blago na zalogi. dnevnik = res; Za vsak TekRowProducts iz cikla izdelkov Gibanje = Gibanje. blago na zalogi. Dodaj(); Premikanje. MovementType = MovementTypeAccumulation. Prihajam; Premikanje. obdobje = datum; Premikanje. Izdelek = TekRowProducts. izdelek; Premikanje. Količina = CurrentLineProducts. Količina; Končni cikel ; //__REGISTER_MOTION_CONSTRUCTOR EndProcedure

Pravice dostopa do dokumenta

V sistemu 1C obstajajo različne vrste dostopov. To sta analiza interaktivnih akcij in analiza programskih akcij.

Kaj so interaktivna dejanja? To so dejanja, ki jih izvaja neposredno uporabnik: pritiskanje gumbov, potrditvena polja itd. Programska dejanja izvaja določen algoritem, za katerega uporabnik morda niti ne ve.

Pravice dostopa do dokumenta so konfigurirane na zavihku "Pravice". Tukaj vidimo več razdelkov, to je razdelek, kjer so prikazane vloge, razdelek z neposrednimi pravicami in razdelek "Omejitve dostopa do podatkov"(ne bomo ga upoštevali, potrebno je pri uporabi tako imenovanega mehanizma RLS).

Odsek "Roly" prikaže vse vloge vnesene v informacijsko bazo, za katere v razdelku "Pravice" samo nastavimo pravice dostopa.

Možne vrste pravic dostopa:
  • branje (programsko), ogledovanje (interaktivno);
  • dodajanje (programsko), interaktivno dodajanje (interaktivno);
  • spreminjanje (programsko), urejanje (interaktivno);
  • brisanje (programsko), interaktivno brisanje (interaktivno);
  • dirigiranje (programsko), interaktivno dirigiranje (interaktivno);
  • razveljavi (programsko), interaktivno razveljavi (interaktivno);

Interaktivni način dostopa vsebuje tudi pravice kot so: interaktivno označevanje za izbris, interaktivno odznačevanje za izbris, interaktivno brisanje označenih, interaktivno neoperativno izvajanje, interaktivno spreminjanje zaključenih, vnos po vrsticah.

Tabelarni del dokumenta

Tabelarični deli dokumenta so nastavljeni na zavihku "Podatki" in niso nič drugega kot zbirke, katerih elementi so vrstice tabelarnega dela. Zato je obhod njegovih elementov možen tako z zanko kot z neposrednim dostopom po indeksu (številčenje se začne od nič).


Mnogi programerji, ki poznajo različico 7.7 in želijo obvladati različico 8, se sprašujejo, kam so izginile periodične referenčne podrobnosti in periodične konstante. In če niso, kakšen mehanizem jih potem nadomesti? V 1C:Enterprise 8 se periodični informacijski registri uporabljajo za shranjevanje zgodovine sprememb vrednosti.

Na splošno so informacijski registri zasnovani za shranjevanje informacij, razširjenih v kombinaciji dimenzij. Glavna razlika med periodičnim registrom informacij in običajnim je v tem, da vsebuje dodatno sistemsko dimenzijo »Obdobje« tipa »datum«. To vam omogoča, da dobite ne le trenutne informacije o predmetu, ampak tudi kadar koli.

Za periodično spremenljivko je lastnost "Periodičnost" določena med ustvarjanjem iz naslednjih možnih vrednosti:
- v sekundi,
- v enem dnevu
- v enem mesecu
- znotraj četrtletja
- v enem letu
- po položaju vpisnika (na voljo, če je način beleženja vpisnika »Oddaja vpisniku«).

Upoštevajte, da je tip informacijskega vira lahko primitiven (število, niz, datum, logična vrednost) ali sklic (CatalogReference, DocumentReference, EnumReference itd.). Poleg tega lahko v register informacij shranite tudi slike in druge nestrukturirane informacije, saj lahko ustvarite vir tipa "ValueStorage".

Najenostavnejši primer registra periodičnih informacij so tečaji valut. Ta informacijski register shranjuje tečaje vseh valut za vsak dan.

Podrobnejše informacije o strukturi informacijskega registra Tečajnice so podane v spodnji tabeli:
Meritve: tip valute "ReferenceReference.Currencies", vodilni, prepoved praznih vrednosti
Viri: vrsta tečaja "število", dolžina 15, natančnost 4, nenegativno
Tip večkratnosti "število", dolžina 10, natančnost 0, nenegativno
Pogostost v enem dnevu
Način snemanja Neodvisen

Podatke v ta informacijski register lahko vnašate ročno z obrazcem s seznamom.

POZOR. V informacijski register z določeno frekvenco, ki ni enaka »Po položaju do registrarja«, ne morete vnesti dveh zapisov z enakim naborom meritev in obdobjem, t.j. ne morete vnesti dveh tečajev iste valute na isti dan. Če je frekvenca vnosa v register nastavljena na »Glede na položaj vpisnika«, potem ključ unikatnosti vnosa vsebuje tudi povezavo na vpisniški dokument, t.j. takšna knjiga ne more vsebovati dveh zapisov z istim nizom meritev, obdobjem in registratorjem. To je sestavna lastnost informacijskega registra, po kateri se razlikuje od drugih registrov.
Dodajanje novih vnosov v informacijski register, kot tudi popis obstoječih vpisov, poteka na standarden način za vse registre. V tem razdelku bomo obravnavali le najpomembnejše
- pridobivanje podatkov iz periodičnega registra v določenem trenutku.

Dostop do periodičnih informacij z uporabo metod
Objekt RegisterInformationManager vam omogoča dostop do "total" registra. "Vsote" periodičnega registra informacij so prve ali zadnje vrednosti virov za navedene dimenzije. Za to se uporabljajo naslednje metode:

Dobiti (<Период>, <Отбор>)

Kot strukturo vrne vrednosti virov enega vnosa v register, ki ustreza podanim vrednostim vseh (!) dimenzij registra in obdobja.
GetLatest (<Конец периода>, <Отбор>)
Ta metoda vrne trenutno vrednost sredstev, veljavnih na dani datum. Če v registru ne najde vnosa za dano kombinacijo dimenzij za točno določeno obdobje, se vrne struktura, ki vsebuje vrednosti vira naslednjega kasnejšega vnosa.
GetFirst (<Начало периода>, <Отбор>)
Ta metoda deluje podobno kot metoda GetLast, vendar če vnos trenutno ni najden, se vrne struktura, ki vsebuje vrednosti vira najbližjega prejšnjega vnosa.
SliceRecent (<Конец периода>, <Отбор>)
Ti metodi sta podobni metodama GetLast oziroma GetFirst, vendar običajno ne določata ene ali več dimenzij. Posledično se ne vrne struktura, kot v prejšnjih primerih, ampak tabela vrednosti, napolnjena s podatki najdenih zapisov registra informacij.

Pri klicu metod GetFirst, GetLast, SliceFirst in SliceLast je lahko prvi parameter tipa "datum", trenutek v času ali meja, lahko pa ga sploh izpustite, nato pa vrednosti vira iz prvega ali zadnjega registra vnos bo najden oz.

Uporabo teh metod bomo prikazali s primeri:

Primer 1. Pridobivanje menjalnega tečaja točno na določen datum (če za ta določen datum ni zapisa, bodo elementi strukture vsebovali prazne vrednosti).


StructureRateMultiplicity = RegistersInformation.Currency Rates.Get(SelectionDate, CurrencySelection);
Če je StructureCourseMultiplicity.Course = 0 Potem
Show("Menjalni tečaj za ta datum ni določen!");
V nasprotnem primeru
Poročilo("Valutni tečaj:" + Skrajšano LP(StructureCourseMultiplicity.Rate) + ", večkratnost: " + SkrajšanoLP(StructureCourseMultiplicity.Multiplicity));
EndIf;

Primer 2 Pridobivanje trenutnega menjalnega tečaja za dani datum (če ni zapisa za ta določen datum, bo najden naslednji kasnejši zapis)

CurrencySelection = Nova struktura ("Valuta", Izberi valuto);
StructureRateMultiplicity = RegistersInformation.Currency Rates.GetLast(SelectionDate, CurrencySelection);
Poročilo("Trenutni menjalni tečaj za dani datum: " + StructureRateRatio.Rate);

Primer 3 Pridobivanje trenutnih tečajev vseh valut na določen datum (izbor ni določen, tj. želimo pridobiti informacije o vseh vrednostih dimenzij).

tzData = RegistersInformation.Currency Rates.SliceLast(SelectionDate,);

Poročilo("Za valuto " + String(Pr.Currency) + " menjalni tečaj za dani datum: " + String(Pr.Rate) + ", večkratnost: " + String(Pr.Currency));
EndCycle;

Primer 4 Pridobivanje dejanskih veleprodajnih cen za blago (označen je izbor po dimenziji "TypePrice")

SelectionPriceType = Nova struktura ("PriceType", Enumerations.PriceTypes.Wholesale);
tzData = RegistersInformation.CompanyPrices.SliceLast(SelectionDate, SelectionPriceType);
Za vsako stran iz podatkovnega cikla
Poročilo("Za artikel " + String(St.Nomenclature) + "veleprodajna cena: " + String(St.Price));
EndCycle;

Dostop do periodičnih informacij s poizvedbami

Za pridobitev teh informacij se uporablja virtualna tabela rezine zadnjega / prvega zapisa registra informacij. Po strukturi je popolnoma enaka glavni tabeli informacijskega registra in vsebuje naslednja polja:
<Имя измерения> - Niz polj, ki vsebujejo vrednosti dimenzij registra. Imena polj ustrezajo imenom dimenzij.
<Имя реквизита> - Niz polj, ki vsebujejo vrednosti podrobnosti registra.
<Имя ресурса> - Niz polj, ki vsebuje vrednosti virov registra.
dejavnost- Vsebuje znak snemalne dejavnosti. Zapisi, za katere je vrednost te lastnosti nastavljena na False, ne bodo upoštevani pri pridobivanju »prvih« ali »zadnjih« zapisov registra, kot tudi pri pridobivanju informacij v določenem trenutku.
Trenutek časa- Vsebuje trenutek, ko je bil register napisan.
LineNumber- Vsebuje številko vrstice, ki je definirana kot zaporedna številka zapisa v nizu zapisov.
Pika- Vsebuje obdobje, ki mu pripada registrski vložek.
Registrar- Vsebuje povezavo do dokumenta zapisa gibanja.

Ko dostopate do virtualnih tabel SliceFirst in SliceLast, lahko podate naslednje možnosti:

Datum - Določa datum ali časovno točko, za katero bodo prejete informacije. Če parameter ni nastavljen, bodo izbrani zadnji/najzgodnejši vnosi.
Pogoj - Pogoj je določen v poizvedovalnem jeziku. Uporablja se za omejevanje sestave zapisov, med katerimi bodo izbrani najnovejši/najzgodnejši. Pogoj bo veljal za izvirne zapise, ne za že izbrane.

Tukaj so primeri dostopa do evidenc informacijskega registra s poizvedbami:

Primer 1 Izberite vse vnose v register informacij

IZBERITE * IZ Registra podatkov. Tečaji valut

Primer 2 Pridobite trenutni menjalni tečaj ene valute na določen datum

IZBERITE valuto, tečaj
FROM DataRegister.Currency Rates.SliceLast(&SelectDate, Currency = &SelectCurrency);

Primer 3 Izberite trenutne menjalne tečaje za vse valute na določen datum

IZBERITE valuto, tečaj
FROM DataRegister.Currency Rates.SliceLast(&SelectionDate);

Primer 4 Pridobite posodobljen cenik za določen datum (navedena je določena vrsta cene, na primer "Maloprodaja")

SELECT Nomenklatura, cena
FROM DataRegister.CompanyPrices.LastSlice(&SelectDate,PriceType=&SelectPriceType);

Povzetek
- Register periodičnih informacij je močno orodje za shranjevanje zgodovine sprememb skoraj vseh informacij.
- Pogostost registra informacij je lahko zelo različna: od mesta registrskega dokumenta (minimalna pogostost) do leta (maksimalna pogostost). 1C:Enterprise 8 ima tudi neperiodične registre informacij.
- Tip vira informacijskega registra je lahko primitiven (število, niz, datum, logična vrednost), sklic (sklic na iskalni element, dokument, vrednost oštevilčenja) ali shranjevanje vrednosti.
- Register periodičnih informacij lahko proizvede vrednosti virov točno na dani datum, najnovejšo ali najzgodnejšo vrednost na dani datum ali rezino prve in rezino slednje na določen datum v skladu z danimi vrednostmi dimenzije.
- Dostop do podatkov registra informacij je možen tako s pomočjo metod kot s pomočjo poizvedb.

Informacijski register 1C 8 je metapodatkovni objekt, namenjen shranjevanju referenčnih informacij v kontekstu dimenzij, ki jih določi razvijalec.

Tipičen primer uporabe informacijskega registra je shranjevanje podatkov o tečaju po valutah in obdobjih.

Oglejmo si podrobneje lastnosti in nastavitve registra informacij.

Dve glavni lastnosti registra zbiranja sta − Periodičnost in Način snemanja.

To so edinstvene lastnosti registra informacij, ki jih nima noben drug metapodatkovni objekt. Razmislimo o njih podrobneje.

Ta lastnost vam omogoča dodajanje dodatne dimenzije na seznam dimenzij — Pika. Z njegovo pomočjo lahko rešite veliko število nalog: shranjevanje informacij v bazo podatkov ob upoštevanju pomembnosti za določen datum. Obstaja veliko uporabnih primerov uporabe obdobij: shranjevanje vrednosti valute za vsak dan, shranjevanje cene artikla itd.

Periodičnost ima lahko naslednje vrednosti:

  • Neperiodično
  • v eni sekundi
  • V enem dnevu
  • V enem mesecu
  • Znotraj bloka
  • V enem letu

Pridobite 267 video lekcij 1C brezplačno:

Če izberete periodičnost, ki ni možnost Neperiodično, bo sistem nadziral edinstvenost zapisov v določenem časovnem obdobju. Če zapis ni edinstven, bo sistem 1C izdal sporočilo in vam ne bo dovolil pisanja v bazo podatkov.

In ena od glavnih značilnosti periodičnega registra informacij je zmožnost prejemanja že pripravljenih vrednosti "Cut first" in "Cut the last". Ti podatki vam omogočajo, da zelo hitro pridobite podatke iz baze podatkov o zadnji (prvi) nastavljeni vrednosti na določen datum.

Način snemanja registra informacij

V 1C 8.2 in 8.3 je ta lastnost lahko »neodvisna« ali »podrejena registrarju«. V prvem primeru se vpisi lahko izvajajo tako programsko kot iz obrazca seznama registra informacij. V drugem primeru je obvezno navesti evidenčno vpisniško listino. To nalaga določene omejitve, a hkrati odpira nove priložnosti.

Lastnosti dimenzij informacijskega registra

Prav tako morate biti pozorni na paleto merilnih lastnosti registra informacij 1C 8.3. Še posebej pri zastavah Vodilni in Glavni izbor:

  • Vodenje- lastnost dimenzije, ki pomeni informacijo, da brez vrednosti te dimenzije vnos v register ni smiseln. Dejansko to pomeni, da sistem ob brisanju vrednosti iz dimenzije izbriše tudi registrski vnos z dimenzijo “Leading”. Nastavite lahko samo eno meritev.
  • Glavni izbor- če je register samostojen, se s temi meritvami ugotavlja evidentiranje sprememb za načrt zamenjave. Podobna uporaba Glavni izbor po obdobjih vključuje osnovni izbor za obdobje za periodične registre.

Vnos programa v informacijski register 1C

Obstajata dva načina za dodajanje novih zapisov v knjigo informacij - z uporabo upravitelja zapisov in z uporabo nabora zapisov. Prvi primer je primeren za enkraten vnos, drugi za dva ali več vnosov.

Uporaba upravitelja snemanja:

NewRecord = RegistersInformation.Currency Rates.CreateRecordManager();
NewRecord.Currency = References.Currencies.FindByName("USD");
NewRecord.Period = Datum(31,12,2016);
NewRecord.Course = 100;
NewRecord.Multiplicity = 1;
NewRecord.Record();

Uporaba nabora zapisov registra informacij 1C:

NewRecordSet = DataRegisters.Currency Rates.CreateRecordSet();
//če izbire ne nastavite, se izbrišejo vsi zapisi informacijskega registra
NewRecordSet.Selection.Currency.Set(Dollar, True);
NewRecordSet.Selection.Period.Set(Datum(31,12,2016), True);
//tvorimo neposredno zapis množice
NewRecordSet = NewRecordSet.Add();
NewSetRecord.Currency = References.Currencies.FindByName("USD");
NewSetRecord.Period = Datum(31,12,2016);
NewSetRecord.Course = 100;
NewSetRecord.Multiplicity = 1;
NewRecordSet.Write();

Informacijski registri 1C je strukturiran nabor podatkov z dimenzijami in viri. Zasnovan za shranjevanje periodičnih informacij.

Periodičnost

Informacije so shranjene v smislu meritev in obdobja. Registrirajte podatke, lahko nastavite frekvenco:

  • Neperiodično
  • po registrarju
  • drugo
  • teden
  • mesec
  • četrtina

Periodičnost je potrebna za izbiro podatkov iz registra za določeno časovno obdobje. Če določite frekvenco, se bodo vpisi v register izvajali z obdobjem vpisa. Recimo, če pogledate register "Cene artiklov", lahko vidite zgodovino sprememb cen, s kakšnimi meritvami in v katerem časovnem obdobju je bila evidenca narejena.

Periodičnost v registrih informacij je potrebna za podatke, ki se spreminjajo skozi čas, na primer: menjalni tečaji, cene artiklov, popusti in marže artiklov itd.

Registratorji

Če pišete v register podatkov z dokumentom, morate nastaviti način snemanja: “Oddaja v register” in izbrati dokument, s katerim se bo zapisoval v register. Nato se v registru pojavi polje »Vpisnik«, kjer bodo shranjeni podatki, s katerim dokumentom je bil opravljen vpis. Kot obdobje lahko uporabite tudi registrarja, za to navedite v polju "Periodičnost" - "Po registrarju". Podrejenost registrarju se izvede, ko je treba register togo povezati z dokumentom in spreminjanje vnosov v register v ročnem načinu postane nedosegljivo.

Dokumentov, ki bodo v vlogi registratorjev, je lahko več. Če želite dodati registrarja, morate odpreti lastnosti registra zahtevanih informacij, pojdite na zavihek "Registrarji" in potrdite polja poleg dokumentov, ki bodo delovali kot registrar.

Iz dokumenta lahko vidite premike, ki jih opravi tajnik. Če želite to narediti, morate iti na dokument, ki vas zanima, kliknite: Pojdi - Premiki dokumentov prek registrarja.

V lastnostih registra ne pozabite dodati pravic, dodelite jih lahko na zavihku "Pravice". Nato morate v seznamu vlog izbrati vlogo, ki ji želite dodati pravice v register in izbrani vlogi v seznamu pravic nastaviti pravice.

Edinstvenost zapisov

Edinstvenost zapisa je odvisna od obdobja in meritev. Na primer, če želite zapis z istimi merami zapisati v šifrant “Cene artiklov” na isti dan, vam to ne bo uspelo in bo program povzročil napako, saj je frekvenca šifranta znotraj dneva.

Če frekvenco določi registrar, sodeluje tudi pri unikatnosti zapisa.

Pri neperiodičnih in neodvisnih registrih je edinstvenost odvisna od kombinacije meritev.

Obrazci

Za ogled zapisov uporabite obrazec s seznamom, nastavite lahko izbor za polja, ki vas zanimajo, pregledujete zgodovino zapisov in jih spreminjate prek obrazca z zapisi. Vnose v register si lahko ogledate na naslednji način: v zgornjem meniju kliknite na gumb "Operacije" - "Registri informacij". V oknu, ki se odpre, izberite register, ki ga potrebujete. Nato se odpre obrazec s seznamom v obliki tabele, kjer je vsaka vrstica edinstven vnos.

Za urejanje/kreiranje uporabite vpisnico, če je vnos podrejen registrarju, potem polje ne bo dostopno in obrazec ne bo ustvarjen.

Obrazce dodate v konfiguratorju tako, da greste v register informacij, v zavihek "Obrazci" in kliknete na "povečevalno steklo" poleg želene vrste obrazca. Nato se odpre okno, v katerem lahko konfigurirate polja bodočega obrazca (lokacijo, imena in predpišete funkcionalnost).


Dimenzije, sredstva in pripomočki

Dimenzije so namenjene oblikovanju unikatnosti zapisa, nato pa jih je mogoče uporabiti za izbiro in rezanje po določeni dimenziji. Kombinacija meritev tvori ključ zapisa. Bolje je, da ne ustvarite velikega števila dimenzij, tako da tabela ne raste in se ne upočasni v procesu dela z njo.

Dimenzije imajo potrditveno polje "Vodilni", če je nastavljeno, bo zapis shranjen v bazi, dokler ta dimenzija obstaja. Opraviti je mogoče več vodilnih meritev. Na primer v informatorju "Cene artiklov" je vodilna dimenzija artikel, če izbrišete artikel, ki sodeluje v evidenci, se samodejno izbriše zapis v informatorju za ta artikel.

Viri so namenjeni shranjevanju povzetkov informacij: količina, cena itd. V prihodnje bomo vire prejemali za določeno časovno obdobje (če bo register periodičen), glede na meritve.

Podrobnosti so v večini primerov namenjene shranjevanju dodatnih informacij, ne sodelujejo pri edinstvenosti zapisa. V podrobnosti lahko na primer vnesete informacije, kot so avtor, komentar itd.

Z registrom informacij lahko izvedete naslednja dejanja:

  • Brisanje vnosa v register informacij 1C

Posebnosti

- Edinstvenost zapisov po naboru dimenzij: vsak zapis v informacijskem registru je nova vrednost vira.

- Evidence informacijskega registra so lahko periodične ali ne.

- Register informacij je lahko odvisen in neodvisen od registrarja.

- Možno je narediti izrez prvega in zadnjega zapisa na željen datum. To izvajajo virtualne tabele: SliceFirst in SliceLast. Za uporabo teh tabel lahko uporabite izbiro in poizvedbo (v načrtovalcu poizvedbe boste odstranili te navidezne tabele in lahko poizvedujete po njih). Te tabele bodo na voljo, če je register informacij periodičen.

Register "Nomenklaturne cene" je periodični register informacij, vpisi se izvajajo v skladu z registratorjem.

Slika prikazuje, da je frekvenca nastavljena znotraj enega dneva. To pomeni, da se cena lahko spremeni enkrat dnevno glede na unikatne meritve v dnevu.

Evidenca je podrejena dokumentu "Določanje cen artiklov". Torej vpis v register izhaja iz tega dokumenta. Premike na posameznem dokumentu si lahko ogledate iz obrazca dokumenta "Določanje cen artiklov".

Evidenca je namenjena shranjevanju podatkov o ceni artikla, z dimenzijami "Vrsta cene", "Nomenklatura" in "Značilnost artikla". Vodilna dimenzija so vsa tri polja dimenzije, na njih bo možna izbira med izborom.

Zaključek: po branju članka boste lahko ustvarili register informacij 1C, dodali dimenzije in vire, nastavili obrazce za urejanje in seznam. Ustvarite zapis in izberite obstoječe zapise. Če imate kakršna koli vprašanja, uporabite komentarje v članku, poskušal bom hitro odgovoriti na vaše vprašanje.

Zelo pogosto morate v poizvedbah 1C delati z datumi. Še posebej, če je zahteva sestavljena iz metapodatkovnih objektov, ki vsebujejo periodične informacije. Praviloma so to registri (informacijski, akumulacijski, obračunski, obračunski). Razmislite o najpogosteje uporabljenih funkcijah jezika poizvedb 1C za delo z datumi. Primere bomo zgradili na podlagi registra informacij Organizacije zaposlenih Konfiguracije ZUP verzija 2.5.

  • DATUM ČAS

    Omogoča, da dobite datum v poizvedbi (s časom ali brez njega) tako, da navedete leto, mesec, dan, uro, minuto, sekundo.
    Sintaksa:
    DATETIME(leto, mesec, dan, ura, minuta, sekunda)
    Običajno ura, minuta in sekunda niso določene. Vzemimo mini primer. V poizvedovalno konzolo vnesite naslednje besedilo:

    IZBERI DATUM ČAS (2016, 1, 1)

    Kot rezultat poizvedbe dobimo datum - 01.01.2016
    Pravzaprav si je težko predstavljati situacijo, v kateri bo datum v zahtevku naveden na ta način. Konec koncev, ko morate določiti obdobje, se uporabijo parametri. Toda obstaja primer, ko je ta funkcija posebne vrednosti. To je takrat, ko moramo v poljih ali v pogojih poizvedbe podati prazen datum. Naj vas spomnim, da je za jezik 1C prazen datum videti kot - 0001.01.01. Če želite v zahtevi dobiti prazen datum, je dovolj, da navedete DATETIME(1, 1, 1). Za primer izberimo iz registra informacij Organizacije zaposlenih evidence, ki niso izpolnjene Obdobje dokončanja:

    IZBERI Zaposleni v organizacijah. Obdobje, Zaposleni v organizacijah. Zaposleni, Zaposleni v organizacijah. Položaj, Zaposleni v organizacijah. Oddelek za organizacije FROM Register informacij. Zaposleni v organizacijah AS Zaposleni v organizacijah WHERE Zaposleni v organizacijah. Obdobje zaključka = DATETIME(1, 1, 1)

  • ZAČETEK MENSURE

    Za navedeni datum vrne začetek obdobja, ki mu pripada.
    Sintaksa:
    ZAČETEK OBDOBJA (Datum, PeriodType)
    PeriodType lahko sprejme naslednje vrednosti: MINUTA, URA, DAN, TEDEN, MESEC, ČETRTLETJE, LETO, DESETLETJE, POL LETA
    V poizvedovalno konzolo vnesite:

    IZBERITE ZAČETEK OBDOBJA(DATUMČAS(2016, 1, 15), MESEC)

    Zahtevek bo vrnjen - 01.01.2016
    In zdaj primer. Kot veste, pogostost registra Organizacije zaposlenih nekega dne. Ustvarimo poizvedbo, v kateri bo namesto dejanskega obdobja zapisov izpisan datum začetka meseca.

    IZBERITE ZAČETEK OBDOBJA (Zaposleni v organizacijah. Obdobje, MESEC) KOT Začetek meseca, Zaposleni v organizacijah. Zaposleni, Zaposleni v organizacijah. Delovno mesto, Zaposleni v organizacijah. Oddelek organizacije IZ Registra podatkov. Zaposleni v organizacijah AS Zaposleni v organizacijah

  • KONČNO OBDOBJE

    Sintaksa je enaka kot za začetek obdobja. In kot že ime pove, vrne konec obdobja po datumu in vrsti obdobja. Ne bomo podrobno obravnavali. Omejili smo se na mini primer.
    Prošnja:

    IZBERI KONČNO OBDOBJE(DATUMČAS(2016, 1, 15), MESEC)

    Vrača se 31.01.2016 23:59:59
    Kot lahko vidite, je vrednost vrnjena natančno do sekunde.

  • DODAJ

    Datumu doda določeno število časovnih intervalov.
    Sintaksa:
    ADDDATE(datum, vrsta obdobja, štetje)
    PeriodType ima enake vrednosti kot za funkcijo ZAČETEK MENSURE
    Vzemimo za primer februar:

    IZBERI DODAJ(DATUM(2016, 2, 15), MESEC, 2)

    Dobimo datum 04/15/2016 0:00:00 AM Kljub temu, da je februar kratek mesec, je dan prejetega datuma enak originalnemu. Zelo priročno je, da vam ni treba razmišljati o številu dni v mesecih.
    Število je lahko tudi negativno. Nato se interval šteje v nasprotni smeri.

  • DATUMSKA RAZLIKA

    Izračuna razliko med dvema datumoma v navedenih enotah.
    Sintaksa:
    DATEDIFF(začetni datum, končni datum, vrsta obdobja)
    Vrsta obdobja lahko sprejme naslednje vrednosti: SEKUNDA, MINUTA, URA, DAN, MESEC, ČETRTLETJE, LETO
    Na primer:

    IZBERI DATUMSKO RAZLIKO(DATUMČAS(2016, 2, 15), DATUMČAS(2016, 3, 1), DAN)

    vrne 15

Tu so bile obravnavane najpogosteje uporabljene funkcije poizvedovalnega jezika 1C. Ostali se redko uporabljajo. Po potrebi lahko primere dela z njimi najdete v pomoči, vgrajeni v platformo 1C.

Vam je bil članek všeč? Deli s prijatelji!