1c kontrolētas formas atlase. Kā atvērt saraksta formu ar nelielu atlasi? Iestatījumu atlase konfiguratorā

Kods 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Accepted";
DirectoryList.Selection.Status.Set();

1C 8.2:
Ir vairāki veidi, kā atvērt saraksta veidlapu ar kādu iepriekš iestatītu atlasi. Apskatīsim tos secībā:

1. Pirmā metode ir tāda, ka atverot formu var iestatīt parametru Atlases forma un ar šo parametru atvērt saraksta formu. Atlases parametrs attēlo struktūru. Elementu nosaukumi atbilst to lauku nosaukumiem, ar kuriem tiek veikta atlase, un vērtības satur atlases vērtības. Šī ir dinamiskā saraksta pārvaldītās veidlapas paplašinājuma opcija. Tas ir, tas pastāv formām, kuru galvenais atribūts ir dinamiskā saraksta tipa atribūts, piemēram, saraksta formām un atlases formām.

Atverot veidlapu, atlase tiks veikta, pamatojoties uz norādīto lauku.
Kods 1C v 8.2 UP // Piemēram, nākamajā piemērā tiek atvērts rēķinu saraksts ar atlasi pēc lauka Skaitlis, kas vienāds ar 333.
Atlases vērtība = New Structure("Numurs", "333");
SelectionParameters = New Structure("Atlase", SelectionValue);

OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

// Piemēram, tālāk norādītajā piemērā tiek atvērts rēķinu saraksts
// ar atlasi pēc Līgumslēdzēja lauka, kas vienāds ar “OJSC Ragi un nagi”.
Atlases vērtība = New Structure ("Darījuma partneris", "OJSC ragi un nagi");
SelectionParameters = New Structure("Atlase", SelectionValue);
OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

2. Varat atvērt saraksta formu bez parametriem:
Kods 1C v 8.2 UE OpenForm ("Dokuments. Kvīts rēķins. Saraksts");

Un pēc tam rēķinu saraksta veidlapas notikumu apdarinātājā When CreatedOnServer ierakstiet kodu, kas izveido atlasi dinamiskajā sarakstā, kas ir galvenais formas atribūts:
Kods 1C v8.2 UP &OnServer

Atlases elements = List.Selection.Elements.Add(Type("Datukompozīcijas atlases elements"));
SelectionElement.LeftValue = NewDataCompositionField("Numurs");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Nepieejams;
SelectionElement.RightValue = "000000001";
Procedūras beigas

&Serverī
Procedūra, kad tiek izveidots serverī (kļūme, standarta apstrāde)
Atlases elements = Saraksts.Izvēle.Elementi.Pievienot(Tips
("DataCompositionSelectionElement");
SelectionElement.LeftValue = NewDataCompositionField("Dokumenta summa");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Procedūras beigas

Priekšrocības šī metode ir tas salīdzinājuma skats atlasei var iestatīt ne tikai Vienāds, kā pirmajā gadījumā, bet arī Vairāk, Mazāk utt.

Bet šai metodei ir arī ļoti būtisks trūkums: ar šo atlasi veidlapa vienmēr tiks atvērta. No kurienes viņu sauca. Tāpēc šo veidlapu nevajadzētu norādīt kā galveno. Un, ja tas tomēr ir galvenais, tad pirms atlases instalēšanas ir jāsniedz sava veida analīze par to, no kurienes šī veidlapa tiek atvērta. Piemēram, analizējot veidlapas parametrus.

3. Visbeidzot, atlases nosacījumu var ievietot pielāgotā vaicājumā, kas atlasa datus dinamiskajam sarakstam. Piemēram, mums ir jāatver to rēķinu saraksts, kuros ir preču sarakstā iezīmētā prece.

Lai to izdarītu, preču saraksta veidā izveido komandu un atbilstošo pogu Saņemt rēķinus.

Aizpildīsim šīs komandas izpildes apdarinātāju šādi:
Kods 1C v8.2 UP &OnClient
Procedūras saņemšanas rēķini (komanda)

ListForm = GetForm("Dokuments.Invoice.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Procedūras beigas

Šajā apdarinātājā mēs saņemam veidlapu rēķinu sarakstam un nododam saiti uz pašreizējo vienumu preču sarakstā veidlapas parametram FilterByProduct un atveram veidlapu ar šo parametru.

Pēc tam izveidosim formu dokumentu sarakstam: Kvīts rēķins un izveidosim formas atribūtu FilterBy Product, ko izmantosim kā veidlapas parametru to atverot. Tagad atvērsim veidlapas List galvenā atribūta rekvizītu paleti. Iestatiet ArbitraryRequest karogu un rindā Saraksta iestatījumi noklikšķiniet uz Atvērt.

Laukā Pieprasījums ievadiet šādu pieprasījuma tekstu:
Kods 1C v 8.2 UP SELECT
Dokumentu kvīts rēķins. Numurs,
Dokumentu saņemšanas rēķins.Datums
NO
Document.ReceiptInvoice AS DocumentReceiptInvoice
KUR
Dokumentu kvīts Invoice.Products.Product = &Produkts

Pieprasījumā mēs izmantojam parametru Prece, kas saņems saiti uz pašreizējo preču saraksta rindu, kas ietverta veidlapas FilterBy Item rēķinu saraksta parametrā. Lai to izdarītu, OnOpen saraksta veidlapas notikumu apdarinātājā mēs ierakstīsim kodu, lai iestatītu produkta pieprasījuma parametra vērtību:
Kods 1C v 8.2 UP
&OnClient
Atvēršanas procedūra (neveiksme)

List.Parameters.SetParameterValue("Produkts", FilterByProduct);

Procedūras beigas

Šeit Saraksts.Opcijas ir dinamiskā saraksta pieprasījuma parametru saraksts atribūtam List. Produkta parametra vērtība ir iestatīta vienāda ar veidlapas FilterByProduct parametra vērtību.

Rezultātā, noklikšķinot uz pogas Saņemt rēķinus preču saraksta veidā, mēs saņemsim tikai to rēķinu sarakstu, kuros ir izceltās preces. Šis brīdis nomenklatūras sarakstā.

Informācija ņemta no vietnes

Atlase pārvaldītajās veidlapās 1C 8.3

Rakstā tiks apskatītas atlases instalēšanas iespējas pārvaldītajās formās 1C 8.3. Dinamiskā saraksta atlasi var iestatīt statiski vai dinamiski lietotāja interfeiss vai konfigurators. Tālāk mēs apsvērsim visas atlases iespējas.

  • Iestatījumu atlase konfiguratorā

Izvēles iestatīšana lietotāja režīmā

Dinamiskais saraksts pretstatā tabulai vai vērtību kokam ir piemērotāks risinājums tādu formu ieviešanai, kas satur jebkādus sarakstus, jo Dinamiskais saraksts nodrošina visplašāko rīku klāstu darbam ar atlasi, lauku grupēšanu un kārtošanu. Šo izvēli var iestatīt, strādājot lietotāja režīmā vai konfiguratorā, princips ir vienāds.

Lai iestatītu atlasi uzņēmuma režīmā, jums ir jāizsauc komanda “Pielāgot sarakstu”.

Tiks atvērts logs.


Cilnē “Atlase” tiek parādīts pašreizējā sarakstā esošo lauku saraksts. Atlasiet saraksta laukus, pēc kuriem mēs filtrēsim. To var izdarīt, veicot dubultklikšķi vai izmantojot vilkšanu un nomešanu.


Mēs iestatām salīdzināšanas veidu un vērtību, noklikšķiniet uz "Pabeigt rediģēšanu", atlase ir iestatīta.


Iestatot atlasi uzņēmuma režīmā, saraksta veidlapā automātiski tiek izveidoti tā sauktie ātrās atlases lauki.


Lai 1C platforma automātiski izveidotu ātrās atlases laukus, izstrādājot veidlapu konfiguratorā, ir jānorāda lietotāja iestatījumu grupa.


Šī atlase tiks saglabāta tikai pašreizējam lietotājam, kas ļauj elastīgi pielāgot dinamisko sarakstu. Taču, ja uzdevums ir veikt fiksētu atlasi konkrētam sarakstam visiem sistēmas lietotājiem, to varam atrisināt tikai caur konfiguratoru.

Iestatījumu atlase konfiguratorā

Strādājot konfiguratorā, varam iestatīt divu veidu dinamisko sarakstu atlasi – fiksēto un dinamisko. Fiksēto atlasi var konfigurēt vienreiz, dinamisko vai programmatisko var iestatīt atkarībā no jebkuriem sistēmas datiem.

Fiksētas atlases iestatīšanas princips konfiguratorā neatšķiras no tās iestatīšanas iepriekš aprakstītajā lietotāja režīmā. Lai iestatītu atlasi, mums jāatver dinamiskā saraksta iestatījumi.


Tiks atvērts logs.


Izvēle tiek iestatīta tāpat kā lietotāja režīmā.

Opcija “Iekļaut lietotāja iestatījumos” nosaka, vai konfiguratorā iestatītā atlase būs pieejama lietotāja režīmā, izmantojot izvēlnes vienumu “Pielāgot sarakstu”.


Dinamiskā (programmatūras) izvēle

Bieži vien ir nepieciešams programmatiski iestatīt atlasi, piemēram, atverot atlases formu, kad mums ir jāatver kontrolēta forma ar atlasi. Parametrs tiek nodots veidlapai, un atlase tiek iestatīta, pamatojoties uz šo parametru. Izplatīts piemērs tam ir direktorija vienumu atlase pēc īpašnieka.

Metodes

Ja izstrādājamā konfigurācija satur BSP “Basic Functionality” apakšsistēmu, programmatūras atlasi dinamiskajā sarakstā var instalēt, izmantojot standarta metodi:

General PurposeClientServer.SetDynamicListSelectionElement()

Šīs metodes paraksts:

Dinamiskais saraksts Tips: DynamicList — saraksts, kurā vēlaties iestatīt atlasi.

Lauka nosaukums Tips: String — lauks, kurā vēlaties iestatīt atlasi.

RightValue Tips: Patvaļīgs – atlases vērtība (Neobligāti. Noklusējuma vērtība: Undefined. Piezīme: ja nokārtosit Undefined, vērtība netiks mainīta).

ViewComparison Tips: DataComposition Comparison Type – atlases nosacījums.

Performance Tips: Virkne – datu kompozīcijas elementa attēlojums (Neobligāti. Noklusējuma vērtība: nav definēta. Ja norādīts, tiek drukāts tikai lietošanas karodziņš ar norādīto attēlojumu (vērtība netiek drukāta). Lai notīrītu, ir jānodod tukša virkne, lai vērtība tiktu drukāta vēlreiz.)

Lietošana Tips: Būla — atzīmējiet, lai izmantotu šo atlasi (Neobligāti. Noklusējums: nav definēts).

Displeja režīms Tips: ItemDisplayModeDataCompositionSettings — kā šī atlase tiek parādīta lietotājam. Iespējamās vērtības:

  • Elementa displeja režīmsDatu izkārtojuma iestatījumi. Ātra piekļuve — grupā ātrie iestatījumi virs saraksta.
  • Elements Displeja režīmsDatu izkārtojuma iestatījumi Normāls – saraksta iestatījumos (apakšizvēlnē Vairāk).
  • ElementDisplayModeDataCompositionSettings.Nepieejams — neļaujiet lietotājam mainīt šo atlasi.

IdentifierUserSettings Tips: virkne — šīs atlases unikāls identifikators (Izmanto, lai sazinātos ar lietotāja iestatījumiem).

Lai noņemtu atlases vērtību, jums jāizmanto standarta metode:

General PurposeClientServer. RemoveGroupElementsSelectionDynamicList()

Šīs metodes paraksts:

Dinamiskais saraksts Tips: DynamicList – formas atribūts, kuram vēlaties iestatīt atlasi.

Lauka nosaukums Tips: String – izkārtojuma lauka nosaukums (grupām neizmanto).

Performance Tips: Virkne – izkārtojuma lauka attēlojums.

Ja sistēmā nav BSP, atlasi var iestatīt neatkarīgi, izmantojot objektu DataComposition Field.

Atlases elements = List.Selection.Elements.Add(Type("Datukompozīcijas atlases elements")); Atlases elements.LeftValue = NewDataCompositionField("Nosaukums"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Atlase Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Izvēles atlases elements RightValue = "Ivanov";

Šī atlase atlasīs rindas, kurās vērtība “Pilns vārds” = “Ivanovs”.

Lai izmantotu loģiskos “UN”, “OR”, “NOT”, ir paredzēts datu tips DataCompositionSelectionElementGroup

Atlases grupa = List.Selection.Elements.Add(Type("Datu kompozīcijas atlases elementu grupa")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Atlases elements = atlases grupa. Elementi. Add(Type("Datu kompozīcijas atlases elements")); Atlases elements.LeftValue = NewDataCompositionField("Nosaukums"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.RightValue = "Ivanov"; Atlases elements = atlases grupa. Elementi. Add(Type("Datu kompozīcijas atlases elements")); Atlases elements.LeftValue = NewDataCompositionField("Nosaukums"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.RightValue = "Petrovs";

Šī atlase atlasīs rindas, kurās vērtība “Pilns vārds” = “Ivanov” vai “Petrov”.

Atlasi dinamiskajā sarakstā var veikt arī, mainot dinamiskā saraksta pieprasījuma tekstu. Šī opcija darbojas, ja dinamiskais saraksts tiek izveidots, izmantojot "pielāgotu pieprasījumu".


Lai to izdarītu, vaicājuma tekstam pievienojiet nosacījumu “KUR IR TRUE”...


Kā redzat, šī pieeja ir kompaktāka koda rakstīšanas ziņā. Kā grūtākos apstākļos Mēs vēlamies izveidot atlasi tabulas daļā, jo apgrūtinošāka būs opcija, izmantojot atlasi, izmantojot datu kompozīcijas atlases elementu. Tomēr piemērā ar pieprasījuma teksta maiņu ir savi trūkumi - šī ieviešana nav izturīga pret koda izmaiņām. Piemēram, jūs veicāt šādu ieviešanu un aizmirsāt, bet, ja nākotnē vēlaties mainīt pieprasījuma tekstu, pievienojot operatoru pēc WHERE (ORDER, GROUP), jums jāatceras, ka programmas kods satur:

List.QueryText = List.QueryText + " Un DirectoryUsers.Full Name V(""Ivanovs"",""Petrovs"")";

Ja tas netiek ņemts vērā, radīsies kļūda, taču, lai no tā izvairītos, varat to mainīt uz citu ieviešanu. Pieprasījuma tekstam pievienojam šādu nosacījumu:

KUR (NAV &Izvēle instalēta VAI DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("Atlases kopa", Pilns nosaukums.Daudzums() > 0); List.Parameters.SetParameterValue("Atļauts pilns vārds", pilns nosaukums);

Šeit pilns vārds ir masīvs.

Kā redzat, 2 koda rindas pret 10. Kuru metodi izvēlēties, ir atkarīgs no konkrētā lietojumprogrammas uzdevuma.

Lai atvērt atlases formu ar atlasi 1s 8.2(parastās formas), mums ir jāveic dažas darbības. Mēs to saņemsim vispirms. Pēc tam mēs iestatīsim atlasi un atvērsim to programmatiski, šeit ir koda piemērs:

Atlase veidlapā 1C 8.2 ievades laukā ar vairākām vērtībām

Iepriekš minētajā piemērā mēs apskatījām kā iestatīt atlasi atlases veidlapā pēc noteiktas vērtības. Tagad aplūkosim situāciju, kurā ir jāaizstāj vairākas vērtības, piemēram, tas var būt masīvs vai izlādēts no vaicājuma rezultāta. Šī ir atlase 1c ievades laukā ar vairākām nozīmēm.

Pirmkārt, mēs iegūstam atlases veidlapu, parametros nododam “Elementu” (īpašnieku), iestatām atlases režīma karogu. Pēc tam mēs izveidojam vērtību sarakstu un masīvu, mēs atzīmējam, ka kā atlase, iestatot salīdzināšanas veidu sarakstā, objekts var būt tikai ar tipu Vērtību saraksts. Mēs pievienojam elementus masīvam, pēc tam ielādējam šo masīvu vērtību sarakstā, ko pēc tam iestatījām atlasē. Tāpat neaizmirstiet iespējot karogu šīs atlases izmantošanai un iestatīt salīdzināšanas veidu.

Atlases iestatīšana ievades laukā veidlapā 1C 8.3, notikums Atlases sākums

Tagad apsvērsim atlase ievades laukā pārvaldītajā veidlapā 1C 8.3. Veidlapā atradīsim mūs interesējošo elementu, kurā iestatīsim atlasi, mūsu gadījumā tas ir lauks “Organizācija”. Atrodam notikumu “Atlases sākums”, uzklikšķinām uz palielināmā stikla un atrodamies procedūrā. Mēs redzam parametru Selection Data; šis parametrs ir ValueList tipa. Lai ierobežotu atlasi ar nepieciešamajiem elementiem, mums ir jāaizpilda Vērtību saraksts. Mēs varam atlasīt elementus tikai serverī, tāpēc mēs izveidojam procedūru ar &OnServer kompilācijas direktīvu. Šajā procedūrā aizpildiet atlases datus.

Kods 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Accepted";
DirectoryList.Selection.Status.Set();

1C 8.2:
Ir vairāki veidi, kā atvērt saraksta veidlapu ar kādu iepriekš iestatītu atlasi. Apskatīsim tos secībā:

1. Pirmā metode ir tāda, ka atverot formu var iestatīt parametru Atlases forma un ar šo parametru atvērt saraksta formu. Atlases parametrs attēlo struktūru. Elementu nosaukumi atbilst to lauku nosaukumiem, ar kuriem tiek veikta atlase, un vērtības satur atlases vērtības. Šī ir dinamiskā saraksta pārvaldītās veidlapas paplašinājuma opcija. Tas ir, tas pastāv formām, kuru galvenais atribūts ir dinamiskā saraksta tipa atribūts, piemēram, saraksta formām un atlases formām.

Atverot veidlapu, atlase tiks veikta, pamatojoties uz norādīto lauku.
Kods 1C v 8.2 UP // Piemēram, nākamajā piemērā tiek atvērts rēķinu saraksts ar atlasi pēc lauka Skaitlis, kas vienāds ar 333.
Atlases vērtība = New Structure("Numurs", "333");
SelectionParameters = New Structure("Atlase", SelectionValue);

OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

// Piemēram, tālāk norādītajā piemērā tiek atvērts rēķinu saraksts
// ar atlasi pēc Līgumslēdzēja lauka, kas vienāds ar “OJSC Ragi un nagi”.
Atlases vērtība = New Structure ("Darījuma partneris", "OJSC ragi un nagi");
SelectionParameters = New Structure("Atlase", SelectionValue);
OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

2. Varat atvērt saraksta formu bez parametriem:
Kods 1C v 8.2 UE OpenForm ("Dokuments. Kvīts rēķins. Saraksts");

Un pēc tam rēķinu saraksta veidlapas notikumu apdarinātājā When CreatedOnServer ierakstiet kodu, kas izveido atlasi dinamiskajā sarakstā, kas ir galvenais formas atribūts:
Kods 1C v8.2 UP &OnServer

Atlases elements = List.Selection.Elements.Add(Type("Datukompozīcijas atlases elements"));
SelectionElement.LeftValue = NewDataCompositionField("Numurs");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Nepieejams;
SelectionElement.RightValue = "000000001";
Procedūras beigas

&Serverī
Procedūra, kad tiek izveidots serverī (kļūme, standarta apstrāde)
Atlases elements = Saraksts.Izvēle.Elementi.Pievienot(Tips
("DataCompositionSelectionElement");
SelectionElement.LeftValue = NewDataCompositionField("Dokumenta summa");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Procedūras beigas

Šīs metodes priekšrocības ir salīdzināšanas skats atlasei var iestatīt ne tikai Vienāds, kā pirmajā gadījumā, bet arī Vairāk, Mazāk utt.

Bet šai metodei ir arī ļoti būtisks trūkums: ar šo atlasi veidlapa vienmēr tiks atvērta. No kurienes viņu sauca. Tāpēc šo veidlapu nevajadzētu norādīt kā galveno. Un, ja tas tomēr ir galvenais, tad pirms atlases instalēšanas ir jāsniedz sava veida analīze par to, no kurienes šī veidlapa tiek atvērta. Piemēram, analizējot veidlapas parametrus.

3. Visbeidzot, atlases nosacījumu var ievietot pielāgotā vaicājumā, kas atlasa datus dinamiskajam sarakstam. Piemēram, mums ir jāatver to rēķinu saraksts, kuros ir preču sarakstā iezīmētā prece.

Lai to izdarītu, preču saraksta veidā izveido komandu un atbilstošo pogu Saņemt rēķinus.

Aizpildīsim šīs komandas izpildes apdarinātāju šādi:
Kods 1C v8.2 UP &OnClient
Procedūras saņemšanas rēķini (komanda)

ListForm = GetForm("Dokuments.Invoice.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Procedūras beigas

Šajā apdarinātājā mēs saņemam veidlapu rēķinu sarakstam un nododam saiti uz pašreizējo vienumu preču sarakstā veidlapas parametram FilterByProduct un atveram veidlapu ar šo parametru.

Pēc tam izveidosim formu dokumentu sarakstam: Kvīts rēķins un izveidosim formas atribūtu FilterBy Product, ko izmantosim kā veidlapas parametru to atverot. Tagad atvērsim veidlapas List galvenā atribūta rekvizītu paleti. Iestatiet ArbitraryRequest karogu un rindā Saraksta iestatījumi noklikšķiniet uz Atvērt.

Laukā Pieprasījums ievadiet šādu pieprasījuma tekstu:
Kods 1C v 8.2 UP SELECT
Dokumentu kvīts rēķins. Numurs,
Dokumentu saņemšanas rēķins.Datums
NO
Document.ReceiptInvoice AS DocumentReceiptInvoice
KUR
Dokumentu kvīts Invoice.Products.Product = &Produkts

Pieprasījumā mēs izmantojam parametru Prece, kas saņems saiti uz pašreizējo preču saraksta rindu, kas ietverta veidlapas FilterBy Item rēķinu saraksta parametrā. Lai to izdarītu, OnOpen saraksta veidlapas notikumu apdarinātājā mēs ierakstīsim kodu, lai iestatītu produkta pieprasījuma parametra vērtību:
Kods 1C v 8.2 UP
&OnClient
Atvēršanas procedūra (neveiksme)

List.Parameters.SetParameterValue("Produkts", FilterByProduct);

Procedūras beigas

Šeit Saraksts.Opcijas ir dinamiskā saraksta pieprasījuma parametru saraksts atribūtam List. Produkta parametra vērtība ir iestatīta vienāda ar veidlapas FilterByProduct parametra vērtību.

Rezultātā preču saraksta formā noklikšķinot uz pogas Saņemt rēķinus, mēs saņemsim tikai to rēķinu sarakstu, kuros ir šobrīd preču sarakstā izvēlētā prece.

Kā atvērt saraksta formu ar nelielu atlasi?

Ir vairāki veidi, kā atvērt saraksta veidlapu ar kādu iepriekš iestatītu atlasi. Apskatīsim tos secībā:

1. Pirmā metode ir tāda, ka, atverot formu, var iestatīt parametru Atlases forma un ar šo parametru atvērt saraksta formu. Atlases parametrs attēlo struktūru. Elementu nosaukumi atbilst to lauku nosaukumiem, ar kuriem tiek veikta atlase, un vērtības satur atlases vērtības. Šī ir dinamiskā saraksta pārvaldītās veidlapas paplašinājuma opcija. Tas ir, tas pastāv formām, kuru galvenais atribūts ir tipa atribūts Dinamiskais saraksts, piemēram, sarakstu veidlapas un atlases veidlapas.

Atverot veidlapu, atlase tiks veikta, pamatojoties uz norādīto lauku. Piemēram, nākamajā piemērā tiek atvērts rēķinu saraksts ar atlasi pēc lauka Skaitlis, kas vienāds ar 333.

Atlases vērtība = New Structure("Numurs", "333");

SelectionParameters = New Structure("Atlase", SelectionValue);

OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

2. Varat atvērt saraksta formu bez parametriem:

OpenForm ("Dokuments.Rēķins.Saraksta veidlapa");

Un tad rēķinu saraksta veidlapas notikumu apstrādātājā Kad CreatedOnServer ierakstiet kodu, kas izveido atlasi dinamiskajā sarakstā, kas ir galvenais formas atribūts:

&Serverī

Procedūra, kad tiek izveidots serverī (kļūme, standarta apstrāde)

Atlases elements = List.Selection.Elements.Add(Type("Datukompozīcijas atlases elements"));

SelectionElement.LeftValue = NewDataCompositionField("Numurs");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Nepieejams;

SelectionElement.RightValue = "000000001";

Procedūras beigas

Šīs metodes priekšrocības ir tādas, ka atlasei Salīdzināšanas veidu var iestatīt ne tikai Vienāds, kā pirmajā gadījumā, bet arī Vairāk, Mazāk utt.

Bet šai metodei ir arī ļoti būtisks trūkums: ar šo atlasi veidlapa vienmēr tiks atvērta. No kurienes viņu sauca. Tāpēc šo veidlapu nevajadzētu norādīt kā galveno. Un, ja tas tomēr ir galvenais, tad pirms atlases instalēšanas ir jāsniedz sava veida analīze par to, no kurienes šī veidlapa tiek atvērta. Piemēram, analizējot veidlapas parametrus.

3. Visbeidzot, atlases nosacījumu var ievietot pielāgotā vaicājumā, kas atlasa datus dinamiskajam sarakstam. Piemēram, mums ir jāatver to rēķinu saraksts, kuros ir preču sarakstā iezīmētā prece.

Lai to izdarītu, vienumu saraksta veidā izveidojiet komandu un atbilstošu pogu Rēķinu saņemšana.

Aizpildīsim šīs komandas izpildes apdarinātāju šādi:

&OnClient

Procedūras saņemšanas rēķini (komanda)

ListForm = GetForm("Dokuments.Invoice.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Procedūras beigas

Šajā apdarinātājā mēs saņemam veidlapu rēķinu sarakstam un nododam saiti uz pašreizējo vienumu preču sarakstā veidlapas parametram FilterByProduct un atveram veidlapu ar šo parametru.

Pēc tam mēs izveidosim dokumentu saraksta formu Pirkuma rēķins un izveidosim FilterByProduct formas atribūtu, ko izmantosim kā formas parametru to atverot. Tagad atvērsim veidlapas List galvenā atribūta rekvizītu paleti. Uzliksim karogu CustomRequest un rindā Saraksta iestatīšana noklikšķiniet uz Atvērt.

Laukā Pieprasījums ievadiet šādu pieprasījuma tekstu:

IZVĒLIES

Dokumentu kvīts rēķins. Numurs,

Dokumentu saņemšanas rēķins.Datums

NO

Document.ReceiptInvoice AS DocumentReceiptInvoice

KUR

Dokumentu kvīts Invoice.Products.Product = &Produkts

Pieprasījumā mēs izmantojam parametru Prece, kas saņems saiti uz pašreizējo preču saraksta rindu, kas ietverta veidlapas FilterBy Item rēķinu saraksta parametrā. Lai to izdarītu, OnOpen saraksta veidlapas notikumu apdarinātājā mēs ierakstīsim kodu, lai iestatītu produkta pieprasījuma parametra vērtību:

&OnClient

Atvēršanas procedūra (neveiksme)

List.Parameters.SetParameterValue("Produkts", FilterByProduct);

Procedūras beigas

Šeit Saraksts.Opcijas ir dinamiskā saraksta pieprasījuma parametru saraksts atribūtam List. Produkta parametra vērtība ir iestatīta vienāda ar veidlapas FilterByProduct parametra vērtību.

Rezultātā ar pogas klikšķi Rēķinu saņemšana preču saraksta veidā saņemsim tikai to rēķinu sarakstu, kuros ir šobrīd preču sarakstā izvēlētā prece.

Demonstrācijas piemērs 3. opcijai atrodas direktorijā 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Piemērs tika veikts platformas versijā 8.2.9.356.




Tops