Piekļuves kontroles sistēmu izvēle, izmantojot parasto formu. ACS ir paredzēts ne tikai atskaitēm - universālu izlašu ieviešanai. Datu kompozīcijas sistēmas vaicājumu valodas paplašinājuma sintaktiskie elementi

Lai rakstītu apstrādi, programmētājiem bieži bija jāizmanto vaicājumi, lai iegūtu datus un pēc tam tos apstrādātu. Dati savukārt tika iegūti no pieprasījuma. Nu, pieprasījums bez atlases vai filtra ir reti sastopams. Parunāsim par atlasēm šādos pieprasījumos, izmantojot pieprasījuma piemēru:

Lai organizētu lietotāja atlasi pēc darījuma partnera parastajā formā, programmētājam veidlapā bija jāievieto trīs elementi, kas izskatījās apmēram šādi:

Cik daudz pūļu programmētājam jāiegulda, lai aprakstītu dažāda veida salīdzinājumus (vienāds, ne vienāds, sarakstā, grupā...) un, pamatojoties uz šiem salīdzināšanas veidiem, precizētu savu galīgo datu iegūšanas pieprasījumu.

Apskatīsim, kā to var izdarīt, izmantojot ACS. Mūsu apstrādes laikā izveidosim izkārtojumu ar datu kompozīcijas shēmas veidu un aizpildīsim to ar mūsu pieprasījumu:

Cilnē Iestatījumi mēs pievienosim jaunu grupu bez detaļām un, mūsu piemērā, lauku Konts, jo galu galā mēs visu nokļūsim vērtību tabulā:

Un cilnē Atlase pievienojiet atlasei darījuma partneri:

Tagad sāksim veidot veidlapu. Pašā apstrādes formā parādīsim atlasi, ar kuru lietotājs strādās. Veidlapā parādīsim Tabulas lauka tipa elementu un piešķirsim tam nosaukumu Selection ar datu tipu Composer.Settings.Selection:

Tagad izveidosim notikumu apdarinātājus OnOpen veidlapai un apdarinātāju, lai noklikšķinātu uz pogas Palaist, kods ir parādīts zemāk:

Perem izkārtojums; Procedūra PogaIzpildītNospiediet(Button) Result.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Izvades procesors = jauns izvades procesors datu apkopošanai vērtību kolekcijā; OutputProcessor.SetObject(Result); OutputProcessor.Output(CompositionProcessor); Ja FormElements.Result.Columns.Quantity() = 0, tad FormElements.Result.CreateColumns(); endIf; EndProcedure ProcedureOnOpen() Layout = GetLayout("Izkārtojums"); SourceAvailableSettings = Jauns SourceAvailableSettingsDatuSastāvs(Izkārtojums); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); Beigās Procedūra

Apstrāde ir gatava, pēc tās palaišanas mūsu Atlasē uzreiz varat redzēt mūsu Atlasē parādīto darījuma partneri, no kura varat izvēlēties jebkura veida salīdzinājumu, kā arī pievienot papildu atlases rindas, izmantojot Darījuma partneru direktorijas informāciju:

Tas arī viss. Es ceru, ka šis raksts palīdzēs jums uzlabot atlases elastību apstrādē.

Kononovs Sergejs

Vaicājuma valodas paplašinājums datu veidošanas sistēmai

Vaicājumu valodas paplašināšana datu kompozīcijas sistēmai tiek veikta, izmantojot īpašas sintaktiskās instrukcijas, kas ievietotas krokainajās iekavās un ievietotas tieši vaicājuma tekstā.

Datu kompozīcijas sistēmas vaicājumu valodas paplašinājuma sintaktiskie elementi

IZVĒLIES

Šajā teikumā ir aprakstīti lauki, kurus lietotājs varēs atlasīt izvadei. Pēc šī atslēgvārda tiek uzskaitīti galvenā vaicājumu atlases saraksta lauku aizstājvārdi, kas būs pieejami konfigurēšanai, atdalot tos ar komatiem.

Piemēram:

(ATLASĪT vienumu, noliktavu)

Aiz lauka aizstājvārda var būt rakstzīmju kombinācija “.*”, kas norāda uz iespēju izmantot šī lauka pakārtotos laukus.

Piemēram, ieraksts Nomenklatūra.* norāda uz iespēju izmantot lauka “Nomenklatūra” pakārtotos laukus (piemēram, lauku “Nomenclature.Code”). Elements SELECT var parādīties tikai pirmajā savienojuma vaicājumā.

KUR

Ir aprakstīti lauki, kuros lietotājs var piemērot atlasi. Šajā priekšlikumā tiek izmantoti tabulas lauki. Atlases saraksta lauku aizstājvārdu izmantošana nav atļauta. Katra savienības daļa var saturēt savu WHERE elementu.

(KUR Nomenklatūra.*, Noliktava)

Vienkāršs piemērs

Vajag dabūt izpārdošanu par periodu + izlikt visu preci neatkarīgi no tā, bija vai nebija izpārdošanas. Tas ir, jums ir jāatlasa dati no Pārdošanas reģistra apgrozījuma tabulas, dati no nomenklatūras direktorija. Izlaidīsim jautājumu par to, kāpēc mums ir vajadzīga visa nomenklatūra.

Problēmas risināšanai var izveidot vaicājumu, kas savieno preci un Pārdošanas apgrozījuma tabulu ar kreiso savienojumu, kā rezultātā precei, kas netika pārdota izvēlētajā periodā, mēs iegūsim lauku vērtības Darījuma partneris, vienošanās, Daudzums, Summa= Null. Šis pieprasījums:

SELECT ReferenceNomenclature.Link AS Nomenclature, SalesApgrozījums. Darījuma partneris, PārdošanasApgrozījums. Darījuma partnera līgums, Pārdošanas Apgrozījums.DaudzumsApgrozījums AS Daudzums, PārdošanasApgrozījums.IzmaksasApgrozījums AS Izmaksas NO Atsauces.Nomenklatūra AS AtsaucesNomenklatūras.KREISĀS Apgrozījums Programmatūra Acc .Link = Pārdošanas apgrozījums. Nomenklatūra

Lūk, rezultāts:

Darījuma partneris vienošanās Nomenklatūra Daudzums Summa
null null _Pārbaude1 null null
SIA "Ragi un nagi" Līgums1 Čības 10 1200
"Gazprom" Foršs līgums Zābaki 5 13000
null null Galoshes null null
null null Šīferis null null

Šajā piemērā netika pārdotas šādas preces: “Apavi” un “Čības”.

Un viss būtu kārtībā, ja sagrupētu izlasi pēc darījuma partnera, tad visas nepārdotās preces nonāks atsevišķā grupā, kur Darījuma partneris = Null, bet klients vēlas, lai pārskatā būtu izlases veida atlase pēc darījuma partnera lauka (protams, ka šis nozīmē darījumu partneri no Pārdošanas reģistra). Ko man darīt? Galu galā mums ir tikai jāfiltrē tabula Pārdošana. Ja ACS konstruktorā izmantojam automātisko pabeigšanu, pieejamajos atlases laukos tiks iekļauts lauks Darījuma partneris, šķiet, ka viss ir kārtībā, bet, izpildot atskaiti ar atlasi pēc darījuma partnera, mēs zaudēsim visus ierakstus no savienojuma ar preci. Piemēram, iestatīsim atlasi: Darījuma partneris = SIA "Ragi un nagi". Rezultāts izskatīsies šādi:

Nepavisam nav tas, kas mums vajadzīgs, vai ne?

Lai atrisinātu problēmu, jūs, protams, varat pievienot parametru vaicājumam, piemēram, virtuālās tabulas parametros Pārdošanas Apgrozījums, bet tajā pašā laikā tiek zaudēta elastība, nosakot salīdzināšanas veidu.

Ir risinājums: šim nolūkam vaicājumu veidotājs uz cilnes Datu sastāvs => Tabulas pievienojiet nosacījumu lauku virtuālās tabulas nosacījumiem Pārdošanas Apgrozījums un nomainiet viņa segvārdu uz Darījuma partnera izvēle

Lai nemulsinātu lietotāju ar atlases laukiem, nosacījuma lauku atslēgsim Darījuma partneris un mainiet lauka nosaukumu Darījuma partnera izvēle


Šīs shēmas izpildes rezultātā, kad izvēle ir iespējota darījuma partnera laukā, iegūtais vaicājums būs šāds:

SELECT Reference Nomenclature.Link AS Nomenclature, SalesApgrozījums. Darījuma partneris AS Darījuma partneris, PārdošanasApgrozījums. Darījuma partnera līgums, Pārdošanas Apgrozījums.DaudzumsApgrozījums AS >Daudzums, PārdošanasApgrozījums.IzmaksasApgrozījums AS Izmaksas, Pārdošanas aprites līgums ATIONLINK (Pārdošanas apgrozījums. Darījuma partneris) AS Darījuma partnerisIevads, SprNomenklatūra.Presentation AS NomenclaturePresentation NO Directory.Nomenclature AS SprNomenclature LEFT CONNECTION Reģistrēties Uzkrājumi.Pārdošana.Apgrozījums(&P , , , Counterparty = &P3 ) ASY SprNomenclatureNr.

Un attiecīgi rezultāts:

Darījuma partneris vienošanās Nomenklatūra Daudzums Summa
null null _Pārbaude1 null null
SIA "Ragi un nagi" Līgums1 Čības 10 1200
null null Zābaki null null
null null Galoshes null null
null null Šīferis null null

Test1 ir grupa nomenklatūras direktorijā, kurā atrodas viss

Publikācijai pievienota publikācijā izmantotā atskaites XML shēma. Es izveidoju shēmu integrētajā automatizācijā, bet es domāju, ka viss darbosies labi gan UPP, gan UT 10

Apkopojot

Šis piemērs parāda, kā izveidot savus atlases iestatījumus piekļuves kontroles sistēmā un atspējot automātiski izveidotos iestatījumus, ja plānojat ķēdi ar iespējotu karogu Automātiskā aizpilde.

Ja jums ir pietiekami daudz pieredzes, lai izveidotu shēmas, neizmantojot Automātiskā aizpilde- tad šim ieteikumam nav jēgas.

Izmantotā programmatūra

  • Ekrānuzņēmumu programmaSnimOK!
  • XML failu redaktors

Kam var izmantot SKD?

Izveidotais atzinums ir paredzēts ziņošanas nolūkiem.

Patiesībā ACS iespējas pārsniedz universālu pārskatu izveidi.

Un šodien mēs parādīsim, kā izmantojot piekļuves kontroles sistēmu, lietotājs varēs konfigurēt elastīgu datu atlasi. Turklāt šī atlase tiks izmantota, iegūstot un apstrādājot datus.

Kādiem uzdevumiem tas noderēs?

Dosim piemēri no tipiskām konfigurācijām:

  • Apstrāde “Datu augšupielāde vietnē”
  • Cenrāža veidošana
  • Datu augšupielāde TSD (datu vākšanas terminālī)
  • Produktu, partneru segmentēšana
  • Pasūtījumu (klientu, piegādātāju) formēšana atbilstoši vajadzībām
  • Remonta plānošana 1C:ERP.

Tas ir, rīks ir noderīgs visur, kur nepieciešams nodrošināt lietotājam plašas izvēles iespējas.

Nejaušas izlases izveide kontrolētā formā, izmantojot ACS

Nodarbība aptver darbu ar iestatījumu veidotājs datu izkārtojuma shēmas:

  • Veidlapas atlases izvade
  • Programmatūras savienojums starp iestatījumu veidotāju un izkārtojuma diagrammu
  • Noklusējuma atlases izveide piekļuves kontroles sistēmā.

Datu saņemšana no datu bāzes ar filtrēšanu pēc ACS izvēles

Videoklipā parādīts, kā varat atlasīt datus, izmantojot iestatījumu veidotāja iepriekš iestatīto atlasi.

Tiek izmantots "biedējošs" objekts - ProcessorOutputResultCompositionDataIntoValueCollection.

Patiesībā ne viss ir tik sarežģīti – 8 minūtēs mēs atrisinām problēmu.

SKD atlases saglabāšana informācijas bāzē

Nodarbībā mēs apskatīsim saglabājot ACS veidotāja iestatījumus izmantojot Value Store.

Izdomāsim, kā atrisināt šo problēmu konfigurācijā “1C: Manufacturing Enterprise Management 1.3”.

Patīkamu skatīšanos! :)

Kopumā ACS sniedz daudz iespēju.

Šeit ir daži “triki”, kurus mums pat nebija laika aprakstīt kursa lapā.

Ja jums ir nepieciešams savākt datus no dažādiem avotiem, ir trīs iespējas.

Varat mēģināt izveidot vienu “universālu” vaicājumu visiem datiem (garu), varat parādīt vairāku vaicājumu datus cilpā (stingra, neelastīga struktūra) - vai arī varat vienkārši izmantot ACS un datu kopu pieslēgšana viena pieprasījuma vietā.

Tajā pašā laikā ir svarīgi iegūt pareizus rezultātus - tam ir savas īpatnības, ja ir vairāki avoti

Ar SKD palīdzību jūs varat vienkārši iegūstiet jaunāko momentuzņēmumu par katru pārskata datumu.

Vai arī skaidrības labad - iegūt produkta cenu katram pārdošanas datumam.

Ar SKD palīdzību jūs varat organizēt pārskatā parāda visus perioda datumus, un ne tikai tiem, par kuriem bija dati pārskatā (datumu pievienošana bez programmēšanas, tikai ar piekļuves kontroles sistēmas iespējām)

Izmantojot ACS, varat organizēt ligzdotas grupas, pievienojot periodus (gads/ceturksnis/mēnesis utt.)

Sakārtojiet pārskatu pēc vēlēšanās, piemēram, slejas galveni attēlojiet vertikāli un datus šajā kolonnā horizontāli.

Ļauj lietotājam izvēlēties, cik bieži dati tiks parādīti pārskatā (pa gadiem, pēc ceturkšņa, pēc mēneša) – tikai pēc iestatījumiem, nerediģējot atskaites moduli.

Kā pārskatā apvienot vairākus nosacījumus, izmantojot VAI? Šī opcija, piemēram, nav pieejama atskaišu veidotājā, bet ir pieejama ACS

Ja kopsavilkuma datus attēlojat diagrammas veidā, jums ir jāspēj precīzi kontrolēt to izskatu: sērijas marķieru redzamību, mainīgas diagrammu sēriju krāsas, pagātnes datu atdalīšanu no nākotnes datiem diagrammā ar vertikālu līniju. utt.

Protams, ir nianses, kurām jāpievērš uzmanība.

Veidojot atskaiti, izstrādātājs atkļūdoja vaicājuma tekstu, taču, izmantojot šo vaicājumu piekļuves kontroles sistēmas atskaitē, sistēma rada nepareizu rezultātu.

Tāpēc ir svarīgi iegūt vaicājumu, ko sistēma faktiski izpilda, lai iegūtu datus no datu bāzes, un atkļūdot šādu vaicājumu.

Pievienojot atskaitei informāciju par dokumentu ierakstītāju, sistēma dažkārt rada “nepareizus” sākuma un beigu atlikumus.

Tāpēc ir svarīgi pareizi konfigurēt piekļuves kontroles sistēmas atskaites laukus, lai atlikumi tiktu pareizi attēloti gan ar dokumenta detaļām, gan bez tiem.

Pārskata rezultāts var mainīties atkarībā no tā, kur ir konfigurēta atlase pēc resursa vērtības — tas ir jāuzrauga pārskata līmenī un atsevišķas grupas līmenī.

Ja Tu gribi profesionāli apgūt ACS un katru dienu pieteikties savā darbā, pierakstīties kursiem:

Atbalsts - 2 mēneši. Kursa apjoms - 34 mācību stundas.

Neatliec treniņus!