ACS nie je len pre správy - implementácia univerzálnych výberov. Používanie výberov v SCD Ako robiť výbery bez SDS

Na zápis spracovania museli programátori často použiť dotazy na získanie údajov a ich následné spracovanie. Údaje sa zase získali zo žiadosti. Žiadosť bez výberu alebo filtra je zriedkavá. Povedzme si o výberoch v takýchto žiadostiach pomocou vzorovej žiadosti:

Aby bolo možné organizovať výber podľa protistrany pre používateľa v bežnej forme, programátor musel do formulára umiestniť tri prvky, ktoré vyzerali asi takto:

Koľko námahy dá programátorovi popísať rôzne typy porovnaní (rovnaké, nerovnaké, v zozname, v skupine...) a na základe týchto typov porovnávania spresniť svoju finálnu požiadavku na získanie údajov.

Pozrime sa, ako sa to dá urobiť pomocou ACS. V našom spracovaní vytvorte Layout s typom Data Composition Scheme a vyplňte ho našou požiadavkou:

Na záložku Nastavenia pridáme nové zoskupenie bez podrobností a v našom príklade pole Účet, keďže nakoniec dostaneme všetko do tabuľky hodnôt:

A na karte Výber pridajte protistranu do výberu:

Teraz začneme vytvárať formulár. Ukážme si na formulári samotného spracovania Selekciu, s ktorou bude užívateľ pracovať. Na formulári zobrazíme prvok typu Pole tabuľky a dáme mu názov Selection s dátovým typom Composer.Settings.Selection:

Teraz vytvoríme obslužné nástroje udalostí pre formulár OnOpen a obslužný nástroj pre kliknutie na tlačidlo Spustiť, kód je uvedený nižšie:

Rozloženie perem; Procedure ButtonExecutePress(Button) Result.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Výstupný procesor = nový výstupný procesor výsledku zloženia dát do zbierky hodnôt; OutputProcessor.SetObject(Result); OutputProcessor.Output(CompositionProcessor); Ak FormElements.Result.Columns.Quantity() = 0 Then FormElements.Result.CreateColumns(); koniec Ak; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = New SourceAvailableSettingsDataComposition(Layout); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); Koniec procedúry

Spracovanie je pripravené, po jeho spustení môžete v našom Výbere okamžite vidieť Protistranu, ktorá sa objavila v našom Výbere, z ktorej si môžete vybrať akýkoľvek typ porovnania, ako aj pridať ďalšie výberové riadky pomocou podrobností v adresári Protistrany:

To je všetko, dúfam, že vám tento článok pomôže zlepšiť flexibilitu výberu pri vašom spracovaní.

Kononov Sergej

Na čo sa dá ŠKD použiť?

Stanovené stanovisko slúži na účely podávania správ.

v skutočnosti Možnosti ACS presahujú vytváranie univerzálnych správ.

A dnes si ukážeme ako pomocou systému kontroly prístupu bude môcť používateľ nakonfigurovať flexibilný výber údajov. Ďalej sa tento výber použije pri získavaní a spracovaní údajov.

Pre aké úlohy to bude užitočné?

Dajme si príklady z typických konfigurácií:

  • Spracovanie „Nahrávanie údajov na stránku“
  • Tvorba cenníka
  • Nahrávanie údajov do TSD (terminál na zber údajov)
  • Segmentácia produktov, partnerov
  • Formovanie objednávok (klientov, dodávateľov) podľa potrieb
  • Plánovanie opráv v 1C:ERP.

To znamená, že nástroj je užitočný všade tam, kde je potrebné poskytnúť užívateľovi široké možnosti výberu.

Vytvorenie náhodného výberu v riadenej forme pomocou ACS

Lekcia zahŕňa prácu s tvorca nastavení Schémy rozloženia údajov:

  • Výstup výberu na formulári
  • Softvérové ​​spojenie medzi tvorcom nastavení a diagramom rozloženia
  • Vytvorenie predvolených výberov v systéme riadenia prístupu.

Príjem údajov z databázy s filtrovaním podľa výberu ACS

Video ukazuje, ako môžete vybrať údaje pomocou predtým nastaveného výberu v nástroji na vytváranie nastavení.

Používa sa „strašidelný“ objekt – ProcessorOutputResultCompositionDataIntoValueCollection.

V skutočnosti nie je všetko také zložité - za 8 minút problém vyriešime.

Ukladanie výberov SKD v informačnej databáze

V lekcii sa pozrieme uloženie nastavení ACS Builder pomocou obchodu Value Store.

Poďme zistiť, ako tento problém vyriešiť v konfigurácii „1C: Manufacturing Enterprise Management 1.3“.

Príjemné sledovanie! :)

Vo všeobecnosti ACS poskytuje veľa príležitostí.

Tu je niekoľko „trikov“, ktoré sme ani nestihli opísať na stránke kurzu.

Ak potrebujete zbierať údaje z rôznych zdrojov, sú tri možnosti.

Môžete sa pokúsiť zostaviť jeden „univerzálny“ dotaz pre všetky údaje (dlhý), môžete zobraziť údaje niekoľkých dotazov v slučke (pevná, nepružná štruktúra) - alebo môžete jednoducho použiť ACS a pripojenie dátových súborov namiesto jednej žiadosti.

Zároveň je dôležité získať správne výsledky - to má svoje zvláštnosti, ak existuje niekoľko zdrojov

S pomocou SKD môžete jednoducho získajte aktuálny prehľad pre každý dátum v prehľade.

Alebo pre prehľadnosť - získať cenu produktu pre každý dátum predaja.

S pomocou ACS môžete organizovať zobrazenie všetkých dátumov za obdobie v prehľade, a nielen tie, pre ktoré boli v prehľade údaje (pridávanie dátumov bez programovania, len s možnosťami systému kontroly prístupu)

Pomocou ACS môžete organizovať vnorené zoskupenia s pridaním období (rok/štvrťrok/mesiac atď.)

Usporiadajte zostavu podľa potreby, napríklad zobrazte hlavičku stĺpca zvisle a údaje v tomto stĺpci vodorovne.

Umožnite užívateľovi zvoliť si frekvenciu zobrazovania údajov v prehľade (po roku, po štvrťroku, po mesiaci) - iba podľa nastavení, bez úpravy modulu prehľadu.

Ako skombinovať niekoľko podmienok pomocou OR v prehľade? Táto možnosť napríklad nie je dostupná v nástroji na tvorbu zostáv, ale je dostupná v ACS

Ak zobrazujete súhrnné údaje vo forme grafu, musíte byť schopní presne ovládať jeho vzhľad: viditeľnosť značiek pre sériu, striedanie farieb sérií grafov, oddelenie minulých údajov od budúcich údajov na grafe zvislou čiarou , atď.

Samozrejme, existujú nuansy, ktorým je potrebné venovať pozornosť.

Pri vytváraní zostavy vývojár odladil text dotazu, ale pri použití tohto dotazu v zostave v systéme kontroly prístupu systém vygeneruje nesprávny výsledok.

Preto je dôležité vedieť získať dotaz, ktorý systém skutočne vykoná na získanie údajov z databázy, a takýto dotaz odladiť.

Pri pridávaní podrobností do záznamníka dokumentov do výkazu systém niekedy vytvára „nesprávne“ počiatočné a konečné zostatky.

Preto je dôležité správne nakonfigurovať polia vo výkaze o systéme kontroly prístupu tak, aby sa zostatky zobrazovali správne s detailom dokladu aj bez neho.

Výsledok zostavy sa môže meniť v závislosti od toho, kde je nakonfigurovaný výber podľa hodnoty zdroja – na úrovni zostavy a na úrovni jednotlivej skupiny to musíte sledovať.

Ak chceš profesionálne zvládnuť ACS a denne uplatniť vo svojej práci, prihláste sa na kurz:

Podpora - 2 mesiace. Rozsah kurzu - 34 vyučovacích hodín.

Neodkladajte štúdium!

Rozšírenie dopytovacieho jazyka pre systém zostavovania údajov

Rozšírenie dopytovacieho jazyka pre systém skladania údajov sa vykonáva pomocou špeciálnych syntaktických inštrukcií uzavretých v zložených zátvorkách a umiestnených priamo v texte dopytu.

Syntaktické prvky rozšírenia dopytovacieho jazyka systému skladania údajov

VYBERTE SI

Táto veta popisuje polia, ktoré bude môcť používateľ vybrať na výstup. Po tomto kľúčovom slove sú uvedené aliasy polí z hlavného výberového zoznamu dotazov, ktoré budú dostupné na konfiguráciu, oddelené čiarkami.

Napríklad:

(VYBRAŤ položku, sklad)

Za aliasom poľa môže byť kombinácia znakov „.*“, ktorá označuje možnosť použitia podradených polí z tohto poľa.

Napríklad položka Nomenclature.* označuje možnosť použitia podradených polí poľa „Nomenclature“ (napríklad pole „Nomenclature.Code“). Element SELECT sa môže objaviť iba v prvom pripájacom dotaze.

KDE

Sú popísané polia, na ktoré môže používateľ použiť výber. Tento návrh používa polia tabuľky. Použitie aliasov polí zoznamu výberu nie je povolené. Každá časť zväzku môže obsahovať svoj vlastný prvok WHERE.

(Nomenklatúra WHERE.*, Sklad)

Jednoduchý príklad

Je potrebné získať tržby za obdobie + zobraziť celú položku bez ohľadu na to, či boli tržby alebo nie. To znamená, že je potrebné vybrať údaje z tabuľky obratu registra tržieb, údaje z nomenklatúrneho adresára. Preskočme otázku, prečo potrebujeme celú nomenklatúru.

Na vyriešenie problému môžete vytvoriť dotaz, ktorý spojí položku a tabuľku obratu predaja ľavým spojením, výsledkom čoho je, že pre položku, ktorá sa vo vybranom období nepredala, získame hodnoty polí Protistrana, Dohoda, Množstvo, Sum= Null. Táto žiadosť:

SELECT ReferenceNomenclature.Link AS Nomenklatúra, PredajObrat.Protistrana, PredajObrat.Dohoda s protistranou, PredajObrat.MnožstvoObrat AS Množstvo, PredajObrat.CostTurnover AKO náklady Z Referencie.Nomenklatúra AKO Referenčná Nomenklatúra LEFT POMENLESSTORN. Odkaz = obrat z predaja. Nomenklatúra

Tu je výsledok:

Protistrana Dohoda Nomenklatúra Množstvo Sum
nulový nulový _Test1 nulový nulový
LLC "Rohy a kopytá" Dohoda1 Papuče 10 1200
"Gazprom" Skvelá zmluva Čižmy 5 13000
nulový nulový Galoše nulový nulový
nulový nulový Bridlice nulový nulový

V tomto príklade nedošlo k predaju položiek: „Návleky“ a „Papuče“

A všetko by bolo v poriadku, ak by sme vzorku zoskupili podľa protistrany, tak všetky nepredané položky budú spadať do samostatnej skupiny, kde Protistrana = Nula, ale klient chce mať v prehľade náhodný výber podľa poľa protistrany (samozrejme, toto znamená protistranu z evidencie tržieb). Čo mám robiť? Koniec koncov, v skutočnosti potrebujeme iba filtrovať tabuľku Predaj. Ak v konštruktore ACS použijeme automatické dopĺňanie, dostupné polia výberu budú zahŕňať pole Protistrana, všetko sa zdá byť v poriadku, ale pri vykonávaní reportu s výberom protistranou stratíme všetky záznamy zo spojenia s položkou. Napríklad nastavíme výber: Protistrana = LLC "Rohy a kopytá". Výsledok bude vyzerať takto:

Vôbec nie to, čo potrebujeme, však?

Na vyriešenie problému môžete samozrejme do dotazu pridať parameter, napríklad k parametrom virtuálnej tabuľky PredajObrat, no zároveň sa stráca flexibilita nastavenia typu porovnávania.

Existuje riešenie: pre toto in tvorca dotazov na karte Zloženie údajov => Tabuľky pridajte pole podmienky do podmienok virtuálnej tabuľky PredajObrat a zmeniť jeho prezývku na Výber protistrany

Aby sme používateľa nemýlili výberovými poľami, pole podmienky zakážeme Protistrana a zmeňte názov poľa Výber protistrany


V dôsledku vykonania tejto schémy s výberom povoleným poľom protistrany bude mať výsledný dotaz tvar:

SELECT SprNomenclature.Link AS Nomenklatúra, PredajObrat.Protistrana AS Protistrana, PredajObrat.Dohoda s protistranou AKO Zmluva protistrany, PredajObrat.MnožstvoObrat AKO >Množstvo, PredajObrat.CostObrat AS Cena, PRESENTATIONuLINK,Zmluva o predaji.Sales.Sales ATIONLINK(Predajný obrat. Protistrana ) AKO Prezentácia protistrany, Nomenklatúra Spr.Prezentácia AKO Prezentácia Nomenklatúry Z Adresára. Nomenklatúra AKO Nomenklatúra Spr ĽAVÉ SPOJENIE Registrovať Akumulácie.Predaj.Turnover(&P , , , Protistrana = &P3 ) AKO PredajObrat PODĽA Spr.Číslo SalesTurnover BY SprNomenclu

A podľa toho aj výsledok:

Protistrana Dohoda Nomenklatúra Množstvo Sum
nulový nulový _Test1 nulový nulový
LLC "Rohy a kopytá" Dohoda1 Papuče 10 1200
nulový nulový Čižmy nulový nulový
nulový nulový Galoše nulový nulový
nulový nulový Bridlice nulový nulový

Test1 je skupina v adresári Nomenclature, v ktorej sa nachádza všetko

K publikácii je pripojená schéma XML zostavy použitej v publikácii. Vytvoril som obvod v integrovanej automatizácii, ale myslím si, že všetko bude fungovať v UPP aj UT 10

Zhrnutie

Tento príklad ukazuje, ako vytvoriť vlastné nastavenia výberu v systéme riadenia prístupu a deaktivovať automaticky vytvorené nastavenia, ak navrhujete obvod so zapnutým príznakom Automatické dopĺňanie.

Ak máte dostatok skúseností na vytváranie obvodov bez použitia Automatické dopĺňanie- potom táto rada nedáva zmysel.

Použitý softvér

  • Program na snímanie obrazovkySnimOK!
  • Editor súborov XML