1s 8.3 SKD sakaru stāvoklis. Saistības starp datu kopām piekļuves kontroles sistēmā un to izmantošanas principi

Dažkārt, lai iegūtu noteiktu izkārtojuma rezultātu, piekļuves kontroles sistēmā ir jāizveido saites starp datu kopām. Mēs centīsimies runāt par to, kad tas ir nepieciešams un kā to izdarīt mūsu rakstā.

1C ieviestā datu izkārtojuma shēma atbalsta trīs veidu datu avotus (1. att.)

Datu avoti

Acīmredzamākais un izstrādātāju biežāk izmantotais datu avots ir vaicājums.

1C 8. versijā ieviestais vaicājumu noformētājs ir ļoti ērts, un vairumā gadījumu vairākas tabulas var saistīt kopā un tieši tajā veikt nepieciešamos grupējumus un atlases.

Sarežģītos gadījumos, kad nepieciešams vai piemērotāk ir izmantot kāda koda izpildi (piemēram, ielādējot datus no trešās puses faila) vai ja nav iespējams izmantot vaicājumu, datu avots “Objekts” nonāk glābšana. Patvaļīgam modulim izpildītajam kodam izejā jābūt noteiktai struktūrai, kurai piekļuves kontroles sistēma var piekļūt.

Trešais datu avots ir “Savienība”. Faktiski šo avotu var uzskatīt par vienu no komunikācijas veidiem. Tas apvieno (samazina vairākas tabulas vienā), nesaskaņojot, bet gan atsevišķu lauku sakritību. Tas ir, ja divām tabulām, kas tiek savienotas, ir attiecīgi 3 un 4 rindas, tad iegūtajā datu avotā būs 7 rindas.

Problēmas formulēšana

Kā izmēģinājumu poligonu izvēlēsimies UPP bāzi, versiju 1.3.92.3, kas darbojas normālā aplikācijas režīmā.

Mums ir dots šāds uzdevums: izmantojot tikai piekļuves kontroles sistēmu, izveidot atskaiti, kurā tiktu parādīta no dokumenta iegādāto preču tabula ar cenām, kas ņemtas no darījuma partnera nosūtītā faila.

Tātad mums ir:

  1. Ņem tabulas daļa saņemšanas dokuments;
  2. Augšupielādējiet failu datu avotā “Objekts”;
  3. Saistiet šos divus avotus ar noteiktu parametru (mūsu gadījumā tas būs kods);
  4. Parādiet iegūto tabulu.

Izpildes process

Iziesim visas uzskaitītās darbības:

  • Veidojam vaicājumu kvīts dokumenta tabulas daļai (2. att.)

2. att

  • Izveidot datu kopas objektu (3. att.);

3. att

Šeit ir svarīgi pievērst uzmanību “Datus saturošā objekta nosaukumam”, tas ir nosaukums, kas mums būs jānorāda atskaites moduļa kodā.

  • Dodamies uz atskaites moduli un tur izveidojam procedūru “Rezultāta sastādīšanas laikā” (4. att.);


4. att

Mēs neaprakstīsim datu iegūšanas procedūru no ārējā faila, mēs pievērsīsim uzmanību tai koda daļai, kurai jābūt izkārtojumā, lai mēs varētu iegūt datus “Data Set 2” (5. att.).

5. att

Svarīgs! Veidojot “Objektu” procedūras kodā saistīšanas laikā, parametra StandardProcessing vērtībai ir jābūt False.

Dodieties uz cilni “Datu kopas saites”.

Saistīšanas komplekti

Dodieties uz atbilstošo diagrammas cilni (6. att.).

Mēs redzam tabulas daļu, kas ir ļoti līdzīga tai tabulas daļai, kas atrodas vaicājumu noformētājā, ar dažiem izņēmumiem. Saziņas avota kopai un sakaru galamērķa kopai nevar atzīmēt izvēles rūtiņu “Visi”, taču ir pievienotas vairākas papildu kolonnas.

Datu kopu relācijās varat izveidot tikai tādas attiecības, kas ir līdzīgas vaicājuma konstruktora kreisajam ārējam savienojumam.

Pirms savienojuma izveides izlemsim par kolonnu mērķi:

  1. Saites avots ir pirmā datu kopa, no kuras tiks ņemtas visas pieejamās vērtības;
  2. Sakaru uztvērējs – datu kopums, no kura tiks atlasītas mūsu stāvoklim atbilstošas ​​vērtības;
  3. Avota izteiksme – pirmās datu kopas lauks vai izteiksme, pret kuru tiks veikta salīdzināšana;
  4. Mērķa izteiksme ir atkarīgās kopas lauks vai izteiksme;
  5. Parametrs – ja šajā laukā norādāt parametra nosaukumu, tad saziņa ar uztvērēja komplektu tiks veikta tikai pēc parametrā norādītās vērtības;
  6. Parametru saraksts – nosaka iespēju kā parametru izmantot vērtību sarakstu;
  7. Savienojuma nosacījums – šeit norādot izteiksmi, izmantojot avota laukus, var izveidot nosacījumu, kura izpilde kalpos kā signāls savienojuma izveidošanai;
  8. Sākotnējā vērtība – parāda savienojuma sākotnējo vērtību;
  9. Obligātā saistība — nosaka, vai avotā (iestatīts uz FALSE) vai galamērķī (iestatīts uz TRUE) izmantotie lauki ir iespējoti, un, pamatojoties uz to, pievieno relāciju izkārtojumam.

Tādējādi:

  • Saziņas avots būs mūsu pieprasījuma rezultāts;
  • Objekts darbosies kā uztvērējs;
  • Avota izteiksme būs “NomenclatureCode”;
  • Uztvērēja izteiksme “Nomenklatūra”;
  • Komunikācija būs obligāta (7. att.).

Ja mēs kā savienojuma nosacījumu būtu norādījuši kādas nomenklatūras nosaukumu vai tās reprodukcijas veidu, vai ko citu, mēs savam uzdevumam būtu varējuši iegūt precīzāku paraugu. Mūsu darbību rezultāts redzams 8. att

8. att

Cenu failā nebija atbilstošas ​​​​atskaites apakšējās divas rindiņas.

Datu kompozīcijas sistēma var izmantot vairākas datu kopas. Un tas ir diezgan loģiski, ka šīs datu kopas ir kaut kā jāsavieno viena ar otru. Pēc analoģijas ar 1C vaicājumu valodu datu kopas var būt vai nu. Šajā rakstā mēs runāsim par datu kopu savienošana piekļuves kontroles sistēmā.

No pirmā acu uzmetiena var nebūt skaidrs, kāpēc jums ir jāizveido vairākas datu kopas un pēc tam tās jāapvieno, ja varat vienkārši apvienot tabulas vienā datu kopā. Tam ir vismaz viens iemesls - ārējas datu kopas izmantošanas gadījumā. Kā jūs zināt, rakstot vaicājumu ACS datu kopai, mēs nevaram tajā pāriet, piemēram, . Lai gan parastam pieprasījumam tas tiek darīts pavisam vienkārši. Piekļuves kontroles sistēmas izmantošanas gadījumā vērtību tabulu esam spiesti pārsūtīt uz to kā . Tāpēc ir nepieciešams savienot datu kopas. Ļaujiet man nekavējoties atzīmēt, ka datu kopas var savienot tikai, izmantojot KREISAIS SAVIENOJUMS. Tāpēc atšķirībā no šeit jūs neredzēsit izvēles rūtiņas, kas ir atbildīgas par tabulas savienojuma veidu.

Tagad izdomāsim situāciju, izmantojot piemēru, kurā mēs varam apsvērt datu kopu savienošanu piekļuves kontroles sistēmā. Pieņemsim, ka mums ir direktorijs Preces, ko varam saņemt no dažādiem piegādātājiem, un mēs vēlamies izveidot atskaiti ar preču cenām pēc piegādātāja, lai izvēlētos piegādātāju ar visvairāk izdevīga cena. Un mēs ņemsim cenas, kas šobrīd ir aktuālas, piemēram, izmantojot tīmekļa pakalpojumus no piegādātāju vietnēm.

Attiecīgi precēm mums būs datu kopa, kas iegūta, izmantojot pieprasījumu, un cenām mums būs datu kopa, kas iegūta no ārēja avota.


Tagad pāriesim pie grāmatzīmes Datu kopu attiecības un konfigurējiet, kā parādīts attēlā.

Uz grāmatzīmes Iestatījumi Vispirms izveidosim detalizētu ierakstu pamata izvadi


Lai tas būtu mūsu direktorijā Preces satur šādus ierakstus

Mēs izpildām pārskatu un redzam šādu attēlu

Tas ir, mēs redzam, ka datu kopas bija savstarpēji saistītas saskaņā ar visiem noteikumiem KREISAIS SAVIENOJUMS

Uz grāmatzīmes Datu kopu attiecības Atbilstošajos laukos ir iespējams norādīt dažus papildu parametrus. Bet tos izmanto diezgan reti. Vairāk varat lasīt tehniskajā dokumentācijā un ITS diskos.

Datu izkārtojuma diagramma (1C SKD)- ērts dizainers sarežģītu atskaišu izveidei 1C:Enterprise programmatūras produktos, kas veicina ražošanas automatizācijas attīstību un izsekošanu, ļaujot tos padarīt pēc iespējas elastīgākus un skaistākus minimālā laikā. Datu kompozīcijas shēmas (1C SKD) papildu priekšrocība ir kontrolētas atskaites formas automātiska ģenerēšana, un, attīstot šo jomu, tas ir svarīgs faktors, izvēloties atskaites izstrādes metodi. Taču datu kompozīcijas shēmas (1C SKD) struktūras sarežģītības un milzīgā iestatījumu skaita dēļ tas bieži vien noved pie ilgākas pārskata izstrādes nekā izmantojot “izvades formas noformētāju”. Tāpēc 1C programmētājam ir jāsaprot visas datu kompozīcijas shēmas (1C DCS) sarežģītības, lai vēl vairāk paātrinātu atskaišu ģenerēšanas izstrādes laiku.

Apskatīsim pirmās trīs datu kompozīcijas shēmas (1C SKD) cilnes - datu kopa, datu kopu savienojumi un aprēķinātie lauki.

Datu kopa 1C SKD

Datu kopa ietver iespēju izveidot trīs objektus - vaicājumu, objektu un savienību, aplūkosim katru no tiem tuvāk:

Šis ir parasts vaicājums, kas tiek ģenerēts, izmantojot pogu Vaicājumu veidotājs. Ja ir iestatīts automātiskās aizpildes karogs, tad visa atlasītā informācija tiks automātiski iekļauta datu kopas laukos. Pieprasījuma lauku aizpildīšanu var pielāgot arī cilnē Datu kompozīcija, kur ir trīs cilnes:

Tabulas, šeit tiek atlasītas tabulas, kas piedalīsies atskaites ģenerēšanā, parasti tiek atlasīti noklusējuma dati, jo cilnē Tabulas un lauki jau esam atlasījuši mums nepieciešamos dokumentus, direktorijus, reģistrus...

Lauki, šeit izvēlamies tos objektus, kas jāiekļauj atskaitē, bērnu karodziņš norāda, vai objektam būs pieejami bērnu elementi vai nē, loģiski, ka virknei, skaitliskiem un līdzīgiem datiem nevarēs iestatīt karogu uz True.

Nosacījumi, šeit mēs atlasām tos objektus, kurus var izmantot piekļuves kontroles sistēmas apstākļos.

Daļa darba tiek veikta datu kompozīcijas shēmā, bet daļa tiek veikta programmatiski; apskatīsim vienkāršu piemēru:

Vispirms izveidosim izkārtojuma diagrammu dokumenta datu izkārtojumam un nosauksim to par SKD (piemēram: 1C SKD), tajā izveidosim datu kopas objektu, tad aizpildām laukus, piemēram, mums ir dokuments ar tabulu preču daļu ar detaļām - nomenklatūru, daudzumu un cenu.

Pievienosim trīs laukus un aizpildīsim katru kolonnu ar detaļu nosaukumu, pārējās kolonnas tiks aizpildītas automātiski:

Izveidosim pogu uz dokumenta formas, aprakstīsim darbības mehānismu kontrolētas formas:

&OnClient

Procedūra Drukāt()

OurReport = PrintOnServer(); //izsaukt funkciju serverī

OurReport.Show(); //parāda ģenerēto atskaiti

Procedūras beigas

&Serverī

Funkcija PrintOnServer()

DocumentObject = FormAttributeValue(“Objekts”);

//tabulas daļu Produkti ievietojam struktūrā ar nosaukumu ProduktiSKD tāpat kā pašā SKD norādījām objekta nosaukumu, kurā ir dati

DataSet = jauna struktūra;

DataSet.Insert(“ProduktiSKD”, DocumentObject.Products);

//mēs iegūstam savu izkārtojumu un iestatām noklusējuma iestatījumus, lai visi atskaites izvades iestatījumi tiktu ņemti no mūsu izkārtojuma

OurLayout = DocumentObject.GetLayout(“SKD”);

Iestatījumi = OurLayout.DefaultSettings;

//izveidot datu izkārtojuma izkārtojumu ar mūsu iestatījumiem

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(Mūsu izkārtojums, Iestatījumi);

//veikt datu kompozīciju ar mūsu datu kopu

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Mēs izveidojam izklājlapas dokumentu un tajā parādām savu pārskatu

ReportDocument = Jauns TabularDocument;

OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Atgriešanas dokumenta atskaite;

EndFunction

Ja vēlaties, varat iegūt jebkura cita izkārtojuma apgabalus un parādīt tos arī šajā pārskatā, piemēram, mums ir standarta izkārtojums maksājuma uzdevuma ģenerēšanai un galvene tajā ir ļoti labi izveidota, tad, lai to nedarītu nevajadzīgs darbs, mēs tikai vispirms iegūsim izkārtojumu, parādīsim galveni, pēc tam ģenerēsim un parādīsim mūsu pārskatu par piekļuves kontroles sistēmu.

PAR apvienošana

Mēs varam tajā ievietot savus vaicājumus un objektus, bet atšķirībā no savienojuma tas vienkārši pievieno tabulas viena otrai, tas ir, ja mēs savienosim divas identiskas tabulas, mēs nonāksim pie vienas, un, apvienojot, tas dubultosies, paskatīsimies vienkāršā piemērā:

Mums ir tabulas:

Sazinoties, saņemsim:

Un apvienojot:

Tagad apskatīsim kolonnu aizpildīšanu datu kopās (dažas izlaidīsim, jo ​​tās ir saistītas ar citām cilnēm; pie tām atgriezīsimies nākamajos rakstos):

- lauks, norāda atribūta vispārīgo nosaukumu;

­­- ceļš, piekļuves kontroles sistēmā norādiet rekvizītu nosaukumu, ar kuru mēs ar to sazināsimies, piemēram, in Aprēķinātie lauki;

- virsraksts, norādiet atribūta nosaukumu, kas tiks attēlots pārskatā;

- lauka ierobežojums, norādiet šī rekvizīta pieejamību;

- detaļu ierobežošana, norādiet pieejamību bērnu elementi, svarīgi, ja ir norādīta rekvizītu pieejamība, tad būs pieejams arī pats lauks, iespējams, nākamajos laidienos šī mehānika tiks mainīta;

- izteiksme, pēc kuras tiek aprēķināts lauka attēlojums, to ir ērti lietot, ja mums ir nepieciešams nedaudz mainīt detaļu izvadi, piemēram, mums ir nepieciešams pēc nosaukuma nomenklatūra tika parādīts krājums, kur tas atrodas, tad aizpildiet sekojošo: Prece + “atrodas noliktavā” + Noliktava. Es atkārtoju, ka piekļuve informācijai tiek veikta, izmantojot kolonnā norādīto vārdu ceļš;

- izteiksmes sakārtošana, ērts atskaišu secības iestatīšanas mehānisms, kur nosacījumu var iestatīt manuāli, līdzīgi kā iepriekšējā punktā, taču, kā rāda prakse, šis mehānisms bieži nedarbojas tā, kā mēs vēlētos, un iesaku izmantot standarta šķirošanu;

- vērtības veids, norāda atribūta vērtības veidu; tas ir jāaizpilda, ja izmantojat šādu lauku;

- pieejamās vērtības, darbojas tikai tad, kad ir pilns vērtības veids, atveriet veidlapu un kolonnā Nozīme mēs norādām elementu, kas jāmaina, atkarībā no veida, tas var būt iepriekš definēti objekti vai skaitliski, piemēram, detaļām ir vienkāršas vērtības, prezentācija Mēs norādām, uz ko mums ir jāmaina, piemēram, Būla tipa piemērs:

- dekorsstandarta iestatījums lauka formāts, līdzīgi kā iestatījums pārvaldītajās formās, ļauj precīzāk un skaistāk pielāgot noteiktu detaļu izvadi.

Datu kopu savienojumi 1C SKD

Šeit tas ir instalēts tikai pa kreisi pievienoties, pēc principa, kas līdzīgs savienojumiem pieprasījumos, in komunikācijas avots norādiet savienojuma galveno tabulu, in uztvērējs papildu. IN izteiksmes avots Un izteiksmes uztvērējs Mēs norādām detaļas, ar kurām notiks saziņa. Pārējās kolonnas aplūkosim sīkāk, kad apskatīsim cilni. Iespējas. Ja nav papildu savienojuma ar parametriem, tad savienojumu ieteicams veikt pieprasījumā, tas paātrinās atskaiti.

41
Nesen izveidoju ziņojumu ar nenoteiktu skaitu kolonnu. Es negribēju ķerties pie koda, tāpēc nolēmu to darīt piekļuves kontroles sistēmā. Ar to nebija nekādu problēmu, bija nepieciešams izstiept rezultātu uz patvaļīgu izkārtojumu (jūsu galvene +... 27
Pat ja CDS studenti ar to saskaras pirmajā vai otrajā dienā, tam vajadzētu būt FAQ sadaļā. Vienkāršs piemērs, kā programmatiski izvadīt atskaiti par izkārtojumu, izmantojot noklusējuma iestatījumus. //Iegūt diagrammu no... 18
Ģenerējot atskaites par piekļuves kontroles sistēmu, pēc noklusējuma visas grupēšanas tiek paplašinātas, bet dažkārt ir nepieciešams uzreiz pēc ģenerēšanas parādīt atskaiti ar sakļautām grupām! Šis kods atskaites modulī ļauj sakļaut... 9
Izstrādājot atskaites ir nepieciešams, lai lietotājam ar ierobežotām tiesībām atskaite tiktu ģenerēta pilnībā bez tiesību pārbaudes! It īpaši, ja ir konfigurēts RLS. Ir vairāki veidi, kā to izdarīt: 1. Instalējiet...

Šajā gadījumā izvēles rūtiņa Nepieciešams nosaka, vai lauki, kas tiek izmantoti avotā (iestatīts uz FALSE) vai galamērķī (iestatīts uz TRUE), ir iespējoti, un, pamatojoties uz to, pievieno relāciju izkārtojumam.

Katrai datu kopai varat iestatīt hierarhijas pārbaudi.

Šo opciju izmanto, ja lauka atlases nosacījums ir jāapstrādā nestandarta veidā. Laukā var norādīt datu kopu, no kuras tiek iegūti dati, lai pārbaudītu, vai saite pieder noteiktas vērtības hierarhijai.

11. C eksāmena 11.33. jautājums: Platform Professional. Vai ir pieņemami izmantot vairākas datu kopas?

  1. Tikai izmantojot datu kopas – objekts
  2. Tikai izmantojot datu kopas - vaicājums

Pareizā atbilde ir pirmā, tā ir pieņemama jebkurā gadījumā.


1.C eksāmena 11.10. jautājums: Platform Professional. Definējot attiecības starp divām datu kopām datu kompozīcijas diagrammā

  1. Savienojuma opciju (pa kreisi, pilnu) izvēlas izstrādātājs
  2. Vienmēr tiek izmantots pirmās kopas kreisais savienojums ar otro
  3. Vienmēr tiek izmantots otrās kopas kreisais savienojums ar pirmo
  4. Tiek izmantots pirmās kopas kreisais savienojums ar otro, dažos gadījumos tiek izveidots iekšējais savienojums

Pareizā atbilde ir ceturtā. Datu kopas ir savienotas tikai ar kreiso vai iekšējo savienojumu.

1.C eksāmena 11.13. jautājums: Platform Professional. Kādos gadījumos ir jākonfigurē hierarhijas pārbaude izkārtojuma diagrammas noformētāja loga cilnē "Datu kopas"

  1. Ja jums ir jāaizliedz saņemt kopsummas atbilstoši savai hierarhijai, kas atšķiras no standarta
  2. Ja jums ir jāļauj iegūt kopsummas atbilstoši savai hierarhijai, kas atšķiras no standarta
  3. Ja jums ir jāaizliedz atlases uzstādīšana, lai iekļūtu jūsu hierarhijas grupā, kas atšķiras no standarta
  4. Ja jums ir jāatļauj atlases iekļaušana jūsu hierarhijas grupā, kas atšķiras no standarta

Pareizā atbilde ir ceturtā, apraksts ierakstā.

1.C eksāmena 11.16. jautājums: Platform Professional. Kādus savienojumus starp divām datu kopām var realizēt kompozīcijas sistēmā?

  1. Viss kā vaicājuma valodā: "Visi visiem", "Pa kreisi", "Pa labi", "Iekšējais" un "Pilns"
  2. Tikai "Visi visiem", "Pa kreisi", "Pa labi" un "Iekšējais"
  3. Tikai "kreisais" un "iekšējais"
  4. Tikai "Visi visiem", "Pa kreisi" un "Iekšējais"
  5. Tikai "kreisais", "labais", "iekšējais" un "pilns".

Pareizā atbilde ir ceturtā, saskaņā ar testa rezultātu. Patiesībā trešais ir pareizs.

1.C eksāmena 11.17. jautājums: Platform Professional. Iestatot attiecības starp divām datu kopām, tiek atlasīts karodziņš "Nepieciešamā saistība". Kādā gadījumā lietotāja darbības izraisīs savienojuma kļūmi?

  1. Datu savienojums no abām kopām tiks īstenots neatkarīgi no lietotāja veiktajiem iestatījumiem
  2. Atlasīto lauku sarakstā tiek rādīti tikai tie lauki, kas atrodas kreisajā kopā
  3. Atlasīto lauku sarakstā ir norādīti tikai labās kopas lauki
  4. Atlasīto lauku sarakstā ir norādīti tikai kreisās kopas lauki, tiek atlasīts labās kopas lauks
  5. Atlasīto lauku sarakstā ir norādīti tikai labās kopas lauki, tiek atlasīts kreisās kopas lauks

Pareizā atbilde ir otrā, ja ir tikai viena kopa (un avots), tad nav ko pieslēgt.

1.C eksāmena 11.39. jautājums: Platform Professional. Kā ārējie dati tiek pārsūtīti uz kopu - objektu datu kompozīcijas sistēmā?

  1. Izmantojot iebūvēto valodu, izmantojot datu kompozīcijas procesoru
  2. Iebūvētās valodas izmantošana, izmantojot izkārtojuma veidotāju
  3. Izmantojot iebūvēto valodu, izmantojot datu kompozīcijas sistēmas izvades procesoru

Pareizā atbilde ir pirmā, izmantojot procesoru.