Yönetilen formların öğelerinin program aracılığıyla eklenmesi ve değiştirilmesi. Yönetilen form öğelerini program aracılığıyla ekleme ve düzenleme

Makale “1C geliştirmede ilk adımlar” dizisine devam ediyor.

1C:Enterprise platformundaki konfigürasyonda, bilgileri görüntülerken çoğunlukla çeşitli bilgi listelerini görüntüleyen tablolar kullanılır. Bu tür listelerle çalışmak hem liste biçiminde hem de öğe (işleme) biçiminde gerçekleşebilir.

Bu makalede, listeleri özelleştirmek için bu seçenekler hakkında bilgi sahibi olacağız ve ayrıca formları kullanıcı açısından özelleştirmenin diğer özelliklerine de bakacağız.

Uygulanabilirlik

Makalede, 1C 8.3.4.482 platformunda geliştirilen konfigürasyonun "Sürüm 8.2" sürümündeki Yönetilen Arayüz anlatılmaktadır.

Bu arayüzü destekleyen konfigürasyonlarla çalışıyorsanız, platformun mevcut sürümleri için bilgiler sizin için geçerlidir.

Yeni Taksi arayüzünde çalışıyorsanız, bazı yapılandırma komutlarının adları ve genel eylem sırası biraz farklı olabilir.

Ayrıca platformun mevcut sürümü, listelere yeni arama yetenekleri ekledi.

Formları ayarlama ve listelerle çalışma

Yönetilen form öğeleri için görünürlüğü ve diğer bazı özellikleri değiştirmek mümkündür. Bu amaçlar için menüde kontrollü bir biçimde Tüm eylemleröğe olarak hizmet vermektedir Formu değiştir.

Bu komuta tıkladıktan sonra “Form Ayarları” penceresi açılacaktır.

Açılan pencerede bazı detayların görünürlüğünü değiştirmek için onay kutularını kullanabilirsiniz. Bu durumda form otomatik olarak ölçeklendirilir.

Ayrıntıların sırasını değiştirebilirsiniz. Yeni bir grup ekleyin ve gruplandırma seçeneğini (yatay, dikey) tanımlayarak içine bazı ayrıntılar (öğeler) yerleştirin.

Grupta yer alan ayrıntılar buna göre yayınlanacaktır. Ayrıca öğeler için genişlik, yükseklik ve başlık verileri gibi özellikleri de yapılandırabilirsiniz.

Form açıldığında aktif olacak özellikleri tanımlayabilirsiniz.

Önemli bir özellik, forma yeni alanlar ekleyebilme yeteneğidir. Bu, referans türü öznitelikleri aracılığıyla mümkün olur.

Örneğin formda referans tipi özelliğinin bulunması Karşı taraf, ekleyebilir İrtibat kişisi, eğer bu ayrıntı “Karşı Taraflar” dizininde mevcutsa.

Gerekirse ek alanlar kaldırılabilir. Yapılandırıcıda oluşturulan alanlar silinemez. Kullanıcı tarafından yapılan tüm ayarlar kaydedilir.

Menüdeki Form Ayarları penceresinde standart ayarlara dönmek için Tüm eylemleröğeyi seçmelisiniz Varsayılan ayarları belirleyin.

Yönetilen arayüzdeki formları özelleştirmenin yanı sıra listeleri (dizin öğeleri, belgeler) özelleştirmek de mümkündür.

Menüde liste şeklinde Tüm eylemlerözel bir komut içerir Listeyi özelleştirin.

“Liste Ayarları” penceresi açılacaktır. Bu pencerede koşullu biçimlendirmeyi ve gruplamayı seçebilir, sıralayabilir, tanımlayabilirsiniz.

Şekilde seçimi düzenlemek için bir form gösterilmektedir.

Seçim birkaç alan kullanılarak yapılabilir. Bu durumda seçim varsayılan olarak AND koşuluna göre çalışacaktır.Ayrıca OR ve NOT koşullarını da kullanabilirsiniz.

VEYA (DEĞİL) koşulunu kullanmak için Grup Koşulları komutunu kullanarak uygun grubu (OR Grubu, DEĞİL Grubu) eklemeniz gerekir.

Şekilde sıralama alanlarını tanımlamak için bir form gösterilmektedir.

Gruplandırma yapılandırılabilir. Şekilde gruplandırma alanı seçilmiştir Karşı taraf.

Bir sonraki şekil gruplamanın nasıl gerçekleştirileceğini göstermektedir.

Listeyi serbestçe renklendirebilir veya belirli bir koşula göre koşullu tasarımın diğer öğelerini (yazı tipi seçimi, özel biçimlendirme) uygulayabilir ve ayrıca biçimlendirilecek alanların listesini seçebilirsiniz.

Şekil, alan arka planının koşullu tasarımının sonucunu göstermektedir Toplam.
Tutar > 100.000 olduğunda.

Dizinleri hiyerarşi modunda görüntülemenin mümkün olduğuna dikkat edilmelidir.

Dizinlerin hiyerarşik görüntülenmesi öğe aracılığıyla yapılandırılabilir Görünüm Modu menüde Tüm eylemler. Seçeneklerden birini seçebilirsiniz: Hiyerarşik liste, Liste, Ağaç.

Belirli ayrıntılara göre kendi dizin öğeleri gruplandırmanızı da yapılandırmanız mümkündür.

Örneğin öğeleri tedarikçiye göre gruplandırabilirsiniz. Örnek, "Mal ve hizmet satışı" belgelerini karşı taraflara göre gruplandırmaya baktığımız yere benzer.

Kullanışlı bir özellik, listelerde çoklu seçim ve grup eylemlerinin daha sonra yürütülmesidir (gönderme, iptal etme, silme işaretini kaldırma).

Listedeki nesneler tuşu basılı tutularak seçilir Vardiya veya Ctrl.

Bir listede belirli bir değeri aramanın kendine has özellikleri vardır. Arama seçim modunda çalışır. Yalnızca arama koşulunu karşılayan satırlar kalır.

Geçerli sütunda değere göre arama yapmak için imleci istediğiniz sütunun üzerine getirin ve düğmeye tıklayın Bulmak komut panelinde. Düğmeye de tıklamanız gereken bir pencere açılacaktır. Bulmak.

Aramanızı daha spesifik hale getirmek için onay kutusunu kullanabilirsiniz. Bulunanlarda ara.

Referans tipindeki bir veri satırını ararken (örneğin ölçü birimleri), uygun arama seçeneğini seçmelisiniz ...(satır bazında).

Bu, listeler ve bunları yapılandırmanın yolları ile sona ermektedir. Bir sonraki yazımızda arayüzü tanımaya devam edeceğiz ve daha önce bahsetmediğimiz kullanıcıyı bilgilendirmeye yönelik kullanışlı bir araca bakmaya devam edeceğiz. Bu ne tür bir enstrüman? :)

1C, uygulama çözümü kullanılırken sistem tarafından otomatik olarak oluşturulur. Bunlar, 1C:Enterprise sisteminde bilgilerin sunulmasının (görüntülenmesinin) temelini oluşturur.

Form 1C'nin yapısı

Form B, formun bileşiminin mantıksal bir açıklamasıdır. öğeler formun nasıl görüneceğini açıklar. Form elemanlarının yerleşimi, görüntülendiğinde sistem tarafından otomatik olarak gerçekleştirilir.

Formun görüntülenen kısmı (kullanıcının görebileceği), form öğelerini içeren bir ağaç olarak tanımlanır (aşağıdaki şekle bakın, "Form öğeleri" alanı):

  • diğer unsurları içeren grup,
  • giriş alanları,
  • onay kutuları,
  • anahtarlar,
  • düğmeler,
  • sütun öğelerini vb. içeren tablolar.

"1C formunun unsurları"

[yıkılmak]

Bir grup form öğesi şu şekilde temsil edilebilir:

  1. çerçeveli panel,
  2. sayfalı panel (yer imleri),
  3. sayfanın kendisi,
  4. komut paneli.

Formun tüm işlevleri şu şekilde açıklanmaktadır:

  • ayrıntılar (formun çalıştığı veriler);
  • komutlar (gerçekleştirilen eylemler).

Yönetilen bir formun görünümünü özelleştirme

Yönetilen bir formun görünümünü kullanıcı tarafından özelleştirme

Yönetilen bir formun görünümü kullanıcı düzeyinde özelleştirilebilir. Bu özellik için, form eylemlerinde “Diğer” - “Formu değiştir” komutu vardır (yalnızca geliştirme aşamasında tanımlanan form öğelerini veya form otomatik oluşturma için standart kurallara göre yönetir).

"Diğer" - "Şekil değiştir"

Komut "Diğer" - "Şekli değiştir":

“Formu değiştir” seçeneğine tıkladıktan sonra 1C form ayarları penceresi görüntülenir:

[yıkılmak]

Ayrıca kullanıcı modunda şunları yapmak mümkündür:


  • formların sırasını değiştirin, bunları bir sütundan diğerine taşıyın (masaüstü iki sütun halinde düzenlenmişse), ancak masaüstündeki sütun sayısını değiştiremezsiniz;
  • bilgileri ayrı pencereler biçiminde görüntüleyin (bir gezinme komutunu çağırırken Shift tuşunu basılı tutmanız gerekir).

Bölümler kullanılıyorsa, gezinme panelinde bir komut çağırdığınızda, çalışma alanının önceki içeriğinin yerine karşılık gelen liste çalışma alanında görüntülenir.

Yönetilen bir formun görünümünü geliştirici tarafından özelleştirme

Geliştirici, çeşitli ayarlarla öğelerin düzenini etkileyebilir. Öğelerin sırasını belirleyebilir, genişliklerini ve yüksekliklerini belirleyebilir ve ayrıca şunları kullanabilir:

  • formun kendisinin komutları;
  • yapılandırma boyunca kullanılan genel komutlar;
  • Geçerli formun belirli verilerine göre diğer formları açacak parametrelendirilebilir komutlar.

Şekil (1C formunun geliştirici tarafından değiştirilmesi)

[yıkılmak]

Form 1C'yi geliştirirken şunları yapmalısınız:

  1. Form düzenleyicisinde forma gerekli ayrıntıları ve komutları ekleyin;
  2. bunları görüntüleyen form öğeleri oluşturun, öğelerin sırasını belirleyin, genişliğini ve yüksekliğini belirtin (gerekirse);
  3. Öğeleri gruplar halinde düzenleyin (gerekirse).
  1. Yapılandırmada çok sayıda rol olması durumunda (birkaç düzineden), form öğelerinde rol tabanlı görünürlük ayarlarını kullanın (ayrıntıları e-postaya göre görüntüleme ve düzenleme, form alanlarının role göre özel görünürlüğü, komutları role göre kullanma). Bunun yerine aşağıdaki yaklaşımlar izlenmelidir:
    • Kullanıcıya yönelik belirli rollerin varlığına bağlı olarak formun görünümünde ve işlevselliğinde güçlü farklılıklar olduğunda – ayrı formlar geliştirin, belirli bir dizi kullanıcı hakkı için uzmanlaşmıştır;
    • küçük farklılıklarla - kodda izin kontrolleri gerçekleştirin. Programatik görünürlük kontrolünün, önerilen yaklaşımlar arasında seçim yaparken dikkate alınması gereken formun açılma hızını azaltabileceği akılda tutulmalıdır.
  2. Yapılandırma komut arayüzünde, ana bölüm komut arayüzünde ve başlangıç ​​sayfası çalışma alanında rol tabanlı görünürlük ayarlarını kullanın. Bunun yerine, komut arayüzünün bölümleri ve komut arayüzü veya çalışma alanında bulunan nesneler için izinler ayarlamanız gerekir. Bu, yönetilen arayüzün davranışını kullanıcı için daha öngörülebilir hale getirir ve aynı zamanda hataların araştırılmasını da kolaylaştırır.

Formlarla çalışma hakkında daha ayrıntılı bilgi için http://www.1c.ru/rus/partners/training/uc1/course.jsp?id=161 adresindeki "1C:Enterprise 8.3'te formlarla çalışma" kursuna bakın.

Ve Veri Aktarım Nesnesinden kod yapılanmasına, 1C 8.2 ortamında kontrollü form.

giriiş

"Yönetilen form" kavramının ve 1C platformunun ilgili kavramlarının kısa bir açıklamasıyla başlayalım. Platform uzmanları bu bölümü atlamak isteyebilir.

2008 yılında, 1C platformunun yeni bir sürümü kullanıma sunuldu: Enterprise 8.2 (bundan sonra Yönetilen Uygulama olarak anılacaktır), bu da arayüz ile tüm çalışma katmanını tamamen değiştirir. Buna komut arayüzü, formlar ve pencere sistemi dahildir. Aynı zamanda, konfigürasyonda kullanıcı arayüzünün geliştirilmesine yönelik modelin değiştirilmesinin yanı sıra, istemci uygulaması ile sunucu arasındaki işlevselliğin ayrılmasına yönelik yeni bir mimari de önerilmektedir.
Yönetilen uygulama aşağıdaki istemci türlerini destekler:

  • Kalın istemci (normal ve yönetilen başlatma modu)
  • Zayıf müşteri
  • Web istemcisi
Yönetilen uygulama, yeni teknolojiye dayanan formları kullanır. Onlar aranmaktadır Yönetilen Formlar. Geçişi kolaylaştırmak için önceki formlar (Normal formlar olarak da bilinir) de desteklenir, ancak işlevleri geliştirilmemiştir ve yalnızca kalın istemci başlatma modunda kullanılabilirler.
Bir geliştirici için yönetilen formların temel farklılıkları:
  • Yapının "piksel piksel" değil bildirimsel açıklaması. Form görüntülendiğinde elemanların spesifik yerleşimi sistem tarafından otomatik olarak gerçekleştirilir.
  • Formun tüm işlevleri şu şekilde tanımlanır: detaylar Ve takımlar. Ayrıntılar formun birlikte çalıştığı verilerdir ve komutlar gerçekleştirilecek eylemlerdir.
  • Form hem sunucuda hem de istemcide çalışır.
  • İstemci bağlamında neredeyse tüm uygulama türleri mevcut değildir ve dolayısıyla bilgi tabanındaki verileri değiştirmek imkansızdır.
  • Her yöntem veya form değişkeni için belirtilmelidir derleme direktifi, yürütme konumunu (istemci veya sunucu) ve form içeriğine erişimi tanımlama.
Form yöntemlerini derlemek için yönergeleri listeleyelim:
  • &İstemcide
  • &Sunucuda
  • &SunucudaBağlam Olmadan
  • &OnClientOnServerBağlam Olmadan
Yukarıdakileri örnekleyelim. Ekran görüntüsü, yönetilen bir formun ve onun modülünün geliştirme modundaki bir örneğini gösterir. Bildirim niteliğindeki açıklamayı, destekleri, derleme yönergelerini vb. bulun.

Bundan sonraki tüm tartışmalar, şeklin sağ tarafı, modül kodunun nasıl yapılandırılacağı ve hangi ilkelerin etkili istemci-sunucu etkileşimini uygulamanıza izin vereceği hakkında olacaktır.

Sorunu tanımlayalım

1C platformunun yeni sürümünün aktif olarak kullanılmasının üzerinden birkaç yıl geçti ve hem 1C hem de birçok ortağı tarafından birçok çözüm (konfigürasyon) yayınlandı.
Bu süre zarfında geliştiriciler, formlar oluştururken istemci-sunucu etkileşimi ilkelerine ilişkin ortak bir anlayış geliştirdiler mi ve yeni mimari gerçekliklerde yazılım modüllerinin uygulanmasına yönelik yaklaşım değişti mi?

Aynı standart konfigürasyonun çeşitli formlarındaki kod yapısına (form modülü) bakalım ve kalıpları bulmaya çalışalım.
Yapı derken, geliştirici tarafından grup yöntemlerine ve bu yöntemlere yönelik derleme yönergelerine tahsis edilen kod bölümlerini (çoğunlukla bunlar yorum bloklarıdır) kastediyoruz.
Örnek 1:
Olay işleyicileri bölümü Yöntem - istemcide Yöntem - sunucuda Yöntem - istemcide Hizmet prosedürleri ve işlevleri bölümü Yardımcı giriş kontrol işlevleri
Örnek 2:
Hizmet prosedürleri ve işlevleri Ödeme belgeleri Değerler Olay yöneticileri
Örnek 3:
Sunucudaki hizmet yordamları İstemcideki hizmet yordamları Bağlam olmadan sunucudaki hizmet yordamları Başlık olay işleyicileri Komut olay işleyicileri
Örnek 4:
Genel amaçlı prosedürler Form olay yöneticileri "İletişim bilgileri" alt sisteminin prosedürleri
Temelde kod yapısı eksik veya en hafif tabirle Form 8.1'dekine benziyor:

  • Bilgilendirici olmayan kelimeler “Genel, Hizmet, Yardımcı”.
  • Timid, istemci ve sunucu yöntemlerini ayırmaya çalışır.
  • Yöntemler genellikle "Ürünler tablo bölümüyle çalışma, İletişim bilgileri" arayüz öğelerine göre gruplandırılır.
  • Yöntemlerin ve kod gruplarının keyfi düzenlenmesi. Örneğin, Olay İşleyicileri bir formda en üstte, diğerinde en altta olabilir, üçüncü formda hiç vurgulanmamış olabilir, vb.
  • Ve bunların hepsinin tek bir konfigürasyonda olduğunu unutmayalım.
  • Evet “Genel, Servis, Yardımcı” kelimelerinin hep aynı yerde olduğu konfigürasyonlar var ama...
Neden kod yapısına ihtiyacınız var?
  • Bakımın basitleştirilmesi.
  • Öğrenmeyi basitleştirin.
  • Genel/önemli/başarılı ilkelerin kaydedilmesi.
  • ...sizin seçeneğiniz
1C'nin mevcut geliştirme standardı neden yardımcı olmuyor?
Yönetilen bir form yazarken önerilen ITS disklerinde ve çeşitli “Geliştirici Kılavuzlarında...” yayınlanan ilkelere bakalım.
  • Sunucu çağrılarının sayısını en aza indirin.
  • Sunucuda maksimum bilgi işlem.
  • Bağlamsal olmayan sunucu çağrıları bağlamsal olanlardan daha hızlıdır.
  • İstemci-sunucu iletişimini göz önünde bulunduran program.
  • ve benzeri.
Bunlar kesinlikle doğru sloganlar ama nasıl uygulanmalı? Çağrı sayısı nasıl en aza indirilir, istemci-sunucu modunda programlama ne anlama gelir?

Tasarım kalıpları veya nesil bilgeliği

İstemci-sunucu etkileşimi onlarca yıldır çeşitli yazılım teknolojilerinde kullanılmaktadır. Önceki bölümde özetlenen soruların cevabı uzun zamandır bilinmektedir ve iki temel prensipte özetlenmiştir.
  • Uzak Cephe(bundan böyle Uzaktan Erişim Arayüzü olarak anılacaktır)
  • Veri Aktarım Nesnesi(bundan böyle Veri Aktarım Nesnesi olarak anılacaktır)
Martin Fowler'ın bu ilkelere ilişkin açıklaması:
  • Potansiyel olarak uzaktan erişime yönelik her nesnenin sahip olması gerekir. düşük tanecikli arayüz Bu, belirli bir prosedürü gerçekleştirmek için gereken çağrı sayısını en aza indirecektir. ... Fatura ve tüm kalemlerini ayrı ayrı talep etmek yerine, tek talepte tüm fatura kalemlerini okuyup güncellemeniz gerekiyor. Bu, nesnenin tüm yapısını etkiler...Unutmayın: uzaktan erişim arayüzü etki alanı mantığı içermiyor.
  • ...eğer şefkatli bir anne olsaydım çocuğuma kesinlikle şunu derdim: "Asla veri aktarım nesneleri yazmayın!" Çoğu durumda, veri aktarım nesneleri yalnızca şişirilmiş alan seti... Bu iğrenç canavarın değeri yalnızca olasılıkta yatıyor tek bir çağrıda ağ üzerinden birden fazla bilgi iletin- Dağıtılmış sistemler için büyük önem taşıyan bir teknik.
1C platformundaki şablon örnekleri
Yönetilen bir form geliştirirken geliştiricinin kullanabileceği uygulama programlama arayüzü bu ilkelerin birçok örneğini içerir.
Örneğin, tipik bir "kaba" arayüz olan OpenForm() yöntemi.
OpeningParameters = Yeni Yapı("Parametre1, Parametre2, Parametre3", Değer1, Değer2, Değer3); Form = OpenForm(FormAdı, OpeningParameters);
V8.1'de benimsenen stille karşılaştırın.
Form = GetForm(FormAdı); Form.Parametre1 = Değer1; Form.Parametre2 = Değer2; Form.Open();

Yönetilen bir form bağlamında birçok “Veri Aktarım Nesnesi” vardır. seçebilirsiniz sistemik Ve geliştirici tanımlı.
Sistem olanlar, istemci üzerinde bir uygulama nesnesini bir veya daha fazla form veri öğesi biçiminde modeller. Form ayrıntılarına başvurmadan bunları oluşturmak imkansızdır.

  • VeriFormlarıYapısı
  • VeriFormlarıKoleksiyonu
  • DataFormStructureWithCollection
  • Veri Şekilleri Ağacı
Sistem veri aktarım nesnelerinin uygulama türlerine (veya tam tersi) dönüştürülmesi aşağıdaki yöntemler kullanılarak gerçekleştirilir:
  • ValueInFormData()
  • FormDataValue()
  • CopyFormData()
  • ValueInFormAttributes()
  • FormAttributesValue()
Mevcut bir çözümü uyarlarken genellikle açık dönüşüm kullanılır. Yöntemler, FormDataCollection yerine ValueTable gibi giriş parametrelerini bekleyebilir (özellikleri kullanabilir) veya yöntem bir uygulama nesnesi bağlamında tanımlanmış ve formdan doğrudan çağrı için kullanılamaz hale gelmiştir.
Örnek 1C v8.1:
// istemcide FillUserCache(DepartmentLink) formu bağlamında
Örnek 1C v8.2:
// sunucuda form bağlamında ProcessingObject = Form AttributesValue("Object"); ProcessingObject.FillUserCache(DepartmentRef); ValueВFormAttributes(ProcessingObject, "Object");

Yapısı geliştirici tarafından belirlenen veri aktarım nesneleri, hem istemcide hem de sunucuda bulunan türlerin küçük bir alt kümesidir. Çoğu zaman, aşağıdakiler "kabalaştırılmış" bir arayüzün parametreleri ve yöntemlerinin sonuçları olarak kullanılır:

  • İlkel türler (dize, sayı, boolean)
  • Yapı
  • Yazışma
  • Sıralamak
  • Uygulama nesnelerine bağlantılar (benzersiz tanımlayıcı ve metin gösterimi)
Örnek: yöntem, durumu değiştirmek için bir sipariş listesini kabul eder ve istemciye hataların bir açıklamasını döndürür.
&OnServerWithoutContext İşlev ServerChangeOrderStatus(Orders, NewStatus) Hatalar = Yeni Eşleşme(); // [sipariş][hata açıklaması] Siparişlerden Her Sipariş İçin Cycle StartTransaction(); DocOb = Order.GetObject();'i deneyin …. diğer eylemler, yalnızca siparişle mümkün değildir... İstisna CancelTransaction(); Errors.Insert(Order, ErrorDescription()); Deneme Sonu; EndCycle; Dönüş Hatası; EndFunction // ServerChangeOrderStatus()

Kodun yapılandırılması

Yönetilen form modülünün yansıtması gereken temel hedefler ve çözüme yaklaşımlar.
  • İstemci ve sunucu kodunun net bir şekilde ayrılması. Yürütme sırasında bunların, her biri önemli ölçüde farklı işlevselliğe sahip, etkileşim halindeki iki süreç olduğunu unutmayalım.
  • Uzaktan erişim arayüzünün açık bir şekilde tanımlanması; istemciden hangi sunucu yöntemlerinin çağrılabileceği ve hangilerinin çağrılamayacağı? Uzak arayüz yöntemlerinin adları "Sunucu" önekiyle başlar. Bu, kodu okurken kontrolün sunucuya aktarıldığını anında görmenize olanak tanır ve bağlamsal yardımın kullanımını basitleştirir. Resmi önerinin (ITS), ChangeOrderStatusOnServer() gibi soneklerle adlandırma yöntemleri önerdiğini unutmayın. Ancak tüm sunucu yöntemlerinin istemciden çağrılamadığını ve bu nedenle derleme konumundan ziyade mantıksal erişilebilirliğin daha önemli olduğunu tekrarlıyoruz. Bu nedenle, “Server” önekiyle yalnızca istemcinin kullanabileceği yöntemleri işaretliyoruz; örnek yöntemi ServerChangeOrderStatus() olarak adlandıralım.
  • Okunabilirlik. Zevk meselesi, sunucuda form oluşturma prosedürleri ve uzaktan erişim yöntemleri ile modül başladığında siparişi kabul ediyoruz.
  • Sürdürülebilirlik. Yeni kod eklemek için açık bir konum olmalıdır. Önemli bir nokta, yapılandırıcı tarafından otomatik olarak oluşturulan yöntem şablonlarının modülün sonuna eklenmesidir. Form öğelerine ilişkin olay işleyicileri çoğunlukla otomatik olarak oluşturulduğundan, her işleyiciyi modülde başka bir yere sürüklememek için karşılık gelen blok en sona yerleştirilir.
Aşağıda listelenen hedefleri uygulayan modülün temel yapısı verilmiştir.
  • Grafik seçeneği – ana yürütme akışını açıkça gösterir.
  • Metin seçeneği, yeni bir form modülüne hızlı bir şekilde bir yapı eklemek için kullanılan şablon tasarımının bir örneğidir.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор=""Tarih=""/> // <Описание> // // //////////////////////////////////////////////// // //////////////////////////// // MODÜL DEĞİŞKENLERİ ///////////////// // ////////////////////////////////////////////// //// ////////// // SUNUCUDA //******** SUNUCUDAKİ OLAYLAR ******* &Sunucuda Sunucuda Oluşturulduğunda Prosedür (Arıza, Standart İşleme) / /İşleyicinin içeriğini ekleyin Prosedür Sonu //******* UZAKTAN ERİŞİM ARAYÜZÜ ******* //******* SUNUCUDA İŞ MANTIĞI ******* ///////// ////////////////////////////////////////// /////// ///////////////////// // İSTEMCİ VE SUNUCUSUN ORTAK YÖNTEMLERİ /////////////// /////// /////////////////////////////////////////// ///// //////// // MÜŞTERİ ÜZERİNDE //******* İŞ MÜŞTERİ ÜZERİNDE İŞ MANTIĞI ******* //******** EKİP * ****** //******** MÜŞTERİ OLAYLARI ******* ////////////////////////// ///// ///////////////////////////////////////////// // / / ANA PROGRAM OPERATÖRLERİ

İlgili sorular
Sonuç olarak, istemci-sunucu etkileşimini programlarken dikkate alınması yararlı olan birkaç alanın ana hatlarını çizeceğiz.
  • Uzaktan erişim arayüzü uygulama seçenekleri. Eşzamansızlık, ayrıntı düzeyi...
  • Önbelleğe almak. 1C, yalnızca ortak modüllerin çağrı yöntemleri düzeyinde önbelleğe almayı başlatan ve kontrol yetenekleri (alaka süresi, talep üzerine sıfırlama) sağlamayan başarısız bir mimari karar verdi.
  • Örtülü sunucu çağrıları. Teknolojik özellikleri unutmayın; istemcideki birçok “zararsız” işlem, platformun sunucuyla iletişim kurmasına neden olur.

1C:Enterprise'da bulunan formlar, kullanıcının bilgi tabanı verileriyle etkileşimli olarak etkileşime girmesi için tasarlanmıştır. Bu özelliği sağlamak için form gerekli işlevsellik ile "doldurulur".


Formun işlevselliği, ayrıntılarının ve komutlarının bileşimine göre belirlenir. Form ayrıntıları, formun birlikte çalıştığı verilerdir. Form komutları, bir formun veriler üzerinde gerçekleştirebileceği eylemlerdir. Ancak bir komutun bir form üzerinde olması onun işlevselliğini kullanmanıza izin vermez. Benzer şekilde, ayrıntıların kendisi de verileri görüntüleme ve düzenleme olanağı sağlamaz.
Komutları kullanmak, ayrıntılarda saklanan verileri görüntülemek ve düzenlemek için ilgili komutlar ve ayrıntılarla ilişkili form öğeleri kullanılır.
Detaylara girmeden komutlar, detaylar ve form elemanları arasındaki ilişki bir diyagramla gösterilebilir.

Komutlar, ayrıntılar ve form öğeleri arasındaki ilişki

Formların aşağıdaki temel özellikleri not edilebilir.
İlk önce Yeni form geliştirici tarafından ayrıntılı olarak çizilmez, sistem tarafından otomatik olarak oluşturulur. Geliştirici yapılandırma modundadır:

  • Formun kompozisyonunu bir element ağacı şeklinde tanımlar
  • özellikleri için değerler ayarlayarak ve/veya yerleşik bir dilde prosedürleri uygulayarak bir formun davranışını açıklar.

Belirli bir kullanıcı için bir arayüz oluştururken sistem, formu oluşturmak ve öğelerini yerleştirmek için bu bildirimsel açıklamayı kullanır.
ikinci olarak, form oluştururken form öğelerinin erişilebilirliğini ve görünürlüğünü yönetmek için yeni bir model kullanılır. Bu şunları dikkate alır:

  • Kullanıcı rollerine göre hak ayarları
  • form öğelerinin işlevsel seçeneklere bağımlılığı
  • uygulama çözümünün yapılandırılması aşamasında geliştirici tarafından gerçekleştirilen form özelleştirmesi
  • Uygulama çözümünün çalıştırılması aşamasında kullanıcı tarafından gerçekleştirilen form özelleştirmesi.

Varsayılan işlevsellik

1C:Enterprise'da veri nesnelerini sunmak ve işlemek için formlar oluşturmanıza gerek yoktur. Bu durumda, formları açmak için komutlar yürütülürken sistem, gerekli formu anında otomatik olarak oluşturacaktır. Oluşturulan form varsayılan işlevselliğe ve sunuma sahip olacaktır. Bir formun sunumunu ve işlevselliğini ne belirler?
Bir formun standart sunumu ve işlevselliği, Yönetilen Form arayüz nesnesi (örneğin, formun kapatılma yeteneği) ve form uzantısı (örneğin, form verilerinin bilgi tabanına yazılma yeteneği) tarafından belirlenir.
Form uzantısı, ana nitelik atandığında Form nesnesinde görünen ek özellikler, yöntemler, parametreler ve komutlardır.

DİKKAT!
Ana özellik olarak yalnızca bir özellik seçilebilir
form ayrıntılarından.

Şunu anlamak önemlidir:

  • sağlanan ek işlevsellik Yönetilen Form nesnesine dahil edilir, yani onun ayrılmaz bir parçası haline gelir
  • ek özelliklerin bileşimi, ana form özelliğinin türüne, yani formun düzenlenmesi amaçlanan veri türüne göre belirlenir.

Uzantılar form öğelerinde de mevcut olabilir. Formun kendisinde olduğu gibi, bir form öğesinin uzantısının bileşimi, yani ek özellikler, yöntemler vb., öğenin ilişkili olduğu öznitelik türüne göre belirlenir.
Standart dışı bir veri sunumu veya standart dışı işlevsellik uygulamak gerekiyorsa geliştirici, yapılandırıcıda bağımsız olarak bir form oluşturabilir. Form düzenleyicisi form oluşturmak için kullanılır. Geliştirici, bu düzenleyiciyi kullanarak form için gerekli ayrıntıları ve komutları ve bunların birlikte görüntülendikleri form öğelerini oluşturur.

Form komutları

Form komutlarını tanımak için Mal Tüketim belgesi için başka bir form oluşturalım. Bu belgenin Formlar düğümünün içerik menüsünden Ekle'yi seçin.

Alt Form Ekleme


Sonuç olarak form tasarımcısı penceresi açılacaktır. Tasarımcı penceresinde form türünü seçin – Belge Formu, Formu ana olarak ata onay kutusunu işaretleyin ve MainForm adını ayarlayın. Bitir düğmesini tıklayın.

Form Tasarımı Penceresi

1C8: Form tasarımcısı penceresi

Tasarımcının çalışması sonucunda bir belge formu oluşturulur, bu form ana form olarak atanır, yani belgeyle çalışmak için varsayılan olarak kullanılır. Tasarımcı oluşturulan formu tamamladıktan sonra form düzenleyici penceresi açılacaktır.

Otomatik olarak oluşturulan belge formuna sahip form düzenleyici


NOT
Form düzenleyicide ana form ayrıntıları kalın harflerle vurgulanmıştır.

Mal Tüketimi belgesini 1C:Kurumsal modunda açarsanız, oluşturduğumuz formun belgeyle çalışmak için kullanıldığını göreceğiz.

“Mal tüketimi” belgesini düzenleme formu


Komutlara erişimi sağlayan öğeler komut panellerinde bulunur. Bizim durumumuzda sistem bir form komut paneli ve bir ürün tablosu komut paneli oluşturdu. İlgili komut panelinin Tüm eylemler menüsünden mevcut komutlardan herhangi birini seçebilirsiniz. Komutlara erişimi hızlandırmak için bunlardan bazıları (en önemlileri veya en sık kullanılanları) doğrudan komut panellerinde düğmeler halinde sunulur.
Üniforma takımlarının kompozisyonunu oluştururken sisteme ne “rehberlik eder”? Hangi takımlar forma giymeli? Bu soruları cevaplamak için formun ana amacını - etkileşimli veri işlemeyi - hatırlamanız gerekir. Bu nedenle formun, kullanıcıya form verilerini işleyebilme ve işlenen verilerle ilişkili verilere erişebilme olanağı sağlayan komutlar içermesi gerekir.

Form verilerini işlemek için - standart form komutları S

Form, verileri işlemek ve formu yönetmek için komutlar içermelidir. Bu yetenekler standart yerel form komutları tarafından sağlanır. Form düzenleyicide sekmede sunulurlar Standart komutlar komut editörü.

Editör ve arayüzdeki standart form komutları

1C8: Düzenleyici ve arayüzdeki standart form komutları

Bu komutlar form ve form uzantısı tarafından sağlanır. Form tarafından sağlanan komutların bileşimi standarttır ve form verilerine bağlı değildir - bunlar komutlardır:

  • Referans
  • Formu değiştir...
  • Kapalı
  • Ayarları kaydet...
  • Ayarları eski haline getir...

Uzantı tarafından sağlanan komutların bileşimi, ana form özelliğinin türüne bağlıdır. Bizim durumumuzda formun ana niteliği, DocumentObject.ProductConsumption veri türüyle Object niteliğine atanmıştır (yukarıdaki şekle bakınız).Bu veri türüne karşılık gelen uzantı, komutları sağlamıştır:

  • Kaydırın ve kapatın
  • Yaz
  • Tekrar oku
  • Kopyala
  • Silinmek üzere işaretle
  • Silme işaretini kaldır
  • Silmek
  • Yönetmek
  • İptal.

DİKKAT!
Standart konfigürasyon nesnesi komutları ile standart form komutlarını birbirinden ayırmak gerekir. İlki genel komut arayüzünde kullanılır ve konfigürasyon nesnesi tarafından sağlanır. İkincisi formda kullanılır ve formun kendisi, uzantısı ve Tablo türündeki form öğelerinin uzantıları tarafından sağlanır.

Form yönetimi algoritmalarının geliştirilmesini kolaylaştırmak için standart form komutları aşağıdaki komutları içerir:

  • HAYIR,
  • İptal etmek,
  • İptal et,
  • Atlamak,
  • Tekrarlamak.

Forma böyle bir komut eklenirse, kullanıcı onu seçtiğinde aşağıdaki eylemler gerçekleştirilir:

  • kalıcı modda açılan bir form için form kapatılır ve seçilen komuta karşılık gelen DialogReturnCode türünde bir değer döndürülür
  • Modelsiz modda açılan bir form için yalnızca form kapatılır.

Form öğeleri tablolar içeriyorsa, bu öğelerde görüntülenen verileri işlemek için formun standart yerel komutlarına komutlar eklenir. Belgede Ürün tüketimi Form verilerinde Ürünler özelliği tarafından temsil edilen tablo şeklinde bir bölüm vardır. Formdaki ürünlerin listesini görüntülemek için Tablo türünün Ürünler öğesini kullanın. Formun standart yerel komutları, tablo verilerinin işlenmesine yönelik komutları içerir - komut düzenleyicisindeki Ürünler düğümü.

Düzenleyici ve arayüzdeki standart tablo komutları


Bağlantılı verilerle çalışmak için - global parametreli komutlar

Form verilerini işlerken, işlenmekte olan verilerle ilişkili verileri görüntülemeniz gerekebilir. Bu, örneğin karşı taraflarla yapılan karşılıklı anlaşmaların kaydındaki, işlenen belgeye bağlı bir dizi giriş veya satılan malların fiyat listesi vb. olabilir. Ayrıca ilgili verilerin bazı işlemlerinin gerçekleştirilmesi de gerekli olabilir. örneğin, bir satış belgesine dayalı bir ödeme belgesi girin veya satılan malların barkodlarını yazdırın vb.

Bağlantılı verilere erişim, global parametreleştirilebilir gezinme komutları tarafından sağlanır ve bağlantılı verilerin işlenmesi, global parametreleştirilebilir eylem komutları tarafından sağlanır. Form düzenleyicide, komut düzenleyicinin Genel komutlar sekmesinde sunulurlar.

Editör ve arayüzdeki global parametrelendirilebilir komutlar


Bu komutlar, uygulama çözümünün genel komut arayüzü tarafından sağlanır. Formda bulunan komutların bileşimi, parametreli komutun parametre türüne bağlıdır (bkz. "Keyfi komutlar"). Bu global parametreli komutlar, form bağlamında gerekli türün parametre değerlerini alabileceğiniz formda mevcuttur.
Komut düzenleyicide, bir komutun parametresinin kaynağı, komuttan sonra parantez içinde gösterilir. Örneğin, bir satış kayıt listesi açma komutu için parametre, düzenlenen belgeye bir bağlantıdır.
Bir formda bir komut için birden fazla kaynak varsa, komut bir ağaç düğümü olarak temsil edilir ve kaynakların listesi de bu düğümün öğeleri olarak temsil edilir. Böyle bir komut, herhangi bir kaynakla (veya aynı komutun farklı kaynaklarla birden fazla örneğiyle) form komutlarına dahil edilebilir.
Uygulama işlevselliğiyle çalışmak için - genel bağımsız komutlar Form verilerini işlerken, işlenen verilerle doğrudan ilgili olmayan uygulama işlevselliğini kullanmak gerekli olabilir.
Örneğin belge verilerini işlerken verilerde arama yapmamız veya yeni bir fiyat türü girmemiz gerekiyor. Global bağımsız ekipler bu operasyonları gerçekleştirmenize yardımcı olacaktır. Form düzenleyicide, komut düzenleyicinin Genel komutlar sekmesinde sunulurlar.

Editör ve arayüzdeki global bağımsız komutlar


Küresel bağımsız komutlar, küresel komut arayüzü tarafından sağlanır. Komut düzenleyicide, genel bağımsız komutlar, genel komut arayüzünün bölümleri halinde gruplandırılmıştır. Komut, dahil olduğu global komut arayüzünün tüm bölümlerinden erişilebilir olacaktır.

Ekip kompozisyonu oluşturma yöntemleri

Form komutlarının kaynakları hakkında bilgi sahibi olduktan sonra, form komutlarının bileşimini oluşturmak için sistemin bize hangi seçenekleri sunduğunu görelim.

NOT
Form için başka bir komut kaynağı daha vardır; form için isteğe bağlı yerel komutlar oluşturabilen geliştirici. Bu komutlardan biraz sonra bahsedeceğiz (bkz. "Standart komutlar eksikse").

En genel durumda üç seçenek vardır:

  • otomatik – form komutlarının bileşimi sistem tarafından tamamen otomatik olarak belirlenir
  • kombine - form komutlarının bileşimi sistem tarafından otomatik olarak belirlenir ve geliştirici, form düzenleyiciyi kullanarak bunu düzeltir
  • manuel – form komutlarının bileşimi tamamen geliştirici tarafından belirlenir.

Otomatik seçenek, bir uygulama çözümü geliştirme açısından en hızlı ve en ucuz olanıdır - sistem her şeyi bağımsız olarak yapar. Kombinasyon seçeneği muhtemelen en yaygın kullanılanıdır. Bu yaklaşımla geliştirici, yalnızca sistem tarafından oluşturulan komut kümesinin form verilerinin işlenmesi için gerekli işlevselliği sağlamaması durumunda sistemin çalışmasına müdahale eder. Vakaların büyük çoğunluğunda müdahale, üniformalı ekiplerin kompozisyonunun basit bir şekilde genişletilmesiyle ifade edilir. Manuel seçenek, form komutlarının bileşimini ve yerleşimini yönetmek için maksimum fırsatlar sağlar. Ancak geliştiricinin önemli miktarda özenli çalışma gerçekleştirmesini gerektirir.

Platform, uygulama sürecini kolaylaştıran ve uygulama çözümünün özelleştirilmesi için daha fazla fırsat sağlayan çok sayıda mekanizma içerir. Diğer sistemlerde program kodunu ekleyerek veya yeniden yazarak yapılması gerekenler, 1C:Enterprise 8'de birkaç fare tıklamasıyla yapılabilir. Bazen doğrudan kullanıcı modunda bile. Uygulama çözümünün kendisini değiştirmeden, program kodunu değiştirmeden.

Kural olarak bir uygulama çözümü, tam çalışma için gerekli tüm rolleri içerir. Ancak belirli bir uygulama için özel gereksinimler olabilir. Uygulayıcı bu ihtiyaçları karşılamak için yeni roller oluşturabilir. Bunu yapmanın en uygun yolu, uygulama çözümünde zaten mevcut olan rolleri kopyalayıp değiştirmektir.

Bölüm panelini ayarlama

1C:Enterprise modunda Yapılandırıcıdaki bölüm panelinin kompozisyonunu değiştirebilirsiniz.

Ana sayfayı ayarlama

İlk sayfada bulunan formların bileşimi, Yapılandırıcıda ayrıntılarla role göre veya 1C:Enterprise modunda bir veya daha fazla kullanıcı için ayrı ayrı değiştirilebilir.

Ana bölümün komut arayüzünün ayarlanması

Yapılandırıcının ana bölümünde görüntülenen ekiplerin kompozisyonunu, role göre ayrıntılarla değiştirebilirsiniz.

Bölüm komut arayüzlerini ayarlama

Uygulama çözümünün belirli bir bölümünde görüntülenen komutların bileşimi, Yapılandırıcıda role göre ayrıntılı olarak değiştirilebilir. Aynı zamanda, hem tüm bölümleri aynı anda ("Tüm alt sistemler" düzenleyicisi) hem de her bölümü ayrı ayrı ("komut arayüzü düzenleyicisi") yapılandırmak mümkündür.

Formları ayarlama