Modal windows 1c. "Bu rejimdə modal pəncərələrin istifadəsi qadağandırsa" nə etməli

Bu əmrlər üçün Sintaksis Köməkçisi bildirir ki, əgər konfiqurasiya xüsusiyyəti İstifadə Rejimi quraşdırılıb İstifadə etməyin, sonra proqram kodunuzda digər əmrlərdən istifadə etməlisiniz, məsələn Sualı göstər(), Xəbərdarlığı göstər(), ShowNumberInput():

Bu vəziyyətlərlə işləmək üçün 1C 8.3 proqramı, formanın və ya qeyri-modal dialoqun bağlanması kimi hər hansı gözlənilən hadisə baş verdikdə proqram modulu prosedurunun çağırışını təsvir etmək üçün istifadə olunan "Xəbərdarlıqların təsviri" adlı yeni sistem obyektini təqdim edir. :

Bu, problemin kök səbəbinə varmaq istəyənlər üçün daxili baxışdır. Əsasən 1C proqramçıları üçün. Bu vəziyyətdə adi istifadəçilər proqram kodu üzərində işləmədən səhvi necə düzəldə bilərlər? Çox sadə bir üsul var.

Adi istifadəçilər üçün səhvi düzəltmək üçün təlimatlar

Addım 1: Bitirin:

Addım 2. Konfiqurasiyaya başlamaq üçün başlanğıc menyusuna qayıdın. "Konfiqurasiya" menyu elementini seçin:

Addım 3. “Konfiqurator”u açın: üst paneldə “Konfiqurasiya” düyməsini tapırıq və təklif olunan siyahıda “Konfiqurasiyanı aç” menyusunu seçin:

Addım 4. Kursoru Konfiqurasiya üzərinə qoyun və "Xüsusiyyətlər" maddəsini seçdiyimiz kontekst menyusunu çağırmaq üçün sağ klikləyin:

Addım 5. “Xüsusiyyətlər” formasını açın:

Addım 6. “Modallıqdan istifadə rejimi” sətrini tapın (siyahının aşağısında):

Varsayılan olaraq, 1C 8.3 proqramı "İstifadə etməyin" olaraq təyin edilmişdir. “İstifadə etmə” dəyərini “İstifadə et” dəyərinə çevirin:

Nəticə:

1C 8.3-də "Bu rejimdə modal pəncərələrin istifadəsi qadağandır" xətası aradan qalxıbsa, işə davam edə bilərsiniz. Adətən belə olur.

Ancaq bütün bu addımları yerinə yetirdikdən sonra 1C-də modallıq xətası qalırsa, 1C proqramınıza xidmət edən və dəstəkləyən proqramçılarla əlaqə saxlamalısınız.

"Taksi" interfeysində necə işləmək, iş yerini necə fərdiləşdirmək, Sevimlilər naviqasiya panelini fərdiləşdirmək, tam mətn axtarışını necə aparmaq, jurnallarla işləmək üsulları, sənədlərdə "seç" düyməsi, sənədlərə keçidlər göndərmək, yoxlama və yeni interfeysdə digər funksiyalar - bütün bunları videomuzdan öyrənə bilərsiniz:

Yeni TAXI interfeysindən istifadə edərək 1C 8.3 proqramı vasitəsilə naviqasiyanı necə düzgün və tez təşkil etmək, quraşdırılmış kalkulyator, təqvim, fayl müqayisəsi, sənədlərə keçidlərin həmkarlarına ötürülməsi kimi tanış vasitələrdən istifadənin yeni imkanları haqqında ətraflı məlumat müzakirə olunur. kursumuzda ""


Zəhmət olmasa bu məqaləni qiymətləndirin:

1C 8.3 platformasının yeni interfeysinin – “taksi”nin tətbiqi istifadəçilərin və proqramçıların aşağıdakı xəta ilə üzləşməsinə səbəb olub: “Bu rejimdə modal pəncərələrin istifadəsi qadağandır”.
düyü. 1

1C texnologiya platformasının tərtibatçıları proqram təminatını beynəlxalq standartlara uyğunlaşdırmaqla qlobal tendensiyaları izləməyə çalışırlar. Sonuncu qaçılmaz olaraq veb səhifələrə yaxın olan vahid interfeysə gətirib çıxarır.

Modal və pop-up pəncərələr pis zövqün əlaməti olmaqla, proqram təminatının hazırlanmasında çoxdan qəbuledilməz hesab edilmişdir. “Bir pəncərədə” işləmək zərurəti istifadəçilərin şüurunda möhkəm yerləşmişdir.

1C platformasının tərtibatçıları tətbiqi həllərin tərtibatçılarını "yeni şəkildə" işləməyə cəlb etməyə cəhd etdilər. Yeni “taksi” interfeysinin tətbiqi ilə onlar yeni platformaya yeni funksiya – “modallıq rejimi” əlavə ediblər.

Tez düzəliş

Vaxt olmadıqda, problemi tez bir zamanda həll etmək lazımdırsa, kifayət qədər sadə, lakin çox düzgün olmayan bir həll yoluna müraciət edə bilərsiniz - sadəcə konfiqurasiya xüsusiyyətlərində modallıq rejimini dəyişdirməlisiniz.

Bunu etmək üçün konfiqurasiya rejimində sistemə daxil olun və konfiqurasiyanı açın:

Bundan sonra, kontekst menyusunu açmaq üçün konfiqurasiya kökünə sağ vurun və "Xüsusiyyətlər" i seçin:


düyü. 3

Açılan konfiqurasiya xassələrində, tablarda "Modallıqdan istifadə rejimi" ni tapın, içərisində "İstifadə et" seçin:


düyü. 4

"F7" düyməsini basaraq dəyişiklikləri yadda saxlayın və tətbiq edin.

1C platformasının 8.3 versiyasında proqramın yeni iş rejimi ortaya çıxdı - modallıqdan istifadə etmədən. Daha doğrusu, 2 yeni rejim meydana çıxdı: modallıqdan istifadə etmədən və modallıqdan istifadə etmədən, lakin xəbərdarlıqla. Və köhnə iş rejimi modallığın istifadəsi kimi göstərilir.

Bütün bunlar nə deməkdir? Platformanın ilk versiyalarında biz müxtəlif modal pəncərələrdən istifadə edirdik və bu barədə çox düşünmürdük. Məsələn, istifadəçiyə xəbərdarlıq göstərməli və ya sual verməli, yaxud hansısa dəyər daxil etməli və ya fayl seçməlisən. Bunların hamısı modal pəncərələrdir.

Modal nə deməkdir? Bu o deməkdir ki, bu pəncərə çağırılanda bütün digər pəncərələrlə üst-üstə düşür, yəni ən yuxarıda göstərilir və bloklar bu pəncərə ilə iş başa çatana qədər digər pəncərələrlə işləyir. Pəncərələri bloklamaqla yanaşı, kodun icrası məhz bu pəncərənin çağırıldığı yerdə dayanır və kodun icrası yalnız belə pəncərə bağlandıqdan sonra davam edir. Edamın dayandığı nöqtədən. Dövr seçimi formasının çağırılması nümunəsindən istifadə edərək modal pəncərəyə zəngi təsvir edəcəyəm:

&OnClient

StandardProcessing = Yanlış;




Əgər Dialog.Edit() varsa //Modal formaya zəng edin. Kodun icrası yalnız forma bağlandıqdan sonra davam edəcək.
Elements.Services.CurrentData.StartDate = Dialoq.Period.StartDate;
Elements.Services.CurrentData.EndDate = Dialoq.Period.EndDate;
endIf;

Prosedurun Sonu


Gördüyümüz kimi, dövr seçimi modal pəncərəsinə çağırışı emal etmək üçün bir prosedur kifayətdir.

Modal pəncərələr niyə pisdir?İndi 1C-nin niyə modal pəncərələrin istifadəsindən imtina etmək qərarına gəldiyini anlayaq. Yaxşı, ilk növbədə, bu, 1C platformasının yalnız adi formada - iş masası proqramı kimi istifadə edilə bilməməsinin nəticəsidir, həm də brauzerdə işə salına bilər və mobil proqram kimi işə salına bilər.

Brauzerlərlə bağlı problem aşağıdakılardır. Onlardakı pəncərə modallığı pop-up ayrı brauzer pəncərələrindən istifadə etməklə həyata keçirilir. Onlar demək olar ki, bütün brauzerlər tərəfindən dəstəklənir, lakin reklam üçün belə pəncərələrin tez-tez istifadəsi səbəbindən, demək olar ki, bütün brauzer tərtibatçıları onlarla mübarizə aparır və standart olaraq belə pəncərələrin istifadəsini söndürürlər. Nəticədə, 1C istifadəçisinin brauzerdə işləyə bilməsini təmin etmək üçün onu bu pəncərələrə icazə verməyə məcbur etmək, onu 1C və brauzerlərin işinin bütün incəliklərinə həsr etmək və ümumiyyətlə onu lazımsız şeylərlə yükləmək lazımdır. məlumat.

Planşet kompüterləri üçün brauzerlər və telefonlar üçün brauzerlər ilə ayrı bir nüans. Əksər hallarda bu brauzerlər pop-upları dəstəkləmir. Pop-up pəncərələri olan bu cür cihazların interfeysləri (monitorlar və giriş cihazları) uyğun deyil.

Və nəhayət, 1C mobil tətbiqi də modal pəncərələrlə tamamilə uyğun deyil.

Beləliklə, nəticə: Modal pəncərələrdən istifadə etməyin. Bunun əvəzinə nə istifadə etməliyəm? Bunun əvəzinə eyni pəncərələrdən istifadə etməlisiniz, lakin modallıq rejimi olmadan. Yeni 1C platformasında biz də hər bir pəncərə üçün belə bir rejim hazırlamışıq. Hər bir dialoq üçün ayrıca metod kimi həyata keçirilir. Bu rejim bir pəncərə açmağa imkan verir, lakin proqram kodunun icrasını dayandırmır. Texniki olaraq, brauzerlər bunu ana pəncərənin içərisində görünən, lakin üst-üstə düşən psevdo pəncərə kimi həyata keçirirlər. Pəncərə açıldıqdan sonra kodun icra olunmağa davam etməsi o deməkdir ki, pəncərəyə zəng etmək üçün koddan sonra orada seçilmiş dəyərləri dərhal ala bilməyəcəksiniz. Onlar hələ seçilməyib. Buna görə də, bu dəyərlərin alınması və işlənməsi belə bir pəncərəni bağlayarkən çağırılan ayrı bir prosedurda həyata keçirilir və bu prosedur pəncərənin açılması metodunu çağırarkən müəyyən edilir. Nümunə olaraq eyni dövrün seçim pəncərəsinə baxaq.

&OnClient
Xidmət ProseduruStartDateStartSelection(Element, SelectionData, StandardProcessing)

StandardProcessing = Yanlış;

Dialoq = NewEditingDialogStandardPeriod();
StandardPeriod = Yeni StandartDövr();

Başlanğıc tarixi = Items.Services.CurrentData.StartDate;
Bitmə tarixi = Items.Services.CurrentData.EndDate;

StandardPeriod.StartDate = Başlanğıc Tarixi;
StandardPeriod.EndDate = Bitmə Tarixi;
Dialoq.Period = Standart Dövr;

Xəbərdarlıq Təsviri = Yeni Xəbərdarlıq Təsviri (“Dövr Seçiminin Emalı”, Bu Forma);

Dialoq.Show(Təsvir Xəbərdarlıqları)

Prosedurun Sonu

&OnClient
Prosedur EmalıDövrüSeçim(Dövr,Parametrlər) İxrac

Əgər Dövr<>Müəyyən edilməmiş Sonra

Items.Services.CurrentData.StartDate = Period.StartDate;
Elements.Services.CurrentData.EndDate = Period.EndDate;

endIf;

Prosedurun Sonu


Gördüyümüz kimi Edit() yerinə Show() çağırılır. Seçim hadisəsinin işlənməsi artıq başqa prosedurdadır.

Beləliklə, modallıq olmadan necə edəcəyimizi anladıq. İndi gəlin xəbərdarlığı olan modallıqdan istifadə rejiminə niyə ehtiyacımız olduğunu anlayaq. Əslində bu, keçid rejimidir. Siz hələ modallıqdan istifadə etmədən bütün konfiqurasiyanızı rejimə çevirə bilmədiyiniz zaman, lakin artıq buna can atırsınız. Və hər dəfə modal pəncərəyə zəng etdikdə proqram sizə bu rejimdə modal pəncərələri çağırmağın məqsədəuyğun olmadığı barədə xəbərdarlıq edəcək.

Yaxşı, modallıqdan imtina edək və brauzerlərdə və mobil kompüterlərdə 1C işi üçün yeni texnologiyalara yiyələnək.

"Bu rejimdə modal pəncərələrin istifadəsi qadağandır" - bu səhv indi 1C 8.3 platformasının yeni interfeysi - " " gəlişi ilə 1C istifadəçilərini və proqramçılarını narahat etməyə başlayır.

1C texnoloji platformasının tərtibatçıları zamanla ayaqlaşır, öz həllini beynəlxalq proqram təminatı standartlarına uyğunlaşdırır. Bütün standartlar bu və ya digər şəkildə veb səhifələrə yaxın bir interfeysə enir.

Modal və pop-up pəncərələr pis forma hesab olunur və proqram təminatının hazırlanmasında çoxdan normal olmaqdan çıxıb. İstifadəçilər “bir pəncərədə” işləməyə öyrəşiblər.

Xüsusilə tez-tez aşağıdakı 1C üsullarında modallıq xətası görürük:

  • sual;
  • Xəbərdarlıq;
  • OpenValue.

Yeni "taksi" interfeysinin buraxılması ilə 1C 8 platformasının tərtibatçıları düzgün qərar verdilər - proqram həlləri hazırlayanları yeni üsulla yenidən hazırlamağa çalışmaq. Onlar yeni platformaya bir funksiya daxil etdilər - "modallıq rejimi".

Tez düzəliş

Bunu anlamaq üçün vaxtınız yoxdursa və problemi tez bir zamanda həll etməlisinizsə, biz sadə, lakin tamamilə düzgün olmayan bir həll təklif edirik. Xətanı tez bir zamanda düzəltmək üçün konfiqurasiya xüsusiyyətlərində modallıq rejimini dəyişdirmək kifayətdir.

Bunu etmək üçün sistemə rejimdə daxil olun, konfiqurasiyanı açın:

Açıq konfiqurasiyada konfiqurasiya kökünə sağ tıklayarak və “Xüsusiyyətlər”i seçməklə kontekst menyusuna zəng edin:

1C-də 267 video dərsi pulsuz əldə edin:

Konfiqurasiya xassələri açılacaq, altbilgidə bizi maraqlandıran xüsusiyyət var - "Modallıqdan istifadə rejimi", "İstifadə" rejimini seçin:

Bundan sonra, "F7" düyməsini basaraq dəyişiklikləri qeyd edin və tətbiq edin.

Problemin düzgün həlli

Bu problemi həll etməyin düzgün yolu yeni tələblərə cavab vermək üçün konfiqurasiya və ya xarici emalda dəyişiklik etməkdir.

Xəbərdarlıq, sual, dialoq qutuları və digər modalların hamısı yeni şəkildə yenidən yazılmalıdır.

Modal pəncərələr adlanan daxili operatorları dublikat funksiyalarla əvəz etmək lazımdır.

Misal üçün:

  • Xəbərdarlıq - ShowWarning;
  • Sual - GöstərQuestion (ətraflı - );
  • — GirişNömrələrini göstərin.

Eyni zamanda, xüsusi bir obyekt meydana çıxdı - Bildiriş Təsviri.

Əvəzetmə nümunəsi:

String = "" ; EnterString(String, "Sətr dəyəri daxil edin") Bildiriş("Siz daxil etdiniz" + String) ;

ilə əvəz edilməlidir:

String = "" ; DescriptionAlerts = Yeni Təsvir Xəbərdarlıqları( "TestLineInput", Bu Forma); ShowLineInput(DescriptionAlerts, String, "Sətr dəyəri daxil edin") ;

Eyni zamanda, müştəriyə dəyər istifadəçi tərəfindən daxil edildikdə işləyəcək oxşar prosedur əlavə edin:

&Müştəri prosedurunda TestInputString(ReceivedValue, PassedParameters) Export Notify("Siz daxil etdiniz" + String) ; Prosedurun Sonu

Konfiqurasiya daxilində hazırlanmış formalar eyni şəkildə açılır. Xəbərdarlığın təsvirini və bunun üçün tələb olunan yeni proseduru göstərərək “OpenFormModal” metodunu “OpenForm” ilə əvəz etmək kifayətdir.

Formanı açmaqla çağırılan formaya girişi bloklamaq üçün formanın “Pəncərə Açma Rejimi” xassəsində “Blok sahibi pəncərəsi” dəyərini göstərmək kifayətdir:

Əgər dərsləri tamamlayarkən belə bir səhvlə qarşılaşsanız, onu düzəltmək çox asandır.

Konfiquratora qayıdın və "Konfiqurasiya" -> "Açıq konfiqurasiya" menyusunu seçin:

Açılan pəncərədə "Konfiqurasiya" elementinə sağ vurun və açılan menyudan "Xüsusiyyətlər" i seçin:

Konfiqurasiya xüsusiyyətləri olan bir pəncərə açılacaq (sağda):

Ən aşağıya sürüşdürün və orada "Modallıq rejimi" maddəsini tapın:

Onun dəyərini təyin edin "İstifadə et":

Diqqət! Nəzərə alın ki, əgər siz birinci dərsdə yüklədiyimizdən fərqli 1C platformasından istifadə edirsinizsə (sonrakı versiya), o zaman sizdə “Sinxron zənglərdən istifadə rejimi...” sahəsi də olacaq. O, həmçinin "İstifadə et" olaraq təyin edilməlidir.

Nəhayət, menyu elementini seçin "Konfiqurasiya" -> "Konfiqurasiyanı yadda saxla":

Hazır! İndi xəta baş verməyəcək.

Aşağıdakı izahatlar - gördüyümüz işlərlə maraqlananlar üçün.

Biz konfiqurasiyamızda modallıq rejimini aktiv etdik. Varsayılan olaraq, bu rejim qeyri-aktivdir və bu bizə EnterNumber, EnterString, EnterDate, OpenValue kimi əmrlərdən istifadə etməyə imkan vermir.

Fakt budur ki, bu əmrlər modaldır. Onları çağırmaq istifadəçinin qarşısında (məsələn, məlumat daxil etmək üçün) pəncərənin görünməsi ilə nəticələnir, bu pəncərə bağlanana qədər proqramla işləmək imkanını bloklayır.

Bir veb brauzer vasitəsilə 1C ilə işləyərkən bu cür pəncərələrin olması son dərəcə arzuolunmaz olduğundan, yeni konfiqurasiyalar hazırlayarkən modallıq rejimi standart olaraq söndürülür.

İnternetdə işləmək üçün nəzərdə tutulmayan təhsil nümunələri yazdığımız üçün onu təhlükəsiz şəkildə daxil edə bilərik.



Əlaqədar nəşrlər