1s 8.3 izvēles dinamiskā saraksta pieprasījuma parametri. Metodes datu izgūšanai un saglabāšanai kešatmiņā ar dinamisku sarakstu

Beidzot ir piepildījies katra septiņgadnieka sapnis. Cik bieži programmas 7.7 lietotāji prasīja normālu vienumu atlasi? Lai jūs varētu redzēt atlikumus, cenas un iestatīt filtrus. Nācās izdomāt dažādus trikus, tai skaitā ārējo komponentu rakstīšanu. 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 noteiktu 1C testa konfigurāciju: “Enterprise Accounting 3.0”. Mēs tagad neveiksim atlasi, mēs vienkārši pievienosim citu atlases veidlapu direktorijā “Nomenklatūra” un īslaicīgi padarīsim to par galveno:

Pēc izveides sistēma pēc noklusējuma pievienos veidlapai tabulas lauku “Dinamiskais saraksts”.

Iedziļināsimies tās īpašībās un redzēsim, kas tur ir.

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

Tiks atvērts logs ar gatavo kodu . Pagaidām tur ir vienkārši uzskaitīti visi direktorija “Nomenklatūra” lauki.

Saņemiet 267 video nodarbības 1C 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”, bet mēs to pieskarsim vēlāk.

Pielāgots vaicājums dinamiskajā sarakstā

Vispirms izveidosim mums nepieciešamo pieprasījumu ar atlikumiem un cenām. Tāds:

Cilne "Iestatījumi".

Un tagad labākā daļa! 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 ir jāiesniedz pieprasījumā, pretējā gadījumā radīsies kļūda.

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

&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing) saraksts. Iespējas. SetParameterValue("Periods" , Parametri. Datums) ; Saraksts. Iespējas. SetParameterValue("Cenas veids", Parameters.PriceType) ; EndProcedures Sākums Iesācējiem izstrādātājiem Mācās programmēt

Ir veidlapa, kurā ir dinamisks saraksts ar pielāgotu pieprasījumu. Kā šajā pieprasījumā, atverot formu, var iestatīt nepieciešamos parametrus?

Viena no problēmām, kas rodas, atverot veidlapu, var būt tā, ka atvērtajā formā dinamiskajā sarakstā ir patvaļīgs vaicājums ar parametriem. Un, atverot šādu veidlapu, šim sarakstam ir jānodod konkrētas parametru vērtības.

Šī problēma tiek atrisināta, izveidojot papildu veidlapas parametrus, nododot tiem nepieciešamās vērtības un iestatot tos pieprasījuma parametriem formas notikumu apstrādātājā. Kad CreatedOnServer.

Pieņemsim, ka ir Preču cenu reģistrs. Šī reģistra saraksta forma satur dinamisku sarakstu ar patvaļīgu vaicājumu:

Izvēlēties biznesa preču reģistru Atļauja, transportlīdzekļu reģistrs Tovar, biznesa preču reģistrs. Centrs no reģistra Produkti kā biznesa preču reģistrs, kur transportlīdzekļu reģistrs ir = & preces un biznesa preču reģistrs Permiod> = & The Perioda sākums un ražošanas centrs.<= &КонецПериода

Kā redzams no pieprasījuma teksta, pieprasījumam ir trīs parametri: Produkts, Perioda sākums un Perioda beigas. Formas normālai darbībai, atverot veidlapu, jānorāda šo parametru vērtības, pretējā gadījumā veidlapas atvēršanas rezultātā tiks saņemta kļūda.

Lai formai nodotu savus parametrus, ieteicams tos izveidot veidlapu redaktorā.

Vispārīgi runājot, tas nav nepieciešams. Visi funkcijai OpenForm() nodotie parametri būs pieejami veidlapas notikumu apdarinātājā Kad CreatedOnServer. Bet joprojām ir labāk tos skaidri izveidot formā.

Tad, pirmkārt, veidlapas modulim nebūs jāpārbauda, ​​vai šādi parametri pastāv vai nav. Un, otrkārt, skaidra veidlapas parametru izveide atvieglo lietojumprogrammas risinājuma atbalstu tiem izstrādātājiem, kuri nepiedalījās tā izveidē.

Tātad izveidosim trīs parametrus informācijas reģistra saraksta formai: Perioda sākums, Perioda beigas (tips Datums) un Produkts (tips DirectoryLink.Produkti).

Tagad produktu kataloga elementa veidā izveidojiet komandu PricesInDecember ar šādu tekstu:

Veidlapas parametri = New Structure("Perioda sākums, Perioda beigas, Produkts", "20121201000000", "20121231235959", Object.Link); OpenForm("Informācijas reģistrs. Preču cenas. Form. List Form", Form Parameters);

Ar šo komandu mēs atveram informācijas reģistra saraksta formu un nododam tai trīs parametru vērtības.

Pašā informācijas reģistra veidlapā, veidlapā notikumu apstrādātājs Kad CreatedOnServer, iestatiet nodotās vērtības kā patvaļīga dinamiskā saraksta vaicājuma parametrus šādi:

&Servera procedūrā, kad izveidota serverī (kļūme, standarta apstrāde) List.Parameters.SetParameterValue("Perioda sākums", Parametri.Perioda sākums); List.Parameters.SetParameterValue("Perioda beigas", Parametri.Perioda beigas); List.Parameters.SetParameterValue("Produkts", Parametri.Produkts); 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 atvieglo daudzus lietišķos uzdevumus. Tāpēc izstrādātājiem ir jāzina un jāprot rīkoties ar šo universālo 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 obligāti būs jāraksta pieprasījums 1C valodā, lai gan šī iespēja pastāv un ir jāizmanto. Jūs varat vienkārši norādīt tabulu, kuras informācija 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, konfiguratorā ir jāatver pārvaldītās formas, kur tas atrodas: detaļu sarakstā izmantojiet konteksta izvēlni, lai atvērtu tā rekvizītus un pievērsiet uzmanību “Pielāgots. Pieprasīt” vienumu. 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āgota vaicājuma datus, kurus var redzēt, atverot saraksta iestatījumus.

Pielāgotā vaicājumu shēma tiek izmantota daudz biežāk, jo tā sniedz lielisku iespēju apvienot un parādīt visdažādākos datus. Visbiežāk šis mehānisms tiek izmantots, lai atspoguļotu noliktavas atlikumus, preču cenas, kvītis, izdevumus vai pirkumus. Izmantojiet to uzmanīgi, jo sarežģītu vaicājumu veiktspēja var samazināties.

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

  • Dinamiskā saraksta izvēle;
  • Grupas;
  • Šķirošana;
  • Dekors.

Parametru izmantošana padara dinamiskos sarakstus universālus un diezgan elastīgus. Varat arī saistīt tos ar detalizētu informāciju pārvaldītajā veidlapā, un dati mainīsies atkarībā no lietotāja atlasītajiem parametriem. Šo mehānismu izmantošanu var saprast un novērtēt, apsverot reālās dzīves problēmu piemērus.

Kā piemēru apsveriet uzdevumu atspoguļot nomenklatūras paliekas kontrolētā formā. Reālajā praksē šādi pasūtījumi notiek diezgan bieži dažādās konfigurācijās, un dinamiskais saraksts ir ideāls kā rīks. Šim uzdevumam mums būs jāizmanto pielāgots vaicājums, dinamiskā saraksta parametri un tā iestatījumi.

Lielākai skaidrībai izveidosim atsevišķu ārējo apstrādi un ievietosim tajā dinamisku sarakstu. Lai īstenotu mūsu plānus, ar tabulu ar nomenklatūru nepietiks, tāpēc mums ir jāatļauj patvaļīgs vaicājums. Tajā mēs aprakstīsim direktorijas kreiso savienojumu ar preču sarakstu un atlikumu reģistru un iestatīsim direktoriju kā galveno tabulu. Šī shēma ļaus lietotājiem, kas strādā ar dinamisku sarakstu, pievienot vai mainīt vienumus.



SELECT NomenclatureList.Name AS Name, GoodsInWarehousesRemainings.Warehouse AS Warehouse, GoodsInWarehousesRemainings.QuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList LEFT CONNECTION RegisterAccumulations.ASURate TreasingOnrehouses. sAtlikušā programmatūra NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenclature WHERE

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ā “When CreatedOnServer”, izmantojot standarta komandu, piešķiriet tai funkciju “CurrentSessionDate”. Mums arī ir jāparāda dinamiskais saraksts vadības veidlapā un skaidrības labad jāmaina lauku secība. Velciet atribūtu “Nomenclature Remaining” veidlapas elementos (augšējā kreisajā daļā) un izmantojiet zilās bultiņas, lai mainītu lauku secību veidlapas tabulā.

&Servera procedūrā, kad izveidota serverī (kļūme, standarta apstrāde) paliek nomenklatūra. Parametri. Iestatīt ParameterValue("CurrentDate", CurrentSessionDate()) beigu procedūra


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 vienumus un grupas un meklēt. Bieži klienti lūdz pievienot iespēju izvēlēties datumu, kurā viņi redzēs atlikumus. Veidlapas ar dinamisku sarakstu gadījumā tas tiek panākts, izmantojot papildu lauku un iestatot parametrus, izmantojot to.

Pievienojiet "Datuma" tipa atribūtu "DateRemaining" un pārsūtiet to uz veidlapas elementiem. Lauka notikumos mēs izveidojam notikumu “OnChange” un ierakstām kodu dinamiskajā pieprasījumā izmantotā parametra “CurrentDate” iestatīšanai. Lai, atverot veidlapu, lietotājs uzreiz saprastu, kurā datumā viņš redz atlikumus, veiksim nelielas izmaiņas procedūrā “When CreatedOnServer”.



&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)RemainingDate = CurrentSessionDate(); Vienums Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Procedūras beigas &Klienta procedūrā Remaining DateWhenChanged(Element)Nomenklatūra Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Procedūras beigas

Rezultātā mūsu dinamiskā saraksta veidlapa var atspoguļot atlikumus jebkurā datumā.

Mēs esam apsvēruš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 tas visbiežāk sastopams tipiskās konfigurācijās pārvaldītajās formās:

  1. Atlase;
  2. Saraksti.

Lai saņemtu dinamisko sarakstu un tā pieprasījumu standarta pārvaldītās formās, izstrādātājam ir jāatver vajadzīgā forma konfiguratorā. Detalizētās informācijas sadaļā atrodiet informāciju ar datu tipu “DynamicList” (visbiežāk tas ir izcelts treknrakstā). Tās rekvizīti satur pieprasījuma tekstu, atlases un citus iestatījumus.