Ev - Bilgisayarlar
Genel modüller 1s 8.3. Paylaşılan modüller oluşturma kuralları

Platform modülleri 1C:Enterprise 8.3, 8.2

Ortak modüller

Böyle bir modülde "dışa aktarma" bayrağıyla bildirilen işlevler, yapılandırmanın herhangi bir yerinden çağrılabilir. Çağrı CommonModuleName.FunctionName() aracılığıyla yapılır.

Bu tür modüllerin değişken bölümü yoktur.

Ortak modüllerin yürütülmesi, özelliklerindeki ayarlara bağlıdır:

"Küresel" ile ilgili bayrak

Bu bayrak ayarlanırsa böyle bir modülün içeriği global hale gelir. Yani, dışa aktarma işlevlerine erişirken modül adını belirtmenize gerek yoktur. Ancak dışa aktarma işlevlerinin adlarının genel yapılandırma bağlamında benzersiz olması gerekir.

Sunucu bayrağı

Böyle bir modülün işlevleri sunucuda yürütülebilir.

"İstemci (normal uygulama)" bayrağı

Böyle bir modülün işlevleri istemcide normal uygulama modunda yürütülebilir.

"İstemci (yönetilen uygulama)" bayrağı

Böyle bir modülün işlevleri istemci üzerinde yönetilen uygulama modunda yürütülebilir.

"Sunucu Çağrısı" bayrağı

Bayrak, "Sunucu" bayrağı ayarlanmış modüller için mevcuttur. İstemcinin bu modülün (sunucuda yürütülecek) dışa aktarma işlevlerini çağırmasına izin verir.

Harici Katılma bayrağı

Böyle bir modülün dışa aktarma işlevleri, harici bir kaynaktan bağlanırken çağrılabilir.

"Ayrıcalıklı" ile ilgili bayrak

Bu bayrağa sahip bir modülde hak kontrolü devre dışı bırakılacaktır. Verimlilik veya idari faaliyetler için uygundur.

Yeniden kullanma seçeneği

Etkinleştirirseniz bu parametre, daha sonra dışa aktarma işlevlerinin dönüş değerleri ilk çağrıdan hemen sonra önbelleğe alınacaktır. Önbelleğe alma, çağrı süresince (belirli bir prosedürün yürütülme süresi) veya kullanıcı oturumu süresince mümkündür.

Uygulama modülü

Uygulama başlatma ve sonlandırma olaylarını yönetmek için tasarlanmıştır. İki türü vardır: normal ve yönetilen uygulamalar için.

Uygulama başlatma süresini etkileyeceği için aşırı yüklememelisiniz.

Oturum modülü

Oturum parametrelerini başlatmak için kullanılan özel bir modül. Çeşitli uygulama modüllerinde kodun kopyalanmaması için gereklidir.

Modül birkaç kez çalıştırılabildiğinden ve veritabanını daha fazla başlatmadan da çalıştırılabildiğinden dikkatli kullanılmalıdır. Uygulama modüllerinden önce yürütülür.

Saygılarımla (öğretmen ve geliştirici).

Merhaba.
Bu yazımızda uygulama modülüne, amacına ve derlenme yerine bakacağız.

1C uygulama modülü esas olarak uygulamanın başlatıldığı ve kapandığı anı yakalamayı amaçlamaktadır.
Burada ayrıca ekipmandan harici bir olayı yakalamanıza olanak tanıyan işleyiciler de vardır.

Yönetilen uygulama modülü olayları, yönetilen bir uygulamanın İnce İstemcisi, Web İstemcisi ve Kalın İstemcisi başlatıldığında tetiklenir.
Yönetilen uygulama modülü etkileşimli sistem başlangıcını izler.

Yönetilen uygulama modülü şunları içerir:
değişken bildirimi bölümü
prosedür ve fonksiyon açıklaması bölümü
ana program bölümü
Yönetilen modül prosedürleri, işlevleri ve değişkenleri dışa aktarma olarak tanımlanabilir (dışarıdan erişilebilir) bu modülün). Bu modül aynı zamanda belirli koşullar altında meydana gelen özel olay işleyicilerini de içerebilir.

( tuşuna basılarak çağrılabilecek işleyicilerin listesine bakalım. Ctrl+Alt+P).
Sistem Başlamadan Önce - eylem henüz gerçekleşmedi (1C Enterprise 8.2 başlatılıyor, ancak uygulamanın kendisi henüz ekranda görünmedi). "Hata" parametresi "Doğru" olarak ayarlanmışsa uygulama başlamayacaktır. Sistem Başladığında - eylem zaten tamamlanmıştır (“arıza” parametresi yoktur). Sistemi Kapatmadan Önce - uygulama henüz kaybolmadı (“arıza” parametresi var).
Sistem Kapatıldığında etkileşimli pencere zaten kapanmıştır.

Sözdizimi asistanına bir göz atın ve yönetilen ve düzenli uygulama etkinlikleri hakkında daha fazla bilgi edinin.

Uygulama modülü her zaman tamamen istemci tarafında derlenir. Onlar. buradan ortak modüllerin sunucu prosedürlerine ve işlevlerine erişebiliriz ve belgeler, dizinler gibi yapılandırma nesnelerine erişemeyeceğiz.
Sistem başlatıldığında, yönetilen uygulama modülü derlenir ve içinde ne kadar çok dışa aktarma prosedürü ve işlevi bildirilirse sistemin başlatılması o kadar uzun sürer.

Düzenli Başvuru Modülü

Normal uygulama modülü, yönetilen uygulama modülüyle aynı yerde görülebilir, ancak görünmüyorsa, "Genel" sekmesindeki yapılandırıcı parametrelerinde "Yönetilen" için "Başlatma modları için yapılandırmayı düzenle" seçeneğini seçin. uygulama ve normal uygulama” konumu.
Bu nasıl yapılır, makaleye bakın:.

Normal uygulamanın kalın istemcisi başlatıldığında normal uygulama modülü olayları tetiklenir.
Yönetilen uygulama modülü için söylenenlerin hepsi normal uygulama modülü için de geçerlidir.

Öncesi... ve Sırasındaki Olaylar....

Sistem Çalışmasına Başlamadan Önce (Arıza) ve Sistem Çalışmasına Başlarken () prosedürleri arasındaki farklar

Sistem Çalışmaya Başlamadan Önce (Reddet) - Eylem henüz tamamlanmadı ve gerçekleştirmeyi reddedebiliriz.
AtSystemStart() - eylem zaten tamamlandı ve uygulamayı başlatmayı veya uygulamadan çıkmayı reddedemeyiz.

Hepsi bu, ilginiz için teşekkür ederiz.

Lütfen yorumlarınızı bırakın, görüşleriniz benim için önemli.

Koruma: Sağlık sertifikalarının 10 dakikada kaydedilmesi. Devlet Trafik Güvenliği Müfettişliği'nden sertifika almak için birkaç gün harcamanız gerekir, ancak lisans için sertifika satın alma seçeneği de vardır. Bir sertifika teslim etmek ve ayrıca lisansların bir kopyasını da eklemek mümkündür

Not: Ve Jamala'yı seviyorum – Sen Aşktan Yaratılmışsın


Yönetilen Uygulama Modülü

Esas olarak uygulamanın başladığı ve kapandığı anı yakalamak için tasarlanmıştır. Burada ayrıca ekipmandan harici bir olayı yakalamanıza izin veren işleyiciler de vardır. Yönetilen uygulama modülünde izlenen, sistemin etkileşimli başlatılmasıdır.

Yönetilen uygulama modülü etkinlikleri başlangıçta tetiklenir zayıf müşteri, Web İstemcisi ve Yönetilen Uygulama Kalın İstemcisi. Kontrol modülünde uygulamalara kök yapılandırma düğümünün özellikler paletinden veya içerik menüsü kök yapılandırma düğümünde çağrılır.

Düzenli Başvuru Modülü

Normal uygulama modülü, yönetilen uygulama modülüyle aynı rolü oynar; normal uygulamanın kalın istemcisi başlatıldığında yalnızca normal uygulama modülünün olayları tetiklenir.

Normal uygulama modülü, "Genel" sekmesindeki yapılandırıcı parametrelerindeki "Başlatma modları için yapılandırmayı düzenle" seçeneğini "Yönetilen uygulama ve normal" olarak ayarladıktan sonra kök yapılandırma düğümünün özellikler paletinden kullanılabilir hale gelecektir.

Harici bağlantı modülü

Harici bağlantı modülü, oturum açma olayını (etkileşimli değil, COM bağlantı modunda) ve oturumu kapatmayı yönetmek üzere tasarlanmıştır. İlgili işleyiciler var. COM bağlantısıyla etkileşimli bir pencere açılmaz, dolayısıyla kullanıcıyla diyalog işlevleri çalışmaz. Modülde dışa aktarma değişkenlerini ve yöntemlerini tanımlamak mümkündür. Harici bağlantı modülü sunucuda derlenir. Onlar. dizinler gibi ilgili yapılandırma nesnelerine erişmek mümkündür.

Oturum modülü

“Oturum Parametreleri” diye genel bir yapılandırma nesnesi vardır. Oturum modülü, oturum parametrelerini başlatmak için oluşturulur (bunun için özel bir olay vardır; uygulama başladığında ilk önce kendisi başlar).

Ayrıcalıklı modda çalışır (veritabanına erişilirken erişim hakları kontrol edilmez). Oturum modülü sunucuda derlenir. Değişkenleri açıklayan bir bölüm yoktur ve ana programa yönelik bir bölüm açıklanamaz; yalnızca oturum parametrelerini ayarlamak için kullanılır. Gördüğünüz gibi oturum modülünün çok dar bir amacı var.

Ortak modüller

Ortak modüller bazı ortak algoritmaları tanımlar ve çeşitli yerlerden çağrılabilecek işlevleri içerir. Ortak modüller hem istemcide hem de sunucuda derlenebilir.

Genel modüllerde YALNIZCA prosedürleri ve fonksiyonları açıklayan bölüm mevcuttur. Genel bir değişken kullanmanız gerekiyorsa, oturum parametrelerini veya yönetilen uygulama modülünün dışa aktarma değişkenini kullanabilirsiniz.

Genel modülde davranışını etkileyecek bazı parametreleri ayarlayabilirsiniz. Genel modülde “Global” onay kutusu işaretlenirse, dışa aktarma işlevleri küresel bağlamın oluşumuna katılacaktır. Ve bunlara doğrudan başka bir bağlamdan erişilebilir (ortak modülün adını belirtmeden): CommonModuleMethod();

Ortak modüllerin “Global” özelliğini her yerde kullanmamalısınız çünkü bu tür modüller sistem başlangıcında derlenir ve programın başlatılmasını yavaşlatır

Nesne modülü

Birçok yapılandırma nesnesinin (dizinler, belgeler vb.) bir nesne modülü vardır. Yeni bir dizin öğesi oluşturma, yeni bir nesneyi kaydetme, silme, bir belge gönderimini işleme koyma vb. gibi standart olayları buna girebilirsiniz. Kayıt olayı hem form modülünde (etkileşimli kayıt işlemi sırasında kullanıcı "kaydet" düğmesine tıkladığında gerçekleşir) hem de nesne modülünde bulunur.

Bir nesnenin birden fazla forma sahip olabileceği unutulmamalıdır. Bu nedenle kayıt olayının nesne modülünde işlenmesi gerekir. Kaydedilen verilerin doğruluğunun kontrol edildiği yer burasıdır.

Nesne modülü özellikler paletinden çağrılabilir bu nesnenin veya bağlam menüsünden. Nesne modülünün yapısı form modülünden farklı değildir. Nesne modülü sunucuda derlendiğinden herhangi bir derleme yönergesine gerek yoktur.

Form modülü

Form modülü, kullanıcı eylemlerini (düğmeye tıklama olayını işleme vb.) işlemek için tasarlanmıştır. Doğrudan formun kendisiyle ilişkili olaylar da vardır (örneğin, açılması, kapanması olayı). Yönetilen ve normal form modülleri, öncelikle yönetilen form modülünün bağlama göre net bir şekilde ayrılması bakımından farklılık gösterir. Her prosedürün bir derleme yönergesi olması gerekir. Normal biçimde, tüm kod istemcide yürütülür.

Yönetilen bir formun yapısı, değişkenleri tanımlamak için bir bölüm, prosedürler ve işlevler için bir bölüm ve ana program için bir bölüm (form başlatıldığında çalıştırılır) içerir. Standart form olaylarına prosedürler ve işlevler listesinden (Ctrl+Alt+P) veya formun özellikler paletinden erişebiliriz. Ayrıca yönetilebilir bir biçimdeöğe kaydetme olayını işleyebilirsiniz (bu olay yalnızca nesneler için mevcuttur: dizinler, belgeler).

Nesne yöneticisi modülü

Yönetici modülü yalnızca 1C 8.2'de göründü; birçok yapılandırma nesnesinde mevcuttur. Nesne yöneticisi modülünün temel amacı, "Seçim Verilerinin Alınması İşleme" standart olayını geçersiz kılmaktır ve bu olayda ayrıca şunları da yapabiliriz:

Değer yöneticisi modülü

Sabit konfigürasyon nesnesinin bir nesne modülü yoktur, ancak çok benzer bir modül vardır - değer yöneticisi modülü. Sabit değer yöneticisi modülünde, çeşitli prosedürleri (dışa aktarma prosedürleri dahil) tanımlayabilir ve 3 olayı işleyebilirsiniz: BeforeWrite, OnWrite, ProcessingFillCheck. Bu modül sunucuda derlenmiştir.

Kayıt kümesi modülleri

Kayıt kümesi modülü nesne modülüne benzer ve kayıtların doğasında bulunur. Kayıt kümesi modülünde standart olaylar vardır:

  • Kayıttan önce
  • Kayıt yaparken
  • Dolgu kontrolü işleniyor

Kayıt kümesi modülünde değişkenlerin, prosedürlerin ve işlevlerin (dışa aktarma dahil) açıklamaları için bir bölüm, ana program için bir bölüm vardır.

1.1. Bazı özelliklere göre birleştirilmiş prosedür ve fonksiyonların uygulanmasına yönelik ortak modüller oluşturulur. Kural olarak, bir konfigürasyon alt sisteminin (satış, satın alma) prosedürleri ve işlevleri veya benzerinin prosedürleri ve işlevleri tek bir ortak modüle yerleştirilir. işlevsel amaç(dizelerle çalışma, genel amaçlı).

1.2. Paylaşılan modüller geliştirirken dört kod yürütme bağlamından birini seçmelisiniz:

Ortak modül türü Bir isim örneği Sunucu çağrısı Sunucu Dış birleştirme Müşteri
(düzenli uygulama)
Müşteri
(yönetilen uygulama)
1. SunucuGenel Amaçlı (veya Genel Amaçlı Sunucu)
2. İstemciden aranacak sunucuGenel Amaçlı Çağrı Sunucusu
3. MüşteriGenel Amaçlı Müşteri (veya Genel Amaçlı Global)
4. Müşteri sunucusuGenel AmaçlıİstemciSunucusu

2.1. Sunucu ortak modülleri istemci kodundan kullanılamayan sunucu prosedürlerini ve işlevlerini barındırmak için tasarlanmıştır. Uygulamanın tüm dahili sunucu iş mantığını uygularlar.
Harici bağlantı, yönetilen ve normal uygulama modlarında konfigürasyonun doğru çalışması için, sunucu prosedürleri ve işlevler aşağıdaki özelliklere sahip ortak modüllere yerleştirilmelidir:

  • Sunucu(onay kutusu Sunucu çağrısı Sıfırla),
  • Müşteri (normal başvuru),
  • Dış birleştirme.

Bu durumda, değişken türlerdeki parametrelerle sunucu prosedürlerini ve işlevlerini çağırma yeteneği garanti edilir (örneğin, DizinNesnesi, BelgeNesnesi ve benzeri.). Tipik olarak bu:

  • Parametre olarak değişken bir değer (nesne) alan belge, dizin vb. olaylara abonelik işleyicileri.
  • dizinler, belgeler vb. modüllerinin yanı sıra olay abonelikleri olan modüllerden bir nesnenin parametre olarak aktarıldığı sunucu prosedürleri ve işlevleri.

Sunucu ortak modülleri şu şekilde adlandırılır: Genel kurallar meta veri nesnelerinin adlandırılması.
Örneğin: Dosyalarla Çalışmak, Genel Amaçlı

Bazı durumlarda, genel bağlam özellikleriyle ad çakışmalarını önlemek için bir sonek eklenebilir "Sunucu".
Örneğin: RutinGörevlerSunucusu, Veri Değişim Sunucusu.

2.2. İstemciden çağrı yapmak için sunucu ortak modülleri istemci kodundan kullanılabilecek sunucu prosedürlerini ve işlevlerini içerir. Uygulama sunucusunun istemci programlama arayüzünü oluştururlar.
Bu tür prosedürler ve işlevler aşağıdaki özelliklere sahip ortak modüllere yerleştirilmiştir:

  • Sunucu(onay kutusu Sunucu çağrısı Kurulmuş)

İstemciden çağrı yapmaya yönelik sunucu tarafı ortak modülleri, meta veri nesnelerinin adlandırılmasına ilişkin genel kurallara göre adlandırılır ve bir sonek ile adlandırılmalıdır. "Çağrı Sunucusu".
Örneğin: FilesCalling Sunucusuyla Çalışmak

Bu tür paylaşılan modüllerdeki dışa aktarma prosedürlerinin ve işlevlerinin, değiştirilebilir türde parametreler içermemesi gerektiğini lütfen unutmayın ( DizinNesnesi, BelgeNesnesi vb.), çünkü bunların müşteri kodundan (veya müşteri koduna) aktarılması imkansızdır.

Ayrıca bakınız:Ortak modüller için "Sunucu Çağrısı" bayrağının ayarlanmasına ilişkin kısıtlama

2.3. Müşteri Ortak Modülleri istemci iş mantığını içerir (yalnızca istemci için tanımlanan işlevsellik) ve aşağıdaki özelliklere sahiptir:

  • İstemci (yönetilen uygulama))
  • Müşteri (normal başvuru)

Bunun istisnası, istemci prosedürlerinin ve işlevlerinin yalnızca yönetilen uygulama modunda (yalnızca normal uygulama modunda veya yalnızca harici bağlantı modunda) kullanılabilir olması gerektiği durumdur. Bu gibi durumlarda bu iki özelliğin başka bir kombinasyonu kabul edilebilir.

İstemci ortak modülleri bir sonekle adlandırılır "Müşteri".
Örneğin: FilesClient ile Çalışmak, Genel Amaçlı İstemci

Ayrıca bkz: istemcide çalışan kodu en aza indirme

2.4. Bazı durumlarda, içeriği hem sunucuda hem de istemcide aynı olan, prosedür ve işlevlere sahip istemci-sunucu ortak modüllerinin oluşturulmasına izin verilir. Bu tür prosedürler ve işlevler aşağıdaki özelliklere sahip ortak modüllere yerleştirilmiştir:

  • İstemci (yönetilen uygulama)
  • Sunucu(onay kutusu Sunucu çağrısı Sıfırla)
  • Müşteri (normal başvuru)
  • Dış birleştirme

Bu türdeki ortak modüller sonekle adlandırılır "Müşteri sunucusu".
Örneğin: FilesClient ile Çalışmak, Genel AmaçlıİstemciSunucusu

Genel olarak hem sunucu hem de istemci (yönetilen uygulama) için ortak modüllerin tanımlanması önerilmez. İstemci ve sunucu için tanımlanan işlevlerin farklı ortak modüllerde uygulanması önerilir - paragraflara bakın. 2.1 ve 2.3. İstemci ve sunucu iş mantığının bu açık şekilde ayrılması, uygulama çözümünün modülerliğinin artırılması, istemci-sunucu etkileşimi üzerindeki geliştirici kontrolünün basitleştirilmesi ve istemci ve sunucunun geliştirilmesine yönelik gereksinimlerdeki temel farklılıklar nedeniyle hata riskinin azaltılması hususları tarafından belirlenir. kod (istemcide yürütülen kodu en aza indirme ihtiyacı, nesnelerin farklı kullanılabilirliği ve platform türleri vb.). Bu durumda konfigürasyondaki ortak modül sayısında kaçınılmaz artışı göz önünde bulundurmanız gerekir.

Karma istemci-sunucu modüllerinin özel bir durumu, sunucu ve istemci iş mantığını tek bir modülde uygulamak için özel olarak tasarlanmış form ve komut modülleridir.

3.1. Ortak modül adlarının, meta veri nesnelerinin adlandırılmasına ilişkin genel kurallara uyması önerilir. Genel modülün adı, uyguladığı prosedürler ve işlevlerle alt sistemin veya ayrı mekanizmanın adıyla eşleşmelidir. Ortak modüllerin adlarında “Prosedürler”, “Fonksiyonlar”, “İşleyiciler”, “Modül”, “İşlevsellik” vb. genel kelimelerden kaçınılması önerilir. ve bunları yalnızca modülün amacını daha iyi ortaya koydukları istisnai durumlarda kullanın.

Farklı bağlamlarda gerçekleştirilen prosedür ve işlevleri uygulamak için oluşturulan bir alt sistemin ortak modüllerini birbirinden ayırmak için, bunlara paragraflarda daha önce açıklanan son eklerin verilmesi önerilir. 2.1-2.4.

Ortak modüller, 1C sistemindeki diğer yerlerden çağrılan prosedürlerin ve işlevlerin depolanmasından sorumludur. Bir prosedürde birden çok kez çağrılan kodun ortak bir modüle yerleştirilmesi iyi bir uygulama olarak kabul edilir. Bu kural tüm konfigürasyonlar için evrenseldir, dolayısıyla herhangi bir 1C geliştiricisinin bu konfigürasyon nesneleriyle çalışabilmesi gerekir. Bunu yapmak için tüm nüansları anlamanız ve platformun sağladığı fırsatları doğru şekilde kullanabilmeniz gerekir.

1C'de ortak bir modül oluşturma

Nesnenin modüllerinden birinde fonksiyon oluşturduktan sonra benzer bir algoritmayı başka bir yerde kullanma ihtiyacı doğdu. Burada yapılacak en iyi şey kodu ortak bir modüle aktarmaktır ancak ondan önce onu oluşturmanız gerekir. Bunu yapmak için yapılandırıcıya gitmemiz ve yapılandırma ağacında "Genel" sekmesini bulmamız gerekiyor. Daha sonra “Genel Modüller”i seçin ve yeşil dairenin üzerindeki beyaz artı şeklindeki butonu kullanın.

Eklenen ortak modülün özellikleri sağ tarafta açılacak ve her birinin ne anlama geldiğini bulmamız gerekiyor. Bu nedenle kurulumdan önce farklı yönlerde olabilirler. yeni nesne, orada ne saklayacağımıza karar vermeniz tavsiye edilir. Öyle olsa bile, gelecekte özellikleri görevlere göre değiştirmek mümkün olacak:

  • "Küresel". Bu bayrak, modülün, modül adı belirtilmeden çağrılması gereken prosedürleri ve işlevleri saklaması amaçlanıyorsa ayarlanır. Doğal olarak ihraç edilebilir olmaları ve adlarının tüm küresel bağlamda benzersiz olması gerekir. Kullanım açısından standart platform işlevlerinden farklı olmayacaklardır;
  • "Müşteri". Sistem ayarlarına bağlıdır ve modül prosedürlerinin istemci tarafında yürütülüp yürütülemeyeceğini düzenler;
  • "Sunucu". Algoritmaların sunucuda çalıştırılmak üzere yerleştirilmesinin planlandığı genel modüller işaretlenmiştir;
  • "Dış birleştirme". Bu özellik etkinleştirildiğinde modül prosedürleri harici bir kaynağa bağlanılarak yürütülebilecektir;
  • "Sunucu Çağrısı". İstemci üzerinde çalışırken modülden gelen prosedürlerin sunucuyu aramasına izin vermekten sorumludur;
  • "Ayrıcalıklı". Bu ayarın etkinleştirilmesi, modül prosedür kodunu çalıştırırken erişim haklarını kontrol etmemenize olanak tanır. Bu ayarla ortak bir modülü yalnızca sunucuda çağırabilirsiniz. İstemci ve Harici Bağlantı ayarları sıfırlanacaktır;
  • "Yeniden kullan". Şu değerleri alabilir: “Kullanma”, “Oturum süresi boyunca”, “Arama süresi boyunca”. Bir prosedür birden çok kez çağrıldığında sistem, prosedür (çağrı) veya tüm oturumun ömrü (1C başlatma) dahilinde önceden hesaplanan verileri kullanabilir. Bu tür modüllerin yanlış kullanımı nedeniyle hatalar oluşabileceğinden bu ayara çok dikkat etmelisiniz.

Algoritma farklılıkları olan sunucu ve istemcide prosedür çağrıları ile ortak bir modül oluşturmanız gereken durumlar vardır. Kodu sınırlamak için kontrollü önişlemci direktifleri kullanılır. Sonuç olarak, sunucu çağrısı için bir kod, istemci çağrısı için başka bir kod olacaktır.
Prosedür AlgorithmServerClient() Export #If ThinClient Sonra // prosedür çağrısı istemciden geldiyse kod yürütülür ShowUserAlert("İstemcide"); ElseIf Server Sonra // prosedür çağrısı sunucudan gelmişse kod çalıştırılır VariableServer = "Sunucu çağrısı"; #TheEndIfTheEndProcedure

Kodu ortak bir 1C modülüne aktarma örneği

Belge formunda, tablo bölümünde miktar ve fiyatın çarpılmasına yönelik bir prosedür içeren iki olayın olduğu bir durumu ele alalım. Bu, birçok tedarik ve satış belgesinde bulunduğu için oldukça yaygın bir algoritmadır. Bu kodun diğer dokümanlarda kullanılabilmesi için öncelikle oluşturulması gereken prosedür kodunu ortak bir modüle aktaralım.

&OnClient Prosedür ÜrünleriPriceOnChange(Element) RecalculateAmount(); Prosedür Sonu &OnClient Prosedürü ProductsQuantityOnChange(Element) RecalculateAmount(); Prosedürün Sonu &İstemcide Prosedür Tutarları Yeniden Hesapla() String PM = Elements.Products.CurrentData; Satır PM.Tutar = Satır PM.Adedi * Satır PM.Fiyat; Prosedürün Sonu

Görevimiz için yalnızca istemciden gelen bir çağrıya ihtiyacımız olduğundan ve veritabanından veriye ihtiyacımız olmadığından yalnızca “İstemci” bayrağını ayarladık. Gelecekte aynı modülü daha karmaşık hesaplamalar için kullanmak istiyorsanız özelliklerde “Sunucu” seçeneğini işaretleyin. Hazırlık aşaması tamamlandı ve kod yazmaya geçebiliriz.


Modülde bir ihracat prosedürü oluşturalım ve form modülündeki prosedürden tutarı hesaplamak için algoritmayı oraya aktaralım. Tablo bölümü dizesi girişte prosedür parametresi olarak kullanılacaktır. Belge formu modülünde aynı modüldeki prosedür çağrılarını genel modüldeki prosedür çağrısına dönüştürüyoruz.


Prosedür CalculateRow(TabularPartRow) ExportTabularPartRow.Sum = TabularPartRow.Quantity * TabularPartRow.Price; Prosedürün Sonu

Parça 1

&İstemcide Prosedür ProductsPriceWhenChanged(Element) //ColculationsInSystem.CalculateRow(Elements.Products.CurrentData) genel modülünden prosedür çağrılıyor; //Miktarın Yeniden Hesaplanması(); Prosedürün Sonu &İstemcide Prosedür ProductsQuantityWhenChanging(Element) //ColculationsInSystem.CalculateRow(Elements.Products.CurrentData) genel modülünden prosedürün çağrılması; //Miktarın Yeniden Hesaplanması(); Prosedürün Sonu &İstemcide Prosedür Tutarları Yeniden Hesapla() String PM = Elements.Products.CurrentData; Satır PM.Tutar = Satır PM.Adedi * Satır PM.Fiyat; Prosedürün Sonu

Parça 2

Sistem başladığında farkı fark etmeyeceğiz ancak bu kod yapısının okunması ve bakımı çok daha uygundur. Tabii ki bu örnekte Kod miktarı tam faydayı göstermeyebilir. Onlarca konfigürasyon nesnesi için karmaşık bir algoritma kullanılması durumunda, kod miktarında ve yapısında meydana gelen kazanç, sistemin hızını da etkileyecektir. Ek olarak, deneyimli 1C geliştiricileri, algoritmaları form modüllerinde tanımlamamayı, bunları doğru yapılandırılmış genel modüllere yerleştirmeyi önerir.

Genel modüller geliştirirken, bunların oluşturulmasına ilişkin genel kabul görmüş kuralları dikkate almalısınız:

  • Benzer işlevlerle ilgili prosedür ve işlevleri ayrı bir ortak modüle yerleştirin;
  • Modülün adı, bağlama aitliğini yansıtmalı (İstemci, Sunucu) ve yaygın sözcüklerden (işleyiciler, prosedürler vb.) kaçınmalıdır;
  • Uygulamanın dahili sunucu mantığını ve arayüz için istemci mantığını ayırın;
  • Küresel paylaşımlı bir modül oluştururken dikkatli olun. Modül adı aracılığıyla bir prosedüre başvurmak zorunda kalmamak, özellikle sistem birden fazla geliştirme ekibi tarafından destekleniyorsa karışıklığa yol açabilir.

Doğru şekilde oluşturulmuş modüller, konfigürasyon yapısında gezinmenize ve iyileştirmeleri çok daha hızlı yapmanıza yardımcı olacaktır. Eğer bunu yapmak için bir fırsat görürsen faydalı fonksiyon evrensel ve ortak bir modüle koyun, sonra yapın. Gelecekte siz ve meslektaşlarınız bu karardan dolayı minnettar olacaksınız.



 


Okumak:



Samsung Galaxy akıllı telefonlar için programlar Samsung akıllı telefonlar için programlar

Samsung Galaxy akıllı telefonlar için programlar Samsung akıllı telefonlar için programlar

Samsung DeX platformu, Galaxy cihaz sahiplerinin, cihazlarını harici monitörlere bağlayıp kişisel bilgisayar olarak kullanmalarına olanak tanıyor....

Arka plan resmi Bir html sayfasına arka plan nasıl eklenir

Arka plan resmi Bir html sayfasına arka plan nasıl eklenir

Kısa bilgi CSS versiyonları Değerler url Değer, yapı içerisinde belirtilen grafik dosyasının yoludur...

Windows'ta ağ üzerinden paylaşılan klasör erişimini ayarlama

Windows'ta ağ üzerinden paylaşılan klasör erişimini ayarlama

Önceki makalelerde de söylediğimiz gibi, yerel bir ağ, İnternet'e ortak erişimi düzenlemenin yanı sıra birçok yararlı özelliğe sahiptir. İÇİNDE...

Rambler - artık var olmayan bir arama motoru (en parlak döneminden düşüşüne kadar)

Rambler - artık var olmayan bir arama motoru (en parlak döneminden düşüşüne kadar)

Medya portalı Rambler.ru hem Rusya'da hem de diğer BDT ülkelerinde oldukça popülerdir. Burada bir tanesinin olması sayesinde...

besleme resmi RSS