Mājas / Internets / 1s 8 izveide no dinamiska saraksta. Dinamiskā saraksta iestatījumi

1s 8 izveide no dinamiska saraksta. Dinamiskā saraksta iestatījumi

Beidzot jebkura "septiņspēlētāja" sapnis ir piepildījies. Cik bieži programmas 7.7 lietotāji lūdza veikt normālu vienumu atlasi. Lai jūs varētu redzēt atlikumus, cenas un iestatīt filtrus. Man bija jāizdomā dažādi triki, līdz pat ārējo komponentu rakstīšanai. 1C 8.2 versijā parādījās dinamiskie saraksti. Es ierosinu apsvērt, kas tas ir un ko viņi var mums sniegt 1C 8.3.

Ņemsim par pamatu dažus testa konfigurācija 1C: "Uzņēmuma grāmatvedība 3.0". Mēs tagad neveiksim atlasi, vienkārši pievienosim citu atlases veidlapu "Nomenklatūras" uzziņu grāmatā un uz laiku padarīsim to par galveno:

Kad sistēma ir izveidota, sistēma formai pēc noklusējuma pievienos tabulas lauku ar tipu "Dinamiskais saraksts".

Dosimies uz tās īpašumiem un paskatīsimies, kas tur ir.

Pirmkārt, mūs interesē izvēles rūtiņa "Pielāgots pieprasījums". Viņš mums atklās visas priekšrocības dinamiskais saraksts. Mums būs iespēja uzrakstīt savu vaicājumu un ar parametriem. Atzīmējiet izvēles rūtiņu un noklikšķiniet uz saites "Atvērt":

Tiks atvērts logs ar gatavu kodu . Līdz šim visi direktorija "Nomenklatūra" lauki ir vienkārši uzskaitīti.

Saņemiet 267 1C video nodarbības bez maksas:

Kā redzat, ir zvanīšanas poga "" un izvēles rūtiņa, kas ļauj dinamiski mainīt saraksta saturu. Tas ir, kad cits lietotājs mainīs kaut ko direktorijā, tas mainīsies arī mūsu sarakstā. Turklāt ir cilne Iestatījumi, taču mēs to pieskarsim vēlāk.

Pielāgots vaicājums dinamiskajā sarakstā

Vispirms izveidosim vajadzīgo vaicājumu ar atlikumiem un cenām. Vairāk vai mazāk šādi:

Iestatījumu cilne

Un tagad pats garšīgākais! Dodieties uz cilni "Iestatījumi". Un mēs uzreiz redzam, ka pirmajā cilnē mēs varam veikt jebkuru atlasi jebkuram pieprasījuma laukam:

Vaicājuma parametru programmatiska iestatīšana dinamiskā sarakstā 1C 8.3

Neaizmirstiet, ka pieprasījumā ir divi parametri: "Periods" un "Cenas veids". Mums tie jānodod pieprasījumam, pretējā gadījumā radīsies kļūda.

Ierakstīsim šos parametrus veidlapas parametros un pievienosim šādas rindas veidlapas modulī:

&OnServerProcedure OnCreateOnServer(Kļūme, StandardProcessing) saraksts. Iespējas. SetParameterValue("Periods", Parametri. Datums) ; Saraksts. Iespējas. SetParameterValue("Cenas veids" , Parameters.PriceType) ; Procedūras beigas

Papildus primitīviem datu tipiem, kurus var atrast jebkurā programmēšanas valodā, 1C ir arī unikāli veidi. Katrai no tām ir savas īpašības, metodes, funkcijas, mērķis un lietošanas nianses sistēmā. Viens no šiem veidiem ir dinamisks saraksts, kas ievērojami vienkāršo daudzus lietotos uzdevumus. Tāpēc izstrādātājiem ir jāzina un jāspēj rīkoties ar šo daudzpusīgo rīku.

Dinamisko sarakstu iezīmes 1C

Šī veida mērķis ir parādīt informāciju no jebkuras datu bāzes tabulām neatkarīgi no tās veida. Mehānisms tika izveidots, pamatojoties uz SKD, un tam ir līdzīgas iespējas. Bet tas nenozīmē, ka jums noteikti būs jāraksta vaicājums 1C valodā, lai gan šī iespēja pastāv un jums tā ir jāizmanto. Jūs varat vienkārši norādīt tabulu, informāciju, no kuras jūs interesē, un 1C neatkarīgi ģenerēs vienkāršu vaicājumu.

Lai redzētu, kā tiek veidots dinamiskais saraksts un kādi dati tajā tiek rādīti, ir jāatver pārvaldītās formas, kur tas atrodas, konfiguratorā: detaļu sarakstā, izmantojot konteksta izvēlne atveriet tā rekvizītus un pievērsiet uzmanību vienumam "Patvaļīgs pieprasījums". Ja izvēles rūtiņas nav, tad parametrs "Galvenā tabula" atspoguļo datu bāzes tabulu, no kuras tiek ņemti dati. Pretējā gadījumā dinamiskais saraksts atspoguļo pielāgotus vaicājuma datus, kurus var redzēt, atverot saraksta iestatījumus.

Daudz biežāk tiek izmantota patvaļīga vaicājumu shēma, jo tā sniedz lielisku iespēju apvienot un attēlot visdažādākos datus. Visbiežāk šis mehānisms tiek izmantots, lai atspoguļotu krājumu atlikumus, preču cenas, ienākumus, izdevumus vai pirkumus. Tas ir jāizmanto uzmanīgi, jo veiktspēja var samazināties sarežģītu vaicājumu gadījumā.

Vēl viens noderīgs dinamiskā saraksta rekvizīts tiek atvērts, noklikšķinot uz uzraksta "Saraksta iestatījumi". Šī izvēlne ļauj, pat izmantojot standarta lauku kopu, padarīt informāciju pieejamāku un saprotamāku galalietotājiem. Neatkarīgi no tā, vai tas ir patvaļīgs pieprasījums, jūs redzēsit cilni Iestatījumi, kurā varēsit norādīt:

  • Dinamiskā saraksta izvēle;
  • grupējumi;
  • šķirošana;
  • Dekors.

Parametru izmantošana padara dinamiskos sarakstus pietiekami daudzpusīgus un elastīgus. Varat arī saistīt tos ar rekvizītiem pārvaldītā veidlapā, un dati mainīsies atkarībā no lietotāja atlasītajām opcijām. Šo mehānismu izmantošanu var saprast un novērtēt, aplūkojot reālās pasaules problēmu piemērus.

Kā piemēru apsveriet problēmu, kas saistīta ar nomenklatūras palieku atspoguļošanu pārvaldītajā veidlapā. Reālajā praksē šādi pasūtījumi ir diezgan izplatīti dažādās konfigurācijās, un dinamiskais saraksts ir ideāls kā rīks. Šim uzdevumam mums būs jāizmanto patvaļīgs vaicājums, dinamiskā saraksta parametri un tā iestatījumi.

Lielākai skaidrībai mēs izveidosim atsevišķu ārējā apstrāde un ievietojiet tajā dinamisku sarakstu. Lai īstenotu mūsu plānus, būs maz tabulu ar nomenklatūru, tāpēc mums ir jāatļauj patvaļīgs pieprasījums. Tajā mēs aprakstīsim atsauces grāmatas kreiso savienojumu ar nomenklatūras sarakstu un atlieku reģistru un iestatīsim uzziņu grāmatu kā galveno tabulu. Šāda shēma ļaus lietotājiem, strādājot ar dinamisku sarakstu, pievienot vai mainīt nomenklatūru.



Izvēlieties nomenklatūru Nosaukums Nosaukums kā nosaukums, preces un pārdošanas izmaksas. Sklad kā noliktava, preces un pārdošanas izmaksas Apģērbs kā vairākas instalācijas no kataloga Nomenklatūra kā reģistra kreisā savienojuma nomenklatūra. Nepārtrauktība. Rezultāti (& & lauku

Tā kā mūsu pieprasījumā tika izmantots parametrs CurrentDate, mums ir jāiestata tā vērtība pirms apstrādes. Lai to izdarītu, veidlapas modulī procedūrā "On CreationOnServer" ar standarta komandu piešķiriet tai funkciju "CurrentSessionDate" ar standarta komandu. Mums arī ir jāparāda dinamisks saraksts vadības veidlapā un skaidrības labad jāmaina lauku secība. Velciet rekvizītus "Nomenklatūras paliekas" veidlapas elementos (augšējā kreisajā pusē) un izmantojiet zilās bultiņas, lai mainītu lauku secību veidlapas tabulā.

&Servera izveides procedūraServerī(kļūme, standarta apstrāde) nomenklatūra paliek.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Jau šajā posmā mēs varam atvērt ārējo apstrādi 1C un redzēt, ka dinamiskais saraksts darbojas. Mēs varam apskatīt atlikumus, izveidot nomenklatūru un grupas un meklēt. Bieži klienti lūdz pievienot iespēju izvēlēties datumu, kurā redzēs atlikumu. Veidlapai ar dinamisku sarakstu to nodrošina papildu lauks un parametru iestatīšana, izmantojot to.

Pievienojam tipa “Datums” atribūtu “Atliek datums” un pārnesam uz formas elementiem. Laukā notikumi izveidojam notikumu "OnChange" un ierakstām kodu dinamiskajā vaicājumā izmantotā parametra "CurrentDate" iestatīšanai. Lai, atverot formu, lietotājs uzreiz saprastu, kurā datumā viņš redz atlikumus, veiksim nelielas izmaiņas “OnCreateOnServer” procedūrā.



&OnServerProcedureOnCreateOnServer(Failure, StandardProcessing)RemainsDate = CurrentSessionDate(); Vienums Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Procedūras beigas &Pie klienta procedūras RemainsDateOnChange(Element) vienums Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); Procedūras beigas

Rezultātā mūsu dinamiskā saraksta veidlapā var parādīt atlikumus jebkuram datumam.

Mēs esam apskatījuši tikai nelielu daļu no šī rīku komplekta iespējām, taču ar to jau ir pietiekami, lai saprastu šāda veida dinamiskā saraksta ērtības. Līdzīgs mehānisms tiek izmantots daudziem uzdevumiem, taču visbiežāk tas ir atrodams tipiskās konfigurācijās pārvaldītās veidlapas:

  1. atlase;
  2. Saraksti.

Lai iegūtu dinamisku sarakstu un tā pieprasījumu tipiskās pārvaldītās formās, izstrādātājam ir jāatver vajadzīgā veidlapa konfiguratorā. Atribūtu sadaļā atrodiet atribūtu ar datu tipu "DynamicList" (visbiežāk tas tiek atlasīts treknrakstā). Tās rekvizīti satur pieprasījuma tekstu, atlases un citus iestatījumus.

mājas Piezīmes no Looking Glass

21.04.2014 Dinamiskā saraksta datu iegūšana

Ieviests versijā 8.3.6.1977.

Esam ieviesuši iespēju viegli un ērti iegūt attēlotos datus, izmantojot dinamisko sarakstu.

Jums var būt nepieciešami dinamiskā saraksta dati, lai tos izdrukātu nestandarta, "specifiskā" formā. Vai arī, lai ar viņiem veiktu noteiktas darbības. Piemēram, nosūtiet vēstuli visiem darījumu partneriem, kurus esat atlasījis sarakstā saskaņā ar dažiem kritērijiem.

Turklāt ir vairāki uzdevumi, kuros lietotājs papildus elementu sarakstam vēlas redzēt arī kopsavilkuma datus, kas saistīti ar šo sarakstu. Piemēram, atlasot noteiktas preču grupas un noteikta piegādātāja preces, viņš uzreiz vēlas datubāzē redzēt kopējo šādu preču skaitu.

Pats dinamiskais saraksts nevar sniegt jums šo informāciju. Dinamiskā saraksta uzdevums ir nodrošināt ātru lielu datu apjomu skatu. Tāpēc tas nolasa datus gabalos, kas nepieciešami, lai tie tiktu parādīti vienā vai divos ekrānos. Un “neko nezina”, piemēram, par kopējo izlasāmo datu apjomu.

Kopumā, lai iegūtu papildu informāciju, ko lietotājs vēlas, ir jāveic datu bāze. Tieši tāds pats kā dinamiskajā sarakstā izmantotais.

Jūs to varējāt izdarīt iepriekš. Bet tas ne vienmēr bija viegli. Galu galā papildus sākotnējā vaicājuma tekstam, saskaņā ar kuru darbojas dinamiskais saraksts, jums bija jāzina visas atlases, šķirošanas un citi parametri, ko lietotājs interaktīvi iestatīja tabulā, kurā tiek parādīti dati.

Tagad šis uzdevums ir viegli atrisināts. Dinamiskā saraksta tabulā ir divas jaunas metodes:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Tādējādi jūs iegūstat pašu datu kompozīcijas shēmu un, pats galvenais, visus tās iestatījumus, pateicoties kuriem lietotājs redz sarakstu tieši tādu, kāds tas ir. Viss, kas jums jādara, ir programmatiski izveidot izkārtojumu un izvadīt to vērtību kolekcijā (programmatiskai apstrādei) vai izklājlapas dokumentā (rādīšanai):

Rezultātā jūs iegūsit struktūru (vai pārskatu), kas satur kolonnas un rindas, kas tiek parādītas dinamiskā saraksta tabulā.

Svarīgi ir tas, ka izkārtojumā un iestatījumos, ko iegūstat no dinamiskā saraksta tabulas, cita starpā tiek ņemta vērā kolonnu redzamība un lietotā meklēšana. Tā kā iestatījumi tiek iegūti atsevišķi, varat mainīt lauku sastāvu saviem mērķiem un iegūt, piemēram, visas saraksta kolonnas, nevis tikai tās, kuras ir redzamas lietotājam.

Izvadot izklājlapas dokumentā, ir vēl viens jauks brīdis. Kopumā ziņojuma izskats atbildīs izskats dinamisko sarakstu tabulas shēmas un iestatījumu saņemšanas brīdī. Ieskaitot galda nosacīto dizainu. Dažas papildu darbības būs nepieciešamas tikai tad, ja vēlaties pārsūtīt arī veidlapas nosacīto noformējumu uz atskaiti.

Konfigurāciju pabeigšanas procesā katrs 1C programmētājs saskaras ar dinamiskiem sarakstiem.
Dinamiskais saraksts ir interfeisa objekts, ko izmanto, lai parādītu dažādus datu bāzes objektu sarakstus vai neobjekta datus - reģistra ierakstus.
Piemēram, dinamiskais saraksts tiek izmantots, lai parādītu vienumu sarakstu:

Lai demonstrētu dinamiskā saraksta iespējas, izveidosim ārējo apstrādi, pievienosim galveno formu. Pievienosim veidlapai jaunu atribūtu ar tipu "Dinamiskais saraksts". Dosimies uz tās īpašumiem un paskatīsimies, kas tur ir.
Mūs interesē īpašums "Pielāgots pieprasījums". Iespējojot to, tiks parādītas visas dinamiskā saraksta iespējas. Mēs varēsim uzrakstīt vaicājumu, izmantojot gandrīz visas 1C: Enterprise sistēmas vaicājumu valodas funkcijas. Atzīmējiet izvēles rūtiņu un noklikšķiniet uz saites "Atvērt":

Pēc noklusējuma mūsu sarakstā tiks parādīts preču saraksts ar kopējo atlikumu visām noliktavām. Lai ieviestu šādu sarakstu, pievienojiet šādu vaicājumu:


Kā galveno tabulu mēs izvēlēsimies "Directory. Nomenclature", tas ļaus mums strādāt ar dinamisko sarakstu, tāpat kā ar nomenklatūras sarakstu - pievienot, mainīt, atzīmēt dzēšanai direktorija elementus. Līdzīgi darbojas arī galvenās tabulas iestatīšana pieejamu iespēju dinamiska datu nolasīšana - tas nozīmē, ka paraugs tiks izgatavots porcijās, pēc vajadzības.
Tālāk mums ir jāizveido veidlapas elementi mūsu sarakstam:

Ja mēģināsim veikt apstrādi šajā formā, mēs saņemsim kļūdu:


Lai to novērstu, ir jāiestata parametra "Periods" vērtība. Lai to izdarītu, varat izmantot dinamiskā saraksta kolekcijas "Parameters" metodi "SetParameterValue". Metode aizņem divus parametrus:
. "Parametrs" - tips: virkne; DataCompositionParameter. Tā parametra vai datu sastāva parametra nosaukums, kura vērtība ir jāiestata;
. "Vērtība" — veids: patvaļīgs. Iestatāmā vērtība.
Var izsaukt veidlapas "OnCreateOnServer" apdarinātājā:

Vai jums ir jautājums, vai jums ir nepieciešama konsultanta palīdzība?


Dosim lietotājam iespēju mainīt atlikumu saņemšanas periodu. Lai to izdarītu, pievienosim atribūtu un ar to saistīto veidlapas elementu "Datums":


Veidlapas elementa "Datums" apdarinātājā "OnChange" izsauciet metodi "SetParameterValue", kā vērtību nododot saistītā atribūta vērtību. Līdzīgi mainīsim veidlapas procedūru "On CreationAtServer". Tā kā metode ir pieejama klientam, nav nepieciešams izsaukt serveri:


Tagad, mainoties datumam, atlikumi tiks automātiski atjaunināti:




Pieņemsim, ka lietotāji vēlas redzēt pašreizējos atlikumus vai plānotos ieņēmumus. Apsvērsim vienu no ieviešanas iespējām. Pievienosim Būla formas atribūtu un saistīto radio pogu:


Mainot slēdža vērtību, mainīsim pieprasījuma tekstu. Lai to izdarītu, izmantosim formas elementa "DisplayQuantityToReceipt" notikumu apdarinātāju "OnChange". Mums ir jāmaina dinamiskā saraksta rekvizīts "QueryText" atkarībā no atribūta vērtības. Tā kā šis rekvizīts klientam nav pieejams, ir nepieciešama servera izsaukšanas procedūra:


Veikto izmaiņu rezultāts: