Kreirajte i izbrišite unose u registru informacija. Kreiranje i brisanje unosa u registru informacija 1s 8 periodična promjena registra informacija po dokumentu

Brzi prolaz

Softverska opcija za kompletno čišćenje:

Kada izvršite unos u registar, informacije će se brzo izbrisati. Ako je registar informacija velik, to će potrajati, ali obično nekoliko sekundi.

Recordset je poseban "menadžer" za upravljanje grupom zapisa.

Ako odabir po dimenzijama nije postavljen i početno čitanje nije izvedeno metodom Read(), tada se u vrijeme poziva Write() pohranjuje trenutno prazno stanje.

Interaktivno brisanje unosa u registru informacija

U upravljanom režimu rada konfiguracije, podrazumevano je omogućen višestruki izbor registarskih unosa, a ukoliko je registar nezavisan (nije podređen registratorskom dokumentu), moguće je brisanje grupe unosa.

Odaberite kroz shift i sve zapise komandom Ctrl + A i pritisnite "Delete" ili kroz kontekstni meni "Delete"

Ako je broj zapisa veći od 1000, sistem će prilikom odabira izdati upozorenje o trajanju operacija, ali će omogućiti nastavak selekcije.

Sa listama od više od 5000 unosa, upotreba ove metode se ne preporučuje, jer kada se lista redova u polju tabele povećava, njen rad se drastično usporava

U normalnim oblicima, standardno je brisati jedan po red.

Obrada za brisanje unosa u registru informacija

  • Uz promjenu i brisanje unosa u registru, dodana je i mogućnost korištenja proizvoljnog algoritma.
  • Odabirom RS sa liste, obrazac prikazuje dinamičku listu registara.
  • Generiše polja direktno na obrascu za promjenu trenutnog zapisa. Možete mijenjati, dodavati, brisati unose.
  • Za grupu zapisa (označeni redovi u dinamičkoj listi), možete promijeniti polja, uključujući dimenzije. VAŽNO: Snimanje je u načinu prepisivanja, pa ako konačni zapis već postoji ili ste promijenili jedinu dimenziju grupe zapisa, posljedice mogu biti katastrofalne. Ali nadam se da razumeš šta ćeš da uradiš.
  • Kada mijenjate polja, okvir je istaknut. Uvijek ste svjesni šta će se promijeniti. Ovo posebno važi za grupe zapisa.
  • Moguće je snimati u načinu preuzimanja
  • Moguće je postaviti dodatna svojstva zapisa (ponekad vrlo važna)
  • Koristi privilegirani način rada.
Grupna obrada registara informacija na osnovu obrade iz Gmixa
  • Promjena (iz jednog u sva polja), brisanje i kopiranje (sa zamjenom bilo kojeg broja polja) zapisa registara informacija.

Ne tako davno, morao sam da obrišem registar informacija. Ovaj registar je čuvao istoriju promena u nekim konfiguracionim objektima i sadržao je nekoliko miliona unosa.

Uobičajeni način za programsko brisanje registra informacija koji nije podređen registratoru je pisanje praznog skupa zapisa, otprilike ovako:

RecordSet = DataRegisters.OurRegister.CreateRecordSet(); RecordSet.Write();

Recordset=Informacije o registrima. Naš registar CreateRecordSet() ;

RecordSet. Pisati() ;

Ali u ovom slučaju, brisanje registra na ovaj način bi trajalo mnogo sati. Stoga je odabran drugi metod - brz način brisanja registra informacija.

Korak 1. Pravimo rezervnu kopiju baze podataka. Ova stavka, naravno, nije obavezna, ali navika da napravite rezervnu kopiju prije bilo kakve potencijalno opasne radnje sigurno će vam uštedjeti živce / vrijeme / platu / karijeru.

Korak 2. Kopiramo registar traženih informacija.

Korak 3. Izbrišite originalni registar informacija

Korak 4 Preimenujte kopiju u original i primijenite promjene.

Na ovako jednostavan način, brisanje registra informacija će trajati nekoliko minuta, bez obzira na veličinu ovog registra. Razlika je u tome što se kod druge metode tabela registra informacija briše u potpunosti, što je mnogo brže.

Gotovo svaki konfiguracijski element može se obrisati na sličan način. Ali, naravno, niko ne garantuje ispravnost računovodstva nakon takve operacije.

Ako ste pronašli grešku ili netačnost, označite dio teksta i kliknite Ctrl+Enter.

U ovom članku ćemo pogledati kako brisanje i pisanje unosa u registar informacija. I prije svega ćemo razmotriti brisanje zapisa, jer. nije toliko važno kreirati nove zapise, koliko sačuvati postojeće.

A uz nepažljivo rukovanje registrom informacija, vrlo je lako izbrisati sve postojeće unose, što će biti prikazano u nastavku. Kao primjer, koristit ćemo sljedeći registar informacija

Brisanje unosa u registar informacija

Kao što znate, skup zapisa se koristi za rad sa registrom informacija. Napišimo dvije jednostavne linije koda za naš registar i pokrenimo ih za izvršenje

Recordset =RegistersInfo. Cijena. CreateRecordSet() ; SetRecords. Pisati() ;

Čestitamo! Upravo smo uništili sve unose u informativnoj knjizi. Iako se čini da se pri pisanju praznog zapisa ništa kriminalno ne može dogoditi. Ali ako se obratite pomoćniku za sintaksu, možete vidjeti da nema kontradikcije. Ako zapišemo skup zapisa i u metodu Pisati() parametri nisu specificirani Lazi(a po defaultu se zamjenjuje True), tada se postojeći skup zapisa zamjenjuje onim koji upisujemo, u skladu sa utvrđenom selekcijom. A pošto nismo postavili odabir, svi unosi registra su odabrani za zamjenu i uspješno su zamijenjeni praznim skupom unosa. A ovo je grabulja na koju ponekad gaze programeri, koji nisu prvi dan u 1C. Usput, ako namjerno želimo potpuno obrisati registar, onda je to metod koji bismo trebali koristiti. Skrećem pažnju na ovo, jer vrlo često postoji kod kada se prije brisanja pročita skup zapisa, zatim obriše, pa tek onda napiše. Iako je čitanje i brisanje skupa zapisa ovdje potpuno suvišno.

Sada zamislite da ne trebamo brisati sve unose registra, već samo one sa određenim vrijednostima dimenzija. Algoritam djelovanja u ovom slučaju je isti, samo prije snimanja potrebno je postaviti odgovarajući filter za naš prazan skup zapisa. U članku o, kao primjer, razmatrali smo isti registar informacija - Cijena. Da vas podsjetim da smo tamo imali sljedeću evidenciju

Recimo da želimo izbrisati unose gdje Proizvod - olovka, A Period - 01.01.2017. Da vas podsjetim da se za periodične registre informacija odabir može podesiti ne samo po dimenzijama, već i po periodu. U ovom slučaju, naš kod će izgledati ovako

Recordset =RegistersInfo. Cijena. CreateRecordSet() ; SetRecords. Odabir. Period. Set("20170101") ; SetRecords. Odabir. Proizvod. Set(Directories. Goods. FindByName("Pencil") ) ; SetRecords. Pisati() ;

Takođe želim da skrenem pažnju na metodu Instaliraj(). U slučaju kada je tip poređenja u izboru Jednako ovaj metod vam omogućava da postavite odabir sa minimalnom količinom koda.
Nakon izvršenja ovog koda, sljedeći unosi će ostati u našem registru

Naravno, mogu postojati i složeniji slučajevi prilikom brisanja zapisa. Na primjer, kada trebate izbrisati zapise za određene vrijednosti resursa ili detalja.

Ovdje više nije moguće koristiti selekciju, jer. može se podesiti samo za dimenzije, rekordere i periode. I ovdje već morate proći kroz jedan ili više skupova zapisa, izbrisati pojedinačne zapise i prepisati skup.

Dodavanje unosa u registar informacija

Kao primjer kreiranja unosa u registru informacija, vratit ćemo prethodno obrisane unose

Recordset =RegistersInfo. Cijena. CreateRecordSet() ; SetRecords. Odabir. Period. Set("20170101") ; SetRecords. Odabir. Proizvod. Set(Directories. Goods. FindByName("Pencil") ) ; NewRecord = RecordSet. Dodati() ; Novi ulaz. Period = "20170101"; Novi ulaz. Dobavljač = Imenici. Counterparties. FindByName("LLC "Lesprom" "" ) ; Novi ulaz. Proizvod = Imenici. Roba. FindByName("Olovka") ; Novi ulaz. Iznos = 10 ; NewRecord = RecordSet. Dodati() ; Novi ulaz. Period = "20170101"; Novi ulaz. Dobavljač = Imenici. Counterparties. FindByName("PJSC ""Dopisnica" "" ) ; Novi ulaz. Proizvod = Imenici. Roba. FindByName("Olovka") ; Novi ulaz. Zbir = 27 ; SetRecords. Napiši(Netačno) ;

U metodi Pisati() parametar odgovoran za zamjenu postojećih unosa je postavljen na Lazi. To znači da će naš skup zapisa biti dodan samo postojećem. Prvi put kod uspješno radi. Ako pokušamo ponovo da izvršimo ovaj kod, dobićemo okvir sa porukom o grešci, jer već imamo zapise sa takvim skupom mjerenja i nemoguće je dodati još jedan takav.


Ali ako postavimo način nadjačavanja na Istina, tada neće doći do greške prilikom ponovnog snimanja, jer postojeći unosi će biti prepisani.

U slučaju rada sa jednim zapisom, umjesto skupa zapisa, možete koristiti upravitelja zapisa.

Postoji nekoliko vrsta registara u 1C:

  • Akumulacije koje pohranjuju stanja ili promet u numeričkom obliku;
  • Kalkulacije koje pohranjuju vrste kalkulacija i same kalkulacije se obično koriste za obračun plaća;
  • Računovodstvene službe sa podacima o računovodstvenim obračunima u obliku Dt-Kt;
  • informacioni registri.

Na potonjem ćemo se detaljnije zadržati, jer omogućavaju prikupljanje podataka iz baze podataka prema dijelovima mjerenja. Na primjer, “Nomenklatura cijena” pohranjuje podatke za određenu nomenklaturu i karakteristike za određenu vrstu cijene.

Sl.1 Registar "Nomenklatura cijena"

Karakteristike

Registar može biti periodičan i neperiodičan, kada nije potrebno čuvati redoslijed promjena. Ali ako i dalje trebate pohraniti, onda se postavlja u kojem periodu će program uspostaviti kontrolu nad jedinstvenošću zapisa: po sekundi, po danu, mjesecu, kvartalu i godini.


Sl.2 Periodičnost i način snimanja

Ako pokušate da kreirate dva zapisa u istom periodu, program će generisati grešku "Zapis sa takvim ključnim poljima postoji!" i neće vam dozvoliti da pišete u bazu podataka.

Također možete odrediti način snimanja. Prvi sa "Podnošenjem matičaru", u kojem će se evidencija evidentirati po dokumentima iu svakom od njih će biti naznačen dokument-matičar. Ako odaberete drugi - neovisni način rada, tada se podaci ne bilježe od strane registratora, već se dodaju, na primjer, direktno sa liste ili kao obrada.


Slika 3 Režimi snimanja

Posebnost periodičnog registra je u tome što možete koristiti isječak posljednjih ili prvih, uzimajući gotove vrijednosti iz baze podataka o posljednjoj / prvoj postavljenoj vrijednosti za određeni datum.

Upis u registar informacija 1C

Redovi u registru sa tačkom i registratorom koji sadrže informacije o resursima u kontekstu dimenzija nazivaju se zapisi.

Za dodavanje unosa u registar koristi se ili upravitelj unosa ili skup unosa. Ako unosi u glavnoj knjizi imaju zajednički ključ, tada se mora koristiti Recordset. A da biste snimili jedan zapis, ako su svi zapisi u registru jedinstveni, morate koristiti RecordManager.

Primjer zapisa kada se koristi objektRegisterRegisterRecordSet.

Korišćenje menadžera snimanja:

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

Kada koristite skup zapisa i metodu Write, zapis se upisuje u registar detalja skupa zapisa. U ovom slučaju može se dogoditi i samo dodavanje linija i zamjena postojećih linija u registru. Za nezavisne registre, bez postavljanja filtera, svi unosi u registru će biti obrisani i zamijenjeni dodanim unosima.

Ako upišete podatke bez odabira u slave registar, doći će do greške.

Primjer zapisa koji koristi skup zapisa u registru informacija podređenom registratoru Nomenklatura cijena:

NewRecordSet =RegistersInformation.NomenclaturePrices.CreateRecordSet(); NewRecordSet.Selection.Registrar.Set(Reference); NewRecordSet = NewRecordSet.Add(); NewSetRecord.Period = Referenca.Datum; NewSetRecord.Nomenclature = Referenca.Nomenklatura; NewSetRecord.Price = Referentna.Cijena; NewRecordSet.Write();

Primjer snimanja putem menadžera snimanja:

Record = RegistersInformation.Currency rates.CreateRecordManager(); Record.Period = Datum; Record.Course = Kurs; Record.Currency = Valuta; Write.Write();

Pretraživanje i čitanje u registru informacija

Da biste pronašli unos u registru informacija i pročitali ga, potrebna vam je pomoć upita. Na primjer, trebamo dobiti cijene koje je unio određeni matičar:

IZABERITE Cijene artikala.Nomenklatura, Cijene artikala.Cijena IZ Registra informacija.Cijene artikala KAO Cijene artikala GDJE Cijene artikala.Registar = &Registar

Uređivanje i brisanje unosa

Za brisanje unosa iz registra informacija, na primjer, svih kurseva eura, koristite sljedeći kod:

Struktura odabira = nova struktura("Valuta", Dictionaries.Currenci.Pronađi po imenu("EUR")); Odabir = Registri informacija. Kursevi valuta. Odaberi(, Struktura izbora); Dok Selection.Next() LoopRecordManager = Selection.GetRecordManager(); Selection.GetRecordManager().Delete(); EndCycle;

Za brzo i potpuno brisanje registra možete koristiti sljedeći kod:

NewRecord =RegistersInformation.TestRegister.CreateRecordSet(); NewRecord.Record();

Za ispravku i promjenu registra, kao i brzo popunjavanje registra podacima, možete napisati generičku obradu.

Slični članci

2023 dvezhizni.ru. Medicinski portal.