1s 8.3 mesajı bütün istifadəçilərə necə göstərmək olar. Kliklə hərəkətləri yerinə yetirin

1C: Enterprise platformasına əsaslanan proqramlarda mesaj istifadəçiyə müxtəlif yollarla göstərilə bilər.

1. Metod Xəbərdarlığı göstərin.

Xəbərdarlığı göstər(< ОписаниеОповещенияОЗавершении> , < ТекстПредупреждения> , < Таймаут> , < Заголовок> )

Bu dizayndan istifadə edərkən proqram interfeysinin mərkəzində xəbərdarlıq pəncərəsi görünür.

Seçimlər:

Təsvir Bildirişlər Tamamlandı(isteğe bağlı)
Növ: Təsvir Siqnallar. Xəbərdarlıq pəncərəsi aşağıdakı parametrlərlə bağlandıqdan sonra çağırılacaq prosedurun təsvirini ehtiva edir: Əlavə Parametrlər - AlertDescription obyekti yaradılarkən müəyyən edilmiş dəyər. Parametr göstərilməyibsə, tamamlandıqdan sonra heç bir prosedur çağırılmayacaq.

Mətn Xəbərdarlıqları(tələb olunur)
Növ: Simli; FormattedString. Xəbərdarlığın mətni.

Taymout (isteğe bağlı)
Növ: Nömrə. Sistemin istifadəçinin cavabını gözləyəcəyi saniyələrlə vaxt intervalı. Interval başa çatdıqda, xəbərdarlıq pəncərəsi bağlanacaq. Parametr göstərilməyibsə, fasilə müddəti qeyri-məhduddur. Parametr mənfi olarsa, istisna atılacaq. Defolt dəyər: 0.

Başlıq (isteğe bağlı)
Növ: simli. Xəbərdarlıq pəncərəsinin başlığını ehtiva edir. Təsvir: Xəbərdarlıq pəncərəsini göstərir, lakin onun bağlanmasını gözləmir.

Mövcudluq: İncə müştəri, veb müştəri, qalın müştəri, mobil proqram (müştəri).

Qeyd: İstifadəçi xəbərdarlıq pəncərəsini bağladıqdan sonra hər hansı kod icra edilməlidirsə, o zaman o, ayrıca modul prosedurunda yerləşdirilməli və parametrdə təsvir edilməlidir.

2. Xəbərdarlıq üsulu.

Proqram interfeysinin mərkəzində xəbərdarlıq pəncərəsi görünür. Bununla belə, əgər konfiqurasiya xüsusiyyəti ModeUseModalityİstifadə Etməyin , sonra üsul işləmir.

Mövcudluq: İncə müştəri, veb müştəri, mobil müştəri, qalın müştəri, mobil proqram (müştəri).

3. Metod ShowAlertUser.

ShowUserAlert(< Текст> , < ДействиеПриНажатии> , < Пояснение> , < Картинка> , < СтатусОповещенияПользователя> , < КлючУникальности> )

Bu üsuldan istifadə edərkən interfeysin aşağı sağ küncündə bir mesaj görünür.

Mövcudluq: İncə Müştəri, Veb Müştəri, Qalın Müştəri.

4. Hesabat metodu.

hesabat vermək (< ТекстСообщения> , < Статус> )

Mövcudluq: İncə müştəri, veb müştəri, mobil müştəri, server, qalın müştəri, xarici əlaqə, mobil proqram (müştəri), mobil proqram (server).

5. Obyekt MessageToUser.

İstifadəçiyə göstərilməli olan mesaj parametrlərini saxlamaq üçün nəzərdə tutulmuşdur. Mesaj hələ istifadəçiyə göstərilməyibsə (bu, server tərəfində, fon işində, xarici əlaqədə və ya Veb xidmətlərində işləyərkən ola bilər), siz metoddan istifadə edərək yığılmış mesajları əldə edə bilərsiniz. GetMessagesUser.

Xüsusiyyətlər: Təyinat ID(TargetID); Məlumat Açarı (DataKey); Sahə (Sahə); Datapath (Datapath); Mətn.

Metodlar: Hesabat (Mesaj); InstallData(SetData).

Mesaj interfeysin aşağı hissəsində, sətirdə görünür.

Mesaj = New MessageToUser() ; Mesaj. Mətn = “Kifayət qədər nomenklatura yoxdur”; Mesaj. Sahə = "Nomenklatura. Kəmiyyət"; Mesaj. SetData(DataObject); Mesaj. Hesabat vermək ();

Dərs zamanı biz: verilənlər bazası yaratdıq, emal yaratdıq, forma yaratdıq.

İndi biz sizə 1C-dən “Salam dünya!” mesajının 5 yolunu izah edəcəyik.

Ən azı iki üsul haqqında hər kəs bilmir 🙂

Proqramın mətnini necə və harada yazmaq olar?

"Modul" forması ilə pəncərə nişanına keçin. Orada artıq bəzi mətniniz olduğuna əmin olacaqsınız ("Prosedur...").

Mətn yoxdursa, onda:

  • Qalın müştəridə formanı emal üçün səhv əlavə etdiniz, əvvəldən təkrarlayın
  • İncə müştəridə düyməni əlavə etməyi unutmusunuz, əvvəldən təkrarlayın.

Mətnin içərisində bir sətir var:

// İşləyici məzmununu daxil edin

Tapşırıq bu xətti silmək və yerinə proqramın mətnini daxil etməkdir. Bundan sonra emalını qeyd edin və müəssisə rejimində açın.

Run kliklədiyiniz zaman daxil etdiyiniz hərəkətlər indi yerinə yetiriləcək.

İndi isə üsulların özlərinə keçək!

1C-də mesaj, 1-ci üsul - ən asan

Beləliklə, mətnin yerinə "// İşləyicinin məzmununu daxil edin." proqramın mətnini yazın.

alert("Salam dünya!");

Əslində, hamısı budur 🙂

Qalın müştəridə Müəssisə rejimində mesaj 1C pəncərəsinin altında, nazik müştəridə - emal pəncərəsində sağda olacaq.

Bu, ən sadə üsuldur və proqramçılar tərəfindən çox geniş istifadə olunur.

1C-də mesaj, üsul 2 - həm də sadədir

alert("Salam dünya!");

Əslində, hamısı budur 🙂

Hər iki müştəri seçimində Müəssisə rejimində mesaj pop-up pəncərədə olacaq.

1C-də mesaj, üsul 3 - yalnız 1C 8.2 versiyasında göründü

ShowUserAlert("Salam dünya!", "Həqiqətən salam!");

Bu üsul yalnız 1C 8.2 versiyasında ortaya çıxdı. Bu, ekranın aşağı sağ küncündə zaman keçdikcə sönən açılan pəncərədir.

1C-də mesaj, üsul 4 - proqramçı

Atmaq "Salam dünya!" İstisna;

Hər hansı bir proqramı icra edərkən xəta ola bilər. Bəzən bu xətanı əvvəlcədən hesablamaq olar (məsələn, a = b/c hesablamaq lazımdır və proqramın icrası zamanı c-nin 0-a bərabər olduğu məlum oldu).

Bu vəziyyətdə səhvi bu şəkildə bildirməyin bir yolu var.

1C-də mesaj, üsul 5 - texnoloji, yalnız tipik bir konfiqurasiya üçün

General Purpose.ReportError("Salam dünya!");

1C proqramçısı təkcə 1C platformasında olan proqramlaşdırma üsullarını deyil, həm də tipik konfiqurasiyalarda olanları bilməlidir.

Başlayanlar, hər hansı bir tipik konfiqurasiya əlavə etməyə çalışarkən, təkəri yenidən kəşf etməyə başlayırlar.

Budur gözəl bir nümunə. Bu xüsusiyyət bir çox tipik konfiqurasiyada mövcuddur (yalnız qalın müştəri üçün!). Nəticənin 1-ci metodun hərəkətinə bərabər olduğu görünür.
Bununla belə, yox - bəzi konfiqurasiyalarda (məsələn, SCP) səhv mesajları jurnalda təkrarlanır. Həmçinin, əlavə fərdiləşdirmə ilə mesaj tamamilə fərqli görünür.

Beləliklə, indi özünüzü əsl proqramçı kimi hiss edə bilərsiniz!

1C proqramlaşdırması budur. Əlbəttə ki, real proqramlaşdırma çox daha mürəkkəbdir və çoxlu bilik tələb edir, lakin indi ümumi bir fikrə sahibsiniz.

Uğurlar!

P.S. Öz təcrübənizi yaratmağı asanlaşdırmaq üçün skrinşotlar təlimatın pdf versiyasında verilmişdir.

P.P.S. Dərs üçün proqramlaşdırma üçün baza yaratmaq, emal yaratmaq, qalın və nazik müştəridə proqramlaşdırma nümunələri ilə 5 video verilmişdir.

8.3.10.2168 versiyasında həyata keçirilir.

Biz istifadəçi bildiriş mexanizmini təkmilləşdirmişik. İndi həm nazik müştəridə, həm də veb müştəridə istifadə etmək eyni dərəcədə rahatdır. Xəbərdarlıqların görünüşünü yenidən dizayn etdik və onlara bir sıra yeni funksiyalar əlavə etdik.

Çoxsaylı xəbərdarlıqları göstərin

Köhnə tətbiqdə ekranda bir anda yalnız bir bildiriş göstərilirdi. Yeni xəbərdarlıq əvvəlki ilə üst-üstə düşdü. Beləliklə, bir neçə bildiriş ard-arda göstərilibsə, istifadəçinin əvvəlki bildirişi oxumağa vaxtının olmama ehtimalı yüksək idi, çünki növbəti bildiriş onu bloklayacaq.

İndi əksər hallarda eyni vaxtda üçə qədər xəbərdarlıq göstərilə bilər:

Bu, brauzerlərdə işləyən nazik müştəri, qalın müştəri və veb müştəri üçün doğrudur. internet ExplorerGoogle Chrome. Brauzerlər safariMozilla Firefox limitsiz sayda xəbərdarlıqları və brauzeri göstərməyə imkan verir Microsoft Edge son bir xəbərdarlıq göstərir, lakin var Fəaliyyət Mərkəzi, burada bütün bildirişlər təkrarlanır.

Proqram pəncərəsi qeyri-aktiv olduqda xəbərdarlıqları göstərin

Əvvəllər veb müştəri yalnız aktiv brauzer pəncərəsində xəbərdarlıqları göstərirdi. İstifadəçi başqa pəncərəyə və ya başqa proqrama keçibsə, xəbərdarlığı görməyib. İndi veb-müştəridən istifadə edərkən, proqram pəncərəsi kiçildildikdə və ya qeyri-aktiv olduqda belə, bildirişlər ekranda göstərilir.

Metod ilk dəfə çağırılır ShowUserAlert() veb müştəridə Google Chrome, Mozilla Firefoxsafari brauzer istifadəçidən xəbərdarlıqlardan istifadə etmək üçün icazə istəyəcək. İstifadəçi bu proqram üçün çıxışına icazə verə və ya qadağan edə bilər.

İstifadəçi bildirişləri deaktiv edərsə, o zaman yeni növ bildirişlər istifadə olunacaq, lakin onlar brauzer pəncərəsinin içərisinə çəkiləcək.

Xəbərdarlıq Mərkəzi

Bildirişlərin əbədi olaraq yoxa çıxmasının qarşısını almaq üçün biz həyata keçirdik xəbərdarlıq mərkəzi. Bildirişlərin özləri üçün yeni bir xüsusiyyət tətbiq etdik - StatusAlertUser. İki dəyər ala bilər: MəlumatƏhəmiyyətli.

Status Siqnalları Məlumat ekranda göstərilir və 10 saniyədən sonra yox olur (brauzerdə Microsoft Edge– 4 saniyədən sonra). Status Siqnalları Əhəmiyyətli tam olaraq eyni davranırlar, lakin onlar xəbərdarlıq mərkəzində saxlanılır.

Xəbərdarlıq mərkəzi alətlər panelində mövcuddur. Yeni vacib xəbərdarlıqların olması onun ikonasının yanında narıncı nöqtə ilə işarələnir.

Xəbərdarlıq Mərkəzi istifadəçinin xəbərdarlıqla bağlı fəaliyyətini bağlamaqla və ya həyata keçirməklə hələ cavab vermədiyi mühüm xəbərdarlıqları göstərir. Xəbərdarlıqlar göründükləri ardıcıllıqla, ən yenisi yuxarıda verilmişdir. Beləliklə, istifadəçi kompüteri tərk etsə belə, vacib xəbərdarlıqları qaçırmayacaq.

Təmizləmə düyməsi ilə bildiriş siyahıdan silinə bilər. Əgər hansısa hərəkət bildirişlə bağlıdırsa, bildirişin mətninə kliklədikdən sonra o da yox olacaq. Komanda Siqnalları silin bütün xəbərdarlıqları siyahıdan silir. Eyni zamanda, hərəkətlər bildirişlərlə əlaqəli olsaydı, yerinə yetirilmir.

Kliklə hərəkətləri yerinə yetirin

Köhnə tətbiqdə, xəbərdarlıq tıklandıqda edilə bilən yeganə hərəkət naviqasiya linkini izləmək idi. İkinci parametr kimi metoda keçdi.

<Текст>, <НавигационнаяСсылка>, …

İndi biz bildirişlərin imkanlarını genişləndirmişik və ikinci parametrdə yalnız naviqasiya bağlantısı olan bir sətir deyil, həm də bildirişin təsvirini ötürə bilərsiniz.

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, …

Xəbərdarlığın təsviri xəbərdarlığa kliklədikdə yerinə yetiriləcək proseduru göstərir.

Görünüş

İnterfeys variantında nazik müştəridə taksi bildirişlərin üslubu brauzer bildirişlərinin üslubuna mümkün qədər yaxın olacaq Google Chrome istifadə edərək Bildirişlər API.


İnterfeys seçimi istifadə edilərsə Versiya 8.2, xəbərdarlıqların üslubu və davranışı eyni olaraq qalır.

Veb müştəridə xəbərdarlıqların görünüşü istifadə etdiyiniz brauzer tərəfindən müəyyən edilir. Ümumiyyətlə, xəbərdarlıqlar nazik müştəridəki kimi görünəcək, lakin hər bir brauzerin öz xüsusiyyətləri var. Məsələn, eyni xəbərdarlıqların necə görünəcəyini müqayisə edə bilərsiniz internet ExplorerMozilla Firefox.


Bundan əlavə, başqa xüsusiyyətlər də var. Məsələn, brauzerdə internet Explorer yalnız proqram pəncərəsində göstərilən xəbərdarlıqlar dəstəklənir. Və brauzerdə safari parametr Şəkil dəstəklənmir və xəbərdarlıqlar ekranın yuxarı hissəsində göstərilir.

İnkişaf istifadəçiləri həm seçmə, həm də hamısını xəbərdar etmək üçün nəzərdə tutulmuşdur, siz həmçinin sadəcə mesaj yaza və ya istifadəçilər arasında yazışa bilərsiniz.

İnkişaf məlumat reyestridir və idarə olunan və ya müntəzəm proqram modulunda dəyişiklikdir.
Xəbərdarlığı işə salmaq üçün məlumat reyestrinə qeyd əlavə etməlisiniz, istifadəçilər bildiriş vaxtının başlanğıcı və sonu arasında müəyyən edilmiş müddətdə bildirişlər alacaqlar.

İDARƏ EDİLƏN TƏTBİQ

DAVAMLI TƏTBİQ

Xəbərdarlıq pəncərəsi göstərilir istifadəçi proqramında bütün interfeysi bloklayır və hazırda proqramda işləyən istifadəçilər bildirişi qaçırmayacaq və müvafiq olaraq oxuyacaqlar.

İDARƏ EDİLƏN TƏTBİQ

DAVAMLI TƏTBİQ

Qeydiyyat siyahısı

Bildirişlər siyahısında siz bildirişi kimin aldığını və kimin oxuduğunu görə bilərsiniz.

İDARƏ EDİLƏN TƏTBİQ

DAVAMLI TƏTBİQ

İnkişafı konfiqurasiyanızda həyata keçirmək üçün aşağıdakıları etməlisiniz:

  1. Konfiqurasiyanı redaktə etmək qabiliyyətini təyin edin.
  2. Bu nəşrdə verilmiş konfiqurasiya ilə müqayisə edin. Bu, tətbiqin əsas işə salınma rejimindən asılı olaraq İstifadəçi Xəbərdarlıqları məlumat reyestrini və adi və ya idarə olunan proqram moduluna giriş əlavə edəcək.

    Adi və ya idarə olunan tətbiqin modul girişi fərqlidir:

    İDARƏ EDİLƏN TƏTBİQ

SystemStartup Procedure() //Proqram istifadəçilərini xəbərdar etmək üçün tipik konfiqurasiyanın dəyişdirilməsi (istənilən istifadəçiyə mesaj göndərilməsi) //Bütün konfiqurasiyalar üçün uyğundur ConnectWaitingHandler("modNotificationProcessingHandler", 60); EndProcedure // AtSystemStart() //Proqram istifadəçilərini xəbərdar etmək üçün tipik konfiqurasiyanın dəyişdirilməsi (istənilən istifadəçiyə mesaj göndərilməsi) //Bütün konfiqurasiyalar üçün uyğundur //Gözləmə idarəçisinin çağırılması forma bağlanana qədər davam edir //yaxud forma metoduna qədər adlanır Mod procedureAlertProcessHandler( ) Export MessageToUser = GetForm("InformationRegister.UserAlerts.Form.SendFormControl").GetNotificationProcessingMessages(); Əgər MessageToUser = Müəyyən edilməmişsə, Form = GetForm("InformationRegister.UserAlerts.Form.AlertControl"); Form.Open() deyilsə, onda FillPropertyValues(Form,MessageToUser,"Yalnız Baxış"); Form.Open(); Əks halda Form.Activate(); EndIf; EndIf; Prosedurun Sonu STANDART TƏTBİQ SystemStartProcedure() //Proqram istifadəçilərini xəbərdar etmək üçün standart konfiqurasiyanı dəyişdirin (istənilən istifadəçiyə mesaj göndərin) //Bütün konfiqurasiyalar üçün uyğundur ConnectWaitingHandler("modAlertProcessingHandler", 60); EndProcedure // AtSystemStart() //Proqram istifadəçilərini xəbərdar etmək üçün tipik konfiqurasiyanın dəyişdirilməsi (istənilən istifadəçiyə mesaj göndərilməsi) //Bütün konfiqurasiyalar üçün uyğundur //Gözləmə idarəçisinin çağırılması forma bağlanana qədər davam edir //yaxud forma metoduna qədər adlanır Mod procedureAlertProcessHandler( ) Export MessageToUser = RegistersInformation.AlertUser.GetMessageProcessingNotification(); MessageToUser = Müəyyən edilməmişsə Forma = GetForm("InformationRegister.UserAlerts.Form.AlertUsual"); Form.Open() deyilsə, onda FillPropertyValues(Form,MessageToUser,"Yalnız Baxış"); Form.OpenModal(); Əks halda Form.Activate(); EndIf; EndIf; EndProcedure

İnkişafın həyata keçirilməsi pulsuzdur, 10 dəqiqə ərzində həyata keçirilir.

30 gün ərzində pulsuz texniki dəstək.
AT

İnkişaf platforma 8.3, müxtəlif standart və qeyri-standart konfiqurasiyalar, nazik, qalın müştəri və veb müştəri rejimlərində nəzərdə tutulub.

Özünü təkmilləşdirmək mümkündür, kod redaktə üçün açıqdır.

Almaq üçün səbəblər

Bildiriş üçün çox rahat seçim, 1C istifadəçilərinə texniki işlər, konfiqurasiyanın təkmilləşdirilməsi, yeniləmələr, 1-ci proqram çərçivəsində 1C istifadəçiləri arasında yazışma imkanı haqqında bildiriş.

Üstünlüklər

1) Analoqlardan fərqli olaraq bütün istifadəçilərə xəbərdarlıqların 100% çatdırılması.
2) Şəkillər göndərmək imkanı.
3) Mesajlar siyahısında istifadəçi fəaliyyətinə baxın (kimə çatdırılıb, kim oxuyub).
4) Bildiriş göndərən şəxsə cavab yazmaq imkanı.
5) Quraşdırılmış redaktə etmək imkanı ilə konfiqurasiyaları yeniləyərkən digər obyektlərə təsir göstərmir.

Pul Geri Zəmanət

Proqram təsvirdə elan edilmiş funksionallığa uyğun gəlmirsə, Infostart MMC sizə 100% geri qaytarılmağa zəmanət verir. Pulun hesabımıza daxil olduğu tarixdən etibarən 14 gün ərzində bəyan etsəniz, pul tam şəkildə geri qaytarıla bilər.

Proqram işdə o qədər sınaqdan keçirilmişdir ki, biz tam əminliklə belə bir zəmanət verə bilərik. İstəyirik ki, bütün müştərilərimiz alışlarından məmnun olsunlar.

Məqalə "1C-də inkişafda ilk addımlar" məqalələr silsiləsini davam etdirir.

Burada 1C: Enterprise 8 platformasında olan istifadəçini məlumatlandırmağın yollarını nəzərdən keçirəcəyik, həmçinin diqqətinizi bu mexanizmlərin işinin bəzi xüsusiyyətlərinə yönəldəcəyik, bu xüsusiyyətlər modallıqdan istifadə rejimi ilə əlaqələndirilir.

Uyğunluq

Məqalədə funksionallıq müzakirə olunur:

  • "1C:Enterprise" 8.2.19.130 platformasında hazırlanmış konfiqurasiya üçün "Versiya 8.2" versiyasında interfeys
  • 1C: Enterprise platforması 8.3.4.496-dan 8.3.9+-a qədər hazırlanmış konfiqurasiya üçün taksi interfeysi
  • 1C: Enterprise platforması 8.3.10-8.3.11-də hazırlanmış konfiqurasiya üçün taksi interfeysi

1C-də istifadəçiyə mesajı necə göstərmək olar

İstifadəçi rejimində mesajların göstərilməsi bir sıra problemləri həll edir:

  • cari prosesin gedişatının əks olunması (prosesin mərhələsini göstərmək; alqoritmin işləməsi zamanı əldə edilmiş hesablanmış dəyərləri göstərmək);
  • səhvlərin mümkün düzəlişləri üçün istifadəçiyə verilməsi;
  • tövsiyələrin verilməsi;

Mesaj növləri:

  • proqramın icrasını dayandıran və istifadəçi bu mesajı oxuyana və müəyyən hərəkətləri yerinə yetirənə qədər davam etməsinə mane olan terminatorlar. Məsələn, istifadəçiyə ekranda sual veriləcək, o suala Bəli və ya Xeyr cavabını verməli olacaq. İstifadəçi cavab verənə qədər proqram sonrakı hərəkətləri yerinə yetirmir;
  • istifadəçiyə sadəcə olaraq göstərilən və onların daha da işləməsinə imkan verən giriş mesajları (yəni, xəbərdarlıq rejimində istifadə olunur).

Xitam mesajları səhv mesajları və giriş mesajları olmalıdır: tövsiyələr, prosesin cari mərhələsi haqqında mesajlar və hesablanmış dəyərlərin göstərilməsi (debug çapı).

Giriş mesajları istifadəçiyə müəyyən məlumat vermək məqsədi daşıyır.

İstifadəçinin onu oxuması və bəlkə də bu mesajda təsvir olunan bəzi hərəkətləri etməsi lazımdır.

İstifadəçinin bu mesajları həqiqətən oxuması çox vacibdir, ona görə də onlar yalnız vacib məlumatları ehtiva etməlidir.

Test və debug mesajları istifadəçiyə verilməməlidir, çünki gec-tez o, tamamilə bütün mesajlara məhəl qoymağa başlayacaq.

İdarə olunan interfeys konsepsiyasında mesajın verilməsinə yanaşma bir qədər dəyişdi. İndi o, yarandığı forma ilə bağlıdır. Mətnin tamamilə görünməməsi üçün artıq bağlana bilməz.

Mesaj qutusunu formadan çıxara bilməzsiniz.

Funksiya sintaksisi:

hesabat vermək (<Текст сообщения>, <Статус>)

Bunlar. birinci parametr mətnin özüdür.

İkinci parametr (mesaj statusu) isteğe bağlıdır. Status üçün dəyərlər təyin edə bilərsiniz: Normal, Əhəmiyyətli, Çox vacib və s.

Bu dəyər mesajın yanında hansı işarənin yerləşdiriləcəyini müəyyənləşdirir. Ancaq bu, yalnız normal interfeysdə işləyir.

İdarə olunan interfeys konsepsiyasında simvol həmişə nida işarəsidir və onu ləğv etmək olmaz.

Məsələ burasındadır ki, mesaj lüğət elementinin yazılması zamanı yaranarsa, aşağıdakı vəziyyət yarana bilər.

İstifadəçi bir düyməni klikləyir Yazın və bağlayın, bu halda mesaj müvafiq pəncərədə (formanın sağında) göstərilir.

Ancaq forma dərhal bağlanır və istifadəçi onun üçün bəzi məlumatların göstərildiyini görməyəcək.

Buna görə də, idarə olunan proqram konsepsiyasında bildirişlər deyilən məlumatlardan istifadə edərək məlumat mesajlarını göstərmək tövsiyə olunur. Bir funksiyanın səhv istifadəsinə misal Hesabat verməkşəkildə göstərilmişdir.

Bununla belə, funksiya Hesabat vermək bəzi səhvlər haqqında məlumatı göstərmək üçün istifadə edilə bilər, məsələn, sənədin yerləşdirilməsi zamanı.

Bu zaman sistem sistemə formanın bağlanmasına ehtiyac olmadığını deyə bilər və istifadəçiyə sənədi yerləşdirərkən hansı xətaların baş verdiyini göstərə bilər.

Funksiya Hesabat vermək Platforma 8.3-də tam dəstəklənir. O, istifadə edilə bilər və işləyəcək (həm fayl versiyasında, həm də müştəri-server versiyasında).

Amma onu da qeyd etmək lazımdır ki, funksiya Hesabat vermək daha bir inkişaf var - bu, mesajı göstərməklə yanaşı, onu istənilən forma elementlərinə kontekstdə bağlamağa imkan verən istifadəçi üçün mesaj sinfidir.

Məsələn, istifadəçiyə çox görünən forma elementinə xəta mesajı əlavə edilə bilər. Bu məsələyə bir az sonra qayıdacağıq. Funksiya Hesabat vermək maraqlı xüsusiyyəti var.

Beləliklə, Platform 8.3-də proqram kodu həm Müştəri tərəfində, həm də Server tərəfində icra edilə bilər.

Bu halda, müştəri proqram kodu istifadəçi ilə qarşılıqlı əlaqə üçün məsuliyyət daşıyır, yəni. müştəri tərəfində formalar açılır, hesabatlar göstərilir.

Müxtəlif dialoq sənədləri də yalnız müştəridə göstərilir. Serverdə onlar icra oluna bilməz, çünki serverin istifadəçilərlə əlaqə saxlamaq imkanı yoxdur.

Amma funksiya Hesabat vermək həm Müştəri tərəfində, həm də Server tərəfində icra oluna bilər. Ancaq metoddan istifadə edərək Hesabat vermək Serverdə mesajın Serverdə göstəriləcəyi demək deyil, onları göstərmək üçün sadəcə heç bir yer yoxdur.

Bu o deməkdir ki, əgər bu üsuldan istifadə etməklə server prosedurunda mesajı nümayiş etdirsək, onlar hansısa buferdə toplanacaq və onlar yalnız server proseduru başa çatdıqda və Clientə qayıtdıqda ekranda görünəcəklər.

Bu zaman sistem buferdən məlumatları tələb edəcək və onu ekranda göstərəcək.

Eyni xüsusiyyət sinifə aiddir MessageToUser. Şəkildə metoddan istifadə nümunəsi göstərilir Hesabat vermək Server tərəfində.

Metoddan istifadə nəticəsində Hesabat vermək Server tərəfində, Müştəri tərəfində ekranda mesajlar göstərilirdi.

Xəbərdarlıq mexanizmi istifadəçiyə sistemdə “nəyinsə” baş verdiyini bildirmək üçün lazımdır və bu “nəsə” istifadəçinin diqqətini tələb edir. Xəbərdarlıqlar iki ssenari ilə yaradılır:

  1. Bir obyekti interaktiv şəkildə yazarkən və ya dəyişdirərkən platformanın özü tərəfindən
  2. Metod kodunu çağırarkən tərtibatçı .

Bildirişin özü, bir qayda olaraq, aşağı sağ küncdə görünən və görülən hərəkətləri bildirən kiçik bir pəncərədir. Bir neçə saniyə ərzində o, tədricən sönür və yox olur. Eyni zamanda, siçan kursorunu bildirişin üzərinə aparsanız, sönmür və onu diqqətlə oxuya bilərsiniz.

Bundan əlavə, bildirişlərə məlumat panelinin müvafiq sahəsində ("Versiya 8.2" interfeys seçimində ərizə formasının sol altındakı "Tarix" düyməsi) daxil olmaq olar.

Öz xəbərdarlıqlarınızı yaratmaq üçün qlobal kontekst metodundan istifadə etməlisiniz ShowUserAlert(). 8.3.10-a düzəlişdən əvvəl onun sintaksisi aşağıdakı kimidir:

İstifadəçi Xəbərdarlığını göstər (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Birinci parametr xəbərdarlıqda göstəriləcək mətndir.

Bundan əlavə, ikinci parametr olaraq, infobazanın hər hansı bir elementinə (mesajımızın mətninə uyğun gələn element) bəzi naviqasiya keçidini ötürə bilərsiniz. İstifadəçi xəbərdarlığa kliklədikdə həmin linkə yönləndiriləcək.

Üçüncü parametrin köməyi ilə mesaj üçün izahat ötürə bilərsiniz, yəni. bəzi geniş təsvir.

Siz həmçinin bildiriş statusunu göstərən şəkil təyin edə bilərsiniz.

Nəzərə alın ki, bütün bu parametrlər isteğe bağlıdır. Aşağıda bu metoddan istifadə nümunəsi verilmişdir (konfiquratorda və istifadəçi rejimində "Versiya 8.2" interfeys seçimində).

"Taksi" versiyasında interfeys üçün platformanın 8.3.10.216 versiyasında həm nazik, həm də veb-klientlərin istifadə imkanlarını yaxşılaşdırmaq üçün bildiriş mexanizmi əhəmiyyətli dərəcədə təkmilləşdirilib. Bu səbəbdən metoda keçən parametrlər də dəyişib. ShowUserAlert(). İndi sintaksis belə görünür:

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, <Пояснение>, <Картинка>, <СтатусОповещенияПользователя>, <КлючУникальности>)

Görünə bilər ki, əvvəllər çağırılan ikinci parametr Naviqasiya keçidi, yeni ad aldı ActionOnPress. Bu onunla əlaqədardır ki, indi ona yalnız naviqasiya keçidi olan sətir deyil, həm də siqnalın təsvirini ötürmək mümkün olub. Bu, aşağıdakı ekran görüntüsündə təsvir edilmişdir:

Nümunədən də göründüyü kimi, indi biz lazım olan məntiqə uyğun olaraq bildiriş pəncərəsinə klikləməyi proqramlı şəkildə idarə etmək imkanımız var.

Növbəti parametr StatusAlertUser ilk dəfə ortaya çıxdı. Xəbərdarlığın vəziyyətini göstərir (Məlumat və ya Vacib).

Vacib seçim vəziyyətində, əgər istifadəçi mesaja cavab vermədisə, o, ekrandan gizlədildikdən sonra onu Bildiriş Mərkəzi vasitəsilə oxumaq olar (aşağıda daha ətraflı). Məlumat seçimində bildiriş bu mərkəzdə saxlanmadan silinir. Nümunəmizdəki kodu aşağıda göstərildiyi kimi yenidən yazaq:

Əmri yerinə yetirdikdən sonra proqram pəncərəsinin təxminən aşağıdakı görünüşünü alırıq:

Alətlər panelində yuxarıda qeyd olunan Xəbərdarlıq Mərkəzini çağıran zəng işarəsi olan düymə göründü. İstifadəçinin hələ cavab vermədiyi yeni vacib xəbərdarlıqları toplayır.

Mərkəzdə hər hansı xəbərdarlıq varsa, o zaman istifadəçinin diqqətini cəlb etmək üçün onun yanında kiçik narıncı nöqtə görünür. İstifadəçi Xəbərdarlıq Mərkəzini aça, mətni oxuya və lazım gələrsə, bəzi hərəkətləri edə bilər.

Təmizləmə düyməsini klikləməklə bildiriş Mərkəzdən silinir, lakin əgər hansısa hərəkət bildirişlə əlaqələndirilirsə, o zaman istifadəçi mesajın mətninə klikləyən kimi o da yox olacaq.

Və nəhayət, əlavə edilən son parametr oldu Açar Unikallıq. Siz ekranda göstərilən siqnalı tapmaq və onu dəyişdirmək üçün ondan istifadə edə bilərsiniz. Bu parametrlə bildiriş yoxdursa, yeni bildiriş göstəriləcək.

Gördüyünüz kimi, müvafiq metodun təqdim etdiyi imkanlar daha da genişləndi! Lakin bunlar bildiriş mexanizmindəki bütün dəyişikliklər deyil.

Yəqin ki, artıq qeyd etdiyiniz kimi, onların görünüşü dəyişdi. Xəbərdarlıqlar indi daha müasir və erqonomik görünür, lakin onları ekran ətrafında köçürmək və ya ölçüsünü dəyişmək mümkün deyil. Nəzərə alın ki, nümunəmizdə bildirişin mətni sadəcə olaraq pəncərənin özünə tam uyğun gəlməyib və istifadəçi yalnız Bildiriş Mərkəzini açaraq onu tam oxuya bilər. Ona görə də bildirişin mətnində böyük həcmdə mətn yazmaq lazım deyil.

Həmçinin yeni funksiyalara ekranda eyni vaxtda üç xəbərdarlığın göstərilməsi daxildir.

Bununla, xəbərdarlıqların proqramlı nəsli ilə tanışlığımız yekunlaşır. Bununla belə, unutmayın ki, bildirişlər yalnız proqram tərtibatçı tərəfindən deyil, həm də interaktiv yazı və ya obyektin dəyişdirilməsi zamanı platformanın özü tərəfindən yaradılır. Və tez-tez bu fakt, ilk növbədə, təcrübəsiz istifadəçilər arasında anlaşılmazlığa səbəb olur: yeri gəlmişkən, söndürülə bilməyən bu xidmət siqnallarına niyə ehtiyacımız var?

Belə bir sadə vəziyyəti təsəvvür edək: istifadəçi rahatlıq üçün bəzi siyahıda filtr qoyub. Tutaq ki, o, bunu Nomenklatura istinad siyahısı şəklində edib. Sonra, bir müddət sonra, əvvəllər təyin edilmiş filtrə uyğun gəlməyən "Kreslo" adlı yeni bir element təqdim etmək qərarına gəldim. O, daxil olur, yazır və ...? Və siyahıda görmür. Orta istifadəçi nə edəcək? Təbii ki, ikinci dəfə girəcək, amma bir daha görməyəcək. Üçüncü, dördüncü, beşinci dəfə ola bilər. Eyni şeyə girməkdən yorulanda, nəhayət, sizdən soruşacaq: hər şey hara yox olur?

Buna görə də platforma bu xidmət xəbərdarlıqlarını göstərir və istifadəçiyə onun hərəkətinin tamamlandığını bildirir. Bizim nümunəmizdə, interaktiv qeyd zamanı istifadəçi aşağıdakı bildirişi görəcək:

Xitam mesajları

Xitam mesajları istifadəçi müəyyən hərəkətləri yerinə yetirməyincə işləməyinizə imkan verməyəcək mesajlardır, yəni. mesajı emal edənə qədər.

Platforma 8.3-də xitam mesajlarından istifadə imkanları haqqında bir az sonra danışacağıq (onlar son vaxtlar onlardan istifadə etməməyə çalışırlar, ona görə də nəzərdən keçirilən nümunə daha çox Platforma 8.2-yə aiddir).

Xitam mesajlarının verilməsinin iki üsulu var Bir xəbərdarlıqSual. Bir xəbərdarlıq-dən fərqlənir sualçünki onun tək düyməsi var tamam.

Sualın müxtəlif cavab variantları ola bilər ( Həqiqətən yox, Bəli Xeyr Ləğv et, tamam, OKLəğv et, Yenidən cəhd edin Ləğv edin, AbortRetrySkip), parametrdən istifadə edərək təyin olunur.

Gəlin bir sətirdən istifadə edərək bir növ xəbərdarlıq göstərək (məsələn, idarə olunan proqram modulunda):

Alert("Baza indi açılacaq");

İdarə olunan proqram modulunu açmaq üçün konfiqurasiya ağacında obyekti seçin Konfiqurasiya, kontekst menyusuna zəng edin və elementi seçin İdarə olunan Tətbiq Modulunu açın.

Bu halda, proqram başlayanda modal olan bir pəncərə görünəcək. Modal pəncərə tətbiqdə mövcud olan bütün pəncərələri əhatə edir. Biz bu pəncərəni emal edənə qədər başqa heç bir hərəkət etmək mümkün deyil.

Funksiya eyni şəkildə işləyir. Sual.

Sintaksis:
sual(<ТекстВопроса>,<Кнопки>,<Таймаут>,<КнопкаПоУмолчанию>,<Заголовок>,
<КнопкаТаймаута>);

Yalnız ilk iki parametr tələb olunur. İkinci parametr üçün məlumat növü kompozitdir ( Dialoq rejimi sualı və ya Dəyərlərin Siyahısı). Üçüncü parametr ( <Таймаут> ) sistemin istifadəçinin cavabını gözləyəcəyi vaxt intervalını saniyələrlə xarakterizə edir.

Interval başa çatdıqda sual pəncərəsi bağlanacaq. Oxşar parametr( <Таймаут> ) funksiyası da var Bir xəbərdarlıq.

Funksiyadan istifadə nümunəsi kimi Sualİdarə olunan proqram modulunda yazılmış aşağıdakı kodu istifadə edə bilərsiniz:

Qeyd edək ki, bu üsullar Bir xəbərdarlıqSual) Serverdə mövcud deyil. Bu da məntiqlidir, çünki istifadəçinin olmadığı Serverdə interfeys metodları icra edilə bilməz.

Platforma 8.3-də modal pəncərələrdən istifadənin xüsusiyyətləri

Platforma 8.3-də modallıqdan istifadə etməklə və istifadə etmədən iş rejimləri mövcuddur. Defolt parametr Modallıq rejimindən istifadə etməyin.

Bu halda, xitam mesajları istifadə edilə bilməz. Əgər xitam mesajlarından istifadə etmək lazımdırsa (funksiyalar Bir xəbərdarlıqSual) konfiqurasiya xassəsinin dəyərini dəyişdirməlisiniz üstündə istifadə edin.

Modal pəncərə ən yuxarıda göstərilir və bloklar modal pəncərə tamamlanana qədər digər pəncərələrlə işləyir. Bundan əlavə, proqram kodunun icrası bu pəncərənin çağırıldığı yerdə dayandırılır. Kodun icrası yalnız modal pəncərə bağlandıqdan sonra davam edəcək.

Birincisi, modal pəncərələrdən istifadə problemləri mobil proqram üçün yaranır. İkincisi, brauzerdə pəncərə modallığı ayrı pop-up pəncərələrdən istifadə etməklə həyata keçirilir.

Pop-up pəncərələr tez-tez standart brauzer parametrlərində söndürülür. İstifadəçi bu pəncərələrdə icazələr təyin etməyə məcbur edilməlidir.

Planşetlər və telefonlar üçün brauzerlər əksər hallarda pop-upları heç dəstəkləmir.

Funksiyaları əvəz etmək üçün SualBir xəbərdarlıq yeni üsullar işlənib hazırlanmışdır: Sualı göstər, Xəbərdarlığı göstərin.

Bu üsullar pəncərəni çağırmağa imkan verir, lakin proqram kodunun icrasını dayandırmır. Texniki cəhətdən bu, ana pəncərənin daxilində psevdo-pəncərə formalaşdırmaqla həyata keçirilir. Pseudo-pəncərə ana pəncərə ilə üst-üstə düşmür. Belə bir pəncərə açıldıqdan sonra kodun icrası davam edir.

İstifadəçi tərəfindən daxil edilmiş dəyərlərin qəbulu və işlənməsi dialoq qutusu bağlandıqda çağırılan ayrıca prosedurda həyata keçirilir.

Funksiya sintaksisi Xəbərdarlığı göstərin:

Xəbərdarlığı göstər(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)

Parametr <ОписаниеОповещенияОЗавершении> (isteğe bağlı)

Məlumat növü: Təsvir Xəbərdarlıqlar.

Xəbərdarlıq pəncərəsi bağlandıqdan sonra çağırılacaq prosedurun təsvirini ehtiva edir.

Funksiya sintaksisi Sualı göstər:

Sualı göstər(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)

İlk üç parametr tələb olunur.

Aşağıda funksiyadan istifadə nümunəsi verilmişdir.

Class MessageToUser

Mesaj sinfinin əsas rahatlığı MessageToUser bu kontekstli mesajdır (metodlardan fərqli olaraq Bir xəbərdarlıqSual).

Mesajlar müəyyən bir ekran elementinə bağlana bilər. Bu obyekt Serverdə də mövcuddur.

Qeyd etmək lazımdır ki, ilk növbədə, bu obyekt yaradılmalıdır. Misal üçün: Mesaj = New MessageToUser;

Beləliklə, bu obyektin bir nümunəsini yaradırıq.

İkincisi, mesajın mətnini ayrıca xüsusiyyətdə yazmalısınız.

Üçüncüsü, əmlakda Sahə Verilmiş mesajın hansı forma elementinə əlavə olunacağını təyin edə bilərsiniz.

Diqqət! İstədiyiniz forma sahəsinə bağlamaq üçün xassələrin işə salınmasına diqqət yetirin PathToDataDataKey. Sənəd üçün kodu obyekt moduluna yerləşdirərkən yaza bilərsiniz:

Message.DataPath = “Obyekt”;
Message.DataKey = ThisObject.Reference;

Sənəd modulunu açmaq üçün obyektin (sənədin) redaktə pəncərəsində, nişanda Digər düyməsini sıxın Obyekt modulu.

Təcrübə üçün kodu istənilən sənədin obyekt moduluna yerləşdirək.

Aşağıda Platform 8.3 üçün istifadəçi rejimində əldə edilən nəticə verilmişdir.

Qeyd etmək lazımdır ki, mesajlar yeni sistem obyektindən istifadə etməklə göstərilir MessageToUserümumiyyətlə, onlar dayandırılmır. Bunlar. sistem istifadəçiyə göstərilən mesajlara cavab vermədən sonrakı hərəkətləri davam etdirməyə imkan verəcək.

Lakin, ilk növbədə, bu mesajlar kifayət qədər nəzərə çarpır. İkincisi, mesajlar adətən kataloqların elementlərini yazarkən və ya sənədləri yerləşdirərkən, yəni bəzi yoxlamalar aparıldıqda istifadəçiyə göstərilir. Səhvlər aşkar edilərsə, istifadəçi eyni mesajları görəcək.

Müvafiq olaraq, səhvlərin aşkarlanması zamanı əməliyyat ləğv edilir, yəni. kataloqun elementini qeyd etmək və ya sənədi yerləşdirmək qadağandır.

Beləliklə, xitam mesajının bir növ emulyasiyası baş verir. İstifadəçi daxil edilmiş mesaja cavab verənə qədər hərəkət ləğv edildiyi üçün sənədi sürüşdürmək kimi əməliyyatı tamamlamaq mümkün olmayacaq.

Amma digər tərəfdən, sənədi tutmadan, mesaja heç bir şəkildə reaksiya vermədən bağlamaq mümkündür. Buna görə də istifadəçiyə göndərilən bu mesajlar dayandırılmır.

Proses statusu bildirişi

Prosesin təxmini gedişini göstərə biləcəyiniz xüsusi bir funksiya var.

Sintaksis: dövlət(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Seçimlər:<ТекстСообщения>və<Пояснение>- isteğe bağlı, növ - Xətt.
Mətn xüsusi status çubuğunda göstərilir.
<Прогресс>parametr də isteğe bağlıdır, lakin təsviridir.
Növ: Nömrə. Tərəqqi çubuğunun dəyəri (1-dən 100-ə qədər).
<Картинка>həm də isteğe bağlı parametrdir.
Hər hansı bir hadisəni emal edərkən, dövri funksiya çağırışlarından istifadə edilə bilər:

Bu vəziyyətdə yazılar dəyişə bilər və Progress parametrinin dəyərləri dəyişə bilər.

Funksiya həm bir prosedurdan (funksiyadan), həm də bir neçədən çağırıla bilər. Bu şəkildə prosesin icra vəziyyətini izləyə bilərsiniz.

Bildiriş mexanizmi haqqında daha çox öyrənmək istəyirsinizsə, elə indi ara verin və 8.3.10-da Uzunmüddətli Əməliyyatların Tərəqqini Göstərən yeni məqaləmizi oxuyun. Artıq başlanğıc səviyyəsində bu mexanizmin işinin bütün incəliklərini və tələlərini izah etmir.

İstifadəçini məlumatlandırma yolları ilə tanışlığımızı yekunlaşdırırıq. Ümid edirik ki, hansı hallarda bu və ya digər metoddan istifadə edilməli olduğunu başa düşəcəksiniz.

Bir daha diqqətinizi ona yönəltmək istərdim ki, əgər konfiqurasiyanız (versiya 8.3.3+) veb-klientdən istifadə etməklə işləməyi nəzərdə tutursa, onda:

  • konfiqurasiya səviyyəsində modallıq rejimi parametri "İstifadə etməyin" təyin edilməlidir
  • kod asinxron istifadəçi qarşılıqlı modelinin metodlarından istifadə etməlidir. Belə üsullar sözlərlə başlayır Göstər və ya Başlamaq.

1C: Enterprise 8.3 platformasında modal pəncərələrdən istifadədən imtina haqqında daha ətraflı məlumatı dövrün yekun məqaləsində tapa bilərsiniz. Və biz davam edirik və nəhayət, materiallarımızda bir neçə dəfə qeyd olunan çoxdan gözlənilən Taksi interfeysini öyrənməyə davam edirik.