Atveriet saraksta formu ar atlasi 1s 8.2. Kā atvērt saraksta formu ar nelielu atlasi? Iestatījumu atlase konfiguratorā

25.06.2023

Lai atvērt atlases formu ar atlasi 1s 8.2 (regulāras 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 lietošanas karogu šī izlase un iestatiet salīdzināšanas skatu.

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.

Programmatiski atverot veidlapas pārvaldīta lietojumprogramma 1C ievērojami atšķiras no to atvēršanas parastajā lietojumprogrammā. Vispirms apskatīsim veco metodi. Tas sastāv no veidlapas saņemšanas un pēc tam tās atvēršanas parastajā vai modālajā režīmā (atverot modālā režīmā, veidlapa bloķē programmu).

GetForm() . Atvērt ()

Šī ir lēnākā veidlapu atvēršanas metode. Tomēr tas ļauj programmatiski apstrādāt veidlapu pirms tās atvēršanas. Lai apstrādātu kodu, jums ir nedaudz jāmaina:

Form = GetForm( "Dokuments. Preču un pakalpojumu saņemšana. Dokumenta veidlapa") ;
//Šeit veicam darbības ar formu
Veidlapa. Atvērt ();

Jāņem vērā, ka, saņemot veidlapu, tiks veikta cita pasākuma procedūra WhenCreatedOnServer.

Apskatīsim citas metodes, kas ļauj ātrāk un ērtāk atvērt veidlapas pārvaldītā 1C lietojumprogrammā. Atkarībā no konkrētās situācijas var izmantot dažādas metodes.

1. Kā atvērt objekta formu pārvaldītā lietojumprogrammā, ja ir saite uz to.

Šajā gadījumā viss ir ārkārtīgi vienkārši.

RefLink = Katalogi. Nomenklatūra. FindByCode("000000001" );
OpenValue(RefLink) ;

2. Kā atvērt atlases formu un pēc tam iegūt izvēlēto vērtību.

Tam ir funkcija EnterValue(). Funkcijai ir 3 parametri:

  • Mainīgais, kurā tiks ierakstīta izvēlētā vērtība;
  • Padoms, kas tiks parādīts atlases logā;
  • Atlasīto vērtību veidu apraksts. Var būt vairāki veidi, un tādā gadījumā jums tiks piedāvāts atlasīt veidu pirms konkrētas vērtības atlasīšanas.

Funkcijas izpildes rezultātā tiks atvērta noklusējuma atlases forma norādītā tipa objektam.

Mainīgā vērtība;
Masīvs= jauns Masīvs;
Masīvs. Add(type( "DirectoryLink.Nomenclature") ) ;
Masīvs. Add(type( "DirectoryLink. Darījuma partneri") ) ;

TypeDescription= new TypeDescription(Array) ;

Res = EnterValue(Vērtība, "Padoms" , TipaApraksts) ;

Iepriekšējās metodes ļāva atvērt tikai objektu noklusējuma formas (objekta formu vai atlases formu). Ja jums ir jāatver pielāgota veidlapa, varat izmantot funkciju OpenForm ().

Šai funkcijai ir diezgan daudz parametru. Apskatīsim dažus no tiem:

  • Veidlapas nosaukums— šeit varat izvēlēties kādu no standarta objektu formām, piemēram, Atlases forma vai Saraksta veidlapa. Vai arī īpaša veidlapa, ko izveidojuši izstrādātāji.
  • Iespējas— ļauj to pārsūtīt uz veidlapā esošo formu struktūras dažus parametrus pirms tā atvēršanas, tādējādi nosakot izejas datus. Parametri var būt jebkuri dati, ko var nodot no klienta uz serveri. Veidlapas atvēršanas laikā nodotos parametrus var apstrādāt procedūrā WhenCreatingOnServer() veidlapā, kas tiek atvērta.
  • Veidlapas atvēršanas režīms— ir 3 iespējas: neatkarīga, bloķēt visu interfeisu, bloķēt īpašnieka veidlapu.

Apskatīsim, kā funkcija tiek izmantota OpenForm() dažādās situācijās.

3. Kā atvērt esoša objekta formu

Katrai veidlapai ir viens atslēgas atribūts. Veidlapas informācijas sarakstā tas ir izcelts treknrakstā un parasti tiek saukts Objekts uzziņu grāmatu un dokumentu elementu formās. Citiem objektiem var būt cits nosaukums. Lai atvērtu esoša objekta formu, atveramajai formai ir jānodod parametrs Atslēga ar vērtību kā atsauci uz objektu.

&OnClient
Procedūras komanda 1 (komanda)
Parametrs = jauna struktūra;
Parametrs. Insert("Atslēga" , FindC() );
OpenForm(, Parametrs) ;
Procedūras beigas

&OnServer
Funkcija FindC();
Atgriezt direktorijus. Darījuma partneri. FindByRequisites ("TIN", "745107734623")
EndFunction

4. Kā atvērt jaunu objekta formu

Šeit noderēs vienkārša funkcija OpenForm() bez jebkādiem parametriem.

&OnClient
Procedūras komanda 1 (komanda)
OpenForm( "Katalogs. Darījuma partneri. Objekta veidlapa") ;
Procedūras beigas

5. Kā atvērt jaunu objekta formu un aizpildīt to, pamatojoties uz kaut ko

Jums ir jānodod parametrs Bāze, kuras vērtība būs atsauce uz aizpildījuma bāzes objektu. Tas sāks procedūru ProcessFill().

&OnClient
Procedūras komanda 1 (komanda)
Parametrs = jauna struktūra;
Parametrs. Insert("Bāze", LinkToBuyerAccount) ;
OpenForm( "Dokuments. Preču un pakalpojumu pārdošana. Objekta forma", Parametrs) ;
Procedūras beigas

Šis piemērs izveidos dokumentu Preču un pakalpojumu pārdošana un aizpildīta, pamatojoties uz rēķinu par samaksu pircējam, uz kuru tika nosūtīta saite.

6. Kā atvērt veidlapu un iestatīt tajā atlasi

1C veidlapu atlase var būt vienkārša vai sarežģīta. Vienkārša atlase ietver tādus izteicienus kā Organizācija = Horns and Hooves LLC. Sarežģītā atlase ietver citus salīdzināšanas veidus, piem. Sarakstā. Šajā rakstā mēs apsvērsim vienkāršas atlases organizēšanu, un atsevišķs raksts tiks veltīts sarežģītai atlasei.

Lai organizētu vienkāršu atlasi, atveramajai veidlapai ir jānodod parametrs ar atslēgu Atlase, vērtība būs struktūra, kurā atslēga ir lauka nosaukums dinamiskais saraksts, un vērtība ir nepieciešamie dati.

Piemēram, atveram direktoriju saraksta formu GTD numuri un veiciet atlasi pēc īpašnieka - direktorija elementa Nomenklatūra.

&OnClient
Procedūras komanda 1 (komanda)
Parametrs = jauna struktūra;

atlase= jauna Struktūra;
Atlase. Insert("Īpašnieks", LinkToNomenclature) ;

Parametrs. Insert("Atlase", Atlase) ;

OpenForm( "Directory.GTD numbers.List form", Parametrs) ;
Procedūras beigas

7. Kā atvērt informācijas reģistra ieraksta veidlapu

Lai to izdarītu, jums būs nepieciešama informācijas reģistra ievades atslēga.

Ieraksta atslēga— tās ir visu mērījumu un perioda vērtības (ja reģistrs ir periodisks). Tas nozīmē, ka ieraksta atslēga ir parametri, pēc kuriem ierakstu var unikāli identificēt.

Atvēršanas algoritms ir šāds:

  1. Mēs ievadām ieraksta atslēgas datus ar nepieciešamajām vērtībām struktūrā.
  2. Iegūto struktūru ievietojam masīvā.
  3. Mēs izveidojam ieraksta atslēgu no masīva.
  4. Mēs nododam parametru atvērtajai formai Atslēga ar ierakstīšanas atslēgu no 3. darbības kā vērtību.

&OnClient
Procedūras komanda 1 (komanda)
Parametrs = jauna struktūra;

KeyParameters= jauna struktūra;
Galvenie parametri. Insert("Nomenklatūra", LinkToNomenklatūra) ;
Galvenie parametri. Insert("Cenas veids", LinkToCenas veids) ;
Galvenie parametri. Insert("Periods", Datums) ;

KeyArray = jauns masīvs;
KeyArray. Pievienot(KeyParameters) ;

EntryKey = New( "Informācijas reģistrsRecord Key.Cenu nomenklatūra", KeyArray) ;

Parametrs. Insert("Atslēga", Ieraksta atslēga) ;

OpenForm( "Informācijas reģistrs. Nomenklatūras cenas. Ieraksta veidlapa", Parametrs) ;
Procedūras beigas

Šis kods ļauj atvērt dokumentu sarakstu ar norādīto atlasi, varat atvērt arī direktorijas elementu sarakstu ar vēlamo atlasi

Kods 1C v 8.2 UP Form = OpenForm ("Dokuments. Invoice.Form.ListForm"); //Atveriet veidlapu
SelectionOwner =Form.List.Selection.Elements.Add(Type("DatuCompositionSelectionElement")); //Pievienot atlasi
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Kā salīdzināsim
SelectOwner.Use = True; // Iestatiet izvēles rūtiņu, lai izmantotu NewDataCompositionField("Nomenklatūra")
SelectionOwner.LeftValue = NewDataCompositionField("Konts"); //Kādas detaļas mēs izmantosim, lai veiktu atlasi?
SelectionOwner.RightValue = Object.Account; // Un pati atlases nozīme

Lai atveriet saraksta formu ar iepriekš noteiktu atlasi izmantojiet šādas metodes:

Pirmais veids ir tas, ka, atverot veidlapu, varat iestatīt parametru Atlases veidlapa un atvērt saraksta formu ar šo parametru.

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 paplašinājuma iespēja kontrolēta forma dinamiskais saraksts. Tas ir, tas pastāv formām, kuru galvenais atribūts ir DynamicList tipa atribūts, piemēram, sarakstu formām un atlases formām.

Piemēram, nākamajā piemērā tiek atvērts rēķinu saraksts ar atlasi pēc lauka Skaitlis, kas vienāds ar 333.

Kods 1C v 8.2 UE Atlases vērtība = New Structure ("Numurs", "333");
SelectionParameters = New Structure("Atlase", SelectionValue);
OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);

Otrais veids

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
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

Priekšrocības šī metode Lieta tāda, ka atlases salīdzināšanas veidu var iestatīt ne tikai uz Vienāds, kā pirmajā gadījumā, bet arī uz 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 tā tomēr ir galvenā, tad pirms atlases instalēšanas ir jāsniedz sava veida analīze par to, no kurienes šī veidlapa tiek atvērta. Piemēram, veidlapas parametru analīze.

Trešais ceļš

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ūru kvītis rēķini (komanda)
SelectionParameters = New Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Dokuments. Kvīts rēķins. Saraksta veidlapa", Atlases opcijas);
Procedūras beigas

Šajā apdarinātājā mēs atveram veidlapu rēķinu sarakstam, veidlapas parametram FilterByProduct nosūtot saiti uz pašreizējo vienumu sarakstā esošo vienību.

Pēc tam izveidosim veidlapu dokumentu sarakstam: Kvīts rēķins un izveidosim FilterBy Product formas parametru, ko izmantosim, lai atvērtu formu ar nepieciešamo atlasi.

Tagad atvērsim veidlapas List galvenā atribūta rekvizītu paleti. Iestatiet pielāgotā vaicājuma karogu un rindā Saraksta iestatījumi noklikšķiniet uz Atvērt.

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

Kods 1C v8.2 UP SELECT
Dokumenta kvīts rēķina 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, saraksta veidlapas notikumu apdarinātājā When CreatedOnServer mēs ierakstīsim kodu, lai iestatītu produkta pieprasījuma parametra vērtību:

Kods 1C v8.2 UP &OnClient
Atvēršanas procedūra (neveiksme)
List.Parameters.SetParameterValue("Produkts", Parameters.FilterByProduct);
Procedūras beigas

Šeit List.Parameters ir saraksts ar dinamiskā saraksta pieprasījuma parametriem 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 Rēķini preču saraksta veidā, mēs saņemsim tikai to rēķinu sarakstu, kuros ir izceltās preces. šobrīd nomenklatūras sarakstā.