internet pencereler Android
Genişletmek

1c formu parametrelerle açın. Parametreleri yönetilen ve normal formlara geçirme

Formlar arasındaki otomatik etkileşimi desteklemek amacıyla sistem, formlar açıldığında kontrol etmek için kullanılan bir dizi standart parametre sağlar. Sistem, bu parametreleri kullanarak form alanlarında seçim formlarından seçimi, nesne formlarının açılmasını, standart komutların çalışmasını vb. gerçekleştirir. Yani, sisteme yerleşik çeşitli arayüz çalışma senaryoları sağlarlar. Ancak geliştirici bu parametreleri yerleşik dilde de kullanabilir ve OpenForm() yöntemini çağırırken bunları iletebilir.

Sistemin sağladığı parametreleri ve amaçlarını listeliyoruz:

  • Seçim modu– form seçim modunda açılır. Dinamik listeyle yönetilen form uzantısı tarafından sağlanır.
  • Geçerli Satır– açıldığında listede etkinleştirilecek bir dize. Satırı tanımlayan bir değer iletilir. Dinamik listeyle yönetilen form uzantısı tarafından sağlanır.
  • Grupları ve Öğeleri Seçme– bu parametre, formun ana özelliğinin tablosunun Grup ve Öğe Seçimi özelliğini ayarlar. Dinamik listeyle yönetilen form uzantısı tarafından sağlanır.
  • İzin VerSelectRoot– ağaç olarak görüntülenen dinamik listeye sahip bir formda kök seçme yeteneğini tanımlar. Ağaç olarak görüntülenen dinamik bir liste için yönetilen form uzantısı tarafından sağlanır.
  • Seçim– dinamik listede seçim seti. Bir yapıyı temsil eder. Elemanların adları, seçimin yapıldığı alanların adlarına karşılık gelir ve değerler, seçim değerlerini içerir. Dinamik listeyle yönetilen form uzantısı tarafından sağlanır.
  • Anahtar– formda düzenlenen nesneyi tanımlayan bir değer. Değer eksik veya yanlışsa kalan parametreler kullanılarak yeni bir nesne oluşturulur. Nesne formu uzantıları ve bilgi kaydı kayıt yöneticisi tarafından sağlanır.
  • Değeri Kopyala– yeni bir nesne oluşturulurken kopyalama için kullanılacak nesneyi tanımlayan bir değer. Nesne formu uzantıları ve bilgi kaydı kayıt yöneticisi tarafından sağlanır.
  • Değerleri Doldur– yeni bir nesnenin ayrıntılarını doldurmaya yönelik değerler. Bir yapıyı temsil eder. Öğelerin adları, ayrıntıların adlarına karşılık gelir ve değerler, belirtilen ayrıntıları doldurmak için kullanılacak verileri içerir. Nesne formu uzantıları ve bilgi kaydı kayıt yöneticisi tarafından sağlanır.
  • Temel– temel alınarak giriş yoluyla yeni bir nesne oluşturulurken temel olarak kullanılacak nesneyi tanımlayan bir değer. Nesne formu uzantıları tarafından sağlanır.
  • Bu grup– yeni nesnenin türünü tanımlar: grup veya öğe. Nesne formu uzantıları tarafından sağlanır.

Form parametreleriyle çalışmaya bir örnek

Form parametrelerinin nasıl çalıştığını göstermek için giriş alanında bir öğe seçme uygulamasını düşünün. Örneğin özü, yerleşik dildeki bir listeden bir öğe seçme mekanizmasının uygulanması olacaktır.

Örnekle çalışmaya başladığınızda aşağıdaki özelliklere sahip bir konfigürasyona sahip olmanız gerekir:

  • Ana başlatma modu – Yönetilen uygulama;
  • Gruplar ve öğeler hiyerarşisine sahip bir Ürünler dizini vardır;
  • DirectoryLink.Products türünde SelectedProduct özelliğine sahip bir Analoglar dizini vardır;
  • her iki dizin de yönetilen öğe formlarına sahiptir.

Şimdi platformun yerleşik dildeki listeden bir öğe seçmek için kullandığı tüm mekanizmaları bu yapılandırmada uygulayalım. Bunu yaparken standart form parametrelerinin nasıl kullanıldığını göreceğiz; sistemin bunları nasıl kullandığı; bir geliştiricinin bunları nasıl kullanabileceği.

Bir elemanı seçtikten sonra seçim formunun kapanmasını kontrol edecek ek bir bayrak ekleyelim. Bu bayrağa CloseAfterSelection adını verelim (Boolean tipi). Ürünler dizinini seçmek için form parametresi olarak ekleyelim.

Öğe seçim formunu açmak için, Seçili Ürün form öğesi için Seçim Başlangıcı olayı için Analoglar dizin öğesi biçiminde bir olay işleyicisi oluşturmanız gerekir:

&İstemcide

Prosedür SelectedProductStartSelection(Öğe, Standart İşleme)

Standart İşleme = Yanlış;

SelectionParameters = Yeni Yapı; SelectionParameters.Insert("SelectionMode", True); SelectionParameters.Insert("SelectingGroupsAndElements", TakingGroupsAndElements.Elements); SelectionParameters.Insert("AllowRootSelection", False); SelectionParameters.Insert("CurrentRow", Object.SelectedProduct); SelectionParameters.Insert("CloseAfterSelection", False); OpenForm("Directory.Products.SelectionForm", SelectionParameters, Elements.SelectedProduct);

Prosedürün Sonu

OpenForm() yönteminin üçüncü parametresi üzerinde ayrı ayrı durmak gerekiyor. Bu parametre, seçim formunun kime ait olacağını ve yapılan seçimin kime bildirileceğini belirler. Bu durumda seçim formunun sahibi olarak form elemanının kendisini belirttik ama bu parametre ile formun kendisini de belirtebiliriz. Bu durumda, Form Modülü Seçim İşleme işleyicisini uygulamak ve seçilen verilerin hangi form niteliğine yerleştirileceğine karar vermek gerekli olacaktır.

Bu makalede, yönetilen bir form 8.2'yi açarken bir değeri parametre olarak iletmek için standart araçların nasıl kullanılacağı, benzer bir işlemin normal formlarda nasıl uygulanabileceğiyle karşılaştırıldığında açıklanmaktadır.

Parametreler normal formlarda nasıl iletilir?

Sıradan formlarda bir parametreyi geçirmek için 2 olasılık vardı:
1) daha az yaygın bir yöntem: "Ayrıntılar" sekmesindeki nesne formuna nitelikler eklendi ve gerekirse erişim görsel araçlarla belirlendi
2) daha yaygın bir yöntem: form modülünde bir dışa aktarma değişkeni bildirildi ve değer "Açılıştan Önce" işleyicisinde işlendi

her iki durumda da form çağrısı şuna benziyordu:

Form = Object.GetForm("SelectionForm",FormOwner, UniquenessKey);
Form.Parameter = ParametreDeğeri;
Form.Open();

Yönetilen formlarda parametreler nasıl aktarılır?

Yönetilen formlar artık form alındığında parametreleri anında iletme olanağına sahip. Parametreler bir yapı olarak iletilir:

Parametreler = Yeni Yapı("CurrentValue", LastElement);
SelectionForm = GetForm("Directory.Nomenclature.SelectionForm", Parameters);
FoundItem = SelectionForm.OpenModal();

Ayrıca yönetilen form artık “form uzantılarına” (nesne, referans kitabı, belge, rapor) sahiptir. Nesnenin türüne bağlı olarak mevcut parametrelerin bileşimi belirlenir. Örneğin, dizin seçim formunda belirli bir öğeye konumlandırmanız gerekiyorsa “CurrentValue” parametresi kullanılır. En büyük avantaj, formun kendisinin önceden tanımlanmış parametreler için işleyicilerin yazılmasını gerektirmemesidir, bu da kod miktarını azaltır.

Geliştiricinin ayrıca kendi parametrelerini tanımlama olanağı da vardır (yönetilen form tasarımcısında "Parametreler" sekmesi). Parametrelerin ömrü OnCreationOnServer işleyicisi tarafından sınırlıdır; bu mantıksaldır çünkü parametreler yalnızca bir form oluştururken gereklidir, ancak bu parametre formun benzersizliğini belirlerse ("anahtar parametre" bayrağı parametre özelliklerinde ayarlanır), diğer işleyicilerde de mevcut olacaktır.

Belirli bir manipülasyon parametresini iletmek için biraz daha fazlasını yapmanız gerekir:

1) Parametreyi kontrollü bir biçimde tanımlayın.
OnCreationOnServer işleyicisinde, bu parametrenin işlenmesini tanımlayın (geçirilen parametrelere FormDataStructure türüne sahip olan "Parameters" özelliği aracılığıyla erişim)
2) Formu almayı açıklayın ve yeni parametrenin değerini GetForm işlevinin parametrelerine aktarın.
Böylece kod şöyle görünecek:
- Formu aldığınız yerde

Parametreler = Yeni Yapı("YeniParametre", LastElement);
SelectionForm = GetForm("Directory.Nomenclature.SelectionForm", Parameters);

Yönetilen form modülünde

&Sunucuda
Sunucuda Oluşturulduğunda Prosedür(Arıza, Standart İşleme)
If Parameters.Property("NewParameter") Sonra
// işte parametre işleme kodu
endIf;
Prosedürün Sonu

Çözüm

Belki bu makale birisinin işine yarayacak, zamandan tasarruf edecek ve sizi gereksiz kodlardan kurtaracaktır. Yönetilen form parametrelerinin tam listesi hakkında daha detaylı bilgi için “Yönetilen Arayüz\Yönetilen Form” yardımına bakılması önerilir.

[linki görebilmek için kayıt olmalısınız]

Yönetilen bir 1C uygulamasında formları programlı olarak açmak, bunları normal bir uygulamada açmaktan önemli ölçüde farklıdır. Önce eski yönteme bakalım. Bir formun alınması ve ardından normal veya kalıcı modda açılmasından oluşur (form, kalıcı modda açıldığında programı engeller).

GetForm() . Açık()

Bu, formları açmanın en yavaş yöntemidir. Ancak formu açmadan önce programlı olarak işlemenize olanak tanır. Kodu işlemek için biraz değişiklik yapmanız gerekir:

Form = GetForm( "Belge. Mal ve Hizmet Teslim Alma. Belge Formu") ;
//Burada form ile işlemleri gerçekleştiriyoruz
Biçim. Açık() ;

Form alındığında başka bir olay prosedürünün uygulanacağı dikkate alınmalıdır. WhenCreatedOnServer.

Yönetilen bir 1C uygulamasında formları daha hızlı ve daha rahat açmanıza olanak tanıyan diğer yöntemlere bakalım. Özel duruma bağlı olarak farklı yöntemler kullanılabilir.

1. Yönetilen bir uygulamada bir bağlantı varsa nesne formunun nasıl açılacağı.

Bu durumda her şey son derece basittir.

RefLink = Dizinler. İsimlendirme. FindByCode("000000001" ) ;
OpenValue(RefLink) ;

2. Seçim formunun nasıl açılacağı ve seçilen değerin nasıl alınacağı.

Bunun için bir fonksiyon var Değer Girin(). Fonksiyonun 3 parametresi vardır:

  • Seçilen değerin yazılacağı değişken;
  • Seçim penceresinde görüntülenecek bir ipucu;
  • Seçilen değer türlerinin açıklaması. Birkaç tür olabilir; bu durumda belirli bir değeri seçmeden önce bir tür seçmeniz istenecektir.

İşlevin yürütülmesinin bir sonucu olarak, belirtilen türdeki bir nesne için varsayılan seçim formu açılacaktır.

Değişken Değer;
Dizi = yeni Dizi;
Sıralamak. Ekle(Tür( "DirectoryLink.Adlandırma") ) ;
Sıralamak. Ekle(Tür( "DirectoryLink. Karşı Taraflar") ) ;

TürAçıklaması= yeni TürAçıklaması(Array) ;

Res = EnterValue(Değer, "İpucu", TürAçıklaması) ;

Önceki yöntemler yalnızca nesneler için varsayılan formları (nesne formu veya seçim formu) açmanıza izin veriyordu. Özel bir form açmanız gerekiyorsa işlevi kullanabilirsiniz. OpenForm().

Bu fonksiyonun oldukça fazla parametresi var. Bunlardan bazılarına bakalım:

  • Form adı— burada standart nesne şekillerinden birini seçebilirsiniz; örneğin, Seçim Formu veya Liste Formu. Veya geliştiriciler tarafından oluşturulan belirli bir form.
  • Seçenekler— formdaki forma aktarmanıza olanak tanır yapılar açmadan önce bazı parametreler, böylece çıkış verileri belirlenir. Parametreler istemciden sunucuya aktarılabilecek herhangi bir veri olabilir. Formu açarken geçirilen parametreler prosedürde işlenebilir WhenCreatingOnServer() form açıldığında.
  • Form açma modu— 3 seçeneği vardır: bağımsız, tüm arayüzü engelle, sahip formunu engelle.

Fonksiyonun nasıl kullanıldığına bakalım OpenForm()çeşitli durumlarda.

3. Mevcut bir nesnenin formu nasıl açılır?

Her formun bir anahtar özelliği vardır. Form ayrıntıları listesinde kalın harflerle vurgulanır ve genellikle şöyle adlandırılır: Bir obje referans kitapları ve belgelerin unsurları şeklinde. Diğer nesnelerin farklı bir adı olabilir. Mevcut bir nesnenin formunu açmak için açılan forma bir parametre iletmeniz gerekir. Anahtar değeri bir nesneye referans olarak kullanır.

&İstemcide
Prosedür Komut1 (Komut)
Parametre= yeni yapı;
Parametre. Insert("Anahtar", FindC()) ;
OpenForm(, Parametre);
Prosedürün Sonu

&Sunucuda
Fonksiyon FindC();
Dönüş Dizinleri. Karşı taraflar. FindByRequisites ("TIN", "745107734623")
Son Fonksiyon

4. Yeni bir nesne formu nasıl açılır?

Burada basit bir fonksiyon işini görecektir OpenForm() herhangi bir parametre olmadan.

&İstemcide
Prosedür Komut1 (Komut)
AçıkForm( "Dizin. Karşı Taraflar. Nesne Formu") ;
Prosedürün Sonu

5. Yeni bir nesne formu nasıl açılır ve bir şeye göre nasıl doldurulur?

Bir parametre iletmeniz gerekiyor Temel değeri doldurma tabanı nesnesine referans olacaktır. Bu prosedürü başlatacak ProcessFill().

&İstemcide
Prosedür Komut1 (Komut)
Parametre= yeni yapı;
Parametre. Insert("Baz", LinkToBuyerAccount) ;
AçıkForm( "Belge. Mal ve Hizmet Satışı. İtiraz Formu", Parametre) ;
Prosedürün Sonu

Bu örnek bir belge oluşturacaktır Mal ve hizmet satışı ve bağlantının iletildiği alıcıya ödeme yapılmasına ilişkin bir fatura esas alınarak doldurulmuştur.

6. Bir form nasıl açılır ve üzerinde seçim nasıl yapılır?

1C formlarındaki seçim basit veya karmaşık olabilir. Basit seçim aşağıdaki gibi ifadeleri içerir: Organizasyon = Horns and Hooves LLC. Karmaşık seçim diğer karşılaştırma türlerini içerir; Listede. Bu yazıda basit seçimin organizasyonunu ele alacağız ve karmaşık seçime ayrı bir makale ayrılacaktır.

Basit bir seçim düzenlemek için, açılan forma anahtar içeren bir parametre iletmeniz gerekir. Seçim değer, anahtarın dinamik liste alanının adı, değerin ise aranan veri olduğu bir yapı olacaktır.

Örnek olarak dizin listesi formunu açalım. GTD numaraları ve orada sahibine göre bir seçim yapın - dizin öğesi İsimlendirme.

&İstemcide
Prosedür Komut1 (Komut)
Parametre= yeni yapı;

Seçim= yeni Yapı;
Seçim. Insert("Sahip", LinkToNomenclature) ;

Parametre. Insert("Seçim", Seçim) ;

AçıkForm( "Dizin.GTD numaraları.Liste formu", Parametre) ;
Prosedürün Sonu

7. Bilgi kayıt giriş formu nasıl açılır?

Bunu yapmak için bilgi kaydı giriş anahtarına ihtiyacınız olacaktır.

Kayıt Anahtarı— bunlar tüm ölçümlerin ve periyodun değerleridir (eğer kayıt periyodik ise). Yani kayıt anahtarı, bir kaydın benzersiz şekilde tanımlanabileceği parametrelerdir.

Açılış algoritması aşağıdaki gibidir:

  1. Gerekli değerlere sahip kayıt anahtarı verilerini yapıya giriyoruz.
  2. Ortaya çıkan yapıyı bir diziye yerleştiriyoruz.
  3. Diziden bir kayıt anahtarı oluşturuyoruz.
  4. Açılan forma bir parametre aktarıyoruz Anahtar değer olarak 3. adımdaki kayıt anahtarıyla.

&İstemcide
Prosedür Komut1 (Komut)
Parametre= yeni yapı;

KeyParameters= yeni Yapı;
Anahtar parametreler. Insert("Adlandırma", LinkToNomenklatür) ;
Anahtar parametreler. Insert("PriceType", LinkToPriceType) ;
Anahtar parametreler. Insert("Dönem", Tarih) ;

KeyArray = Yeni Dizi;
KeyArray. Ekle(KeyParameters) ;

GirişAnahtarı = Yeni( "Bilgi KaydıKayıt Anahtarı.FiyatlarNomenklatür", KeyArray);

Parametre. Insert("Anahtar", RecordKey) ;

AçıkForm( "Bilgi Kaydı. İsimlendirme Fiyatları. Kayıt Formu", Parametre) ;
Prosedürün Sonu

Yazdır (Ctrl+P)

Form Seçenekleri

1. Genel bilgiler

Form parametreleri (Seçenekler sekmesi) iki amaca hizmet eder:
● Formun açılmasını etkileyecek veri kümesini tanımlayın (form parametrelendirmesi). Bunu yapmak için gerekli tüm parametreleri listelemeniz ve türlerini belirtmeniz gerekir.
● Formun benzersizlik anahtarını etkileyecek parametreleri belirleyin. Bunu yapmak için özelliği ayarlamanız gerekir. Anahtar Parametre formun benzersizlik anahtarının oluşumuna katılması gereken parametreler. Bir formu açmaya çalıştığınızda sistem, oluşturulan form benzersizliği anahtarını kullanarak mevcut bir formu arar. Alınan anahtarı içeren bir form sistemde mevcutsa
benzersizlik, geri dönen bu biçimdir; değilse yeni bir form oluşturulur.
Bir formu çağırırken geliştirici tarafından oluşturulan parametrelerin değerleri, formların sistem parametreleriyle (varsa) birlikte parametreler yapısında belirtilebilir.
Form parametreleri, oluşturulduğu sırada forma aktarılabilir. Geçirilen parametrelerin analizi olayda gerçekleştirilebilir WhenCreatingOnServer() (Parameters koleksiyonu nesnenin bir özelliğidir YönetilenForm):

// Çağrı konumunda.
// Bir form parametresi oluşturun.
Parametreler = yeni Yapı();
Seçenekler.Ekle("Önem", Önceden Tanımlanmış Değer(“Numaralandırma.Önem.Önemli”));
// Formu parametrelerle açın.
OpenForm (“GeneralForm.ViewForm”, Parametreler);

// Form modülünde.
&Sunucuda
Prosedür WhenCreatingOnServer(Arıza, Standart İşleme)
Eğer Parametreler.Önem = Numaralandırmalar.Önem.Önemli o Sonra

endIf;
Prosedürün Sonu

DİKKAT! Olay işleyicisini çağırdıktan sonra Sunucuda Oluşturulduğunda anahtar olmayan tüm form parametreleri Parameters koleksiyonundan kaldırılır.
Tavsiye. Daha fazla çalışma için gerekli olan anahtar olmayan form parametrelerinin form verilerine kaydedilmesi gerekir.

2. Standart form parametreleri

Formlar arasındaki otomatik etkileşimi desteklemek amacıyla sistem, formlar açıldığında kontrol etmek için kullanılan bir dizi standart parametre sağlar. Sistem, bu parametreleri kullanarak form alanlarında seçim formlarından seçimi, nesne formlarının açılmasını, standart komutların çalışmasını vb. gerçekleştirir. Yani, sistemde yerleşik çeşitli arayüz çalışma senaryoları sağlarlar.
Ancak geliştirici bu parametreleri yerleşik dilde de kullanabilir ve OpenForm() yöntemini çağırırken bunları iletebilir.
Form uzantısının türüne bağlı olarak standart form parametrelerinin bir listesi bölümlerde bulunabilir. Yerleşik dil - Arayüz
(yönetilen) – Yönetilen form – Genişletiliyor... yerleşik sertifikalar

3. Form parametreleriyle çalışma örneği

Form parametrelerinin nasıl çalıştığını göstermek için giriş alanında bir öğe seçme uygulamasını düşünün. Örneğin özü, yerleşik dildeki bir listeden bir öğe seçme mekanizmasının uygulanması olacaktır.
Örnekle çalışmaya başladığınızda aşağıdaki özelliklere sahip bir konfigürasyona sahip olmanız gerekir:
● grup ve öğelerden oluşan bir hiyerarşiye sahip Ürünler dizini vardır;
● SelectedProduct tipinin ayrıntılarını içeren bir Analoglar dizini vardır DirectoryLink.Ürünler;
● her iki dizin de öğe formlarına sahiptir.
Şimdi platformun yerleşik dildeki listeden bir öğe seçmek için kullandığı tüm mekanizmaları bu yapılandırmada uygulayalım. Bu durumda şunları göreceğiz:
● standart form parametrelerinin nasıl kullanıldığı;
● sistemin bunları nasıl kullandığı;
● geliştiricinin bunları nasıl kullanabileceği.
Bir elemanı seçtikten sonra seçim formunun kapanmasını kontrol edecek ek bir parametre ekleyelim. Bu parametreyi çağıralım Seçimden Sonra Kapat(Boole tipi). Ürünler dizinini seçmek için form parametresi olarak ekleyelim.
Öğe seçim formunu açmak için SelectedProduct form öğesi için Seçim Başlangıcı olayı için Analoglar dizin öğesi biçiminde bir olay işleyicisi oluşturmanız gerekir.

&İstemcide
Prosedür SelectedProductStartSelection(Öğe, Standart İşleme)
Standart İşleme= Yanlış;
Seçim Seçenekleri= Yeni Yapı;
Seçim Seçenekleri.Ekle(“SeçimModu”, Doğru);
Seçim Seçenekleri.Ekle(“Grupların ve Öğelerin Seçilmesi”, GroupsAndElements.Elements'i kullanma);
Seçim Seçenekleri.Ekle(“AllowRootSelection”, Yanlış);
Seçim Seçenekleri.Ekle(“CurrentLine”, Object.SelectedProduct);
Seçim Seçenekleri.Ekle(“Seçimden Sonra Kapat”, Yanlış);
OpenForm(“Dizin.Ürünler.SeçimFormu”, Seçim Seçenekleri, Items.SelectedItem);
Prosedürün Sonu
OpenForm() yönteminin üçüncü parametresi üzerinde ayrı ayrı durmak gerekiyor. Bu parametre, seçim formunun kime ait olacağını ve yapılan seçimin kime bildirileceğini belirler. Bu durumda seçim formunun sahibi olarak form elemanının kendisini belirttik ama bu parametre ile formun kendisini de belirtebiliriz. Bu durumda bir işleyici uygulamak gerekli olacaktır. İşlemeSeçimi form modülünü seçin ve seçilen verileri hangi form niteliğine yerleştireceğinize karar verin.
NOT. StartSelection olay işleyicisini uygulamazsak, eylemleri sistemin kendisi tarafından gerçekleştirilecektir. Bu, örnekte kullanılan tüm diğer işleyiciler için geçerlidir.
Şimdi iletilen parametreleri seçim formunda işlemeniz gerekiyor. Bunu işleyicide yapalım Sunucuda Oluşturulduğunda() seçim formu modülünün.

&Sunucuda
Prosedür WhenCreatingOnServer(Arıza, Standart İşleme))
Standart İşleme= Yanlış;
Elements.List.SelectingGroupsAndElements = Parameters.SelectingGroupsAndElements;
Elements.List.AllowRootSelection = Parameters.AllowRootSelection;
Elements.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Options.CloseAfterSelection;
Prosedürün Sonu
Ayarladığımız form parametrelerinin işlevselliğini kontrol etmek için yapılandırıcıyı kullanarak seçim formunun tablosu için List özelliğini ayarlayacağız. Grupları ve Öğeleri Seçme Gruplar değerine (parametre kullanılmadan dizin öğelerinin seçimi mümkün olmayacaktır).
NOT. Ürünlerin listesini görüntüleyen Liste tablosunun SelectionMode özelliği True olarak ayarlanmamışsa ürün seçimi mümkün olmayacaktır.
Şimdi seçim formunda istenen elemanın seçimini yapmamız gerekiyor. Bunu yapmak için form tablosunun SelectValue olayı için bir işleyici tanımlamanız gerekir.

&İstemcide
Prosedür ListSelectionValues(Element, StandardProcessing, Value)
Standart İşleme= Yanlış;
NotifyOfSelection(Değer);
Prosedürün Sonu
Tek yapmamız gereken, eleman seçim işlemini giriş alanının kendisinde uygulamaktır. Bunu yapmak için olayı ele almanız gerekir İşlemeSeçimi giriş alanımız SelectedProduct.

&İstemcide
Prosedür SelectedItemSelectionProcessing(Item, SelectedValue, StandardProcessing))
Standart İşleme= Yanlış;
Object.SelectedProduct = SelectedValue;
Prosedürün Sonu
Bir formdaki giriş alanında değer seçmek için bağımsız olarak bir sistem mekanizması uyguladık.
DİKKAT! Bu örnek tamamlanmadı. Tek amacı form parametreleriyle çalışma mekanizmalarını göstermektir.
Parametreler oluştururken (işleyici SelectedProductStartSelection()) satırı değiştirin:

Seçim Seçenekleri.Ekle(“Seçimden Sonra Kapat”, Doğru);
satır başına:
Seçim Seçenekleri.Ekle(“Seçimden Sonra Kapat”, Yanlış) ;
bu durumda seçim yapıldıktan sonra seçim formu artık kapanmayacaktır. Bu, örneğin bir seçim formunu uygulamak için kullanılabilir (seçim formunu kapatmadan birden fazla ürünün seçilmesi).

Bu temel formla işlem yapıyoruz:

Bu formdan ek bir form açmamız gerekiyor ve form alanındaki metnin açılan forma aktarılması gerekiyor. Ek form aşağıdaki gibidir:

Böylece, "Çalıştır" düğmesine tıkladığınızda, alana önceden girilmiş olan metni içeren ek bir form açılır:

Böyle bir sorunu çözmenin bir yolunu düşünelim.

Çözüm

Parametreleri normal formlar arasında aktarmak için form modülünün global dışa aktarma değişkenini kullanabilir veya bir form özelliği oluşturabilirsiniz. Görevimiz için her iki yöntemi de ele alalım.

1. Form modülünün global dışa aktarma değişkenini kullanma.

"Çalıştır" düğmesi işleyicisi yordamının ana formuna aşağıdaki program kodunu ekleyin:

Prosedür ButtonExecutePress(Button)Form = GetForm(" EkForm" ) ; // "Metin", açılan form modülünün global dışa aktarma değişkenidir Biçim. Metin = FormElements. Metin. Anlam; Biçim. Açık() ; Prosedürün Sonu

Metin değişkeni, "BeforeOpen" olay işleyicisiyle birlikte açılan formun modülüne eklendi:

Değişken Metin Dışa Aktarma; // Başka bir formdaki değerin aktarıldığı değişken Açık(Arıza, Standart İşleme)FormElemanlarından Önceki Prosedür. TransmissionText. Değer = Metin; Prosedürün Sonu

Sorun çözüldü ve oldukça basit!

2. Form ayrıntılarını kullanma.

İkinci yöntem için “Çalıştır” ve “Açmadan Önce” buton işleyicilerini yeniden yazmamıza bile gerek yok. Açılan forma string tipi ile “Text” niteliğini eklemek yeterli.

sonuçlar

Yönetilen formlarda parametrelerin aktarılması çok daha kolaydır. Geleneksel formlarda çoğu durumda açıklanan yaklaşım kullanılır.

Örneği makaleden işleyebilirsiniz bağlantıdan indir.