1C:Enterprise Modülleri (Kodu kim yazacak? nereye yazacak? İşte burada!)

1C:Enterprise Program Modülleri

1C:Enterprise platformunda “Program modülü” diye bir şey bulunur. Kısaca, bir modül, uygulama kodunu içeren bir 1C nesnesidir. Ancak 1C’de bu modüllerin birkaç türü bulunmaktadır. Peki, bu modüller birbirlerinden nasıl farklıdır? Ve geliştirici kodunu hangi modüle yerleştirmelidir? Bu soruları cevaplamaya çalışacağım.

Genel olarak, tüm 1C kaynak kodları modüllerde saklanır. Birden fazla modül türü vardır ve bunlar özelliklerine göre farklılık gösterirler. Ancak özelliklerini ve farklarını incelemeye geçmeden önce, öncelikle 1C’deki “Program modülü” kavramının ne olduğunu kısaca anlatalım.

Genel amaçlı modüller ve nesne modülü kavramı vardır. İlk durumda, modül kendi başına var olan ve herhangi bir diğer nesne ile ilişkilendirilmeyen bir yapıdır. Aslında, sistemde ayrı bir nesnedir. Bu tür bir modül genellikle genel amaçlı kaynak kodları, sık kullanılan bazı prosedürleri ve işlevleri içerir. Nesne modülü olarak bahsediyorsak, bu genellikle bir Katalog(Catalog) modülü veya Belge(Document) modülü olabilir. Böyle bir modül genellikle bu belirli Katalog veya Belge ile ilişkili olan kodu içerir.

Bazı modüller sunucuda derlenebilir (ve bu kodun yürütme süreci sunucuda gerçekleşir), bazıları istemci tarafında derlenir ve bazıları hem sunucuda hem de istemci tarafında derlenir.

Her modülde, bu modülün herhangi bir prosedüründe kullanılabilen modül değişkenlerini bildirebilirsiniz. Bazı modüllerde değişkenler sunucuda veya istemcide derleme konumuna (erişilebilirlik) sahip olarak belirtilebilir. Örneğin:

Bu ifadenin ardından, bu modülün yerel yöntemlerini belirleyen prosedürler ve fonksiyonların olduğu bir bölüm gelir. Bazı modüllerde, prosedürün veya fonksiyonun derleneceği yeri belirtmeniz gerekebilir (sunucuda mı / istemcide mi?).

İlkeler açısından, derleme direktifi atlanabilir. Bu durumda, varsayılan derleme direktifi sunucudur. Bununla birlikte, program kodunu analiz etmeyi kolaylaştırmak için bu prosedürün nerede derleneceğini açıkça belirtmek önerilir. Prosedürlerin açıklamasının sırası önemli değildir.

Tüm prosedürlerin ve fonksiyonların açıklamasının sonunda, bazı operatörlerin bulunabileceği ana program bölümü bulunur ve bu bölümde modülün formu için yerel değişkenler başlatılır. Bu bölüm, bir modüle erişildiğinde çalıştırılır.

Örneğin, bir form elemanı açtığımızda, form modülünün ana program bölümü ilk olarak çalıştırılır.

Belirtilmelidir ki, tüm modüller için değişken bildirim bölümü ve ana program bölümü mevcut değildir (yani, bu bölümlere bazı modüllerde izin verilmez). Prosedürlerin ve fonksiyonların açıklamasını içeren bir bölüm kesinlikle herhangi bir modülde bulunabilir.

Genel hatlarıyla anlattığımız bu bilgilerden sonra, daha ayrıntılı inceleyelim. 1C’de toplamda yedi tür program modülü bulunmaktadır:

  1. Application module
  2. Session module
  3. External connection module
  4. Common modules
  5. Form module
  6. Object module
  7. Manager module

1. Application Module (Uygulama Modülü)

Application Modul’üne şu şekilde ulaşıyoruz.

Bu modül, uygulama başlatma ve kapatma olaylarını ele almak için tasarlanmıştır. Örneğin, bir geliştirici, çalışmada kullanılıyorsa (örneğin, bir kantar veya optik okuyucu gibi) ekipmanları bu modülde başlatabilir. Uygulamanın sonunda, kullanıcının çalışmayı bitirmek isteyip istemediğini kontrol edebilir. Aşağıdaki ekran görüntüsü, geliştiricinin bu modülde başlatabileceği ve işleyebileceği olayların bir listesidir:

Anlaşıldığı üzere, bazı olaylar için zaten işleyiciler oluşturulmuş, ancak bazıları için henüz yok.

Ayrıca, “ExternEventProcessing” olayına dikkat edin. Bu olay, harici bir uygulamanın özel bir formatta mesaj gönderdiğinde tetiklenir. Geleneksel olarak, 1C, çeşitli donanım ekipmanlarıyla entegre olmak için bu olayı kullanır. Aşağıdaki ekran görüntüsünde, bir barkod tarayıcıdan gelen verilerin nasıl işlendiği örneğini görebilirsiniz:

Bu prosedür, “Source”, “Event” ve “Data” parametreleriyle çağrılır. Prosedür, gelen “Event” değerine göre “Barcode” olayını taklit eder. Ardından “DetailsEvents” adlı bir yapı oluşturur ve verileri bu yapıya ekler. Daha sonra, “EquipmentManagerClient.ProcessEventFromDevice” yönetici istemcisine “DetailsEvents” yapı verisini işlemesi için aktarır. Eğer işleme sırasında bir hata oluşursa, kullanıcıya hata mesajı gösterir.

Bu şekilde, “ExternEventProcessing” prosedürü, harici cihazlardan gelen özel olayları işlemek ve yönetici istemcisine aktarmak için kullanılır.

Uygulama modülü, prosedürler ve fonksiyonlar için derleme direktifleri belirtmek zorunda değildir, çünkü modül tamamen istemci tarafında derlenir. Bu modülün prosedürlerinde ve fonksiyonlarında örneğin, Kataloglara doğrudan başvuramayacağımız anlamına gelir. (&AtClient)

Ancak eğer yine de uygulama modülünde sunucudan bir çağrı yapmak istiyorsak, bunun için Call Server (Sunucuyu Çağır) kutucuğu işaretlenmiş özel Common modülleri oluşturmalıyız. Bunu aşağıda ele alacağız.

Uygulama modülünün prosedürleri, fonksiyonları ve değişkenleri ihraç edilebilir şekilde tanımlanabilir. Bunun için Export anahtar kelimesi kullanılır.

Uygulama modülü istemci tarafında çalıştırıldığı için, bu tür değişkenler ve prosedürler uygulamamızın tüm istemci prosedürlerinde kullanılabilir olacaktır.

Örneğin, bir belgeye ait bir form modülünden, uygulama modülüne ait bir prosedürü veya işlevi çağırabilirsiniz. Ancak, ortak algoritmaları tanımlamak için Genel Modüllerin (Common Module) kullanılması önerilir. Uygulama modülünün ana amacı, uygulamamızın başlangıcını ve sonunu işlemektir.

2. Session Module (Oturum Modülü)

Bu modül, oturum parametrelerini başlatmak için gereklidir. Oturum parametreleri, girilen değerleri yapılandırmadaki herhangi bir yerden erişilebilen hızlı global değişkenlerdir. Modülü şu şekilde açabiliriz:

Bu modülün yalnızca “SessionParametersSetting” adında bir etkinliği bulunmaktadır ve şu anda sadece bunu ele alabiliriz.

Session Module, farklı koşullara dayalı olarak oturum parametrelerini başlatmak için çeşitli adımları açıklar. Örneğin, “CurrentUser” adında bir oturum parametresini ayarlayabilir ve bu parametreye program işlemi sırasında başvurabiliriz.

Çok önemli bir ayrıntı: oturum modülü her zaman ayrıcalıklı modda yürütülür. Bu, veri tabanına erişirken erişim haklarının kontrol edilmediği anlamına gelir. Oturum modülü sunucuda derlenir, bu nedenle sunucu taraflı yöntemler çağrılabilir. Ayrıca, oturum modülünde dışa aktarma yöntemleri tanımlanamaz(No Export).

3. External Connection Module (Harici Bağlantı Modülü)

Benzer şekilde uygulama modülüyle kıyaslandığında, bu modül programın açılma olayını ve kapanma olayını ele almak üzere tasarlanmıştır. Yani, program başlatıldığında belirli işlemler gerçekleştirmek ve program kapatıldığında da ilgili işlemleri yapmak için bu modül kullanılabilir. Bu şekilde, oturum başlatıldığında veya sonlandırıldığında gerekli eylemleri tetikleyebilir ve oturumla ilgili parametreleri başarılı bir şekilde yönetebiliriz.

 

Uygulama modülüyle karşılaştırıldığında, harici bağlantı modülü uygulamanın etkileşimli olarak başlatıldığı anda değil, COM bağlantı modunda çalışır; yani 1C:Enterprise nesnesi oluşturulduğunda etkinleşir.

Bu modülde eski tip Com, Lpt, SPort gibi fiziksel bağlantı tiplerinin işlemleri yapılmaktadır. Bu bağlantı tipleri eski, yavaş ve artık sadece MS Windows işletim sistemlerinde çalışabildiğinden daha fazla ayrıntıya girmeyeceğiz.

4. Common Module (Ortak Modüller)

En önemlisi, bu modüllerden birçok tane olabilir. Geliştirici, sorunlarını çözmek için ihtiyaç duyduğu kadar çok modülü ekleyebilir. Bunu biraz daha detaylandırmamız lazım.

Ortak modüllerin esnekliği, geliştiricilerin ihtiyaçlarına göre istedikleri kadarını ekleyebilmelerini sağlar. Bir yazılım projesinde, farklı işlevleri yerine getiren ve farklı amaçlara hizmet eden birçok ortak modül olabilir. Bu, yazılımın modüler bir yapıya sahip olmasını ve farklı bileşenlerin bağımsız olarak geliştirilip yönetilmesini sağlar.

Ortak modüllerin kullanılması, yazılımın geliştirilmesi ve bakımı açısından büyük bir avantajdır. Bazı modüller, belirli bir projede kullanılacak işlevleri yerine getirebilirken, diğer projelerde de kullanılabilir ve tekrar tekrar yeniden yazma ihtiyacını ortadan kaldırır. Bu şekilde, geliştirme süreci daha hızlı ve verimli olurken, kodun sürdürülebilirliği artar.

Ayrıca, ortak modüllerin kullanılması, yazılım ekibinin uzmanlaşmasını ve uzmanlık alanlarına odaklanmasını sağlar. Farklı geliştiriciler, kendilerine en uygun olan modülleri oluşturabilir ve bu modülleri projelerine entegre edebilirler. Bu şekilde, yazılımın kalitesi ve güvenilirliği artar.

Sonuç olarak, ortak modüller, yazılım geliştirme sürecinde esneklik, hız, verimlilik ve sürdürülebilirlik sağlayan önemli bir yapı taşıdır ve geliştiricilerin işlerini daha kolay hale getirir.

Genel olarak, bu modüller kaynak kodu (prosedürler ve fonksiyonlar) saklamak amacıyla kullanılır ve bu kod, uygulamamızın çeşitli yerlerinden erişilebilir durumdadır. Ortak modüllerin yöntemlerinin uygulamanın diğer yerlerinde kullanılabilmesi için, bu yöntemler “Export” anahtar kelimesiyle tanımlanmalıdır. Ortak modüllerin istemci prosedürleri, istemci tarafında, ve sunucu prosedürleri ise sunucu tarafında kullanılabilir olacaktır.

Birbirleriyle mantıksal olarak ilişkili birkaç ortak modül olabilir, örneğin, ortak görevleri yerine getiren modüller. Aşağıdaki ekran görüntüsünde, döviz kurlarıyla çalışmak için kullanılan program kodunu depolayan birkaç farklı ortak modül bulunmaktadır:

Ortak modüllerde, geliştirici yalnızca prosedürleri ve fonksiyonları tanımlayabilir. Yani, ortak bir modülde değişkenler tanımlanamaz. Eğer geliştiriciye global bir değişkene ihtiyacı varsa, oturum parametrelerini veya yukarıda bahsettiğimiz uygulama modülünün dışa aktarım değişkenlerini kullanabilir.

Ortak modüller için, bu modülün davranışını etkileyecek bazı parametreler belirleyebiliriz.

Örneğin, bir ortak modül için Global özelliği ayarlanmışsa, bu modülde tanımlanan dışa aktarma yöntemlerine ek talimatlar olmaksızın doğrudan dışarıdan erişilebilir olacaktır.

Örneğin, böyle bir modülde bulunan bir dışa aktarım prosedürünü çağırmak aşağıdaki gibi olabilir:

Bu durumda, eğer modül global olarak tanımlanmışsa, modülün metotları modülün adını belirtmeden erişilebilir olacaktır.

Eğer modül için Global seçeneğini devre dışı bırakırsak, Export işlemine şu şekilde başvurabiliriz:

Bütün modüllerinizde Global seçeneğini kullanmak en iyisi gibi görünebilir, ancak mümkünse bunu kaçınmanız daha iyi olacaktır.

Bunun birkaç nedeni vardır. İlk olarak, daha fazla global modül olduğunda, sistem başlatması daha yavaş olacaktır, çünkü global modüller sistem başlangıcında derlenirken, normal modüller sadece erişildiklerinde derlenir. İkinci olarak, farklı modüllerde aynı isme sahip prosedürler kullanılabilir, ancak bu modüller global ise, bu sistem çalışmasında çatışmalara ve hatalara yol açacaktır.

Bir diğer çok önemli özellik ise Privileged’dır:

Eğer bu kutucuk, genel bir modül için ayarlanmışsa, o modülde gerçekleştirilecek tüm işlemler erişim kontrolü olmaksızın gerçekleştirilecektir.

Bu kutucuk ne işe yarar? Üretim muhasebede olduğu gibi, büyük miktarda veriyi işleyen karmaşık algoritmalar vardır. Bu tür durumlarda, kullanıcı haklarının etkin kontrolü, bu algoritmaların çalışmasını biraz yavaşlatabilir. “Privileged” özelliğini kullanmak, bu tür bir algoritmanın çalışmasını hızlandırmanıza olanak tanır.

Örneğin, çalışma sırasında kullanıcıya normalde erişimi olmayan verileri okuması için daha geniş haklar vermeniz gerekebilir. Bu durumda, genel ayrıcalıklı modüle yerleştirilmiş bir prosedürü kullanabilirsiniz.

Son olarak, paylaşılan bir modül ayrıcalıklıysa, o modülün prosedürleri yalnızca sunucuda yürütülebilir.

Genel olarak, ortak modüller için derleme konumu belirtilebilir. Kutucuk/Seçenekler yardımıyla modülün nerede derleneceğini belirleyebiliriz: ya istemci üzerinde ya da sunucuda. Ayrıca, her iki seçenek de ayarlanmışsa, genel modülün hem sunucuda hem de istemci üzerinde derlenmesi mümkündür.

Aynı anda birkaç seçenek kutucuğu ayarlanmış modüller pratikte nadiren kullanılır. Bunlar genellikle istemci ve sunucuda kullanılabilen işlemlerdir. Genellikle bunlar, basit hesaplamalar gibi belirli işlemlerdir.

Ayrıca, genel bir modülü harici bir bağlantıyla çalışacak şekilde derlemek de mümkündür. Bu durumda, modülün hem yerel uygulamalarda hem de harici bağlantılarla etkileşimde bulunması sağlanabilir. Bu, modülün kullanımını daha esnek hale getirir ve çeşitli senaryolara uyum sağlayabilir. Ancak, böyle bir yaklaşımın uygulanması, güvenlik ve doğrulama gibi konuların dikkate alınması gerektiği anlamına gelir. Dış bağlantılarla çalışan modüllerin güvenlik açıklarına karşı dikkatli bir şekilde tasarlanması önemlidir. Bu tür güvenlik risklerini minimize etmek için kesinlikle yazılımsal veya donanımsal güvenlik uygulamalarının doğru bir şekilde kullanılması gerekmektedir. (Dış istemcilerden gelen taleplerin kesinlikle şifrelenmiş ve gizli olan (VPN) uygulamalarla içeriye alınması uygun olacaktır.)

Genel olarak, seçenek kutucukları, bir modülün davranışını ve işlevselliğini belirlemek için kullanılan önemli araçlardır. Uygun seçenekler kullanılarak, bir modülün belirli koşullar altında nasıl davranacağı ve hangi ortamlarda çalışacağı özelleştirilebilir. Ancak, seçeneklerin dikkatli bir şekilde ayarlanması ve gereksinimlere uygun olarak kullanılması önemlidir.

İstemcinin bir ortak modülün Export yöntemlerine erişmesi ancak bu ortak modülün yalnızca sunucuda derlenmiş olması durumunda mümkündür. Bu durumda, istemciden erişimi sağlamak için özel bir “Server Call” seçeneği sunulmuştur:

Global olmayan ortak modüller için, işlevler tarafından döndürülen değerleri önbelleğe almak mümkündür. Yani, işlevin ilk çağrısından sonra, sistem işlemin sonucunu hatırlayabilir ve işlevin bir sonraki çağrısında hesaplama yapmadan sonucu döndürebilir. Bu işlev aynı parametrelerle tekrar çağrılırsa, sistem sonucu önbellekten döndürecektir.

Bu mekanizmanın amacı, tekrarlayan çağrıları hızlandırmak ve genel olarak uygulamayı hızlandırmaktır. Bu seçeneği etkinleştirmek için, ortak modüllerin “Reuse return value(Döngü değerlerini yeniden kullan)” seçeneğinin seçili olması gerekir:

Eğer ilgili parametrenin değeri “During call” olarak seçilirse, önbellek, ortak modülün yöntemine yapılan çağrıdan itibaren çağrının yapıldığı prosedür çalıştığı sürece etkisini sürdürecektir. Eğer “During session” değeri seçilirse, kullanıcının çalıştığı süre boyunca önbelleğin aktif olacağı kabul edilir.

Ancak, belirli bir zaman sınırı bulunmaktadır. Önbelleğe girilen değerden 20 dakika sonra otomatik olarak temizlenecektir.

5. Form Module (Öğe Ekranları, Liste Ekranları, Seçim Ekranları Modülleri )

Bu modül, kullanıcı eylemlerini yönetmek üzere tasarlanmıştır. Örneğin, bu modülde bir düğme tıklama işleyicisi tanımlayabiliriz. Ya da örneğin, bir alanı doldurduğumuz anda doğrulama kontrolünü hemen gerçekleştirebiliriz.

Düğmeler, giriş alanları gibi form kontrolleri ile ilgili olaylarının yanı sıra, doğrudan form ile ilişkili olaylar da bulunmaktadır.

Aşağıda, belge formu tarafından oluşturulabilen olayların bir listesi yer almaktadır.

Örnek olarak, form açılış etkinliğini ele alabilir ve bazı başlangıç olaylarını ayarlayabiliriz. Aynı şekilde, form kapatma etkinliğini ele alabilir ve kullanıcının her şeyi doğru bir şekilde girdiğini kontrol edebiliriz.

Önemli not! Bir form modülünde, prosedürler ve fonksiyonlar hem sunucuda hem de istemcide yürütülebilir. Geliştirici, derleme yönergelerini kullanarak kodun nerede çalışacağına kendisi karar verir. Form modülündeki bir prosedür yönergesiz olarak tanımlandığında, varsayılan olarak sunucuda derlenir. (ve çalışır):

Önemli not! Form modülünde geliştirici öğe yazma işlemini gerçekleştirebilir:

Bu olay, yalnızca nesnelerle ilişkilendirilen formlar için geçerlidir (örneğin katalog formu, belge formu). Eğer form belirli bir nesneyle ilişkilendirilmemişse, o zaman “OnWrite” adında bir olay yoktur.

Burada çok önemli olan nokta, “OnWrite” olayının formun etkileşimli olarak kaydedildiği noktada meydana gelmesidir. Bu nedenle, formda, kullanıcı tarafından veri girişinin doğruluğunu kontrol etmek ve verilerin genel işlemesini gerçekleştirmek, aynı zamanda “OnWrite” olayına sahip olan nesne modülünde (Object Module) en uygun olanıdır.

6. Object Module (Nesne Modülü)

Bir nesne modülü, adından da anlaşılacağı gibi, 1C’deki hemen hemen her nesnede, örneğin kataloglarda, belgelerde, hesap çizelgelerinde ve diğer birçok nesnede bulunur.

Nesne modülü(Object Module), standart olayları yönetmek için tasarlanmıştır. Örneğin, yeni bir ürünün kataloğa eklenmesi, bir öğenin silinmesi, bir belgenin gönderilmesi vb. gibi olayları içerir.

Temel olarak, yazma olayı, aynı zamanda form modülünde de mevcuttur (yukarıda bunu ele aldık). Ancak form modülündeki yazma olayı, belirli bir formla çalışırken etkileşimli kayıt sırasında meydana gelir.

Nesne modülündeki “OnWrite” olayı, verilen nesnenin herhangi bir formundan herhangi bir yazma işlemi yapıldığında tetiklenir. Nesne programla kaydedilse bile, bu durumda nesne modülünün(Object Module) olayı da çalıştırılacaktır.

Yazılan verilerin doğruluğu için yapılan tüm kontroller, (nesne modülü(Object Module)) yazma olayına dahil edilebilir, çünkü bu prosedür kesinlikle herhangi bir yazma işleminde işlenecektir.

Her nesnenin, nesne modülünde işlenebilecek kendi olay listesi bulunmaktadır. Örneğin, bir katalog nesne modülü için olay listesi şunları içerebilir:

  • OnBeforeWrite: Yazma işleminden önce yapılacak kontroller için kullanılır.
  • OnAfterWrite: Yazma işleminden sonra gerçekleştirilecek eylemler için kullanılır.
  • OnDelete: Bir öğe silindiğinde gerçekleştirilecek işlemler için kullanılır.
  • OnPost: Bir belge gönderildiğinde yapılacak eylemler için kullanılır.
  • vb.

Bu olaylar, nesneyle ilgili işlemleri özelleştirmek ve doğru zamanda ilgili eylemleri gerçekleştirmek için kullanılır.

Doküman nesne modülü (Object Module) için benzer bir etkinlik listesi:

Gördüğünüz gibi, farklı nesne türleri için olay listesi farklıdır. Ayrıca, tüm nesne modülü prosedürlerinin her zaman sunucuda derlendiği ve yürütüldüğüne dikkat edilmelidir. Buna göre, bir nesne modülünün prosedürleri ve işlevleri için derleme yönergeleri belirtmeye gerek yoktur.

Object modüllerinde export edilebilecek metotları tanımlayabiliriz ve bu metotlar dışarıdan kullanılabilir olacaktır. Bunu yapmak için, ilgili prosedürü nesne modülünde “Export” anahtar kelimesiyle tanımlayın. Ardından bu prosedüre dışarıdan erişmek mümkün olacaktır:

Benzer şekilde, bir geliştirici, Export anahtar sözcüğüyle bir değişken bildirerek yeni bir özellik oluşturabilir. Buna dışarıdan da erişilebilir.

Böylece nesnelerin işlevselliğini genişletmek (yeni yöntemleri ve yeni özellikleri yeniden tanımlamak) mümkündür.

Önemli Not! Bu yeni özelliklerin dinamik olduğu ve nesne yazıldığında veri tabanına kaydedilmediği anlaşılmalıdır!

Veri tabanında depolanacak ve değeri birkaç kez kullanılacak bir nesne için bir özellik kullanmak istiyorsak, bu durumda bir nesne özelliği oluşturmalıyız:

7. Manager Module (Yönetici Modülü)

Yönetici modülü (yukarıda ele alınan nesne modülünün yanı sıra) birçok nesne (kataloglar, belgeler, kayıtlar, vb.) için kullanılabilir:

Genel olarak, yönetici modülü(Manage Module) ve nesne modülü  (Object Module) birbirine çok benzer. Örneğin, yönetici modülünde ayrıca işlenebilecek olayların bir listesi vardır:

Ayrıca yönetici modülünde “Export” anahtar sözcüğü ile bir yöntem oluşturabiliriz ve bu yöntem dışarıdan görünür olacaktır:

Nesne modülündeki (Object Module) yöntemlere nasıl erişileceği ile yönetici modülündeki (Manager Module) yöntemlere nasıl erişileceği arasındaki farkı gördünüz.

Bir nesne modülünün “Export” yöntemlerine başvurmak için, geliştirici önce nesneyi kendisi elde etmelidir. Ve sistem açısından, bu oldukça “yorucu” bir işlemdir, çünkü bu anda tüm nesneler okunmaktadır.

İkinci fark, nesne modülünün (Object Module) belirli bir nesne için mevcut olmasıdır, örneğin, belirli bir ürün veya belirli bir fatura için.

Yönetici modülünde ise bir seferde bir grup öğeye veya hatta tüm öğelere başvurulabilir. Örneğin, bir katalog öğesi: bir ürünü yazdırmak istiyorsak, yazdırma işlemini nesne modülüne yerleştirebilir ve burada çalıştırabiliriz. Ancak yazdırma işlemi yönetici modülüne yerleştirilirse çok daha verimli olacaktır. Bu durumda evrensel bir işlem yapılabilir ve hem bir nesneyi hem de bir grup nesneyi yazdırabiliriz.

Benzer şekilde, bir geliştirici, Export anahtar sözcüğüyle bir değişken bildirerek yeni bir özellik oluşturabilir. Buna dışarıdan da erişilebilir.

Böylece nesnelerin işlevselliğini genişletmek (yeni yöntemleri ve yeni özellikleri yeniden tanımlamak) mümkündür.

Önemli Not! Bu yeni özelliklerin dinamik olduğu ve nesne yazıldığında veri tabanına kaydedilmediği anlaşılmalıdır!

Veri tabanında depolanacak ve değeri birkaç kez kullanılacak bir nesne için bir özellik kullanmak istiyorsak, bu durumda bir nesne özelliği oluşturmalıyız:

Create on client, Create on client and a procedure server konularıyla alakalı başka bir blog yazımızda detaylı anlatım yapacağımızdan, Modüller konumuza burada noktayı koyuyoruz.

Teşekkür ederiz.

Bültenimize katılın.

Gelişmeleri ve içerikleri kaçırmayın!

Diğer yazılarımız

İşletmeniz için bir danışman talep edin.

Bizi hemen arayın +90 (850) 309 74 41

*1C:Drive uygulaması üzerinde örnek vaka çalışmalarını deneyimleyin.