Průřez posledně jmenovaného poskytuje kombinace podél všech rozměrů. Funkce získání snímku nejnovějších záznamů v registru informací. Rozměry, zdroje a detaily

1C informační registry je to strukturovaný soubor dat s dimenzemi a zdroji. Navrženo pro ukládání pravidelných informací.

Periodicita

Informace jsou uloženy podle dimenzí a období. Frekvenci informačního registru můžete nastavit:

  • Neperiodické
  • registrátorem
  • druhý
  • týden
  • Měsíc
  • čtvrťák

Frekvence je potřebná k výběru informací z registru za určité časové období. Pokud zadáte frekvenci, záznamy v registru budou provedeny s obdobím, kdy byl záznam proveden. Řekněme, že když se podíváte do registru „Ceny položek“, můžete vidět historii změn cen, s jakými měřeními a v jakém časovém období byl záznam proveden.

Frekvence v informačních registrech je potřebná pro informace, které se v čase mění, například: směnné kurzy, ceny produktů, slevy a přirážky produktů atd.

Registrátoři

Provádíte-li zápis do rejstříku informací pomocí dokumentu, je třeba nastavit režim zápisu: „Podání na podatelnu“ a vybrat dokument, kterým bude zápis do rejstříku proveden. Poté se v evidenci objeví pole „Matrikář“, kde budou uloženy informace o tom, jakým dokladem byl zápis proveden. Záznamník lze také použít jako období, v poli „Frekvence“ uveďte „Podle záznamníku“. Podřízení matrikáři se provádí v případě, že je nutné striktně propojit rejstřík s dokumentem a ruční změna záznamů v rejstříku se stane nedostupnou.

Může existovat několik dokumentů, které budou fungovat jako registrátoři. Chcete-li přidat registrátora, musíte přejít do vlastností požadovaného informačního registru, přejít na kartu „Registrátoři“ a zaškrtnout políčka vedle dokumentů, které budou fungovat jako registrátor.

Můžete vidět pohyby, které rekordér dělá z dokumentu. Chcete-li to provést, musíte přejít na dokument, který vás zajímá, kliknout na: Přejít – Pohyby dokladů registrátorem.

Nezapomeňte přidat práva ve vlastnostech registru, lze je přiřadit na kartě „Práva“. Poté je potřeba v seznamu rolí vybrat roli, ke které chcete přidat práva do registru a v seznamu práv nastavit práva pro vybranou roli.

Jedinečnost záznamů

Jedinečnost záznamu závisí na období a měření. Pokud například chcete ve stejný den zapsat záznam se stejnými měřeními do registru „Ceny zboží“, pak to nebudete moci udělat a program způsobí chybu, protože periodicita registru je během jednoho dne.

Je-li četnost stanovena registrátorem, podílí se i na jedinečnosti záznamu.

U neperiodických a nezávislých registrů závisí jedinečnost na kombinaci dimenzí.

formuláře

Pro prohlížení záznamů slouží formulář seznamu, v něm si můžete nastavit výběr podle oborů, které vás zajímají, prohlížet si historii záznamů a měnit je přes záznamový formulář. Záznamy registru můžete zobrazit následovně: in horní menu Klikněte na tlačítko "Operace" - "Registry informací". V okně, které se otevře, vyberte registr, který potřebujete. Poté se otevře formulář seznamu ve formě tabulky, kde každý záznam je jedinečný záznam.

Pro úpravu/vytvoření použijte formulář záznamu, pokud je záznam podřízen registrátorovi, pak pole nebude dostupné a formulář nelze vytvořit.

Formuláře musíte přidat v konfigurátoru tak, že přejdete do registru informací, v záložce „Formuláře“ a kliknete na „lupu“ požadovaný typ formuláře. Dále se otevře okno, kde můžete nakonfigurovat pole budoucího formuláře (umístění, názvy a specifikovat funkčnost).


Rozměry, zdroje a detaily

Rozměry jsou určeny k vytvoření jedinečnosti záznamu v budoucnu, můžete je vybrat a provést řez na základě konkrétního rozměru. Kombinace měření tvoří klíč záznamu. Je lepší netvořit velký počet měření, aby stůl nerostl a nezpomaloval se při práci s ním.

Dimenze mají zaškrtávací políčko „Leader“, pokud je zaškrtnuto, záznam bude uložen v databázi, dokud bude existovat dané měření. Lze provést několik předběžných měření. Například v informačním registru „Ceny položek“ je vedoucí dimenze položka, pokud odstraníte položku, která je zahrnuta v záznamu, bude záznam v registru informací pro tuto položku automaticky odstraněn.

Zdroje jsou určeny k ukládání souhrnných informací: množství, cena atd. V budoucnu budeme dostávat zdroje na určitou dobu (pokud je registr periodický), podle měření.

Podrobnosti jsou ve většině případů určeny pro skladování dodatečné informace, nepodílejí se na jedinečnosti záznamu. Do detailů můžete například zadat informace, jako je autor, komentář atd.

S registrem informací můžete provádět následující akce:

  • Smazání záznamu v registru informací 1C

Zvláštnosti

— Jedinečnost záznamů na základě souboru dimenzí: každý záznam v informačním registru je novou hodnotou zdroje.

— Záznamy v rejstříku informací mohou být buď pravidelné, nebo ne.

— Registr informací může být závislý a nezávislý na registrátorovi.

— Je možné provést průřez prvním a posledním záznamem k požadovanému datu. To je realizováno virtuálními tabulkami: „Slice of the First“ a „Slice of the Last“. Pro použití těchto tabulek můžete použít výběr i dotaz (v návrháři dotazů tyto virtuální tabulky vyberete a můžete na ně vytvořit dotaz). Tyto tabulky budou dostupné, pokud je registr informací pravidelný.

Registr „Ceny položek“ je periodický registr informací, zápisy se provádějí podle registrátora.

Obrázek ukazuje, že frekvence je nastavena na jeden den. To znamená, že cenu lze změnit jednou denně na základě měření jedinečných během dne.

Evidence je podřízena dokumentu „Nastavení cen položek“. To znamená, že zápis do rejstříku pochází z tohoto dokumentu. Pohyby na konkrétním dokladu lze zobrazit z formuláře dokladu „Nastavení cen položek“.

Registr je určen k ukládání informací o ceně položky s rozměry „Typ ceny“, „Položka“ a „Vlastnosti položky“. Vedoucí dimenze jsou všechna trojrozměrná pole, na jejichž základě bude možné provádět výběry při vzorkování.

Závěr: Po přečtení článku budete moci vytvořit registr informací 1C, přidat dimenze a zdroje, nakonfigurovat úpravy a vypsat formuláře. Vytvořte záznam a proveďte výběr existující záznamy. Pokud máte nějaké dotazy, použijte komentáře v článku, pokusím se rychle odpovědět na váš dotaz.

V testovací konfiguraci máme periodický informační registr „Nomenklaturní ceny“ s následujícími počátečními údaji:

Obrázek také ukazuje strukturu metadat registru. Jak vidíme, registr obsahuje dimenzi „Produkt“ s typem reference „Produkty“, dále číselný zdroj „Cena“ a atribut „OldPrice“.

Řekněme, že ve zprávě potřebujeme získat část nejnovějších záznamů pro produkty a jejich ceny s podmínkou, že stará cena je menší nebo rovna 50.

Dvě možnosti požadavku

Ihned řeknu, že zvážíme správné a nesprávné možnosti. To je chyba, kterou začínající programátoři často dělají. A tak byl pro zprávu napsán následující dotaz:

Žádost = Nová žádost; Žádost. Text = " VYBRAT | | | | | Z | Registr informací. Ceny Nomenklatury. Slice of the Latest JAK Ceny NomenklaturaSlice of the Latest|KDE | Ceny NomenklaturaPlátekNejnovější. Stará cena< = 50 " ;

Věnujte pozornost stavu v sekci "KDE". To je hlavní chyba! Tento dotaz nevrátí jediný záznam a zde je důvod: při použití virtuálních tabulek, v našem případě "Last Slice", jsou data nejprve načtena z databáze podle podmínek popsaných v virtuální stůl a poté se provedou akce popsané v textu požadavku (seskupení, podmínky v sekci „KDE“, řazení atd.).

Proto v našem příkladu požadavek nevrací výsledek. Nejprve obdrží část z toho druhého a teprve poté nastaví podmínku u atributu „Stará cena“. Takto to vypadá na diagramu:

Pro správné vyřešení problému je nutné přenést podmínku pro atribut „Stará cena“ do podmínek virtuálního stolu. Takto bude vypadat správný text požadavku:

Žádost = Nová žádost; Žádost. Text = "VYBRAT Ceny NomenklaturaPlátekPoslední. Doba, Ceny NomenklaturaPlátekPoslední. Produkt, Ceny NomenklaturaPlátekPoslední. Cena, Ceny NomenklaturaPlátekPoslední. Stará cena Z Registr informací. Ceny Nomenklatury. SliceLast(, OldPrice< = 50 ) JAK CENYNomenklaturaSliceNejnovější"

Nyní požadavek obdrží správná data, protože bude přijata část nejnovějších cen s ohledem na podmínku pro atribut „Stará cena“.

Výsledek

Je třeba si uvědomit, že výše uvedené platí pro všechny případy použití virtuálních tabulek v dotazech (pro akumulační registry, účetní registry, úlohy atd.).

Z toho také vyplývá hlavní pravidlo pro používání virtuálních tabulek: „při použití virtuální tabulky nezapomeňte nastavit parametry výběru přímo ve virtuální tabulce, jinak dotaz obdrží nepotřebná data, která budou následně použita pro výběr.“

/
Provádění zpracování dat

Řešení součtů pro periodické informační registry

Oblast použití: spravovaná aplikace, mobilní aplikace, běžná aplikace.

1.1. U periodických informačních registrů se doporučuje povolit součty, pokud jsou splněny všechny následující podmínky:

  • v registru se očekává velký objem dat (např. u registru s cenami položek je to opodstatněné, u registru s kurzy to ale nemá smysl);
  • konfigurace poskytuje frekvenční dotazy na řezy druhého v aktuálním čase a/nebo na řezy prvního za účelem získání aktuálních dat (tj. když období není specifikováno v parametrech virtuálních tabulek Nejprve řezání A Slice of the Last);
  • zatímco zbývající podmínky pro virtuální tabulky Nejprve řezání A Slice of the Last jsou nastaveny pouze na naměřené hodnoty (a oddělovače v režimu Nezávisle a společně);
  • omezení přístupu k datům registru používají pouze dimenze (a oddělovače, které jsou v režimu Nezávisle a společně).

Úplný seznam všech podmínek, kdy dotazy používají součty registru informací, vizdokumentaci pro platformu 1C:Enterprise.

Například pokud konfigurace obsahuje často prováděné dotazy do registru Ceny Nomenklatury pro získání aktuální ceny zboží:

Vybrat předmět. Článek AS Článek, Nomenklatura cen. Cena AS Cena, . . . Z adresáře. Nomenklatura AS Nomenklatura LEVÉ SPOJENÍ Registr informací. Ceny Nomenklatury. SliceLast(, PriceView = &Typ cen) JAK Ceny Nomenklatury Nomenklatura cen softwaru. Nomenklatura = Nomenklatura. Odkaz . . .

poté, za všech ostatních podmínek uvedených výše, nastavení vlastnosti Povolit součty: část posledních výrazně urychlí provádění takových dotazů, a to díky tomu, že výběr bude proveden přímo z doplňkových tabulek, které ukládají pouze poslední hodnoty (pro oříznutí posledních) a první hodnoty (pro oříznutí prvních jedničky).

1.2. Kromě toho byste měli zvážit alternativní možnosti revidovat žádosti do registru tak, aby byly tyto podmínky splněny.

Například pokud v některých případech údaje v registru Ceny Nomenklatury jsou evidovány k budoucímu datu a při výběru zboží do této evidence je vždy požadováno dnešní datum(datum je explicitně nastaveno v parametru virtuální tabulky Slice of the Last), pak výsledky provádění takových dotazů neurychlí. Vzhledem k tomu, že součty jsou sestaveny pouze pro první a poslední záznamy registru.

Pokud však při otevírání formuláře pro výběr produktu analyzujete, zda existují registrátoři s budoucím datem, a pokud žádní nejsou, spustíte další dotaz na část druhého bez nastavení data, bude takový dotaz fungovat rychleji.

2. Ve všech ostatních případech by neměly být součty povoleny pro pravidelné informační registry. Za prvé, pokud

  • nejčastěji (vždy) jsou dotazy prováděny na virtuální tabulky prvního/posledního periodického registru informací za konkrétní období (například na datum dokumentu).
  • v podmínkách pro virtuální stoly Nejprve řezání A Slice of the Last Nejčastěji (vždy) se používají poddotazy a spojení (volání „přes tečku“ do polí souvisejících tabulek). Například v tomto případě:

3. V konfiguraci není potřeba poskytovat samostatný mechanismus pro přepočítávání součtů, protože aktualizace součtových tabulek se provádí automaticky při každém zápisu sady záznamů do registru.

: Nejprve řezání A Slice of the Last Zvažme práci s těmito virtuálními tabulkami pomocí 1C. Mnohem častěji používaný Slice of the Last, tak začneme s tím.

Výseč nejnovější umožňuje získat poslední záznam registru informací k určenému datu v rámci měření. Pro poslední (první) tabulku řezů je možné zadat dva parametry v závorkách oddělené čárkami. První parametr obsahuje datum vytvoření řezu (pokud parametr není zadán, je řez vytvořen k aktuálnímu datu). Druhý parametr je podmínka v dotazovacím jazyce 1C a umožňuje nastavit různé výběry. V těchto výběrech se zpravidla používají měření. To vše zní dost vágně, takže se to bez příkladu neobejde.
Mějme tedy pravidelný registr informací Cena který ukládá ceny podle produktu a dodavatele. Frekvence registrace je den.

Registr obsahuje následující položky

Nejprve získáme část druhého bez použití parametrů provedením následujícího požadavku:

SELECT PriceSliceLast.Period AS Období, PriceSliceLast.Product AS Product, PriceSliceLast.Supplier AS Dodavatel, PriceSliceLast.Amount AS Částka OD Registrovat Information.Price.SliceLast AS PriceSliceLast

Vzhledem k tomu, že parametry nejsou specifikovány, je řez proveden k aktuálnímu datu - 02.01.2017. Výsledkem je následující tabulka

Zde vidíme, že unikátní je kombinace rozměrů Produkt + Dodavatel, tzn. Pro každou kombinaci dimenzí registru byl pořízen záznam s maximálním datem a datum záznamu je menší nebo rovno aktuálnímu datu.

Řekněme, že potřebujeme udělat totéž, ale chceme získat záznamy s datem menším nebo rovným 15. 1. 2017. Chcete-li to provést, musíte změnit řádek s nejnovější tabulkou řezů v požadavku následovně

FROM RegisterInformation.Price.SliceLast(&CutDate,) AS PriceSliceLast

Před provedením požadavku mu samozřejmě musíte předat parametr &Datum vystřižení. Nyní bude výsledek dotazu vypadat takto

A nakonec si představte, že potřebujeme získat snímek nejnovějších ke stejnému datu s podmínkou, že zboží máme Tužka a dodavatelem Papírnictví. Chcete-li to provést, zadejte druhý parametr v požadavku

FROM RegisterInformation.Price.Last Cut(&Datum vyjmutí, Produkt = &Produkt A Dodavatel = &Dodavatel) JAKO CenaPoslední řez

Výsledkem je pouze jeden záznam

Abyste se ve všech těchto závorkách a čárkách neztratili, je lepší použít tvůrce dotazů. Jako příklad vám ukážu poslední požadavek.

Po výběru tabulky s výřezem nejnovějších v návrháři dotazů musíte kliknout na tlačítko Možnosti virtuálního stolu a v okně, které se otevře, napište

Je snadné uhodnout, že pro první řez je princip fungování stejný, kromě toho, že je vybrán první záznam po datu řezu.

Někdy je potřeba použít dotaz k získání dat pro několik dat najednou z periodického informačního registru. Typickým příkladem je práce s měnovými kurzy. Podívejme se na algoritmus pro řešení tohoto problému pomocí příkladu.

Formulace problému

V databázi je vytvořen doklad „Prodej zboží a služeb“, v jehož záhlaví je atribut „Měna“. Žádost vyžaduje získání každého dokumentu aktuální kurz měny z hlavičky k datu dokladu. Kurzy měn jsou uloženy v pravidelném informačním registru „Měnové kurzy“.
Přímým řešením tohoto problému by mohl být dotaz ve smyčce: získání všech dokladů s jejich daty a měnami a v příkladu přístup k virtuální tabulce s výřezem z nejnovějšího registru „Currency Kurzy“. Ale protože požadavek ve smyčce je „špatný“, zkusme úkol implementovat jedním požadavkem.

Řešení

K vyřešení problému využijeme toho, že tabulky v dotazu lze propojit nejen pro rovnost polí.

VYBERTE Prodej zbožíSlužby.Odkaz, Prodej zbožíSlužby.Měna, MAXIMÁLNÍ (kurzy měn.období) JAKO období MÍSTO V obdobíNastavení sazeb Z dokumentu. Prodej zbožíSlužby JAK Prodej zbožíSlužby LEVÉ PŘIPOJENÍ Registr informací. Kurzy měn JAK Services.Currency = Kurzy měn. Měna a prodej zbožíSlužby. Datum >= Kurzy měn. Období GROUP Software Prodej zboží a služeb, prodej zboží a služeb. ///////////////////////////////////////////////// /////////////////////////// SELECT VTPobdobíNastavení sazeb.Link,VTPobdobíNastavení sazeb.Měna, sazbyCurrency.Rate Z VTPobdobíNastavení sazeb JAKO Období VTPNastavení sazeb LEVÉ PŘIPOJENÍ RegistrovatInformace .

Postup pro žádost:

  1. Získání období pro nastavení kurzu pro každý doklad. Dokumenty jsou propojeny s FYZICKOU tabulkou „Kurzy měn“. Zde byste měli věnovat pozornost podmínkám připojení. Měny se musí rovnat a datum dokumentu >= období evidence informací.
    V důsledku takového spojení bude pro každý dokument získána sada řádků, které splňují podmínku: všechny záznamy o směnných kurzech pro měnu dokumentu, založené nejpozději k datu dokumentu.
    Posledním krokem bude seskupení řádků, abyste získali období maximální rychlosti. Výsledkem je, že pro každý doklad bude získáno požadované období pro nastavení směnného kurzu pro požadovanou měnu (maximální datum pro nastavení směnného kurzu, maximálně však datum dokladu). Výsledek je umístěn do dočasné tabulky VTPeriodsSettingRates.
  2. Získání kurzu. Dočasná tabulka VTPeriodsSetting Rates je propojena s tabulkou PHYSICAL „Currency Rats“. K připojení dojde podle měny dokladu a období nastavení sazby definované v druhé dočasné tabulce.