Vytvářejte a mažte položky registru informací. Vytváření a mazání záznamů registru informací 1s 8 periodická změna registru informací podle dokumentu

Rychlý průchod

Možnost softwaru pro kompletní čištění:

Když provedete zápis do registru, informace budou rychle odstraněny. Pokud je registr informací velký, bude to nějakou dobu trvat, ale obvykle několik sekund.

Sada záznamů je speciální "správce" pro správu skupiny záznamů.

Pokud není nastaven výběr podle rozměrů a počáteční čtení není provedeno metodou Read(), pak se v okamžiku volání Write() uloží aktuální prázdný stav.

Interaktivní mazání záznamů registru informací

Ve spravovaném režimu provozu konfigurace je standardně povolen vícenásobný výběr záznamů registru a pokud je registr nezávislý (není podřízen matričnímu dokumentu), je možné skupinu záznamů smazat.

Vyberte přes shift a všechny záznamy příkazem Ctrl + A a stiskněte "Delete" nebo přes kontextové menu "Delete"

Pokud je počet záznamů větší než 1000, pak systém při výběru vydá upozornění na dobu trvání operací, ale umožní výběr pokračovat.

U seznamů s více než 5000 položkami se použití této metody nedoporučuje, protože když se seznam řádků v poli tabulky zvětší, jeho práce se dramaticky zpomalí.

V normálních formulářích je standardní mazat jeden řádek najednou.

Zpracování pro mazání záznamů registru informací

  • Kromě změny a mazání záznamů registru byla přidána možnost používat libovolný algoritmus.
  • Výběrem RS ze seznamu formulář zobrazí dynamický seznam registrů.
  • Generuje pole přímo ve formuláři pro změnu aktuálního záznamu. Záznamy můžete měnit, přidávat, mazat.
  • U skupiny záznamů (zvýrazněné řádky v dynamickém seznamu) můžete změnit pole, včetně rozměrů. DŮLEŽITÉ: Záznam je v režimu přepisování, takže pokud konečný záznam již existuje nebo jste změnili jedinou dimenzi skupiny záznamů, následky mohou být katastrofální. Ale doufám, že rozumíte tomu, co budete dělat.
  • Při změně polí se rámeček zvýrazní. Vždy si uvědomujete, co se změní. To platí zejména pro skupiny záznamů.
  • Je možné nahrávat v režimu stahování
  • Je možné nastavit další vlastnosti záznamu (někdy velmi důležité)
  • Používá privilegovaný režim.
Skupinové zpracování informačních registrů na základě zpracování z Gmix
  • Změna (z jednoho na všechna pole), mazání a kopírování (s nahrazením libovolného počtu polí) záznamů informačních registrů.

Není to tak dávno, co jsem potřeboval vyčistit registr informací. Tento registr uchovával historii změn v některých konfiguračních objektech a obsahoval několik milionů záznamů.

Obvyklý způsob, jak programově vyčistit registr informací, který není podřízen registrátorovi, je zapsat prázdnou sadu záznamů, něco takového:

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

Recordset=Informace o registrech. Náš registr CreateRecordSet() ;

RecordSet. Napsat() ;

Ale v tomto případě by čištění registru tímto způsobem trvalo mnoho hodin. Proto byl zvolen jiný způsob – rychlý způsob vymazání registru informací.

Krok 1. Vytvoříme záložní kopii databáze. Tato položka samozřejmě není povinná, ale zvyk vytvořit si záložní kopii před jakoukoli potenciálně nebezpečnou akcí vám rozhodně ušetří nervy / čas / plat / kariéru.

Krok 2. Zkopírujeme požadovaný registr informací.

Krok 3. Vymažte původní registr informací

Krok 4 Přejmenujte kopii na originál a použijte změny.

Takto jednoduchým způsobem bude vymazání informačního registru trvat několik minut, bez ohledu na velikost tohoto registru. Rozdíl je v tom, že ve druhé metodě je tabulka informačních registrů zcela odstraněna, což je mnohem rychlejší.

Podobným způsobem lze vymazat téměř jakýkoli konfigurační prvek. Ale za správnost účetnictví po takové operaci samozřejmě nikdo neručí.

Pokud jste našli chybu nebo nepřesnost, zvýrazněte část textu a klikněte Ctrl+Enter.

V tomto článku se podíváme, jak na to mazat a zapisovat položky registru informací. A v první řadě zvážíme mazání záznamů, protože. není ani tak důležité vytvářet nové záznamy, ale uložit ty stávající.

A při neopatrné manipulaci s registrem informací je velmi snadné smazat všechny existující záznamy, které budou zobrazeny níže. Jako příklad použijeme následující informační registr

Mazání záznamů registru informací

Jak víte, pro práci s registrem informací se používá sada záznamů. Napíšeme dva jednoduché řádky kódu pro náš registr a spustíme je ke spuštění

Recordset = RegistryInfo. Cena. CreateRecordSet() ; SetRecords. Napsat() ;

Gratulujeme! Právě jsme vyhodili všechny záznamy v informační knize. I když by se zdálo, že při zápisu prázdného souboru záznamů se nemůže stát nic kriminálního. Pokud se však obrátíte na asistenta syntaxe, uvidíte, že v tom není žádný rozpor. Pokud zapíšeme sadu záznamů a v metodě Napsat() parametry nejsou specifikovány Lhát(a ve výchozím nastavení je nahrazeno True), pak je stávající sada záznamů nahrazena tím, který zapisujeme, v souladu se zavedeným výběrem. A protože jsme nenastavili výběr, všechny položky registru jsou vybrány k nahrazení a jsou úspěšně nahrazeny prázdnou sadou položek. A to je hráblo, na které občas šlápnou vývojáři, kteří nejsou první den v 1C. Mimochodem, pokud chceme schválně úplně vyčistit registr, pak je to metoda, kterou bychom měli použít. Upozorňuji na to, protože dost často dochází ke kódu, kdy se před smazáním načte sada záznamů, pak se vymaže a teprve potom zapíše. I když čtení a mazání sady záznamů je zde zcela nadbytečné.

Nyní si představte, že nepotřebujeme mazat všechny položky registru, ale pouze s konkrétními naměřenými hodnotami. Algoritmus akce je v tomto případě stejný, pouze před záznamem je nutné nastavit příslušný filtr pro naši prázdnou sadu záznamů. V článku o, jako příklad, jsme zvažovali stejný registr informací - Cena. Dovolte mi připomenout, že jsme tam měli následující záznamy

Řekněme, že chceme odstranit záznamy kde Produkt - Tužka, A Období - 01.01.2017. Připomínám, že u periodických registrů informací lze výběr nastavit nejen podle rozměrů, ale také podle období. V tomto případě bude náš kód vypadat takto

Recordset = RegistryInfo. Cena. CreateRecordSet() ; SetRecords. Výběr. Doba. Set("20170101") ; SetRecords. Výběr. Produkt. Set(Adresáře. Zboží. FindByName("Tužka" ) ) ; SetRecords. Napsat() ;

Také chci upozornit na metodu Nainstalujte(). V případě, kdy typ srovnání ve výběru je Rovná se tato metoda umožňuje nastavit výběr s minimálním množstvím kódu.
Po provedení tohoto kódu zůstanou v našem registru následující položky

Při mazání záznamů mohou samozřejmě nastat složitější případy. Například, když potřebujete odstranit záznamy pro určité hodnoty zdrojů nebo atributů.

Zde již nelze použít výběr, protože. lze jej nastavit pouze pro dimenze, záznamníky a období. A zde již musíte projít jednu nebo více sad záznamů, jednotlivé záznamy smazat a sadu přepsat.

Přidávání záznamů do registru informací

Jako příklad vytváření záznamů registru informací obnovíme dříve smazané záznamy

Recordset = RegistryInfo. Cena. CreateRecordSet() ; SetRecords. Výběr. Doba. Set("20170101") ; SetRecords. Výběr. Produkt. Set(Adresáře. Zboží. FindByName("Tužka" ) ) ; NewRecord = RecordSet. Add() ; NewEntry. Období = "20170101"; NewEntry. Prodejce = Adresáře. Protistrany. FindByName("LLC "Lesprom" "" ); NewEntry. Produkt = Adresáře. Zboží. FindByName("Tužka" ) ; NewEntry. Částka = 10 ; NewRecord = RecordSet. Add() ; NewEntry. Období = "20170101"; NewEntry. Prodejce = Adresáře. Protistrany. FindByName("PJSC ""Papírnictví" "" ); NewEntry. Produkt = Adresáře. Zboží. FindByName("Tužka" ) ; NewEntry. Součet = 27; SetRecords. Write(False) ;

V metodě Napsat() parametr zodpovědný za nahrazení existujících položek je nastaven na Lhát. To znamená, že naše sada záznamů bude přidána pouze k té stávající. Poprvé kód funguje úspěšně. Pokud se pokusíme spustit tento kód znovu, zobrazí se okno s chybovou zprávou, protože již máme záznamy s takovým souborem měření a nelze přidat další stejné.


Pokud ale nastavíme režim přepsání na Pravda, pak se při opětovném nahrávání nevyskytne žádná chyba, protože existující záznamy budou přepsány.

V případě práce s jedním záznamem můžete místo sady záznamů použít správce záznamů.

V 1C existuje několik typů registrů:

  • Akumulace, které uchovávají zůstatky nebo obraty v číselné formě;
  • Pro mzdovou agendu se obvykle používají kalkulace, které uchovávají typy kalkulací a kalkulace samotné;
  • Účetní oddělení s údaji o účetních kalkulacích ve tvaru Dt-Kt;
  • informační rejstříky.

Posledním jmenovaným se budeme věnovat podrobněji, protože umožňují sestavovat data z databáze podle úseků měření. Například „Cenová nomenklatura“ ukládá data pro konkrétní nomenklaturu a charakteristiky pro určitý typ ceny.

Obr.1 Registr "Cenová nomenklatura"

Charakteristika

Registr může být periodický i neperiodický, kdy není nutné ukládat pořadí změn. Pokud ale přesto potřebujete ukládat, pak je nastaveno, v jakém období program nastaví kontrolu nad jedinečností záznamů: za sekundu, za den, měsíc, čtvrtletí a rok.


Obr.2 Periodicita a režim záznamu

Pokud se pokusíte vytvořit dva záznamy ve stejném období, program vygeneruje chybu "Záznam s takovými klíčovými poli existuje!" a nedovolí vám zapisovat do databáze.

Můžete také určit režim nahrávání. První s "Podání na podatelnu", ve kterém budou záznamy evidovány podle dokumentů a v každém z nich bude uveden registrátor dokumentů. Zvolíte-li druhý - nezávislý režim, pak data registrátor nezaznamenává, ale přidává např. přímo ze seznamu nebo jako zpracování.


Obr.3 Režimy záznamu

Zvláštností periodického registru je, že můžete použít výřez z posledních nebo prvních a získat hotové hodnoty z databáze o poslední / první nastavené hodnotě pro určité datum.

Zápis do registru informací 1C

Řádky v registru s tečkou a registrátorem obsahující informace o zdrojích v kontextu dimenzí se nazývají záznamy.

K přidání záznamu do registru se používá buď správce záznamů, nebo sada záznamů. Pokud mají položky v hlavní knize společný klíč, je nutné použít sadu záznamů. A pro záznam jednoho záznamu, pokud jsou všechny záznamy v registru jedinečné, musíte použít RecordManager.

Příklad záznamu při použití objektuRegisterRegisterRecordSet.

Použití Správce nahrávání:

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

Při použití sady záznamů a metody zápisu se záznam zapíše do registru podrobností sady záznamů. V tomto případě může dojít jak k pouhému přidání řádků, tak k nahrazení stávajících řádků v registru. U nezávislých registrů budou bez nastavení filtrů všechny záznamy v registru vymazány a nahrazeny přidanými záznamy.

Pokud zapíšete data bez výběru do podřízeného registru, dojde k chybě.

Příklad záznamu využívajícího sadu záznamů v informačním registru podřízeném registrátorovi Nomenklatura cen:

NewRecordSet =Informace o registrech.NomenklaturaCeny.CreateRecordSet(); NewRecordSet.Selection.Registrar.Set(Reference); NewRecordSet = NewRecordSet.Add(); NewSetRecord.Period = Reference.Date; NewSetRecord.Nomenclature = Reference.Nomenclature; NewSetRecord.Price = Reference.Price; NewRecordSet.Write();

Příklad nahrávání přes správce nahrávání:

Record = RegistersInformation.Currency Rates.CreateRecordManager(); Record.Period = Datum; Record.Course = Kurz; Record.Currency = Měna; Write.Write();

Vyhledávání a čtení v registru informací

Chcete-li najít záznam v registru informací a přečíst si jej, potřebujete pomoc s dotazy. Potřebujeme například získat ceny zadané určitým registrátorem:

VYBERTE ceny položek.Nomenklatura, ceny položek.Cena Z registru informací.Ceny položek JAKO Ceny položek KDE Ceny položek.Registrátor = &Registrátor

Úprava a mazání záznamů

Chcete-li odstranit záznam v registru informací, například všechny směnné kurzy EUR, použijte následující kód:

Struktura výběru = new Structure("Currency", Dictionaries.Currencies.FindBy Name("EUR")); Selection = Registry Information.Murrency Rates.Select(,SelectionStructure); While Selection.Next() LoopRecordManager = Selection.GetRecordManager(); Selection.GetRecordManager().Delete(); EndCycle;

Pro rychlé a úplné vymazání registru můžete použít následující kód:

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

Pro opravu a změnu registru, stejně jako pro rychlé naplnění registru daty, můžete napsat generické zpracování.

Podobné články

2023 dvezhizni.ru. Lékařský portál.