Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Në kontakt me
  • 1c hapni formularin e drejtorisë me përzgjedhje. Si të vendosni përzgjedhjen në formën e listës së drejtorive? Ju mund të hapni një formë liste pa parametra

1c hapni formularin e drejtorisë me përzgjedhje. Si të vendosni përzgjedhjen në formën e listës së drejtorive? Ju mund të hapni një formë liste pa parametra

Kodi 1C v 8.x Lista e drejtorive.Zgjedhja.Rivendosja();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Përmban;
DirectoryList.Selection.Status.Value="Pranuar";
DirectoryList.Selection.Status.Set();

Për 1C 8.2:
Ka disa mënyra për të hapur një formular liste me disa përzgjedhje të paracaktuara. Le t'i shikojmë ato me radhë:

1. Metoda e parë është që gjatë hapjes së formularit, mund të vendosni parametrin Forma e përzgjedhjes dhe të hapni formularin e listës me këtë parametër. Parametri Selection paraqet strukturën. Emrat e elementeve korrespondojnë me emrat e fushave me të cilat bëhet përzgjedhja, dhe vlerat përmbajnë vlerat e përzgjedhjes. Ky është një opsion i zgjerimit të formularit të menaxhuar dinamik të listës. Kjo do të thotë, ekziston për format, atributi kryesor i të cilave është një atribut i tipit të Listës Dinamike, për shembull, format e listës dhe format e përzgjedhjes.

Gjatë hapjes së formularit, zgjedhja do të bëhet në bazë të fushës së specifikuar.
Kodi 1C v 8.2 UP // Për shembull, në shembullin e mëposhtëm, hapet një listë faturash me përzgjedhje nga fusha Numër e barabartë me 333.
Vlera e përzgjedhjes = Struktura e re ("Numri", "333");
SelectionParameters = Struktura e re ("Selection", SelectionValue);

OpenForm ("Dokumenti. Faturë Fatura. Forma e Listës", Opsionet e Zgjedhjes);

// Për shembull, shembulli i mëposhtëm hap një listë faturash
// me përzgjedhje nga fusha e Kontraktorit të barabartë me "OJSC Horns and Hooves".
Vlera e përzgjedhjes = Struktura e re ("Kundërpartia", "OJSC Horns and Hooves");
SelectionParameters = Struktura e re ("Selection", SelectionValue);
OpenForm ("Dokumenti. Faturë Fatura. Forma e Listës", Opsionet e Zgjedhjes);

2. Ju mund të hapni një formular liste pa parametra:
Kodi 1C v 8.2 UE OpenForm ("Dokumenti. Formulari i faturës së faturës. Listës");

Dhe më pas, në trajtuesin e ngjarjeve të formularit për listën e faturave Kur CreatedOnServer, shkruani kodin që krijon një përzgjedhje në listën dinamike, e cila është atributi kryesor i formularit:
Kodi 1C v 8.2 UP &OnServer

Elementi i përzgjedhjes = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Numri");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.I paarritshëm;
SelectionElement.RightValue = "000000001";
Fundi i procedurës

&Në server
Procedura kur krijohet në server (Dështim, përpunim standard)
Elementi i përzgjedhjes = List.Selection.Elements.Add(Type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Fundi i procedurës

Përparësitë e kësaj metode janë se pamja e krahasimit për përzgjedhje, mund të vendosni jo vetëm të barabartë, si në rastin e parë, por edhe Më shumë, Më pak, etj.

Por kjo metodë ka gjithashtu një pengesë shumë domethënëse: me këtë përzgjedhje, forma do të hapet gjithmonë. Nga ku e thërrisnin. Prandaj, kjo formë nuk duhet të përcaktohet si kryesore. Dhe nëse, megjithatë, është kryesori, atëherë para se të instaloni përzgjedhjen, është e nevojshme të sigurohet një lloj analize se nga hapet kjo formë. Për shembull, analizimi i parametrave të formës.

3. Së fundi, kushti i përzgjedhjes mund të vendoset në një pyetje të personalizuar që zgjedh të dhënat për një listë dinamike. Për shembull, duhet të hapim një listë faturash që përmbajnë artikullin e theksuar në listën e artikujve.

Për ta bërë këtë, në formën e një liste artikujsh, krijoni një komandë dhe butonin përkatës Marrja e faturave.

Le të plotësojmë mbajtësin e ekzekutimit për këtë komandë si më poshtë:
Kodi 1C v 8.2 UP & OnClient
Procedura Faturat Faturat (Komanda)

ListForm = GetForm ("Dokument.Faturë.ListaForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Fundi i procedurës

Në këtë mbajtës, marrim formularin për listën e faturave dhe kalojmë lidhjen me artikullin aktual në listën e artikujve te parametri i formës FilterByProduct dhe hapim formularin me këtë parametër.

Më pas do të krijojmë një formular për listën e dokumenteve: Faturën e faturës dhe do të krijojmë një atribut të formës FilterBy Product, të cilin do ta përdorim si parametër të formularit kur ta hapim. Tani le të hapim paletën e vetive të atributit kryesor të formularit List. Vendosni flamurin Arbitrary Request dhe në rreshtin e cilësimeve të Listës klikoni Hapur.

Në fushën Kërkesë, shkruani tekstin e mëposhtëm të kërkesës:
Kodi 1C v 8.2 ZGJIDHJE UP
Fatura e Dokumentit të Pranimit, Numri,
Fatura e marrjes së dokumentit.Data
NGA
Dokumenti.Fatura e pranimit AS Dokumenti i pranimitFaturë
KU
Fatura e Faturës së Dokumentit.Produktet.Produkti = &Produkti

Në kërkesë, ne përdorim parametrin Item, i cili do të marrë një lidhje me rreshtin aktual në listën e artikujve, të përfshirë në parametrin e formularit të listës së faturave FilterBy Item. Për ta bërë këtë, në mbajtësin e ngjarjeve të formës së listës OnOpen, ne do të shkruajmë kodin për të vendosur vlerën e parametrit të kërkesës për Produkt:
Kodi 1C v 8.2 UP
&OnClient
Procedura e hapjes (Dështim)

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

Fundi i procedurës

Këtu Lista.Opsionetështë një listë e parametrave të kërkesës dinamike të listës për atributin List. Vlera e parametrit Product vendoset e barabartë me vlerën e parametrit të formularit FilterByProduct.

Si rezultat, duke klikuar butonin Pranimi i faturave në formularin e listës së artikujve, do të marrim një listë vetëm me ato fatura që përmbajnë artikullin e përzgjedhur aktualisht në listën e artikujve.

Si të hapni një formular liste me disa përzgjedhje?

Ka disa mënyra për të hapur një formular liste me disa përzgjedhje të paracaktuara. Le t'i shikojmë ato me radhë:

1. Metoda e parë është që kur hapni formularin, mund të vendosni parametrin Forma e përzgjedhjes, dhe me këtë parametër të hapni formularin e listës. Parametri Selection paraqet strukturën. Emrat e elementeve korrespondojnë me emrat e fushave me të cilat bëhet përzgjedhja, dhe vlerat përmbajnë vlerat e përzgjedhjes. Ky është një opsion i zgjerimit të formularit të menaxhuar dinamik të listës. Kjo do të thotë, ekziston për forma atributi kryesor i të cilave është atributi tip Lista dinamike, të tilla si formularët e listës dhe format e përzgjedhjes.

Gjatë hapjes së formularit, zgjedhja do të bëhet në bazë të fushës së specifikuar. Për shembull, në shembullin e mëposhtëm, hapet një listë faturash me përzgjedhje nga fusha Number, e barabartë me 333.

Vlera e përzgjedhjes = Struktura e re ("Numri", "333");

SelectionParameters = Struktura e re ("Selection", SelectionValue);

OpenForm ("Dokumenti. Faturë Fatura. Forma e Listës", Opsionet e Zgjedhjes);

2. Ju mund të hapni një formular liste pa parametra:

OpenForm ("Dokument.Faturë.Forma e Listës");

Dhe më pas, në trajtuesin e ngjarjeve të formularit të listës së faturave Kur KrijohetOnServer shkruani kodin që krijon një përzgjedhje në një listë dinamike, e cila është atributi kryesor i formës:

&Në server

Procedura kur krijohet në server (Dështim, përpunim standard)

Elementi i përzgjedhjes = List.Selection.Elements.Add(Type("DataComposition Selection Element"));

SelectionElement.LeftValue = NewDataCompositionField("Numri");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.I paarritshëm;

SelectionElement.RightValue = "000000001";

Fundi i procedurës

Përparësitë e kësaj metode janë se Lloji i Krahasimit për përzgjedhjen mund të vendoset jo vetëm E barabartë, si në rastin e parë, por edhe Më shumë, Më pak, etj.

Por kjo metodë ka gjithashtu një pengesë shumë domethënëse: me këtë përzgjedhje, forma do të hapet gjithmonë. Nga ku e thërrisnin. Prandaj, kjo formë nuk duhet të përcaktohet si kryesore. Dhe nëse, megjithatë, është kryesori, atëherë para se të instaloni përzgjedhjen, është e nevojshme të sigurohet një lloj analize se nga hapet kjo formë. Për shembull, analizimi i parametrave të formës.

3. Së fundi, kushti i përzgjedhjes mund të vendoset në një pyetje të personalizuar që zgjedh të dhënat për një listë dinamike. Për shembull, duhet të hapim një listë faturash që përmbajnë artikullin e theksuar në listën e artikujve.

Për ta bërë këtë, në formën e një liste artikujsh, krijoni një komandë dhe një buton përkatës Faturat e pranimit.

Le të plotësojmë mbajtësin e ekzekutimit për këtë komandë si më poshtë:

&OnClient

Procedura Faturat Faturat (Komanda)

ListForm = GetForm ("Dokument.Faturë.ListaForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Fundi i procedurës

Në këtë mbajtës, marrim formularin për listën e faturave dhe kalojmë lidhjen me artikullin aktual në listën e artikujve te parametri i formës FilterByProduct dhe hapim formularin me këtë parametër.

Pastaj do të krijojmë një formular të listës së dokumenteve Fatura e Blerjes dhe krijojmë atributin e formës FilterByProduct, të cilin do ta përdorim si parametër të formës kur ta hapim. Tani le të hapim paletën e vetive të atributit kryesor të formularit List. Le të vendosim flamurin Kërkesë me porosi dhe në linjë Vendosja e listës klikoni Open.

Në fushën Kërkesë, shkruani tekstin e mëposhtëm të kërkesës:

ZGJIDHNI

Fatura e Dokumentit të Pranimit, Numri,

Fatura e marrjes së dokumentit.Data

NGA

Dokumenti.Fatura e pranimit AS Dokumenti i pranimitFaturë

KU

Fatura e Faturës së Dokumentit.Produktet.Produkti = &Produkti

Në kërkesë, ne përdorim parametrin Item, i cili do të marrë një lidhje me rreshtin aktual në listën e artikujve, të përfshirë në parametrin e formularit të listës së faturave FilterBy Item. Për ta bërë këtë, në mbajtësin e ngjarjeve të formës së listës OnOpen, ne do të shkruajmë kodin për të vendosur vlerën e parametrit të kërkesës për Produkt:

&OnClient

Procedura e hapjes (Dështim)

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

Fundi i procedurës

Këtu Lista.Opsionetështë një listë e parametrave të kërkesës dinamike të listës për atributin List. Vlera e parametrit Product vendoset e barabartë me vlerën e parametrit të formularit FilterByProduct.

Si rezultat, me klikimin e një butoni Faturat e pranimit në formën e një liste artikujsh, do të marrim një listë vetëm me ato fatura që përmbajnë artikullin e përzgjedhur aktualisht në listën e artikujve.

Një shembull demonstrues për opsionin e 3-të ndodhet në direktorinë 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Shembulli u krye në versionin e platformës 8.2.9.356.

Ky kod ju lejon të hapni një listë dokumentesh me një përzgjedhje të caktuar; gjithashtu mund të hapni një listë të elementeve të drejtorisë me përzgjedhjen e dëshiruar

Kodi 1C v 8.2 Formulari UP = OpenForm("Dokument. Faturë.Form.ListaForm"); //Hap formularin
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Shto përzgjedhjen
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Si do të krahasojmë
SelectOwner.Use = E vërtetë; // Vendos kutinë e kontrollit për përdorimin e NewDataCompositionField ("Nomenklatura")
SelectionOwner.LeftValue = NewDataCompositionField("Llogaria"); //Cilat detaje do të përdorim për të bërë përzgjedhjen?
SelectionOwner.RightValue = Objekti.Llogaria; // Dhe vetë kuptimi i përzgjedhjes

Në mënyrë që hapni një formë liste me një përzgjedhje të paracaktuar përdorni metodat e mëposhtme:

Mënyra e parëështë se kur hapni një formular, mund të vendosni parametrin Forma e përzgjedhjes dhe të hapni formularin e listës me këtë parametër.

Parametri Selection paraqet strukturën. Emrat e elementeve korrespondojnë me emrat e fushave me të cilat bëhet përzgjedhja, dhe vlerat përmbajnë vlerat e përzgjedhjes. Ky është një opsion i zgjerimit të formularit të menaxhuar dinamik të listës. Kjo do të thotë, ekziston për format, atributi kryesor i të cilave është një atribut i tipit DynamicList, për shembull, format e listave dhe format e përzgjedhjes.

Për shembull, në shembullin e mëposhtëm, hapet një listë faturash me përzgjedhje nga fusha Number, e barabartë me 333.

Kodi 1C v 8.2 Vlera e përzgjedhjes UE = Struktura e re ("Numri", "333");
SelectionParameters = Struktura e re ("Selection", SelectionValue);
OpenForm ("Dokumenti. Faturë Fatura. Forma e Listës", Opsionet e Zgjedhjes);

Mënyra e dytë

Ju mund të hapni një formë liste pa parametra:

Kodi 1C v 8.2 UE OpenForm ("Dokumenti. Formulari i faturës së faturës. Listës");

Dhe më pas, në trajtuesin e ngjarjeve të formularit për listën e faturave Kur CreatedOnServer, shkruani kodin që krijon një përzgjedhje në listën dinamike, e cila është atributi kryesor i formularit:

Kodi 1C v 8.2 UP &OnServer
Procedura kur krijohet në server (Dështim, përpunim standard)
Elementi i përzgjedhjes = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Numri");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.I paarritshëm;
SelectionElement.RightValue = "000000001";
Fundi i procedurës

Përparësitë e kësaj metode janë se Lloji i Krahasimit për përzgjedhjen mund të vendoset jo vetëm në Equal, si në rastin e parë, por edhe në Më shumë, Më pak, etj.

Por kjo metodë ka gjithashtu një pengesë shumë domethënëse: me këtë përzgjedhje, forma do të hapet gjithmonë. Nga ku e thërrisnin. Prandaj, kjo formë nuk duhet të përcaktohet si kryesore. Dhe nëse, megjithatë, është kryesori, atëherë para se të instaloni përzgjedhjen është e nevojshme të jepni një lloj analize se nga hapet kjo formë. Për shembull, analizimi i parametrave të formës.

Mënyra e tretë

Së fundi, kushti i përzgjedhjes mund të vendoset në një pyetje të personalizuar që zgjedh të dhënat për një listë dinamike.

Për shembull, duhet të hapim një listë faturash që përmbajnë artikullin e theksuar në listën e artikujve.

Për ta bërë këtë, në formën e një liste artikujsh, krijoni një komandë dhe butonin përkatës Marrja e faturave.

Le të plotësojmë mbajtësin e ekzekutimit për këtë komandë si më poshtë:

Kodi 1C v 8.2 UP & OnClient
Procedura Faturat Faturat (Komanda)
SelectionParameters = Struktura e re ("FilterByProduct", Elements.List.CurrentRow);
OpenForm ("Dokumenti. Faturë Fatura. Forma e Listës", Opsionet e Zgjedhjes);
Fundi i procedurës

Në këtë mbajtës, ne hapim formularin për listën e faturave, duke kaluar një lidhje me artikullin aktual në listën e artikujve te parametri i formularit FilterByProduct.

Më pas do të krijojmë një formular për listën e dokumenteve: Faturën e Faturës dhe do të krijojmë një parametër të formularit FilterBy Product, të cilin do ta përdorim për të hapur një formular me përzgjedhjen e kërkuar.

Tani le të hapim paletën e vetive të atributit kryesor të formularit List. Vendosni flamurin e pyetjes së personalizuar dhe në vijën Cilësimet e listës kliko Open.

Në fushën Kërkesë, shkruani tekstin e mëposhtëm të kërkesës:

Kodi 1C v 8.2 ZGJIDHJE UP
Fatura e Dokumentit të Pranimit, Numri,
Fatura e marrjes së dokumentit.Data
NGA
Dokumenti.Fatura e pranimit AS Dokumenti i pranimitFaturë
KU
Fatura e Faturës së Dokumentit.Produktet.Produkti = &Produkti

Në kërkesë, ne përdorim parametrin Item, i cili do të marrë një lidhje me rreshtin aktual në listën e artikujve, të përfshirë në parametrin e formularit të listës së faturave FilterBy Item.

Për ta bërë këtë, në trajtuesin e ngjarjeve të formës së listës Kur CreatedOnServer, ne do të shkruajmë kodin për të vendosur vlerën e parametrit të kërkesës së produktit:

Kodi 1C v 8.2 UP & OnClient
Procedura e hapjes (Dështim)
List.Parameters.SetParameterValue("Produkt", Parametrat.FilterByProduct);
Fundi i procedurës

Këtu List.Parameters është një listë e parametrave të kërkesës dinamike të listës për atributin List. Vlera e parametrit Product vendoset e barabartë me vlerën e parametrit të formularit FilterByProduct.

Si rezultat, duke klikuar butonin Pranimi i faturave në formularin e listës së artikujve, do të marrim një listë vetëm me ato fatura që përmbajnë artikullin e përzgjedhur aktualisht në listën e artikujve.

Në mënyrë që hapni formularin e përzgjedhjes me përzgjedhje në 1s 8.2(forma të rregullta), duhet të kryejmë disa veprime. Ne do ta marrim atë së pari. Pas kësaj, ne do të vendosim përzgjedhjen dhe do ta hapim atë në mënyrë programore, këtu është një shembull kodi:

Zgjedhja në formular në fushën e hyrjes 1C 8.2 me disa vlera

Në shembullin e mësipërm që pamë si të vendosni përzgjedhjen në formularin e përzgjedhjes sipas vlerës specifike. Tani le të shohim një situatë ku duhet të zëvendësoni disa vlera, kjo mund të jetë, për shembull, një grup ose i shkarkuar nga një rezultat pyetësor. Kjo është një përzgjedhje në fushën e hyrjes 1c me kuptime të shumta.

Së pari, marrim formularin e përzgjedhjes, kalojmë "Elementin" (pronarin) në parametrat, vendosim flamurin e modalitetit të përzgjedhjes. Pastaj krijojmë një listë vlerash dhe një grup, vërejmë se si përzgjedhje kur vendosim llojin e krahasimit në listë, një objekt mund të jetë i pranishëm vetëm me llojin ListVlerat. Shtojmë elementë në grup, pastaj e ngarkojmë këtë grup në Listën e Vlerave, të cilën më pas e vendosëm në përzgjedhje. Gjithashtu, mos harroni të aktivizoni flamurin për përdorimin e kësaj përzgjedhjeje dhe të vendosni Llojin e Krahasimit.

Vendosja e zgjedhjes në fushën e hyrjes në formularin në 1C 8.3, ngjarja e fillimit të përzgjedhjes

Tani le të shqyrtojmë përzgjedhja në fushën e hyrjes në një formular të menaxhuar në 1C 8.3. Le të gjejmë në formular elementin që na intereson, në të cilin do të vendosim përzgjedhjen, në rastin tonë kjo është fusha "Organizimi". Gjejmë ngjarjen “Fillimi i Përzgjedhjes”, klikojmë në xham zmadhues dhe gjendemi në procedurë. Ne shohim parametrin Selection Data; ky parametër është i llojit ValueList. Për të kufizuar përzgjedhjen në elementët e nevojshëm, duhet të plotësojmë Listën e Vlerave. Ne mund të zgjedhim elementë vetëm në server, kështu që krijojmë një procedurë me direktivën e kompilimit &OnServer. Në këtë procedurë, plotësoni të dhënat e përzgjedhjes.

Artikujt më të mirë mbi këtë temë