Ümumi modullar 1s 8.3. Ümumi modulların yaradılması qaydaları. Nə istifadə etmək

Modullar nədir və onlar tam olaraq nə üçün nəzərdə tutulub? Modul proqram kodunu ehtiva edir. Üstəlik, qeyd etmək lazımdır ki, kodun forma elementlərinin xassələrində və tərtibat cədvəllərinin xanalarında yerləşə biləcəyi 7.7 platformasından fərqli olaraq, 8.x platformasında hər hansı kod sətri hansısa modulda yerləşməlidir. Tipik olaraq, modul üç bölmədən ibarətdir - dəyişənlərin təsviri bölməsi, prosedur və funksiyaların təsviri bölməsi və əsas proqram üçün bölmə. Bu struktur bəzi istisnalarla demək olar ki, bütün platforma modulları üçün xarakterikdir. Bəzi modullarda dəyişənlərin təsviri bölməsi və ya əsas proqram bölməsi yoxdur. Məsələn, Sessiya Modulu və hər hansı Ümumi Modul.

Modulların icra konteksti ümumiyyətlə müştəri və serverə bölünür. Bundan əlavə, bəzi modullar həm müştəri tərəfində, həm də server tərəfində tərtib edilə bilər. Bəziləri isə yalnız server və ya müştəri tərəfindədir. Belə ki:

Tətbiq modulu

Modul proqramın işə salınması (konfiqurasiyanın yüklənməsi) və onun fəaliyyətinin dayandırılması anlarını tutmaq üçün nəzərdə tutulmuşdur. Və yoxlama prosedurları müvafiq hadisələrə yerləşdirilə bilər. Məsələn, bir tətbiqi işə salarkən, bəzi konfiqurasiya arayış məlumatlarını yeniləyin və işi bitirərkən, onu ümumiyyətlə tərk etməyə dəyər olub olmadığını soruşun, bəlkə də iş günü hələ bitməyib. Bundan əlavə, o, xarici avadanlıqdan, məsələn, ticarət və ya fiskal hadisələrdən müdaxilə edir. Qeyd etmək lazımdır ki, tətbiq modulu təsvir olunan hadisələri yalnız interaktiv işə salındıqda kəsir. Bunlar. proqram pəncərəsinin özü yaradıldıqda. Tətbiq işə salındıqda bu baş vermir com əlaqələri.

8.2 platformasında iki fərqli proqram modulu var. Bunlar Daimi Tətbiq modulu və İdarə olunan Tətbiq moduludur. Onlar müxtəlif müştərilər işə salındıqda işə salınır. Veb müştəri, nazik müştəri və qalın müştəri idarə olunan proqram rejimində işə salındıqda idarə olunan proqram modulu belə işə salınır. Qalın müştəri normal tətbiq rejimində işə salındıqda adi proqram modulu işə salınır.

Tətbiq modulu bütün bölmələri - dəyişənlərin, prosedurların və funksiyaların təsvirlərini, həmçinin əsas proqramın təsvirlərini ehtiva edə bilər. Tətbiq modulu müştəri tərəfində tərtib edilmişdir, buna görə də bu, bir çox məlumat növlərinin mövcudluğunu xeyli məhdudlaşdırır. Siz “Server Zəngi” xüsusiyyətinə malik ümumi modulların metodlarından istifadə edərək proqram modulunun kontekstini genişləndirə bilərsiniz. İxrac kimi qeyd olunan bütün dəyişənlər və metodlar müştəri tərəfində işləyən istənilən konfiqurasiya modulunda mövcud olacaq. Bununla belə, nə qədər cazibədar olsa da, onu burada yerləşdirməməlisiniz. çoxlu saydaüsulları. Tərkibində nə qədər çox kod varsa, kompilyasiya vaxtı bir o qədər uzun olur və buna görə də tətbiqin işə salınma vaxtı istifadəçiləri çox qıcıqlandırır.

Yuxarıda qeyd edildiyi kimi, proqram modulu proqramın işə salınması və dayandırılması hadisələrini idarə edir. Tətbiq modulunda bu hadisələrin hər birini idarə etmək üçün əvvəl... və Nə vaxt... bir cüt işləyici var... Aralarındakı fərqlər elədir ki, Əvvəl... işləyicisində kodu icra edərkən, hələ ki, əməliyyat hələ də həyata keçirilməyib. baş verdi və biz onu icra etməkdən imtina edə bilərik. Rədd etmə seçimi bunun üçündür. On.. işləyicilərində əməliyyat artıq baş verib və biz proqramı işə salmaqdan və ya ondan çıxmaqdan imtina edə bilmərik.

Xarici əlaqə modulu

Modulun məqsədi tətbiq modulunun məqsədinə bənzəyir. Tətbiqin başlanğıc və son nöqtələrini emal edir. Xarici əlaqə modulu proqram com əlaqə rejimində işə salındıqda işə salınır. Xarici qoşulma prosesinin özü qeyri-interaktiv prosesdir. Bu rejimdə proqram işi ilə baş verir məlumat bazası və tətbiq pəncərəsi açılmır, bu da interaktiv iş üçün nəzərdə tutulmuş metodların istifadəsinə müəyyən məhdudiyyətlər qoyur. Bu rejimdə dialoq formalarına zənglər, xəbərdarlıq mesajları və s. istifadə edilə bilməz. Sadəcə işləməyəcəklər.

Tətbiq modulunda olduğu kimi burada dəyişənlərin, metodların təsviri bölmələri və əsas proqram üçün bölmə mövcuddur. Siz həmçinin ixrac dəyişənləri və üsullarını elan edə bilərsiniz. Fərq ondadır ki, com əlaqə rejimində infobaza ilə bütün işlər server tərəfində baş verir, ona görə də xarici əlaqə modulu yalnız serverdə tərtib edilir. Müvafiq olaraq, ixrac dəyişənləri və ümumi müştəri modullarının üsulları orada mövcud deyil.

Sessiya modulu

Bu yüksək ixtisaslaşdırılmış moduldur və yalnız sessiya parametrlərini işə salmaq üçün nəzərdə tutulub. Bunun üçün nə üçün öz modulunuzu yaratmalı oldunuz? Bu onunla əlaqədardır ki, inisializasiya prosesi bəzi kodun icrasını tələb edə bilər və əlavə olaraq, proqram müxtəlif müştərilər altında işə salına bilər (bu, müxtəlif proqram modullarının və ya xarici əlaqə modulunun icrasına gətirib çıxarır) və işə salınması. sessiya parametrləri istənilən işə salma rejimində aparılmalıdır. Buna görə də, istənilən proqramın işə salınma rejimində işləyən əlavə modul tələb olunurdu.

Sessiya modulunda, hətta PreSystemStartOperation proqram modulu hadisəsindən əvvəl həyata keçirilən tək bir "SettingSessionParameters" hadisəsi var. Dəyişən bəyannamə bölməsi və əsas proqram bölməsi orada mövcud deyil. Siz həmçinin ixrac üsullarını elan edə bilməzsiniz. Modul server tərəfində tərtib edilmişdir.

Tətbiq işə salındıqda bu modulun icrası sizi şirnikləndirməməli və sessiya parametrlərinin işə salınması ilə birbaşa əlaqəli olmayan kodu ona yerləşdirməməlisiniz. Bu, sistemin işləməsi zamanı SetSessionParameters işləyicisinin təkrar çağırıla bilməsi ilə bağlıdır. Məsələn, bu, işə salınmamış parametrlərə daxil olduğumuz hallarda baş verir. Və bu hadisənin ilk işə salınma anını tutmaq mümkün olsa da (Tələb olunan Parametrlər Müəyyən edilməmiş tipdədir), bu modulun imtiyazlı rejimdə tərtib edildiyini nəzərə almaq lazımdır, yəni. giriş hüquqlarına nəzarət etmir. İkinci məqam isə odur ki, sistemin işə salınacağına hələ də yüz faiz əmin ola bilmərik. Birdən modulda tətbiqlər baş verəcək uğursuz oldu və biz verilənlər bazası ilə bəzi hərəkətləri yerinə yetirməyə çalışırıq.

Ümumi modullar

Modullar digər konfiqurasiya modullarından çağırılacaq bəzi ümumi alqoritmləri təsvir etmək üçün nəzərdə tutulub. Ümumi modulda dəyişənlərin təsviri bölməsi və əsas proqram bölməsi yoxdur. Siz orada ixrac üsullarını elan edə bilərsiniz, onların əlçatanlıq konteksti tərtib bayraqları ilə müəyyən ediləcək. Dəyişən təsvir bölməsi mövcud olmadığı üçün ümumi modullarda qlobal dəyişənlər müəyyən edilə bilməz. Bunu etmək üçün, geri qaytarılan dəyərlərin və ya tətbiq modulunun keşləşdirilməsi ilə ümumi modulların funksiyalarından istifadə etməlisiniz. Nəzərə almaq lazımdır ki, paylaşılan modulun təkrar istifadəsi xüsusiyyəti "Sessiyanın müddəti üçün" olaraq təyin edilsə belə, bu halda keşlənmiş dəyərlərin istifadə müddəti son giriş anından 20 dəqiqədən çox olmayacaq. onlar.
Ümumi modulun davranışı müəyyən edilmiş parametrlərdən (qlobal və ya yox, müxtəlif tərtib bayraqları, server çağırışının mövcud olub-olmaması və s.) asılıdır. Bu yazıda əmlak bayraqlarını əsassız olaraq təyin edərkən ortaya çıxan hər cür parametrləri, habelə davranış xüsusiyyətlərini və tələləri nəzərdən keçirməyəcəyik. Bu ayrı bir məqalənin mövzusudur. Bayraqları təyin edərkən əməl edilməli olan bir neçə məqam üzərində dayanaq:

  • Yaxşı bir qayda, Qlobal bayrağı hər yerdə istifadə etməməkdir. Bu, tətbiqin başlama vaxtını azaldacaq, həmçinin kodun oxunuşunu yaxşılaşdıracaq (əlbəttə ki, ümumi modulun tamamilə mənalı adı varsa).
  • Birdən çox kompilyasiya bayrağından istifadə etmək məqsədəuyğun deyil. Fərqli kontekstlərdə yerinə yetirilməli olan üsullar çox deyil və belə üsullar hələ də tələb olunursa, onlar üçün ayrıca ümumi modul ayrıla bilər.
  • "Server Zəngi" bayrağı yalnız modul "Serverdə" tərtib edildikdə məna kəsb edir. Buna görə də, müxtəlif problemlərin qarşısını almaq üçün bütün digər tərtib bayraqları çıxarılmalıdır.
  • Modul metodları məlumatların kütləvi işlənməsini, verilənlər bazasına oxunmasını və yazılmasını nəzərdə tutursa, iş sürətini artırmaq üçün "İmtiyazlı" bayrağı təyin edərək giriş hüquqlarına nəzarəti söndürmək daha yaxşıdır. Bu rejim yalnız serverdə yığılmış paylaşılan modullar üçün mövcuddur.

Forma modulu

O, istifadəçi hərəkətlərini emal etmək üçün nəzərdə tutulmuşdur, yəni. məlumatların daxil edilməsi və onların daxil edilməsinin düzgünlüyünün emalı ilə bağlı müxtəlif hadisələr. Adi formanın modulu tamamilə müştəri üzərində tərtib edilir. Modul idarə olunan forma icra konteksti ilə aydın şəkildə ayrılır, ona görə də bütün dəyişənlər və metodlar kompilyasiya direktivinə malik olmalıdır. Direktiv açıq şəkildə göstərilməyibsə, bu dəyişən və ya metod server tərəfində tərtib ediləcək. Forma modulunda dəyişənlərin və metodların təsviri bölmələri, həmçinin əsas proqram üçün bölmə var.

Obyekt modulu

Bu modul bir çox konfiqurasiya obyektləri üçün xarakterikdir və ümumiyyətlə obyekt hadisələrinin işlənməsi üçün nəzərdə tutulub. Məsələn, obyektlərin qeydə alınması və silinməsi üçün hadisələr, sənədlərin yerləşdirilməsi üçün hadisələr və s.

Bəzi obyekt modul hadisələri forma modulu hadisələrini təkrarlayır. Məsələn, qeydlə əlaqəli hadisələr. Bununla belə, anlayın ki, forma modulu hadisələri yalnız obyektin xüsusi formasında icra olunacaq. Ümumiyyətlə, bu formaların bir neçəsi ola bilər. Və obyekt modulunun hadisələri istənilən halda, hətta obyektlə proqramlı iş anında da çağırılacaq. Buna görə də, bütün hallarda bəzi kodu yerinə yetirmək lazımdırsa, bunun üçün bir obyekt modulu hadisəsindən istifadə etmək daha yaxşıdır.

Obyekt modulu yalnız serverdə tərtib edilir. Burada siz digər konfiqurasiya modullarında mövcud olacaq ixrac dəyişənlərini və üsullarını təyin edə bilərsiniz. Bu xassələrdən və metodlardan istifadə etməklə biz obyektin funksional imkanlarını əhəmiyyətli dərəcədə genişləndirə bilərik.

Obyekt meneceri modulu

Bu modul bir çox konfiqurasiya obyektləri üçün mövcuddur. Bu modulun əsas məqsədi xətt daxil edilərkən baş verən standart seçim hadisəsini yenidən müəyyən etmək və menecerin funksional imkanlarını genişləndirməkdir. Modul server tərəfində tərtib edilmişdir. Bu, ixrac xüsusiyyətlərini və üsullarını müəyyən etməyə imkan verir. Menecerin ixrac üsullarını çağırmaq obyektin özünün yaradılmasını tələb etmir.

Yuxarıda göstərilənlərin hamısına bəzi konfiqurasiya modullarının şəklini və idarə olunan proqram rejimində qarşılıqlı çağırış üsulları əlavə edə bilərsiniz. Ok müvafiq metodu çağırmaq üçün dönə biləcəyiniz istiqaməti göstərir. Diaqramdan göründüyü kimi, server konteksti tamamilə bağlıdır. Lakin müştəri kontekstindən server metodlarına daxil olmaq mümkündür.

Diaqramdakı simvollar: O.M. Müştəri - Müştəri ümumi modulu; O.M. Server - Serverin paylaşılan modulu; M.F. Müştəri - Forma modulunun müştəri prosedurları; M.F. Server - Forma modulunun server prosedurları.

İstənilən proqram proqram kodundan, yəni əslində yerinə yetirilməli olan istənilən dildə yazılmış hərəkətlər ardıcıllığından ibarətdir.

Halbuki, məhz bu proqram haradasa, yəni hardasa yerləşməlidir. Əksər hallarda proqram kodu düz mətn fayllarında yazılır. Yeganə fərq ondadır ki, onlarda uzantı .txt deyil, .cpp və ya .php-dir.

1C proqramı harada yazılır?

Modul 1C nədir?

Əlbəttə ki, 1C kodu bəzi mətn faylında da yazıla bilər. Bununla belə, 1C Konfiqurasiyası konsepsiyası var - bu, yalnız parametrlərin siyahısını, forma şablonlarını və s., həm də 1C proqram kodunu ehtiva edir. Buna görə də, 1C kodu konfiqurasiyada saxlanılır.

Konfiqurasiya əvvəlki dərslərdə artıq müzakirə etdiyimiz kimi 1C obyektlərindən ibarətdir. Hər bir 1C obyektində iç-içə obyektlər var, məsələn, kataloqun bir neçə forması var.

Hər bir 1C obyektinin, o cümlədən bəzi daxili obyektlərin öz Modulu var - müəyyən mətn faylı, proqram kodunu ehtiva edir.

Obyektdən müstəqil modullar da var ki, onların içərisində konkret obyektdən asılı olmayan proqram kodu yazıla bilər.

Beləliklə, 1C-də "vahid" proqram yoxdur. Hər bir 1C konfiqurasiya obyekti üçün proqram kodunu yazmaq üçün modullar dəsti mövcuddur.

1C Modulları necə istifadə olunur?

Bütün proqramı təxminən iki növə bölmək olar:

  • Obyekt metodu
  • Hadisələrə reaksiya.

Metodlar. Daha əvvəl dediyimiz kimi, 1C obyekti həm məlumatları, həm də onun işlənməsi üsullarını özündə birləşdirən ayrılmaz bir quruluşdur. Bu üsullar məlumatların işlənməsi üçün çağırıla bilən hərəkətlər (metodlar) toplusudur. Belə hərəkətə misal olaraq DirectoryObject.Write() verilə bilər – verilənlər bazasına kataloq elementi yazır.

Bir çox 1C obyektinin metodları standart ola bilər (yəni 1C platformasında proqramlaşdırılmış) və proqramçı tərəfindən 1C dilində yazıla bilər. İkincinin köməyi ilə siz 1C obyektlərinin funksionallığını istədiyiniz kimi genişləndirə bilərsiniz.

Hadisələr. Hadisələr bir çox digər inkişaf alətlərində mövcuddur. Proqramın məqsədi yalnız başlanğıcda nəyisə hesablamaq deyil, həm də istifadəçinin işini dəstəkləməkdir.

İstifadəçi hadisəsi - istifadəçi düyməni basdı. Cavab olaraq, kodun bir hissəsi istifadəçi hərəkətlərinə reaksiya verərək icra ediləcək.

Sistem hadisələri - 1C obyektini verilənlər bazasında qeyd etdik. “Obyekt yaz” sistem hadisəsi baş verdi. İstifadəçinin (düyməni basan və ya başqa bir şey edən) deyil, sistemin özü tərəfindən səbəb olan hadisələrə baş verəcək reaksiyanı konfiqurasiya etmək mümkündür. Proqramın başlaması belə bir hadisənin parlaq nümunəsidir.

1C modullarının icrası qaydası

Bir çox dildə "giriş nöqtəsi" kimi bir anlayış var. Bu, proqram başlayanda icra ediləcək ilk sətir və ya funksiyadır.

1C-də bir neçə belə giriş nöqtəsi var - hər bir müştəri növü üçün. Yəni, qalın bir müştəri işə salarkən bir giriş nöqtəsi var, nazik müştəri işə saldıqda başqa. Bu, sizə asılı olaraq dəyişən xüsusiyyətləri proqramlaşdırmağa imkan verir fərqli növlər müştərilər.

Müvafiq modulda giriş nöqtəsi müvafiq olaraq BeforeSystemStart() və WhenSystemStart() sistem hadisələrinin idarəediciləridir (yəni sıra ilə). Bu funksiyalar əvvəlcə yerinə yetirilir, onlar avtomatik olaraq nəyisə başlaya bilərlər.

Heç bir şey avtomatik olaraq işə salınmayıbsa, 1C interfeysi istifadəçinin qarşısında açılır və sonra hər şey ondan asılıdır. O, bir düyməni basır – düyməni basan idarəedici icra olunur (bu da öz növbəsində avtomatik olaraq nəyisə işə sala bilər).

1C modulları ilə işləmək

Konfiquratorda istehsal olunur. Konfiqurasiya pəncərəsindən istifadə edərək modulu aça bilərsiniz.

Proqram modullarında vizual inkişaf vasitələri kifayət etmədikdə sistemin və ya istifadəçinin hərəkətlərinə müəyyən şəkildə cavab vermək üçün lazım olan 1C dilində icra olunan kod var. Proqram modullarında öz metodlarımızı (prosedur və funksiyaları) da təsvir edə bilərik.

Tipik olaraq bir proqram modulu üç bölmədən ibarətdir:

  • dəyişən bəyannamə sahəsi;
  • prosedurların və funksiyaların təsviri sahəsi;
  • proqramın əsas mətni.

Nümunə quruluşu proqram modulu:

//******************** DƏYİŞƏN BƏYANMA SAHƏSİ *********************

Perem soyadının ixracı; / /bu qlobal dəyişəndir
Adın, Atasının adının dəyişdirilməsi; //bu modul dəyişənidir
Perem tam adı; //bu da modul dəyişənidir və ona daxil olmaq olar

//modulumuzun istənilən prosedur və funksiyasından

//**************** SAHƏ PROSEDURLARI VƏ FUNKSİYALARIN TƏSVİRİ ****************

Prosedur Prosedur 1 ()
Dəyişən cəmi; / /Nəticə yerli dəyişəndir (prosedur dəyişəni)

Cəmi = Soyad + " "+ Ad + " "+ Ata adı;

Prosedurun Sonu

Funksiya Funksiya 1()

// funksiya operatorları

Qayıt(Soyad + " "+ Ad);

EndFunction

//******************** PROQRAMIN ƏSAS MƏTNİ ***********************

Soyadı = "İvanov";
Adı = "İvan";
Ata adı = "İvanoviç";

//******************************************************************************

Müəyyən bir proqram modulunda sahələrdən hər hansı biri əskik ola bilər.
Dəyişən bəyannamə sahəsi modul mətninin əvvəlindən birinci Prosedur və ya Funksiya ifadəsinə və ya hər hansı icra edilə bilən ifadəyə qədər yerləşdirilir. Bu bölmə yalnız Dəyişən dəyişən elanı ifadələrini ehtiva edə bilər.

Prosedurları və funksiyaları təsvir etmək üçün sahə birinci Prosedur və ya Funksiya ifadəsindən prosedurun və ya funksiyanın təsvirinin gövdəsindən kənar hər hansı icra edilə bilən ifadəyə yerləşdirilir.

Proqramın əsas mətn sahəsi prosedurların və ya funksiyaların gövdəsindən kənarda birinci icra olunan ifadədən modulun sonuna qədər yerləşdirilir. Bu bölmədə yalnız icra edilə bilən ifadələr ola bilər. Proqramın əsas mətn sahəsi modulun işə salınması anında yerinə yetirilir. Adətən, əsas proqramın bir bölməsində modulun prosedurlarına və ya funksiyalarına ilk çağırışdan əvvəl təyin edilməli olan hər hansı xüsusi dəyərləri olan dəyişənləri işə salmaq üçün operatorları yerləşdirmək məna kəsb edir.

Proqram modulları konfiqurasiyada xüsusi əməliyyat alqoritmlərinin təsvirini tələb edə bilən yerlərdə yerləşir. Bu alqoritmlər əvvəlcədən müəyyən edilmiş situasiyalarda sistemin özü tərəfindən çağırılacaq prosedurlar və ya funksiyalar şəklində rəsmiləşdirilməlidir (məsələn, kataloq formasını açarkən, dialoq qutusunda düyməni basarkən, obyekti dəyişdirərkən və s.) .

Hər bir fərdi proqram modulu sistem tərəfindən vahid bütöv kimi qəbul edilir, ona görə də proqram modulunun bütün prosedurları və funksiyaları vahid kontekstdə yerinə yetirilir.

Modulun icrası konteksti müştəri və serverə bölünür. Bundan əlavə, bəzi proqram modulları həm müştəri, həm də server tərəfində tərtib edilə bilər.

Tətbiq modulu (idarə olunan və ya müntəzəm)

Tətbiq modulu sistemin başlanğıcında və sonunda işə salınan hadisələrin prosedurlarını (işləyicilərini) təsvir edir. Məsələn, proqram işləməyə başlayanda bəzi konfiqurasiya məlumatlarını yeniləyə bilərsiniz və proqramdan çıxdığınız zaman proqramdan ümumiyyətlə çıxmağa dəyər olub olmadığını soruşa bilərsiniz. Bundan əlavə, bu modul xarici avadanlıqdan, məsələn, ticarət və ya fiskaldan hadisələrə müdaxilə edir. Qeyd etmək lazımdır ki, proqram modulu yalnız proqram interaktiv şəkildə işə salındıqda, yəni proqram pəncərəsi işə salındıqda yerinə yetirilir. Tətbiq com əlaqə rejimində işə salındıqda bu baş vermir.
1C 8 platformasında iki fərqli proqram modulu var. Bunlar Daimi Tətbiq modulu və İdarə olunan Tətbiq moduludur. Onlar müxtəlif müştərilər işə salındıqda işə salınır. Beləliklə, idarə olunan proqram modulu veb müştəri, nazik müştəri və qalın müştəri idarə olunan proqram rejimində işə salındıqda işə salınır. Qalın müştəri normal tətbiq rejimində işə salındıqda adi proqram modulu işə salınır. Tətbiqin işə salınması rejimi parametri "Əsas işə salma rejimi" konfiqurasiya xüsusiyyətində müəyyən edilmişdir.

Tətbiq modulu bütün 3 bölməni - dəyişənlərin bəyannamələrini, prosedurların və funksiyaların təsvirini, həmçinin proqramın əsas mətnini ehtiva edə bilər. Tətbiq modulu müştəri tərəfində tərtib edilmişdir ki, bu da bir çox məlumat növlərindən istifadəmizi xeyli məhdudlaşdırır. Siz “Server Zəngi” xüsusiyyətinə malik ümumi modulların metodlarından istifadə edərək proqram modulunun kontekstini genişləndirə bilərsiniz. İxrac kimi qeyd olunan bütün proqram modulu dəyişənləri və metodları müştəri tərəfində işləyən istənilən konfiqurasiya modulunda mövcud olacaq. Ancaq nə qədər cazibədar olsa da, burada çoxlu sayda prosedur və funksiya yerləşdirməməlisiniz. Verilmiş modulda nə qədər çox kod varsa, kompilyasiya vaxtı bir o qədər uzun olur və deməli, proqramın işə salınma müddəti.

Yuxarıda qeyd edildiyi kimi, proqram modulu proqramın işə salınması və dayandırılması hadisələrini idarə edir. Tətbiq modulunda bu hadisələrin hər birini idarə etmək üçün Əvvəl... və Nə vaxt... bir cüt işləyici var... Aralarındakı fərqlər aşağıdakı kimidir: Əvvəl... işləyicisində kodu yerinə yetirərkən, əməliyyat hələ də həyata keçirilməyib. baş verdi və biz onu icra etməkdən imtina edə bilərik. Rədd etmə seçimi bunun üçündür. On.. işləyicilərində əməliyyat artıq baş verib və biz proqramı işə salmaqdan və ya ondan çıxmaqdan imtina edə bilmərik.

Xarici əlaqə modulu

  • bütün 3 sahəni ehtiva edə bilər
  • konfiqurasiyanın kök bölməsində yerləşir

Modulun məqsədi tətbiq modulunun məqsədinə bənzəyir. Tətbiqin başlanğıc və son hadisələrini emal edir. Xarici əlaqə modulu proqram com əlaqə rejimində işə salındıqda işə salınır. Xarici birləşmə prosesinin özü interaktiv proses deyil. Bu rejimdə informasiya bazası ilə proqramlı iş baş verir və tətbiq pəncərəsi açılmır ki, bu da interaktiv iş üçün nəzərdə tutulmuş metodların istifadəsinə müəyyən məhdudiyyətlər qoyur. Bu rejimdə dialoq formalarına zənglər, istifadəçiyə xəbərdarlıq və mesajlar və s. istifadə edilə bilməz. Onlar sadəcə olaraq edam edilməyəcəklər.

Tətbiq modulunda olduğu kimi burada da hər üç sahə mövcuddur: dəyişən bəyannamələri, prosedur və funksiyaların təsviri, həmçinin proqramın əsas mətni. Tətbiq modulundan əsas fərq ondan ibarətdir ki, birləşmə rejimində infobaza ilə bütün işlər server tərəfində baş verir, ona görə də xarici qoşulma modulu server tərəfində tərtib edilir. Müvafiq olaraq, ixrac dəyişənləri və ümumi müştəri modullarının üsulları orada mövcud deyil.

Sessiya modulu

  • server tərəfində işləyir
  • konfiqurasiyanın kök bölməsində yerləşir

Bu, yalnız sessiya parametrlərini işə salmaq üçün nəzərdə tutulmuş yüksək ixtisaslaşmış moduldur. Bunun üçün nə üçün öz modulunuzu yaratmalı oldunuz? Onun istifadəsi proqramın özünün müxtəlif rejimlərdə işə salına bilməsi ilə bağlıdır (bu, ya idarə olunan proqram modulunun, adi proqram modulunun və ya xarici əlaqə modulunun icrasına gətirib çıxarır) və sessiya parametrlərinin işə salınması həyata keçirilməlidir. başlanğıc rejimindən asılı olmayaraq. Eyni şeyi yazmamaq üçün proqram kodu bu modulların hər üçündə bizə proqramın işə salınma rejimindən asılı olmayaraq işləyən əlavə modul lazım idi.

Sessiya modulunda bir “SettingSessionParameters” hadisəsi var ki, o, ilk növbədə, hətta BeforeSystemStartOperation proqram modulu hadisəsindən əvvəl icra olunur. Dəyişən bəyannamə bölməsi və əsas proqram bölməsi orada mövcud deyil. Siz həmçinin ixrac üsullarını elan edə bilməzsiniz. Modul server tərəfində tərtib edilmişdir.

Ümumi modullar

  • prosedurları və funksiyaları təsvir edən sahəni ehtiva edə bilər
  • server və ya müştəri tərəfində icra olunur (modul parametrlərindən asılı olaraq)
  • “Ümumi” - “Ümumi modullar” konfiqurasiya obyektlərinin ağac budağında yerləşir.

Ümumi modullar digər konfiqurasiya modullarından çağırılacaq bəzi ümumi alqoritmləri təsvir etmək üçün nəzərdə tutulub. Ümumi modulda dəyişən elan sahələri və əsas proqram mətni yoxdur. Orada ixrac üsullarını elan edə bilərsiniz, mövcudluğu modul parametrləri ilə müəyyən ediləcək (hansı tərəfdə yerinə yetirilir: server və ya müştəri tərəfində). Dəyişən təsvir bölməsi mövcud olmadığı üçün ümumi modullarda qlobal dəyişənlər müəyyən edilə bilməz. Bunun üçün proqram modulundan istifadə edə bilərsiniz.

Ümumi modulun davranışı müəyyən edilmiş parametrlərdən (qlobal və ya yox, müxtəlif kompilyasiya bayraqları, server çağırışının mövcud olub-olmaması və s.) asılıdır. Ümumi modulların qurulması üçün bəzi məsləhətlər:

Qlobal bayrağı hər yerdə istifadə etməmək yaxşı təcrübədir. Bu, tətbiqin başlama vaxtını azaldacaq, həmçinin kodun oxunuşunu yaxşılaşdıracaq (əlbəttə ki, ümumi modulun tamamilə mənalı adı varsa);
- Birdən çox kompilyasiya bayrağından istifadə etmək məqsədəuyğun deyil. Müxtəlif kontekstlərdə icra edilməli olan üsullar o qədər də çox deyil və əgər belə üsullar hələ də tələb olunursa, onlar üçün ayrıca ümumi modul ayrıla bilər;
- "Zəng serveri" bayrağı yalnız modul "Serverdə" tərtib edildikdə məna kəsb edir. Buna görə də, müxtəlif problemlərin qarşısını almaq üçün bütün digər tərtib bayraqları çıxarılmalıdır;
- modul üsulları məlumatların kütləvi emalı, verilənlər bazasına oxunması və yazılmasını nəzərdə tutursa, işin sürətini artırmaq üçün "İmtiyazlı" bayrağı təyin edərək giriş nəzarətini söndürmək daha yaxşıdır. Bu rejim yalnız serverdə yığılmış paylaşılan modullar üçün mövcuddur.

Forma modulu

  • bütün 3 sahəni ehtiva edə bilər
  • server və müştəri tərəflərində yerinə yetirilir

Forma modulu bu forma ilə istifadəçi hərəkətlərini emal etmək üçün nəzərdə tutulmuşdur (düyməni basma hadisəsinin işlənməsi, forma detallarının dəyişdirilməsi və s.). Formanın özü ilə birbaşa əlaqəli hadisələr də var (məsələn, onun açılması və ya bağlanması). İdarə olunan və müntəzəm formaların modulları, ilk növbədə, idarə olunan formanın modulunun kontekstə aydın şəkildə bölünməsi ilə fərqlənir. Hər bir prosedur və ya funksiyanın tərtib direktivi olmalıdır. Əgər kompilyasiya direktivi göstərilməyibsə, o zaman bu prosedur və ya funksiya server tərəfində yerinə yetirilir. IN müntəzəm forma bütün kod müştəri tərəfində icra olunur.

İdarə olunan formanın strukturunda dəyişənlərin elanları, prosedurların və funksiyaların təsviri və proqramın əsas mətni (formanın işə salınması zamanı yerinə yetirilir) bölməsi var. Biz gözlənilən prosedurlar və formanın funksiyaları siyahısı vasitəsilə standart forma hadisələrinə daxil ola bilərik (Ctrl+Alt+P), və ya formanın özünün xassələri palitrası vasitəsilə.

Əgər forma təyin edilmiş əsas atribut varsa, onda əsas atribut kimi istifadə olunan tətbiq obyektinin xassələri və metodları forma modulunda əlçatan olur.

Obyekt modulu

  • bütün 3 sahəni ehtiva edə bilər
  • server tərəfində işləyir

Bu modul əksər konfiqurasiya obyektləri üçün mövcuddur və ümumiyyətlə obyektlə birbaşa əlaqəli hadisələrin işlənməsi üçün nəzərdə tutulub. Məsələn, obyektlərin qeydə alınması və silinməsi, obyekt təfərrüatlarının tamamlanmasının yoxlanılması, sənədin yerləşdirilməsi və s.

Bəzi obyekt modul hadisələri forma modulu hadisələrini təkrarlayır. Məsələn, qeydlə əlaqəli hadisələr. Bununla belə, başa düşmək lazımdır ki, forma modulunun hadisələri yalnız obyektin xüsusi formasında, yəni konkret forma açıldıqda yerinə yetiriləcəkdir. Və obyekt modulunun hadisələri istənilən halda, hətta obyektlə proqramlı iş anında da çağırılacaq. Buna görə, obyektin müəyyən bir formasına bağlanmadan bir obyektlə əlaqəli metodlara ehtiyacınız varsa, bunun üçün obyekt modulundan istifadə etmək daha yaxşıdır.

Obyekt meneceri modulu

  • bütün 3 sahəni ehtiva edə bilər
  • server tərəfində işləyir

Obyekt meneceri modulu yalnız 1C 8.2 versiyasından başlayaraq ortaya çıxdı. Menecer modulu bütün tətbiq obyektləri üçün mövcuddur və bu obyekti konfiqurasiya obyekti kimi idarə etmək üçün nəzərdə tutulmuşdur. Menecer modulu verilənlər bazası obyektinin konkret nümunəsinə deyil, konfiqurasiya obyektinin özünə aid olan prosedur və funksiyaları təqdim etməklə (yazmaq) obyektin funksionallığını genişləndirməyə imkan verir. Obyekt meneceri modulu müəyyən bir obyekt üçün ümumi prosedurları və funksiyaları yerləşdirməyə və onlara xaricdən, məsələn, emaldan daxil olmağa imkan verir (əlbəttə ki, bu prosedur və ya funksiya açar sözİxrac). Bu bizə nə yenilik verir? Ümumiyyətlə, prosedurları obyektlər üzrə təşkil etmək və ayrı-ayrı yerlərdə saxlamaqdan başqa heç nə yoxdur - Obyekt Meneceri Modulları. Biz bu prosedurları və funksiyaları ümumi modullarda eyni dərəcədə uğurla yerləşdirə bilərik, lakin 1C obyektlərin ümumi prosedurlarını və funksiyalarını Obyekt Meneceri Modulunda yerləşdirməyi tövsiyə edir. Obyekt Menecerləri Modulunun prosedur və funksiyalarından istifadə nümunələri: müəyyən şərtlər altında kataloq və ya sənədin fərdi təfərrüatlarının ilkin doldurulması, müəyyən şərtlər daxilində kataloq və ya sənədin təfərrüatlarının doldurulmasının yoxlanılması və s.

Komanda modulu

  • prosedurları və funksiyaları təsvir edən bölmə ola bilər
  • müştəri tərəfində həyata keçirilir

Əmrlər tətbiq obyektlərinə və ya bütövlükdə konfiqurasiyaya tabe olan obyektlərdir. Hər bir əmrin bu əmri yerinə yetirmək üçün əvvəlcədən təyin edilmiş CommandProcess() prosedurunun təsvir oluna biləcəyi bir əmr modulu var.

Salam.
Bu yazıda proqram moduluna, onun məqsədinə və tərtib olunduğu yerə baxacağıq.

1c proqram moduluəsasən proqramın işə salındığı və bağlandığı anları tutmaq üçün nəzərdə tutulub.
Burada həmçinin xarici hadisəni avadanlıqdan tutmağa imkan verən idarəedicilər var.

İdarə olunan proqram modulu hadisələri idarə olunan tətbiqin İncə Müştəri, Veb Müştəri və Qalın Müştəri işə salındıqda işə düşür.
İdarə olunan proqram modulu interaktiv sistemin işə salınmasına nəzarət edir.

İdarə olunan proqram moduluna aşağıdakılar daxildir:
dəyişən bəyannamə bölməsi
prosedur və funksiyanın təsviri bölməsi
əsas proqram bölməsi
İdarə olunan modulun prosedurları, funksiyaları və dəyişənləri ixrac kimi təsvir edilə bilər (verilmiş moduldan kənarda əlçatandır). Bu modul həmçinin müəyyən şəraitdə baş verən xüsusi hadisə idarəedicilərini ehtiva edə bilər.

( düyməsini basaraq çağırıla bilən işləyicilərin siyahısına baxaq. Ctrl+Alt+P).
Sistem başlamazdan əvvəl - hərəkət hələ baş verməyib (1C Enterprise 8.2 işə salınır, lakin tətbiqin özü hələ ekranda görünməyib). "Uğursuzluq" parametri "Doğru" olaraq təyin edilərsə, proqram sadəcə başlamaz. Sistem işə salındıqda - hərəkət artıq tamamlanmışdır ("uğursuzluq" parametri yoxdur). Sistemin bağlanmasından əvvəl - tətbiq hələ yoxa çıxmayıb ("uğursuzluq" parametri var).
Sistemin bağlanması zamanı interaktiv pəncərə artıq bağlanıb.

Sintaksis köməkçisinə nəzər salın və idarə olunan və müntəzəm tətbiq hadisələri haqqında ətraflı oxuyun.

Tətbiq modulu həmişə tamamilə müştəri tərəfində tərtib edilir. Bunlar. ondan biz server prosedurlarına və ümumi modulların funksiyalarına daxil ola bilərik və sənədlər, kataloqlar kimi konfiqurasiya obyektlərinə daxil ola bilməyəcəyik.
Sistem işə salındıqda, idarə olunan proqram modulu tərtib edilir və orada nə qədər çox ixrac proseduru və funksiyası elan edilirsə, sistemin işə salınması bir o qədər uzun çəkəcək.

Daimi Tətbiq Modulu

Adi proqram modulu idarə olunan proqram modulu ilə eyni yerdə görünə bilər, lakin görünmürsə, o zaman "Ümumi" sekmesindəki konfiqurator parametrlərində "İdarə olunan rejimlər üçün konfiqurasiyanı redaktə et" seçimini seçin. tətbiqi və normal tətbiqi” mövqeyi.
Bunu necə etmək olar, məqaləyə baxın:.

Daimi proqram modulu hadisələri müntəzəm tətbiqin qalın müştərisi işə salındıqda işə düşür.
İdarə olunan proqram modulu üçün deyilənlərin hamısı adi proqram modulu üçün də doğrudur.

Hadisələrdən əvvəl... və zamanı....

Sistem İşinə Başlamazdan əvvəl (Uğursuzluq) və Sistem Əməliyyatına Başlamadan əvvəl prosedurlar arasındakı fərq ()

Sistem işə başlamazdan əvvəl (imtina) - hərəkət hələ tamamlanmayıb və biz onu yerinə yetirməkdən imtina edə bilərik.
AtSystemStart() - fəaliyyət artıq tamamlanıb və biz proqramı işə salmaqdan və ya ondan çıxmaqdan imtina edə bilmərik.

Hamısı budur, diqqətinizə görə təşəkkür edirəm.

Zəhmət olmasa şərhlərinizi yazın, fikriniz mənim üçün önəmlidir.

Mühafizə: 10 dəqiqə ərzində tibbi arayışların qeydiyyatı. Dövlət Yol Hərəkəti Təhlükəsizliyi Müfəttişliyindən sertifikat almaq üçün bir neçə gün sərf etməlisiniz, lakin lisenziya üçün sertifikat almaq imkanı var. Sertifikat təqdim etmək və həmçinin lisenziyaların surətini əlavə etmək mümkündür

P.S. Mən Camala xoşuma gəlir - Sən Sevgidən Yaranmısan

1.1. Ümumi modullar bəzi xüsusiyyətlərə görə birləşdirilən prosedurları və funksiyaları həyata keçirmək üçün yaradılmışdır. Bir qayda olaraq, bir konfiqurasiya alt sisteminin (satış, satınalma) prosedurları və funksiyaları və ya oxşar funksionallığın (sətirlərlə işləmək, ümumi təyinatlı) prosedur və funksiyaları bir ümumi modulda yerləşdirilir.

1.2. Paylaşılan modulları inkişaf etdirərkən, dörd kodun icrası kontekstindən birini seçməlisiniz:

Ümumi modul növü Bir ad nümunəsi Server zəngi Server Xarici birləşmə Müştəri
(adi tətbiq)
Müştəri
(idarə olunan tətbiq)
1. ServerÜmumi Məqsəd (və ya Ümumi Məqsədli Server)
2. Müştəridən zəng etmək üçün serverGeneralPurposeCallServer
3. MüştəriÜmumi Məqsədli Müştəri (və ya Ümumi Məqsədli Qlobal)
4. Müştəri-serverÜmumi MəqsədliClientServer

2.1. Server ümumi modulları müştəri kodundan istifadə etmək mümkün olmayan server prosedurlarını və funksiyalarını qəbul etmək üçün nəzərdə tutulub. Tətbiqin bütün daxili server biznes məntiqini həyata keçirirlər.
üçün düzgün əməliyyat Xarici əlaqə konfiqurasiyaları, idarə olunan və müntəzəm tətbiq rejimləri, server prosedurları və funksiyaları aşağıdakı xüsusiyyətlərə malik ümumi modullarda yerləşdirilməlidir:

  • Server(onay qutusu Server zəngi sıfırla),
  • Müştəri (adi tətbiq),
  • Xarici birləşmə.

Bu halda, dəyişən tiplərin parametrləri ilə server prosedurlarını və funksiyalarını çağırmaq imkanı təmin edilir (məsələn, DirectoryObject, DocumentObject və s.). Tipik olaraq bu:

  • parametr kimi dəyişən qiymət (obyekt) qəbul edən sənədlərin, kataloqların və s. hadisələrə abunəlik üçün işləyicilər.
  • obyektin qovluqların, sənədlərin və s. modullarından, həmçinin hadisə abunəliyi olan modullardan parametr kimi ötürüldüyü server prosedurları və funksiyaları.

Server tərəfində paylaşılan modullar metadata obyektlərinin adlandırılması üçün ümumi qaydalara uyğun olaraq adlandırılır.
Misal üçün: Fayllarla İş, Ümumi Məqsəd

Bəzi hallarda qlobal kontekst xassələri ilə ad konfliktlərinin qarşısını almaq üçün postfiks əlavə edilə bilər "Server".
Misal üçün: RutinTasksServer, Məlumat mübadiləsi serveri.

2.2. Müştəridən zəng etmək üçün server ümumi modulları müştəri kodundan istifadə edilə bilən server prosedurlarını və funksiyalarını ehtiva edir. Onlar proqram serverinin müştəri proqramlaşdırma interfeysini təşkil edirlər.
Bu cür prosedurlar və funksiyalar aşağıdakı xüsusiyyətlərə malik ümumi modullarda yerləşdirilir:

  • Server(onay qutusu Server zəngi quraşdırılmış)

Müştəridən zəng etmək üçün server tərəfindəki ümumi modullar metadata obyektlərinin adlandırılması üçün ümumi qaydalara uyğun olaraq adlandırılır və postfikslə adlandırılmalıdır. "Zəng Serveri".
Misal üçün: FilesCalling Server ilə işləmək

Nəzərə alın ki, belə paylaşılan modullardakı ixrac prosedurları və funksiyaları dəyişən tiplərin parametrlərini ehtiva etməməlidir ( DirectoryObject, DocumentObject və s.), çünki onların müştəri kodundan (və ya koduna) köçürülməsi mümkün deyil.

Həmçinin bax:Ümumi modullar üçün “Server Zəngi” bayrağının qoyulmasına məhdudiyyət

2.3. Müştəri Ümumi Modulları müştəri biznes məntiqini ehtiva edir (funksionallıq yalnız müştəri üçün müəyyən edilir) və aşağıdakı xüsusiyyətlərə malikdir:

  • Müştəri (idarə olunan proqram))
  • Müştəri (adi tətbiq)

İstisna odur ki, müştəri prosedurları və funksiyaları yalnız idarə olunan proqram rejimində (yalnız adi proqram rejimində və ya yalnız xarici əlaqə rejimində) mövcud olmalıdır. Belə hallarda bu iki xüsusiyyətin başqa bir kombinasiyası məqbuldur.

Müştəri ümumi modulları postfikslə adlandırılır "Müştəri".
Misal üçün: FilesClient ilə işləmək, Ümumi Məqsədli Müştəri

Həmçinin baxın: müştəridə işləyən kodun minimuma endirilməsi

2.4. Bəzi hallarda məzmunu həm serverdə, həm də müştəridə eyni olan prosedur və funksiyaları olan müştəri-server ümumi modullarının yaradılmasına icazə verilir. Bu cür prosedurlar və funksiyalar aşağıdakı xüsusiyyətlərə malik ümumi modullarda yerləşdirilir:

  • Müştəri (idarə olunan proqram)
  • Server(onay qutusu Server zəngi sıfırla)
  • Müştəri (adi tətbiq)
  • Xarici birləşmə

Bu tip ümumi modullar postfikslə adlandırılır "ClientServer".
Misal üçün: FilesClient ilə işləmək, Ümumi MəqsədliClientServer

Ümumiyyətlə, həm server, həm də müştəri (idarə olunan proqram) üçün ümumi modulları müəyyən etmək tövsiyə edilmir. Müştəri və server üçün müəyyən edilmiş funksionallığı müxtəlif ümumi modullarda həyata keçirmək tövsiyə olunur - paraqraflara baxın. 2.1 və 2.3. Müştəri və server biznes məntiqinin bu açıq şəkildə ayrılması proqram həllinin modulluğunun artırılması, müştəri-server qarşılıqlı əlaqəsi üzərində tərtibatçı nəzarətinin sadələşdirilməsi və müştəri və serverin inkişafı tələblərindəki əsas fərqlər səbəbindən səhv riskinin azaldılması mülahizələri ilə diktə edilir. kod (müştəridə icra edilən kodu minimuma endirmək ehtiyacı, obyektlərin və platformaların növlərinin müxtəlif mövcudluğu və s.). Bu halda, konfiqurasiyada ümumi modulların sayının qaçılmaz artımını yadda saxlamaq lazımdır.

Qarışıq müştəri-server modullarının xüsusi halı, server və müştəri biznes məntiqini bir modulda həyata keçirmək üçün xüsusi olaraq hazırlanmış forma və əmr modullarıdır.

3.1. Ümumi modulların adlarının metadata obyektlərinin adlandırılması üçün ümumi qaydalara uyğun olması tövsiyə olunur. Ümumi modulun adı altsistemin və ya ayrıca mexanizmin adına, onun həyata keçirdiyi prosedurlara və funksiyalara uyğun olmalıdır. Ümumi modulların adlarında “Prosedurlar”, “Funksiyalar”, “İşləyicilər”, “Modul”, “Funksionallıq” və s. kimi ümumi sözlərdən qaçınmaq tövsiyə olunur. və yalnız müstəsna hallarda modulun məqsədini daha tam aşkar etdikdə istifadə edin.

Müxtəlif kontekstlərdə yerinə yetirilən prosedurları və funksiyaları həyata keçirmək üçün yaradılan bir alt sistemin ümumi modullarını ayırd etmək üçün onlara əvvəllər paraqraflarda təsvir olunan postfiksləri vermək tövsiyə olunur. 2.1-2.4.

Başlamaq