Hiter prehod

Programska možnost za popolno čiščenje:

Ko izvedete vnos v register, se podatki hitro izbrišejo. Če je register informacij velik, bo to trajalo nekaj časa, običajno pa nekaj sekund.

Recordset je poseben "upravljalec" za upravljanje skupine zapisov.

Če izbor po dimenzijah ni nastavljen in začetno branje ni izvedeno z metodo Read(), se v trenutku klica Write() shrani trenutno prazno stanje.

Interaktivno brisanje vnosov v register informacij

V upravljanem načinu delovanja konfiguracije je privzeto omogočena večkratna izbira vpisov v vpisnik, če je vpisnik samostojen (nepodrejen vpisniškemu dokumentu) pa je možen izbris skupine vnosov.

Izberite skozi shift in vse zapise z ukazom Ctrl + A in pritisnite "Delete" ali skozi kontekstni meni "Delete"

Če je število zapisov večje od 1000, bo sistem ob izbiri opozoril o trajanju operacij, vendar bo dovolil nadaljevanje izbire.

Pri seznamih z več kot 5000 vnosi uporaba te metode ni priporočljiva, saj ko se seznam vrstic v polju tabele poveča, se njeno delo močno upočasni.

V običajnih obrazcih je standardno brisati eno vrstico naenkrat.

Obdelava za brisanje vnosov v register informacij

  • Poleg spreminjanja in brisanja registrskih vnosov je dodana možnost uporabe poljubnega algoritma.
  • Ob izbiri RS s seznama obrazec prikaže dinamični seznam vpisnikov.
  • Generira polja neposredno na obrazcu za spremembo trenutnega zapisa. Vnose lahko spreminjate, dodajate, brišete.
  • Za skupino zapisov (označene vrstice na dinamičnem seznamu) lahko spremenite polja, vključno z dimenzijami. POMEMBNO: Snemanje poteka v načinu prepisovanja, tako da, če končni zapis že obstaja ali ste spremenili edino dimenzijo skupine zapisov, so lahko posledice katastrofalne. Ampak upam, da razumeš, kaj boš naredil.
  • Pri spreminjanju polj je okvir označen. Vedno se zavedaš, kaj se bo spremenilo. To še posebej velja za skupine zapisov.
  • Možno je snemanje v načinu prenosa
  • Možna je vgradnja dodatne lastnosti zapisi (včasih zelo pomembni)
  • Uporablja privilegiran način.
Skupinska obdelava informacijskih registrov na osnovi obdelave iz Gmix
  • Spreminjanje (iz enega v vsa polja), brisanje in kopiranje (z zamenjavo poljubnega števila polj) evidenc informacijskih registrov.

V 1C obstaja več vrst registrov:

  • Akumulacije, ki hranijo stanja ali promet v numerični obliki;
  • Za obračun plač se običajno uporabljajo kalkulacije, ki hranijo vrste kalkulacije in same kalkulacije;
  • Računovodske službe s podatki o računovodskih izračunih v obliki Dt-Kt;
  • informacijski registri.

Na slednjih se bomo podrobneje posvetili, saj omogočajo zbiranje podatkov iz baze podatkov glede na odseke meritev. Na primer, »Nomenklatura cen« hrani podatke za določeno nomenklaturo in značilnosti za določeno vrsto cene.

Slika 1 Register "Nomenklatura cen"

Značilnosti

Register je lahko periodičen in neperiodični, ko ni potrebno shranjevati zaporedja sprememb. Če pa morate še vedno shraniti, potem je nastavljeno, v katerem obdobju bo program vzpostavil nadzor nad edinstvenostjo zapisov: na sekundo, na dan, mesec, četrtletje in leto.


Slika 2 Periodičnost in način snemanja

Če poskusite ustvariti dva zapisa v istem obdobju, bo program ustvaril napako "Zapis s takimi ključnimi polji obstaja!" in vam ne bo dovolil pisanja v bazo podatkov.

Določite lahko tudi način snemanja. Prvi z "Oddaja v vpisnik", v katerem bodo evidence evidentirane po dokumentih in v vsakem od njih bo naveden dokument-vpisnik. Če izberete drugi - neodvisni način, potem podatkov registrar ne beleži, ampak jih doda na primer neposredno iz seznama ali kot obdelavo.


Slika 3 Načini snemanja

Posebnost periodičnega registra je, da lahko uporabite rezino zadnjih ali prvih, tako da iz baze podatkov pridobite že pripravljene vrednosti o zadnji / prvi nastavljeni vrednosti za določen datum.

Vpis v register informacij 1C

Vrstice v registru s piko in registratorjem, ki vsebuje informacije o virih v kontekstu dimenzij, se imenujejo zapisi.

Za dodajanje vnosa v register se uporablja upravljalnik vnosov ali niz vnosov. Če imajo vnosi v knjigi skupni ključ, je treba uporabiti nabor zapisov. Če želite zabeležiti en zapis, če so vsi zapisi v registru edinstveni, morate uporabiti RecordManager.

Primer zapisa pri uporabi objektaRegisterRegisterRecordSet.

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();

Ko uporabite nabor zapisov in metodo Write, se zapis zapiše v register podrobnosti nabora zapisov. V tem primeru lahko pride tako do samo dodajanja vrstic kot do zamenjave obstoječih vrstic v registru. Pri samostojnih registrih, brez nastavitve filtrov, se vsi vnosi v registru izbrišejo in nadomestijo z dodanimi vpisi.

Če v podrejeni register zapišete podatke brez izbire, bo prišlo do napake.

Primer zapisa z uporabo nabora zapisov v informacijskem registru, ki je podrejen registratorju Nomenklatura cen:

NewRecordSet =RegistriInformation.NomenclaturePrices.CreateRecordSet(); NewRecordSet.Selection.Registrar.Set(Reference); NewRecordSet = NewRecordSet.Add(); NewSetRecord.Period = Reference.Date; NewSetRecord.Nomenclature = Reference.Nomenclature; NewSetRecord.Price = Reference.Price; NewRecordSet.Write();

Primer snemanja prek upravitelja snemanja:

Record = RegistersInformation.Currency Rates.CreateRecordManager(); Record.Period = Datum; Record.Course = Tečaj; Record.Currency = Valuta; Write.Write();

Iskanje in branje v informacijskem registru

Če želite najti vnos v informacijskem registru in ga prebrati, potrebujete pomoč poizvedb. Na primer, pridobiti moramo cene, ki jih vnese določen registrar:

SELECT Prices of Items.Nomenclature, Prices of Items.Price FROM Register of Information.Prices of Items AS Cene artiklov WHERE Cene artiklov.Registrar = &Registrar

Urejanje in brisanje vnosov

Če želite izbrisati informacijski vnos v register, na primer vse menjalne tečaje EUR, uporabite naslednjo kodo:

Struktura izbire = nova struktura ("Valuta", Slovarji.Valute.Najdi po imenu ("EUR")); Izbira = Registri informacij. Valutni tečaji. Izberi (,SelectionStructure); Medtem ko Selection.Next() LoopRecordManager = Selection.GetRecordManager(); Selection.GetRecordManager().Delete(); EndCycle;

Za hitro in popolno brisanje registra lahko uporabite naslednjo kodo:

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

Za popravljanje in spreminjanje registra ter hitro polnjenje registra s podatki lahko napišete generično obdelavo.

V tem članku si bomo ogledali, kako brisanje in pisanje vnosov v register informacij. In najprej bomo razmislili o izbrisu evidence, saj. ni toliko pomembno ustvarjanje novih zapisov, ampak shranjevanje obstoječih.

In z neprevidnim ravnanjem z registrom informacij je zelo enostavno izbrisati vse obstoječe vnose, kar bo prikazano v nadaljevanju. Kot primer bomo uporabili naslednji register informacij

Brisanje vnosov v register informacij

Kot veste, se za delo z registrom informacij uporablja niz zapisov. Napišimo dve preprosti vrstici kode za naš register in ju zaženimo za izvedbo

Recordset =RegistersInfo. Cena. CreateRecordSet() ; SetRecords. Napiši();

čestitke! Pravkar smo izpraznili vse vnose v informacijski knjigi. Čeprav se zdi, da se pri pisanju praznega nabora zapisov ne more zgoditi nič kaznivega. Toda če se obrnete na pomočnika za sintakso, lahko vidite, da ni protislovja. Če zapišemo nabor zapisov in v metodo Napiši() parametri niso določeni laž(in True je privzeto nadomeščen), se obstoječ nabor zapisov nadomesti s tistim, ki ga pišemo, v skladu z vzpostavljenim izborom. In ker izbire nismo nastavili, so vsi vnosi v register izbrani za zamenjavo in so uspešno zamenjani s praznim nizom vnosov. In to je rake, na katerega včasih stopijo razvijalci, ki niso prvi dan v 1C. Mimogrede, če namenoma želimo popolnoma počistiti register, potem je to metoda, ki jo moramo uporabiti. Na to opozarjam, ker pogosto obstaja koda, ko se pred brisanjem niz zapisov prebere, nato počisti in šele nato zapiše. Čeprav je branje in brisanje nabora zapisov tukaj popolnoma odveč.

Zdaj pa si predstavljajte, da nam ni treba izbrisati vseh vnosov v register, ampak samo tiste z določenimi vrednostmi dimenzij. Algoritem dejanj je v tem primeru enak, le pred snemanjem je treba nastaviti ustrezen filter za naš prazen zapis. V članku o tem smo kot primer obravnavali isti register informacij - Cena. Naj vas spomnim, da smo tam imeli naslednje zapise

Recimo, da želimo izbrisati vnose kje Izdelek - Svinčnik, a Obdobje - 01.01.2017. Naj vas spomnim, da je za občasne registre informacij mogoče nastaviti izbor ne samo po dimenzijah, ampak tudi po obdobju. V tem primeru bo naša koda videti takole

Recordset =RegistersInfo. Cena. CreateRecordSet() ; SetRecords. Izbira. Pika. Set ("20170101") ; SetRecords. Izbira. Izdelek. Set(Imeniki. Blago. FindByName("Svinčnik" ) ) ; SetRecords. Napiši();

Prav tako želim opozoriti na metodo Namesti(). V primeru, ko je vrsta primerjave v izboru Enako ta metoda vam omogoča, da nastavite izbiro z minimalno količino kode.
Po izvedbi te kode bodo naslednji vnosi ostali v našem registru

Seveda lahko pride do bolj zapletenih primerov pri brisanju zapisov. Na primer, ko morate izbrisati zapise za določene vrednosti virov ali atributov.

Tukaj ni več možna uporaba selekcije, saj. nastavite ga lahko samo za dimenzije, zapisovalnike in obdobja. In tukaj je že treba iti skozi enega ali več sklopov zapisov, izbrisati posamezne zapise in prepisati niz.

Dodajanje vnosov v informacijski register

Kot primer izdelave vnosov informacijskega registra bomo obnovili predhodno izbrisane vnose

Recordset =RegistersInfo. Cena. CreateRecordSet() ; SetRecords. Izbira. Pika. Set ("20170101") ; SetRecords. Izbira. Izdelek. Set(Imeniki. Blago. FindByName("Svinčnik" ) ) ; NewRecord = RecordSet. Dodaj(); Nov vnos. Obdobje = "20170101"; Nov vnos. Prodajalec = Imeniki. Nasprotne stranke. FindByName("DOO "Lesprom" "" ) ; Nov vnos. Izdelek = Imeniki. Izdelki. FindByName("Svinčnik"); Nov vnos. Znesek = 10 ; NewRecord = RecordSet. Dodaj(); Nov vnos. Obdobje = "20170101"; Nov vnos. Prodajalec = Imeniki. Nasprotne stranke. FindByName("PJSC ""Pisalne potrebščine" "" ) ; Nov vnos. Izdelek = Imeniki. Izdelki. FindByName("Svinčnik"); Nov vnos. Vsota = 27; SetRecords. Write(False) ;

V metodi Napiši() parameter, odgovoren za zamenjavo obstoječih vnosov, je nastavljen na laž. To pomeni, da bo naš nabor zapisov dodan samo obstoječemu. Prvič, ko koda deluje uspešno. Če poskusimo ponovno izvesti to kodo, bomo prejeli okno s sporočilom o napaki, ker zapise s takšnim naborom meritev že imamo in je nemogoče dodati še enega enakega.


Če pa način preglasitve nastavimo na Resnica, potem pri ponovnem snemanju ne bo prišlo do napake, ker obstoječi vnosi bodo prepisani.

V primeru dela z enim samim zapisom lahko namesto niza zapisov uporabite upravitelja zapisov.

Ne tako dolgo nazaj sem moral počistiti register informacij. Ta register je hranil zgodovino sprememb v nekaterih konfiguracijskih objektih in je vseboval več milijonov vnosov.

Običajen način za programsko brisanje registra informacij, ki ni podrejen registrarju, je pisanje praznega niza zapisov, nekako takole:

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

Recordset=RegistersInfo. Naš register CreateRecordSet() ;

RecordSet. Napiši();

Toda v tem primeru bi čiščenje registra na ta način trajalo več ur. Zato je bila izbrana druga metoda - hiter načinčiščenje registra informacij.

Korak 1. Izdelamo varnostno kopijo baze podatkov. Ta postavka seveda ni obvezna, vendar vam bo navada izdelave varnostne kopije pred kakršnim koli potencialno nevarnim dejanjem zagotovo prihranila živce / čas / plačo / kariero.

Korak 2. Kopiramo zahtevani register informacij.

3. korak. Izbrišite izvirni register informacij

4. korak Preimenujte kopijo v izvirnik in uporabite spremembe.

Na tako preprost način bo čiščenje informacijskega registra trajalo nekaj minut, ne glede na velikost tega registra. Razlika je v tem, da se pri drugi metodi tabela registra informacij v celoti izbriše, kar je veliko hitreje.

Skoraj vsak konfiguracijski element je mogoče počistiti na podoben način. Seveda pa nihče ne jamči za pravilnost računovodstva po taki operaciji.

Če ste našli napako ali netočnost, označite del besedila in kliknite Ctrl+Enter.

Ta članek je na voljo tudi v naslednjih jezikih: tajska

  • Naslednji

    Najlepša hvala za zelo koristne informacije v članku. Vse je zelo jasno. Zdi se, da je bilo z analizo delovanja trgovine eBay vloženega veliko dela.

    • Hvala vam in ostalim rednim bralcem mojega bloga. Brez vas ne bi bil dovolj motiviran, da bi veliko svojega časa posvetil vodenju te strani. Moji možgani so urejeni takole: rad se poglobim, sistematiziram raznovrstne podatke, poskusim nekaj, česar pred menoj še nihče ni naredil ali na to nisem gledal s takega zornega kota. Škoda, da le našim rojakom zaradi krize v Rusiji nikakor ni do nakupovanja na eBayu. Na Aliexpressu kupujejo iz Kitajske, saj je velikokrat cenejše blago (pogosto na račun kakovosti). Toda spletne dražbe eBay, Amazon, ETSY bodo Kitajcem zlahka dale prednost pri ponudbi blagovnih znamk, vintage predmetov, ročnih izdelkov in različnih etničnih izdelkov.

      • Naslednji

        V vaših člankih je dragocen vaš osebni odnos in analiza teme. Ne zapustite tega bloga, pogosto pogledam sem. Veliko bi nas moralo biti. Pošlji mi email Pred kratkim sem po pošti prejel predlog, da bi me naučili trgovati na Amazonu in eBayu. In spomnil sem se vaših podrobnih člankov o teh dražbah. območje Še enkrat sem vse prebral in ugotovil, da so tečaji prevara. Ničesar še nisem kupil na eBayu. Nisem iz Rusije, ampak iz Kazahstana (Almaty). Vendar nam tudi ni treba dodatno porabiti. Želim vam veliko sreče in pazite nase v azijskih deželah.

  • Lepo je tudi, da so poskusi eBaya, da rusificira vmesnik za uporabnike iz Rusije in držav CIS, začeli obroditi sadove. Navsezadnje velika večina državljanov držav nekdanje ZSSR ni močna v znanju tujih jezikov. Angleščino ne govori več kot 5% prebivalstva. Več med mladimi. Zato je vsaj vmesnik v ruskem jeziku v veliko pomoč pri spletnem nakupovanju na tej trgovalni platformi. Ebey ni šel po poti kitajskega kolega Aliexpressa, kjer se izvaja strojno (zelo okorno in nerazumljivo, mestoma vzbujajoče smeha) prevajanje opisa izdelka. Upam, da bo na naprednejši stopnji razvoja umetne inteligence visokokakovostno strojno prevajanje iz katerega koli jezika v kateregakoli postalo resničnost v nekaj delčkih sekunde. Zaenkrat imamo tole (profil enega od prodajalcev na ebayu z ruskim vmesnikom, a angleškim opisom):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png