Mevcut bir nesnenin formu nasıl açılır? 1c formu seçim modunda açın

İçin 1 saniye içinde seçim yaparak seçim formunu açın 8.2(normal formlar), bazı eylemleri gerçekleştirmemiz gerekiyor. Önce onu alacağız. Bundan sonra seçimi ayarlayıp programlı olarak açacağız, işte bir kod örneği:

1C 8.2 giriş alanındaki formda çeşitli değerlerle seçim

Yukarıdaki örnekte inceledik seçim formunda seçimin nasıl ayarlanacağı belirli bir değere göre. Şimdi birkaç değeri değiştirmeniz gereken bir duruma bakalım; bu, örneğin bir dizi olabilir veya bir sorgu sonucundan kaldırılabilir. Bu, 1c giriş alanındaki bir seçimdir birden fazla anlamı olan.

Öncelikle seçim formunu alıyoruz, parametrelere “Element” (sahip) iletiyoruz, seçim modu bayrağını ayarlıyoruz. Daha sonra bir değerler listesi ve bir dizi oluşturuyoruz, listede karşılaştırma türünü ayarlarken bir seçim olarak bir nesnenin yalnızca türle mevcut olabileceğini not ediyoruz. Değerleri Listele. Diziye öğeler ekliyoruz, ardından bu diziyi daha sonra seçimde ayarladığımız Değerler Listesine yüklüyoruz. Ayrıca bu seçimi kullanmak için bayrağı etkinleştirmeyi ve Karşılaştırma Tipini ayarlamayı unutmayın.

1C 8.3, Seçimin Başlatılması olayındaki formdaki giriş alanındaki seçimin ayarlanması

Şimdi düşünelim 1C 8.3'te yönetilen bir formda giriş alanında seçim. Seçimi belirleyeceğimiz, ilgilendiğimiz unsuru formda bulalım, bizim durumumuzda burası “Organizasyon” alanıdır. “Seçimin Başlangıcı” olayını buluyoruz, büyütece tıklıyoruz ve kendimizi prosedürün içinde buluyoruz. Selection Data parametresini görüyoruz; bu parametre ValueList türündedir. Seçimi gerekli öğelerle sınırlamak için Değerler Listesini doldurmamız gerekiyor. Yalnızca sunucudaki öğeleri seçebiliyoruz, bu nedenle &OnServer derleme yönergesi ile bir prosedür oluşturuyoruz. Bu prosedürde Seçim Verilerini doldurun.

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 Alımı. 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

Ana Sayfa Yeni başlayan geliştiriciler için Programlamayı öğrenme

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

Mevcut bir nesnenin formunu açarken formun adının yanı sıra formunun açılması gereken nesneyi de belirtmeniz gerekir. Bunu yapmak için Anahtar form parametresini ve ilgilendiğimiz nesnenin bağlantısını kullanın.

Örneğin, kuruluş listesinden imlecin bulunduğu kuruluşun formunu açmanız gerekiyorsa, bunu şu şekilde yapabilirsiniz:

Form parametrelerini, yapı elemanının adının form parametresinin adına karşılık geldiği ve değerin, form parametresini ayarlamak istediğimiz değer olduğu bir yapı biçiminde iletiyoruz.

Ana formun standart adı (ObjectForm) yerine, yapılandırıcıda oluşturulan bir nesnenin ana değil isteğe bağlı bir formunu açmak istiyorsanız, Form kelimesini ve ardından bir noktayı belirtin - içinde oluşturulan formun adı yapılandırıcı.

Örneğin:

ReferenceToDirectoryElement = Elements.List.CurrentRow; FormParameters = Yeni Yapı("Anahtar", ReferenceToDirectoryElement); OpenForm("Directory.Organizations.Form.UniversalObjectForm",FormParameters);

Bir nesneye bağlantıya ek olarak, açılan forma hiçbir parametre iletilmesine gerek olmadığı ve mevcut nesnenin ana formunun gerekli olduğu durumlarda, daha basit bir yöntem kullanabileceğiniz unutulmamalıdır. - prosedürü kullanarak formu açın OpenValue():

OpenValue(Items.List.CurrentRow);

Bu yöntem daha az çok yönlüdür ancak bazı durumlarda zamandan ve emekten tasarruf sağlar. Örneğin, ele alınan durumda böyle bir satır, daha önce yazdığımız üç satırlık prosedürün tamamının yerini alabilir.

Ancak bu prosedürü kullanırken dikkatli olunmalıdır. Bazı durumlarda, örneğin hiyerarşik bir dizin öğesi formunu açmanız gerektiğinde, sunucuya ek çağrılara neden olabilir. Bu prosedürü kullanırken, element ve grup için farklı formların açılması gerektiğinden, platform bir elementin grup olup olmadığını belirlemek için sunucuya ek bir çağrı yapacaktır.

Aynı zamanda, bu bilgiler geliştirici tarafından kendi algoritması dahilinde önceden bilinebilir ve geliştirici, OpenForm() işlevini kullanarak, sunucuya ek çağrılar yapmadan istenen formu açabilir ve ana formun standart adını hemen belirleyebilir. biçim.

S-P bize şunları söylüyor:

Küresel bağlam.GetForm
Küresel bağlam
Formu Al
Sözdizimi:

GetForm(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Seçenekler:

<ИмяФормы>(gerekli)

Tip: .
Form adı. Form meta veri nesnesine giden tam yol olarak (örneğin, "Directory. Counterparties.Form.ObjectForm", "GeneralForm.FileSavingForm") veya varsayılan form adıyla desteklenen bir uygulama nesnesine giden tam yol olarak oluşturulur (örneğin, "Directory.Products.SelectionForm").
Varsayılan form adları:

  • ObjectForm - varsayılan nesne formu;
  • GroupForm (FolderForm) - varsayılan grup formu;
  • RecordForm - varsayılan kayıt giriş formu;
  • ListForm - varsayılan liste formu;
  • ChoiceForm - varsayılan seçim formu;
  • GroupChoiceForm - varsayılan grup seçim formu;
  • ConstantsForm - normal mod için varsayılan sabitler formu, konfigürasyon için sabitler formu olarak ayarlanır;
  • Form - sabitin, raporun ve işlemenin varsayılan formu;
  • CommonForm - genel form;
  • SettingsForm - varsayılan rapor ayarları formu;
  • LoadForm - ayarları yüklemek için form;
  • SaveForm - ayarları kaydetme formu;
  • VariantForm - bir rapor varyantını düzenlemek için form;
  • SearchForm - verilerde tam metin araması için bir form.
Örneğin, "Genel Ayarlar" genel formunu elde etmek için modüle aşağıdaki kodu yazmalısınız:
Form = GetForm("GeneralForm.GeneralSettings");

Harici raporlar ve işlemler için form adı aşağıdaki şekilde belirtilir:

  • Harici Rapor.<имя отчета>.Biçim.<имя формы>;
  • Harici Rapor.<имя отчета>.<имя стандартной формы>;
  • Harici İşleme.<имя обработки>.Biçim.<имя формы>;
  • Harici İşleme.<имя обработки>.<имя стандартной формы>.
Bu durumda harici raporun veya işlemin daha önceden sisteme kaydedilmesi gerekir.
<Параметры>(isteğe bağlı)

Tip: .
Form parametreleri. Yapı anahtarı parametrenin adıdır ve değer ise form parametresinin değeridir. Eleman adı yapı parametresi adıyla eşleşmelidir.
P = Yeni Yapı("Anahtar", Tedarikçi);
Form = GetForm("Directory. Counterparties.ObjectForm", P);
Form.Open();
<Владелец>(isteğe bağlı)

Bir formun sahibi başka bir formun formu veya kontrolüdür.
<Уникальность>(isteğe bağlı)

Tür: Ücretsiz.
Bu parametre, değeri zaten açık olan formları aramak için kullanılacak bir anahtar belirtebilir. Aynı benzersizlik anahtarına sahip bir form bulunması durumunda yeni bir form açmak yerine bulunan form etkinleştirilecektir.
- varsayılan benzersizlik anahtarına sahip bir form arayın, - hiçbir şekilde form aramayın; başka herhangi bir değer, aramanın gerçekleştirileceği benzersizlik anahtarını belirler.
Varsayılan değer: .
<Окно>(isteğe bağlı)

Tip: ; .
Formun açılacağı uygulama penceresi.
Yalnızca yönetilen form için geçerlidir. Bir pencere yalnızca ana uygulama penceresi veya yardımcı form penceresi olabilir.
Tip belirtilirse seçilen seçeneğe göre form penceresi oluşturulacaktır.
<НавигационнаяСсылка>(isteğe bağlı)

Tip: ; .
dışında bir değer içeriyorsa bu değer, formun bu yöntemin çağrılması sonucunda elde edilen bir özelliğine atanır ve bu formun özelliği olarak ayarlanır.
Varsayılan değer: .
Geri dönüş değeri:

Tip: ; ; .
- işleyici form oluşturmayı reddedecek şekilde ayarlanmışsa.
Tanım:

Formu veya yönetilen formu alır. Almadan önce, aynı türde zaten açık olan bir form için bir arama yapılır.
Arama, form türüne, anahtar form parametrelerinin değerlerine, form sahibine, kullanıcı benzersizlik anahtarına göre gerçekleştirilir.
Parametrede ise<Уникальность>değer iletilirse zaten açık olan formların aranması gerçekleştirilmez.
Kullanılabilirlik:

İnce istemci, web istemcisi, kalın istemci, mobil uygulama (istemci).
Not:

Thin ve web istemcisinde yalnızca yönetilen form alınır.
Geleneksel harici işleme biçimleri desteklenmez.
Parametrede normal bir form alırken<ИмяФормы>Standart olmayan bir form adı belirtildi; iletilen parametreler işlenmedi.
Yürütme sırasında sunucuya birden fazla çağrı yapılabilir. Bazıları önbelleğe alınır. Sunucuya her zaman en az bir istek vardır ve önbelleğe alınmaz. Önbelleğe alma, platform sürümüne ve bir bütün olarak yapılandırma sürümüne bağlıdır. Bağlantı hızı düşük olarak ayarlanmışsa ve geçerli hat belirtilmemişse seçim formu önbelleğe alınır. Önbellek her 20 dakikada bir temizlenir. Bu süre içerisinde kullanılmayan formlar silinir.
Ayrıca bakınız: