Kengaytmalar va tashqi komponentlarga asinxron qo'ng'iroqlar. Nima uchun "Mijozda sinxron usullardan foydalanish taqiqlanadi" xatosi paydo bo'ladi?

8.3.5.1383, 8.3.6.1977 versiyalarida amalga oshirilgan.

Zamonaviy tendentsiyalar

Brauzerni rivojlantirish tendentsiyalari platformadagi "asenkronlik" ning tobora ortib borayotgan foiziga olib keladi. Birinchi qadam bo'ldi. Endi kriptografiya kengaytmalari bilan ishlash, fayllar va tashqi komponentlar bilan ishlash uchun asinxron chaqiruvlar mavjud.

Keyingi asinxroniyaga o'tishning sababi, Google Chrome brauzerini ishlab chiquvchilari avvalgi NPAPI (Netscape Plugin Application Programming Interface) texnologiyasini qo'llab-quvvatlashdan voz kechishdi. Ushbu texnologiya tashqi modullarni - kengaytmalarni brauzerga ulash uchun ishlatilgan.

1C: Enterprise kriptografiya bilan ishlash, fayllar bilan ishlash va tashqi komponentlarni ulash uchun bunday kengaytmalardan foydalanadi. Bu juda muhim funksionallik. Kriptografiya elektron hujjat aylanishida qo'llaniladi va tashqi komponentlar tufayli ilovalar shtrix-kod skanerlari va boshqa chakana uskunalar bilan ishlashi mumkin.

Va endi, avvalgi sinxron NPAPI texnologiyasi o'rniga, Google Chrome ishlab chiquvchilari yangi Native Messaging texnologiyasini yaratdilar. Shu bilan birga, ular barcha kengaytmalarni ishlab chiquvchilarga eski texnologiyadan foydalanmaslikni qat'iy tavsiya qildilar, chunki u qo'llab-quvvatlanmaydi.

Tafsilotlarga kirmasdan, yangi texnologiya yaxshiroq va xavfsizroq. Bu yaxshi. Ammo uning muhim farqlaridan biri shundaki, u faqat brauzer kengaytmalari bilan asinxron aloqani ta'minlaydi. Va bu 1C: Enterprise-da kengaytmalar va tashqi komponentlar bilan ishlashning barcha mavjud usullarini tubdan o'zgartirishni talab qiladi. Chunki ularning barchasi sinxron ta'sirga asoslangan.

Asinxron usullar

Biz bu muammoni modal chaqiruv muammosini hal qilgandek hal qildik. NPAPI texnologiyasidan foydalangan holda barcha sinxron usullar uchun biz ularning asinxron hamkasblarini yaratdik. Ular asosan prefiks mavjudligida farqlanadi Boshlanishi va birinchi parametr ularga uzatilganligi Tavsif Ogohlantirishlar, undan dastur kodining bajarilishi chaqirilgan harakat tugagandan so'ng davom etadi.

Masalan, usul o'rniga Shifrlash() Endi usuldan foydalanishni tavsiya etamiz StartEncrypt():

Kriptografiya menejeri.Encrypt(<ИсходныеДанные>, <Получатели>) Kriptografiya menejeri. Shifrlashni boshlash(<ОписаниеОповещения>, <ИсходныеДанные>, <Получатели>)

Usul o'rniga GetFiles() - StartGettingFiles():

GetFiles(<ПолучаемыеФайлы>, <ПолученныеФайлы>, <РасположениеФайлов>, <Интерактивно>) Fayllarni qabul qilishni boshlang ((<ОписаниеОповещения>, <ПолучаемыеФайлы>, <РасположениеФайлов>, <Интерактивно>)

O'rniga SetExternalComponent()- ExternalComponents() o'rnatishni boshlang:

SetExternalComponent(<Местоположение>) Tashqi komponentlarni o'rnatishni boshlang (<ОписаниеОповещенияОЗавершении>, <Местоположение>)

Umuman olganda, hamma narsa modallikdan xalos bo'lganimizdan oldin qilgan ishimizga juda o'xshaydi. Ammo yangi asinxron usullarning ishlashi modal bo'lmagan dialoglarni keltirib chiqaradigan usullarda mavjud bo'lmagan muhim xususiyatga ega.

Modesiz dialogni asinxron tarzda chaqirganda, biz faqat foydalanuvchi reaktsiyasini kutamiz va boshqa hech narsa yo'q. Kutilmagan narsa sodir bo'lishi mumkin emas degan ma'noda.

Va kengaytmalar va komponentlar bilan ishlashning asinxron usullarini chaqirish jarayonida istisno holatlar yuzaga kelishi mumkin. Kengaytma o'rnatilmagan, komponent yuklanmagan va hokazo.

Siz odatda ilova kodingizda bunday istisnolar uchun ishlov berishni ta'minlaysiz. Operatordan foydalanish Urinish... Istisno. Ammo endi bu imkonsiz bo'lib qoladi, chunki asinxron qo'ng'iroq paytida dastur kodi bajarilmaydi. Shunga ko'ra, operator ishlamaydi Urinish... Istisno.

  • NameProcedureProcessingXatolari;
  • ErrorProcessingModule.

Agar asinxron qo'ng'iroq paytida biror narsa noto'g'ri bo'lsa va istisno yuzaga kelsa, ushbu xususiyatlar tomonidan ko'rsatilgan protsedura bajariladi. Ushbu ikki xususiyatni faqat kengaytmalar bilan ishlashning asinxron usullarida qo'llash mantiqiy. Modelsiz dialoglarni chaqirganda, bu xususiyatlar kerak emas.

Konfiguratsiya xususiyati

Modallikni rad etishda bo'lgani kabi, butun dastur yechimi "bu nima ekanligini" bilishi kerak. U modal yoki modal bo'lmagan. U sinxron yoki asinxron bo'ladi.

Ilgari, muammoni modallik bilan hal qilish uchun biz maxsus konfiguratsiya xususiyatini qo'shdik Modallikdan foydalanish tartibi. Endi sinxronlik bilan bog'liq muammoni hal qilish uchun biz unga ma'noga o'xshash xususiyatni qo'shdik Kengaytmalar va tashqi komponentlarga sinxron qo'ng'iroqlardan foydalanish tartibi.

Uni qo'llashning mohiyati quyidagicha:

  • foydalanmang- Bu yangi, asinxron ish rejimi. Yangi konfiguratsiyalar uchun bu standart rejim. Eski, sinxron usullardan foydalanish taqiqlanadi. Ular sintaktik nazoratdan o'tmaydi, ular kontekstga tegishli emas. Sinxron usulni bajarishga urinish istisnoni keltirib chiqaradi.
  • Ogohlantirish bilan foydalaning- bu rejim ishlab chiquvchi uchun mo'ljallangan. Bu eski, sinxron usullardan foydalanishga to'sqinlik qilmaydi. Lekin har safar mijozga sinxron usul chaqirilganda, u ogohlantirish xabarini chiqaradi. Ushbu rejimdan "qayta ishlash" konfiguratsiyalarida foydalanishni tavsiya etamiz. Sinxron qo'ng'iroqlarni vizual ravishda qidirish va qayta ko'rib chiqish jarayonida ularni kuzatish uchun qulay.
  • Foydalanish- platformaning yangi versiyasini kengaytmalar va tashqi komponentlar bilan ishlash uchun sinxron usullardan foydalanadigan eski konfiguratsiyalar bilan muvofiqligini ta'minlaydigan rejim.

Biz hozirgacha gapirgan barcha usullar va xususiyatlar versiyada amalga oshiriladi 8.3.5.1383 . Siz ulardan amaliy yechimlaringizda foydalanishingiz mumkin. Va ishlab chiquvchilar, masalan, kriptografiya vositalaridan foydalanadigan, fayllar va tashqi komponentlar bilan ishlaydigan asinxron operatsiya quyi tizimlariga o'tadilar.

Tabiiyki, modal qo'ng'iroqlarda bo'lgani kabi, sizda ham savol bor. Ilova yechimimni qayta tiklashim kerakmi? Va umuman olganda, yangi dastur yechimimda ushbu asenkron usullardan foydalanishim kerakmi?

Qachon kerak?

Bu savolga javob avval aytganimizdek bir xil. Ular modallikdan voz kechish haqida gapirganda.

Birinchidan, texnologiya platformasining har bir versiyasi kengaytmalar va tashqi komponentlarga asinxron qo'ng'iroqlar rejimini qo'llab-quvvatlamaydi. Ushbu ish rejimi 8.3.5.1383 versiyasidan boshlab mavjud. Shuning uchun, agar siz platformaning quyi versiyalarida ishlayotgan bo'lsangiz, hozircha sinxron usullardan voz kechish haqida tashvishlanishingiz shart emas.

Ikkinchidan, barcha amaliy echimlar ushbu rejimdan foydalanishi shart emas. Muhim ilovalar bu Google Chrome brauzerida veb-mijoz yordamida ishlaydigan ilovalardir. Bunday ilovalar, asosan, ishlaydigan ilovalardir. Agar sizning ilova yechimingiz ushbu rejimda aniq ishlatilmasa, hozircha sinxron usullardan voz kecholmaysiz.

Biroq, birinchi va ikkinchi nuqtalarga qaramasdan, sizning rejalaringizga ta'sir qilishi mumkin bo'lgan global tendentsiyalar mavjud. Biz, 1C kompaniyasi, barcha standart echimlarni mavjud usullarning har qandayida foydalanish mumkinligiga asoslanib ishlab chiqamiz. Shuning uchun biz yangi amaliy yechimlarni, shuningdek, ularda ishlatiladigan barcha kutubxonalarni sinxron qo'ng'iroqlardan foydalanmasdan rejimda amalga oshiramiz.

Bu shuni anglatadiki, ushbu ish rejimini o'zlashtirishni hozirdan boshlashingiz yaxshiroqdir. Ilovangiz undan hali foydalanmayotgan boʻlsa ham, iloji boʻlsa, tarjimani hozir boshlashni tavsiya qilamiz. Biroq, biz sizni ushbu jarayonga ijodiy yondashishingizni tavsiya qilamiz. Modallikdan voz kechish bilan bir xilda. Ya'ni, sinxron usullarni asinxron bilan mexanik ravishda almashtirishning hojati yo'q. Birinchidan, algoritm yoki skriptni o'zgartirish mumkinmi, bu haqda o'ylash foydali bo'ladimi, shunda biz sinxron usullardan foydalanishdan butunlay voz kechamizmi?

Refaktoring

Bir tomondan, agar konfiguratsiya katta bo'lsa va unda juda ko'p sinxron qo'ng'iroqlar bo'lsa, unda bunday konfiguratsiyani "qo'lda" qayta ishlash juda ko'p vaqt talab qiladigan vazifa bo'lishi mumkin.

Boshqa tomondan, 8.3.5.1068 versiyasidan boshlab, platforma sinxron qo'ng'iroqlarni asinxron hamkasblariga aylantirish imkonini beruvchi xususiyatlarga ega.

Shuning uchun biz allaqachon mavjud bo'lgan vositalarni oldik, ularni kengaytirdik va ularni "modallikdan uzoqlashish" dan "asinxroniyaga o'tish" ga yo'naltirdik. Asinxron usullarga o'tish o'z mohiyatiga ko'ra modallikdan voz kechganda bajariladigan harakatlarga o'xshaydi. Eski, "modasiz", sinxron (modal) qo'ng'iroqlarni yangi, "moda", asinxron qo'ng'iroqlar bilan almashtirish kerak. Ogohlantirishlarni qayta ishlash.

Ushbu yangilangan shaklda refaktoring vositalari siz uchun versiyada mavjud bo'ldi 8.3.6.1977 .

Ushbu vositalarning "ta'kidlashi" asinxroniyaga o'tganligi sababli, biz ba'zi buyruqlar nomini o'zgartirdik. Endi "modal bo'lmagan" o'rniga "eskirgan sinxron" iborasi qo'llaniladi:

Bundan tashqari, biz konfigurator sozlamalariga yangi yorliq qo'shdik Refaktoring. Odatiy bo'lib, ikkala transformatsiya ham yoqilgan. Ammo, agar sizga kerak bo'lsa, uning yordami bilan avtomatik refaktoring paytida faqat bitta turdagi o'zgarishlarni amalga oshirishingiz mumkin.

05.12.2014

8.3.5.1383, 8.3.6.1977 versiyalarida amalga oshirilgan.

Zamonaviy tendentsiyalar

Brauzerni rivojlantirish tendentsiyalari platformadagi "asenkronlik" ning tobora ortib borayotgan foiziga olib keladi. Birinchi qadam modallikdan voz kechish edi. Endi kriptografiya kengaytmalari bilan ishlash, fayllar va tashqi komponentlar bilan ishlash uchun asinxron chaqiruvlar mavjud.

Keyingi asinxroniyaga o'tishning sababi, Google Chrome brauzerini ishlab chiquvchilari avvalgi NPAPI (Netscape Plugin Application Programming Interface) texnologiyasini qo'llab-quvvatlashdan voz kechishdi. Ushbu texnologiya tashqi modullarni - kengaytmalarni brauzerga ulash uchun ishlatilgan.

1C: Enterprise kriptografiya bilan ishlash, fayllar bilan ishlash va tashqi komponentlarni ulash uchun bunday kengaytmalardan foydalanadi. Bu juda muhim funksionallik. Kriptografiya elektron hujjat aylanishida qo'llaniladi va tashqi komponentlar tufayli ilovalar shtrix-kod skanerlari va boshqa chakana uskunalar bilan ishlashi mumkin.

Va endi, avvalgi sinxron NPAPI texnologiyasi o'rniga, Google Chrome ishlab chiquvchilari yangi Native Messaging texnologiyasini yaratdilar. Shu bilan birga, ular barcha kengaytmalarni ishlab chiquvchilarga eski texnologiyadan foydalanmaslikni qat'iy tavsiya qildilar, chunki u qo'llab-quvvatlanmaydi.

Tafsilotlarga kirmasdan, yangi texnologiya yaxshiroq va xavfsizroq. Bu yaxshi. Ammo uning muhim farqlaridan biri shundaki, u faqat brauzer kengaytmalari bilan asinxron aloqani ta'minlaydi. Va bu 1C: Enterprise-da kengaytmalar va tashqi komponentlar bilan ishlashning barcha mavjud usullarini tubdan o'zgartirishni talab qiladi. Chunki ularning barchasi sinxron ta'sirga asoslangan.

Asinxron usullar

Biz bu masalani modal chaqiruv muammosi kabi hal qildik. NPAPI texnologiyasidan foydalangan holda barcha sinxron usullar uchun biz ularning asinxron hamkasblarini yaratdik. Ular asosan Start prefiksi mavjudligida va birinchi parametr Ogohlantirish tavsifi ekanligida farqlanadi, undan dastur kodining bajarilishi chaqirilgan harakat tugagandan keyin davom etadi.

Masalan, Encrypt() usuli o‘rniga endi StartEncrypt() usulidan foydalanishni tavsiya etamiz:

Kriptografiya menejeri.Encrypt(<ИсходныеДанные>, <Получатели>) Kriptografiya menejeri. Shifrlashni boshlash(<ОписаниеОповещения>, <ИсходныеДанные>, <Получатели>)

GetFiles() usuli o'rniga - StartGettingFiles():

GetFiles(<ПолучаемыеФайлы>, <ПолученныеФайлы>, <РасположениеФайлов>, <Интерактивно>) Fayllarni qabul qilishni boshlang ((<ОписаниеОповещения>, <ПолучаемыеФайлы>, <РасположениеФайлов>, <Интерактивно>)

InstallExternalComponent() o'rniga - StartInstallingExternalComponent():

SetExternalComponent(<Местоположение>) Tashqi komponentlarni o'rnatishni boshlang (<ОписаниеОповещенияОЗавершении>, <Местоположение>)

Umuman olganda, hamma narsa modallikdan xalos bo'lganimizdan oldin qilgan ishimizga juda o'xshaydi. Ammo yangi asinxron usullarning ishlashi modal bo'lmagan dialoglarni keltirib chiqaradigan usullarda mavjud bo'lmagan muhim xususiyatga ega.

Modesiz dialogni asinxron tarzda chaqirganda, biz faqat foydalanuvchi reaktsiyasini kutamiz va boshqa hech narsa yo'q. Kutilmagan narsa sodir bo'lishi mumkin emas degan ma'noda.

Va kengaytmalar va komponentlar bilan ishlashning asinxron usullarini chaqirish jarayonida istisno holatlar yuzaga kelishi mumkin. Kengaytma o'rnatilmagan, komponent yuklanmagan va hokazo.

Siz odatda dastur kodingizda bunday istisnolar uchun ishlov berishni ta'minlaysiz. Try... Istisno operatoridan foydalanish. Ammo endi bu imkonsiz bo'lib qoladi, chunki asinxron qo'ng'iroq paytida dastur kodi bajarilmaydi. Shunga ko'ra, Urinish... Istisno operatori ishlamaydi.

  • ErrorProcedureName;
  • Xatolarni boshqarish moduli.

Agar asinxron qo'ng'iroq paytida biror narsa noto'g'ri bo'lsa va istisno yuzaga kelsa, ushbu xususiyatlar tomonidan ko'rsatilgan protsedura bajariladi. Ushbu ikki xususiyatni faqat kengaytmalar bilan ishlashning asinxron usullarida qo'llash mantiqiy. Modelsiz dialoglarni chaqirganda, bu xususiyatlar kerak emas.

Konfiguratsiya xususiyati

Modallikni rad etishda bo'lgani kabi, butun dastur yechimi "bu nima ekanligini" bilishi kerak. U modal yoki modal bo'lmagan. U sinxron yoki asinxron bo'ladi.

Ilgari modallik bilan bog'liq muammoni hal qilish uchun biz konfiguratsiyaga maxsus xususiyat qo'shdik: Modallikdan foydalanish tartibi. Endi sinxronizatsiya bilan bog'liq muammoni hal qilish uchun biz unga o'xshash xususiyatni qo'shdik: Kengaytmalar va tashqi komponentlarning sinxron qo'ng'iroqlarini ishlatish rejimi.

Uni qo'llashning mohiyati quyidagicha:

  • Foydalanmang - bu yangi, asinxron ish rejimi. Yangi konfiguratsiyalar uchun bu standart rejim. Eski, sinxron usullardan foydalanish taqiqlanadi. Ular sintaktik nazoratdan o'tmaydi, ular kontekstga tegishli emas. Sinxron usulni bajarishga urinish istisnoni keltirib chiqaradi.
  • Ogohlantirish bilan foydalaning - bu rejim ishlab chiquvchi uchun mo'ljallangan. Bu eski, sinxron usullardan foydalanishga to'sqinlik qilmaydi. Ammo har safar mijozga sinxron usul chaqirilganda, u ogohlantirish xabarini chiqaradi. Ushbu rejimni "qayta ishlash" konfiguratsiyalarida ishlatishni tavsiya etamiz. Sinxron qo'ng'iroqlarni vizual ravishda qidirish va ularni qayta ko'rib chiqish jarayonida kuzatish uchun qulay.
  • Foydalanish - kengaytmalar va tashqi komponentlar bilan ishlash uchun sinxron usullardan foydalanadigan eski konfiguratsiyalar bilan platformaning yangi versiyasi mosligini ta'minlaydigan rejim.

Biz hozirgacha gapirgan barcha usullar va xususiyatlar 8.3.5.1383 versiyasida amalga oshirilgan. Siz ulardan amaliy yechimlaringizda foydalanishingiz mumkin. Va BSP ishlab chiquvchilari, masalan, kriptografiya vositalaridan foydalanadigan, fayllar va tashqi komponentlar bilan ishlaydigan quyi tizimlarni asinxron ishlashga o'tkazadilar.

Tabiiyki, modal qo'ng'iroqlarda bo'lgani kabi, sizda ham savol bor. Ilova yechimimni qayta tiklashim kerakmi? Va umuman olganda, yangi dastur yechimimda ushbu asenkron usullardan foydalanishim kerakmi?

Qachon kerak?

Bu savolga javob avval aytganimizdek bir xil. Ular modallikdan voz kechish haqida gapirganda.

Birinchidan, texnologiya platformasining har bir versiyasi kengaytmalar va tashqi komponentlarga asinxron qo'ng'iroqlar rejimini qo'llab-quvvatlamaydi. Ushbu ish rejimi 8.3.5.1383 versiyasidan boshlab mavjud. Shuning uchun, agar siz platformaning quyi versiyalarida ishlayotgan bo'lsangiz, hozircha sinxron usullardan voz kechish haqida tashvishlanishingiz shart emas.

Ikkinchidan, barcha amaliy echimlar ushbu rejimdan foydalanishi shart emas. Muhim ilovalar bu Google Chrome brauzerida veb-mijoz yordamida ishlaydigan ilovalardir. Bunday ilovalar, asosan, xizmat ko'rsatish modelida ishlaydigan ilovalardir. Agar sizning ilova yechimingiz ushbu rejimda aniq ishlatilmasa, hozircha sinxron usullardan voz kecholmaysiz.

Biroq, birinchi va ikkinchi nuqtalarga qaramasdan, sizning rejalaringizga ta'sir qilishi mumkin bo'lgan global tendentsiyalar mavjud. Biz, 1C kompaniyasi, barcha standart echimlarni mavjud usullarning har qandayida foydalanish mumkinligiga asoslanib ishlab chiqamiz. Shuning uchun biz yangi amaliy yechimlarni, shuningdek, ularda ishlatiladigan barcha kutubxonalarni sinxron qo'ng'iroqlardan foydalanmasdan rejimda amalga oshiramiz.

Bu shuni anglatadiki, ushbu ish rejimini o'zlashtirishni hozirdan boshlashingiz yaxshiroqdir. Ilovangiz undan hali foydalanmayotgan boʻlsa ham, iloji boʻlsa, tarjimani hozir boshlashni tavsiya qilamiz. Biroq, biz sizni ushbu jarayonga ijodiy yondashishingizni tavsiya qilamiz. Modallikdan voz kechish bilan bir xilda. Ya'ni, sinxron usullarni asinxron bilan mexanik ravishda almashtirishning hojati yo'q. Birinchidan, algoritm yoki skriptni o'zgartirish mumkinmi, bu haqda o'ylash foydali bo'ladimi, shunda biz sinxron usullardan foydalanishdan butunlay voz kechamizmi?

Refaktoring

Bir tomondan, agar konfiguratsiya katta bo'lsa va unda juda ko'p sinxron qo'ng'iroqlar bo'lsa, unda bunday konfiguratsiyani "qo'lda" qayta ishlash juda ko'p vaqt talab qiladigan vazifa bo'lishi mumkin.

Boshqa tomondan, 8.3.5.1068 versiyasidan boshlab, platforma sinxron qo'ng'iroqlarni asinxron hamkasblariga aylantirish imkonini beruvchi vositalarga ega.

Shuning uchun biz allaqachon mavjud bo'lgan vositalarni oldik, ularni kengaytirdik va ularni "modallikdan uzoqlashish" dan "asinxroniyaga o'tish" ga yo'naltirdik. Asinxron usullarga o'tish o'z mohiyatiga ko'ra modallikdan voz kechganda bajariladigan harakatlarga o'xshaydi. Eski, "moda bo'lmagan", sinxron (modal) qo'ng'iroqlarni xabarnomalarni qayta ishlashdan foydalanadigan yangi, "moda", asinxron qo'ng'iroqlar bilan almashtirish kerak.

Ushbu yangilangan shaklda refaktoring vositalari siz uchun 8.3.6.1977 versiyasida mavjud bo'ldi.

Ushbu vositalarning "ta'kidlashi" asinxroniyaga o'tganligi sababli, biz ba'zi buyruqlar nomini o'zgartirdik. Endi "modal bo'lmagan" o'rniga "eskirgan sinxron" iborasi qo'llaniladi:

Bundan tashqari, biz konfigurator sozlamalariga yangi Refactoring yorlig'ini qo'shdik. Odatiy bo'lib, ikkala transformatsiya ham yoqilgan. Ammo, agar sizga kerak bo'lsa, uning yordami bilan avtomatik refaktoring paytida faqat bitta turdagi o'zgarishlarni amalga oshirishingiz mumkin:

Maqolada 1C: Enterprise platformasida modallikdan voz kechishning asosiy sabablari va kod bo'limlarini yangi asinxron modelga aylantirishning asosiy usullari muhokama qilinadi.

Qo'llanilishi

Maqolada biznes mantig'ini qurish uchun asinxron model, qo'shilgan platforma "1C: Enterprise" nashri 8.3. Taqdim etilgan ma'lumotlar joriy platforma relizlari uchun tegishli.

1C: Enterprise 8.3 platformasida modal oynalardan foydalanishni rad etish

1C: Enterprise 8 platformasida konfiguratsiyani ishlab chiqishda, foydalanuvchi qaror qabul qilmaguncha yoki biron bir harakat qilmaguncha dasturni vaqti-vaqti bilan to'xtatib turish zarurati paydo bo'ladi.

Masalan, jadval bo'limini to'ldirish tugmachasini bosganda, foydalanuvchidan avval kiritilgan ma'lumotlar yo'qolmasligi uchun jadval bo'limini tozalash kerakmi yoki yo'qligini so'rash kerak.

Masalan, quyidagi kod bu xatti-harakatni ta'minlashi mumkin:

&OnClient
Jarayon Mahsulotlarni to'ldiring(jamoa)
Javob = Savol ("Jadval qismi tozalanadi. Davom etishmi?", Dialog rejimiSavol.HaYo'q);
Agar javob = Dialogni qaytarish kodi. Ha Keyin
//to'ldirish algoritmi
EndIf;
Jarayonning oxiri

Ushbu kod fragmenti natijasida dastur kodining bajarilishi to'xtatiladi, ekranda savol ko'rsatiladi, savol bilan dialogdan tashqari dastur interfeysi mavjud bo'lmaydi, tizim foydalanuvchidan qaror qabul qilinadi va kodni bajarish savolga javob berilgandan keyingina davom etadi.

Modal oynalarni OpenModal() usulini chaqirish orqali ochish ham kodni bajarishda pauzalarga va interfeys bloklanishiga olib keladi.

Brauzer orqali veb-mijoz rejimida konfiguratsiya bilan ishlaganda, bu holda yangi oyna ochiladi - qalqib chiquvchi oyna nafaqat joriy yorliqni, balki butun brauzer interfeysini, shu jumladan boshqa ochiq oynalar va yorliqlarni ham bloklaydi.

Internetdagi qalqib chiquvchi oynalar ko'pincha kiruvchi reklamalarni zararli tarzda tarqatish uchun ishlatiladi, shuning uchun brauzerlarda qalqib chiquvchi oynalarni blokirovka qilish funksiyalari mavjud.

Bunday holda, brauzer orqali 1C: Enterprise 8 konfiguratsiyasi bilan ishlash uchun siz qalqib chiquvchi oynalarni bloklashni o'chirib qo'yishingiz kerak.

Mobil qurilmalarda ishlashda ham muammolar paydo bo'ladi. Misol uchun, modal oynalar iPad-da qo'llab-quvvatlanmaydi.

Ushbu muammolarni hal qilish uchun siz modal oynalar o'rniga blokirovka qiluvchi oynalardan foydalanishingiz kerak. Foydalanuvchi uchun hamma narsa vizual tarzda bir xil ko'rinadi: oyna veb-mijoz interfeysini bloklaydi.

Biroq, blokirovka oynasi asosiy oynaning tepasida "chizilgan" va faqat konfiguratsiya ochiq bo'lgan joriy brauzer yorlig'i bloklanadi, bu sizga boshqa yorliqlarga o'tish imkonini beradi, chunki modal brauzer oynalari ishlatilmaydi.

Shunday qilib, brauzerda qalqib chiquvchi oynalar ochilmaydi va mobil qurilmalarda veb-mijoz orqali ishlashi ta'minlanadi.

Konfiguratsiyaning ildiz elementi konfiguratsiyada modal oynalarni ochish mumkinligini aniqlaydigan "Modallik rejimi" xususiyatiga ega.

Agar "Foydalanish" opsiyasi tanlansa, modal oynalarni ochish mumkin. Agar "Foydalanmaslik" opsiyasi tanlansa, modal oynalarga ruxsat berilmaydi. Modal oynani ochadigan usulni chaqirmoqchi bo'lganingizda, tizim xato xabarini ko'rsatadi:

"Modality use mode" xususiyatining ushbu qiymati bilan faqat oynalarni blokirovka qilishga ruxsat beriladi.

Agar "Ogohlantirishlar bilan foydalanish" opsiyasi tanlansa, modal oynalar ochilganda xabarlar oynasida quyidagi matn ko'rsatiladi:

Ushbu ish variantidan modal oynalardan voz kechish uchun konfiguratsiyani qayta ishlashda oraliq variant sifatida foydalanish mumkin.

Derazalarni bloklash va modal oynalar o'rtasidagi asosiy farq shundaki, blokirovka oynasini ochish kod bajarilishini to'xtatmaydi.

Shuning uchun ishlab chiquvchilar ushbu xususiyatni hisobga olish uchun modal oynalardan foydalanadigan dastur kodini qayta yozishlari kerak bo'ladi.

Kod ikki qismga bo'linishi kerak:

  • blokirovka oynasini ochish;
  • foydalanuvchi tanlovini qayta ishlash.

Maqolaning boshida berilgan kod qismi quyidagi tarzda qayta yozilishi kerak:

&OnClient
Jarayon Mahsulotlarni to'ldiring(jamoa)
Ogohlantirish = Yangi Tavsif Ogohlantirishlar(, ThisObject );

Dialog rejimiSavol.HaYo'q);
Jarayonning oxiri
&OnClient
Jarayon (Natija, Qo'shimcha variantlar) Eksport
Agar natija = Dialogni qaytarish kodi. Ha Keyin
//to'ldirish algoritmi
EndIf;
Jarayonning oxiri

ShowQuestion() protsedurasi bajarilgandan so'ng tizim to'xtamaydi, foydalanuvchining javobini kutadi, kodni bajarish davom etadi.

Foydalanuvchi butun protsedura tugagandan keyingina tanlash imkoniyatiga ega bo'ladi. Bunday holda, FillItemsQuestionComplete() eksport protsedurasi chaqiriladi. Biz uning nomini DescriptionAlerts ob'ektining konstruktoriga o'tkazdik.

Tanlovdan so'ng chaqiriladigan protsedura forma modulida, buyruq modulida yoki umumiy global bo'lmagan modulda joylashgan bo'lishi mumkin.

Ko'rib chiqilgan misolda chaqirilgan protsedura boshqariladigan shakl modulida joylashgan, shuning uchun biz ThisObject parametriga o'tdik.

Umumiy modulda joylashgan protsedurani chaqirishni ko'rib chiqaylik. Buni amalga oshirish uchun yangi umumiy xabarnomani qayta ishlash modulini qo'shing, u uchun "Mijoz (boshqariladigan dastur)" bayrog'ini o'rnating va "Global" bayrog'ini o'rnatmang. Keling, ushbu modulga Mahsulotlarni to'ldirish savolini to'ldirish () protsedurasini joylashtiramiz.

Keyin to'ldirish buyrug'i ishlovchisi quyidagicha ko'rinadi:

&OnClient
Jarayon Mahsulotlarni to'ldiring(jamoa)
Ogohlantirish = Yangi Tavsif Ogohlantirishlar("Mahsulotlar to'g'risidagi savolni to'ldirish",
Processing Alerts);
Savol matni = "Jadval qismi tozalanadi. Davom etasizmi? ;
ShowQuestion (Ogohlantirish, Savol matni, Dialog rejimiSavol.HaYo'q);
Jarayonning oxiri

Bloklash oynasini ochadigan har qanday usulni chaqirgandan so'ng, protseduradan chiqish kerak va keyingi ishlaydigan kod oyna yopilgandan keyin chaqiriladigan protseduraga joylashtirilishi kerak.

Kontekstni (yordamchi ma'lumotlar, ma'lum parametrlar, o'zgaruvchan qiymatlar) modal oynani ochadigan protseduradan u yopilganda chaqiriladigan protseduraga o'tkazish uchun ob'ekt konstruktorining uchinchi ixtiyoriy parametri taqdim etiladi: DescriptionAlerts - Qo'shimcha parametrlar.

Ushbu ob'ekt (har qanday turdagi) Ogohlantirish tavsifida oxirgi parametr sifatida tasvirlangan protseduraga o'tkaziladi.

Yuqorida muhokama qilingan kod bo'limi misolidan foydalanib, buni quyidagicha amalga oshirish mumkin:

&OnClient
Jarayon Mahsulotlarni to'ldiring(jamoa)
Parametr1 = 0;
Parametr2 = 0;
Parametrlar ro'yxati= Yangi tuzilma (“Parametr1, Parametr2″, Parametr1, Parametr2);
Ogohlantirish = Yangi Tavsif Ogohlantirishlar("Mahsulotlar to'g'risidagi savolni to'ldirish", ThisObject,
Parametrlar ro'yxati);
ShowQuestion (Ogohlantirish, "Jadval qismi tozalanadi. Davom ettirilsinmi?",
Dialog rejimiSavol.HaYo'q);
Jarayonning oxiri
&OnClient
Jarayon Mahsulotlar Savolini toʻldirish(Natija, Qo'shimcha variantlar) Eksport
Agar natija = Dialogni qaytarish kodi. Ha Keyin
//Qo'shimcha parametrlarni tahlil qilish.Parameter1
//Qo'shimcha parametrlarni tahlil qilish.Parameter2
EndIf;
Jarayonning oxiri

Agar siz faqat bitta qiymatni o'tkazishingiz kerak bo'lsa, unda siz strukturadan foydalana olmaysiz, lekin bu qiymatni DescriptionAlerts ob'ekti konstruktorining Qo'shimcha parametrlar parametriga belgilang.

Keling, derazalarni blokirovka qilish bilan ishlashning bir nechta misollarini ko'rib chiqaylik.

1-topshiriq: Boshqa shaklni oching

Hujjat shaklidan "Parametrlarni ochish" tugmasini bosish orqali siz foydalanuvchi o'rnatishi kerak bo'lgan ikkita Parametr1 va Parametr2 katakchalari mavjud bo'lgan shaklni ochishingiz kerak. Shaklni yopgandan so'ng, xabar satrida parametr qiymatlarini ko'rsating.

Biz "ParametersForm" umumiy shaklini yaratamiz, unda biz Parameter1 va Parameter2 tafsilotlarini, shuningdek CloseForm buyrug'ini joylashtiramiz:

Buyruqlar ishlovchisi quyidagicha ko'rinadi:

Buyruqlar ishlovchisi quyidagicha ko'rinadi: &OnClient
CloseForm protsedurasi (buyruq)
Parametrlar ro'yxati= Yangi tuzilma ( "Parametr1, Parametr2", Parametr1 , Parametr2 );
Yopish ( Parametrlar ro'yxati); Jarayonning oxiri

Shakl uchun WindowOpenMode xususiyatini "Barcha interfeysni bloklash" ga o'rnating:

Hujjat formasida biz OpenParameters buyrug'ini joylashtiramiz, uning ishlov beruvchisi quyidagicha tavsiflanadi:

&OnClient
Jarayon OpenOptions(jamoa)
Ogohlantirish = Yangi Tavsif Ogohlantirishlar(“Ochish opsiyalari tugatish”, ThisObject);
OpenForm ( "GeneralForm.FormParameters", , , , , , Xabarnoma);
Jarayonning oxiri
&OnClient
Jarayon OpenOptionsComplete(Natija, Qo'shimcha variantlar) Eksport
Agar TypeValue (Natija) = Type ("Tuzilishi") bo'lsa
Natija tsiklidan har bir KeyValue uchun
Xabar = Yangi Foydalanuvchiga xabar;
Message.Text = “Kalit: “” ” + KeyValue.Key + “””, qiymat = ”
+ KeyValue.Value;
Xabar. Hisobot();
EndCycle;
EndIf;
Jarayonning oxiri

Foydalanuvchi rejimida veb-mijoz ostidagi konfiguratsiyani ishga tushirib, biz quyidagi natijalarni olamiz:

Kattalashtirish uchun rasm ustiga bosing.

Oynani ochish rejimi OpenForm protsedurasining oxirgi parametrida ham belgilanishi mumkin.

&OnClient
Jarayon OpenOptions(jamoa)
Ogohlantirish = Yangi Tavsif Ogohlantirishlar(“Ochish opsiyalari tugatish”, ThisObject);
OpenForm ( "GeneralForm.FormParameters", , , , , , Ogohlantirish
FormWindowOpenMode.LockEntireInterface
);
Jarayonning oxiri

Vazifa 2. Shaklni yopishda savol

Qayta ishlash oynasini yopayotganda, foydalanuvchidan u haqiqatan ham oynani yopishni xohlaydimi yoki yo'qligini so'rang.

Ushbu muammoni qayta ishlash shakli modulida joylashgan quyidagi kod yordamida hal qilish mumkin:

&OnClient
Perem Shaklni yopish kerak;
&OnClient
Yopishdan oldingi tartib (muvaffaqiyatsizlik, Standart ishlov berish)
Agar unday bo'lmasa Shaklni yopish kerak= To'g'ri, keyin
Rad etish = rost;
Ogohlantirish = Yangi Tavsif Ogohlantirishlar("Yakunlashdan oldin", ThisObject);
ShowQuestion (Ogohlantirish, "Oynani yopmoqchimisiz?",
Dialog rejimiSavol.HaYo'q
);
EndIf;
Jarayonning oxiri
&OnClient
Jarayon Yakunlashdan oldin(Natija, Qo'shimcha variantlar) Eksport
Agar natija = Dialogni qaytarish kodi. Ha Keyin
Shaklni yopish kerak= To'g'ri;
yaqin();
Aks holda
Shaklni yopish kerak= Aniqlanmagan;
EndIf;
Jarayonning oxiri

PreClosing formasi protsedurasida foydalanuvchiga savol beriladi, Rad etish bayrog'i True ga o'rnatiladi va formani yopish bekor qilinadi.

Savolga ijobiy javobdan so'ng Need toCloseForm o'zgaruvchisi True ga o'rnatiladi va forma yana yopiladi.

3-topshiriq: Raqamli qiymatni kiritish

Qayta ishlash shaklidagi tugmani bosganingizda, standart raqamni kiritish dialogini oching.

Buning uchun EnterNumber() o'rniga ShowNumberInput() usulidan foydalanish kerak, bu modal o'rniga blokirovka oynasini ochadi.

&OnClient
Raqamlarni kiritish tartibi (buyruq)
Ogohlantirish = Yangi Tavsif Ogohlantirishlar(“EnterNumberComplete”, ThisObject);
ShowEnterNumbers(Ogohlantirish, 0, “Miqdorni kiriting”, 15, 3);
Jarayonning oxiri
&OnClient
Jarayon Raqamlarni kiritish(Natija, Qo'shimcha variantlar) Eksport

Xabar = Yangi Foydalanuvchiga xabar;
Message.Text = “Siz miqdorni kiritdingiz” + Natija;
Xabar. Hisobot();
EndIf;
Jarayonning oxiri

Raqamni kiritish oynasi yopilgandan so'ng, protsedura chaqiriladi, uning birinchi parametri kiritilgan raqam yoki agar foydalanuvchi kiritishdan bosh tortgan bo'lsa, Aniqlanmagan qiymat bo'ladi.

4-topshiriq. Rang tanlash

Standart rang tanlash dialog oynasidan foydalanib, ishlov berish shaklidagi tugmani bosganingizda, foydalanuvchi kerakli rangni belgilaydi. Ushbu rangni bosilgan tugma foni uchun o'rnating.

Quyidagi ishlov beruvchi yordamida formaga SelectColor buyrug'ini qo'shing:

&OnClient
Rang tanlash tartibi (buyruq)
Rang tanlash dialogi= Yangi Rang tanlash dialogi;
Ogohlantirish = Yangi Tavsif Ogohlantirishlar(“Rang tanlash tugallandi”, ThisObject);
Rang tanlash dialogi. Ko'rsatish (Ogohlantirish);
Jarayonning oxiri
&OnClient
Jarayon Ranglarni tanlash(Natija, Qo'shimcha variantlar) Eksport
Agar EMAS Natija = Aniqlanmagan bo'lsa
Elementlar. Rang tanlash. Fon rangi= Natija;
EndIf;
Jarayonning oxiri

Rang tanlash dialogi obyektlari uchun (shuningdek, standart davrni tahrirlash dialogi, format qatori konstruktori, muntazam topshiriqlar jadvali dialogi, shrift tanlash dialogi) Show() usuli blokirovka oynasini ochadi.

Oynani yopgandan so'ng, protsedura chaqiriladi, uning birinchi parametri tanlangan qiymat (rang, shrift va boshqalar) yoki agar foydalanuvchi tanlovdan bosh tortgan bo'lsa, Aniqlanmagan qiymatga o'tadi.

Shuni ta'kidlash kerakki, FileSelectionDialog ob'ektida rang yoki shrift tanlash dialoglaridan farqli o'laroq Show() usuli mavjud emas, chunki bu dialoglarni amalga oshirish sezilarli darajada farq qiladi.

Veb-mijozda fayl tanlash dialog oynasidan foydalanish uchun avval fayl kengaytmasini yoqishingiz kerak.

Fayl kengaytmasi orqali amalga oshirilgan dialoglar modal brauzer oynalari kabi operatsion muammolarni yaratmaydi, shuning uchun FileSelectionDialog obyekti uchun blokirovka oynalarini ochish amalga oshirilmadi.

Xulosa qilib shuni ta'kidlaymizki, 8.3.10 versiyasidan boshlab veb-mijozda modal oynalarni qo'llab-quvvatlash to'xtatilgan. Bunday holda, agar konfiguratsiyada modal usul chaqirilsa, istisno hosil bo'ladi. Shuningdek, veb-mijozda interfeys rejimini qo'llab-quvvatlash to'xtatildi Alohida oynalarda. Bundan tashqari, nozik va veb-mijozlarda endi shaklni alohida oynada ochish mumkin emas (Xatcho'plar interfeysi rejimida ishlaganda). Bunday keskin qadamlar endi barcha zamonaviy brauzerlar tomonidan qo'llab-quvvatlanmaydigan interfeys rejimidan voz kechishga imkon berdi.

Ushbu ma'lumotlardan qanday amaliy xulosa chiqarish mumkin? Xulosa juda oddiy - agar biron sababga ko'ra sizning konfiguratsiyangizda modal qo'ng'iroqlar mavjud bo'lsa, veb-mijozning ushbu joylarida xato xabari bilan oyna ko'rsatiladi. Men ushbu muammoni tezda hal qilish uchun "Google" ga harakat qilishdan ogohlantirmoqchiman, chunki... Maslahatlarning aksariyati ushbu retseptga to'g'ri keladi: konfiguratsiya darajasidagi konfiguratorda "Modality use mode" xususiyatini "Use" ga o'rnating. Tabiiyki, hozirgi vaqtda bu ishlamaydi, chunki zamonaviy brauzerlarning o'zlari modal qo'ng'iroqlarni qo'llab-quvvatlamaydilar.

Va yuqorida tavsiflangan muammoni hal qilishning faqat ikkita usuli bor:

  1. 8.3.10+ (8.3.11) versiyasini chiqarish uchun platformani yangilang, “Moslik rejimi” konfiguratsiya xususiyatini “Foydalanmang” ga sozlang va modal usullardan foydalanadigan kod qismlarini asinxron biznes mantiqiy modeliga qayta yozing.
  2. Mijozlarga modal qo'ng'iroqlarni qo'llab-quvvatlaydigan eski brauzerlardan foydalanishni tavsiya eting (Mozilla Firefox versiyalari 37 va undan past, Chrome versiyalari 37 va boshqalar).

Aytgancha, 8.3.11 versiyasidan boshlab, Microsoft Internet Explorer veb-brauzerlarining 8 va 9-versiyalari endi qo'llab-quvvatlanmaydi.

Biz veb-brauzerlar bilan modallik nuqtai nazaridan ishladik, endi boshqa mijozlar bilan vaziyatni aniqlashtirish vaqti keldi.

8.3.5 versiyasidan boshlab, nozik va qalin mijozlardagi Modallikdan foydalanish rejimi xususiyati faqat /EnableCheckModal buyruq qatori opsiyasi ko'rsatilgan bo'lsa hurmat qilinadi. Ushbu parametr faqat dastur konfiguratordan ishga tushirilganda avtomatik ravishda buyruq qatoriga kiritiladi. Agar ushbu parametr ko'rsatilmagan bo'lsa, unda istisnolar yaratilmaydi va tegishli ogohlantirishlar ko'rsatilmaydi. Bular. amalda qalin va yupqa mijozdan foydalanganda, modal rejimdan foydalanganda ishlashda fundamental o'zgarishlar kuzatilmaydi - modal qo'ng'iroqlar veb-mijozda bo'lgani kabi, hech qanday ogohlantirishlarsiz, avval qanday ishlagan bo'lsa, xuddi shunday ishlaydi.

i nuqtalarini belgilash uchun shuni yodda tutingki, 8.3.9 versiyasidan boshlab qalin mijoz "Platforma kengaytmalari va tashqi komponentlarga sinxron qo'ng'iroqlardan foydalanish rejimi" konfiguratsiya xususiyatiga e'tibor bermaydi, shu bilan birga mos keladigan sinxron usullar istisnolarsiz va ogohlantirishlarni ko'rsatmasdan ishlaydi. Ko'rsatilgan e'tiborsiz xususiyat tashqi komponentlar, kriptografiya va Google Chrome veb-brauzeridagi fayllar bilan ishlash uchun kengaytmalar bilan asinxron ishlashni qo'llab-quvvatlash uchun 8.3.5 versiyasiga qo'shildi. Buning qalin mijozga hech qanday aloqasi yo'qligi aniq va shuning uchun "jimgina" bu xususiyatga e'tibor bermaslik konfiguratsiyadan foydalanishda sinxron usullardan foydalanish uchun keraksiz tekshiruvlarni yo'q qildi.

Aytmoqchi! Platforma veb-sahifaga ishonch bilan harakat qilayotganligi sababli, 8.3.8 versiyasi bilan ishlab chiquvchilar qalin va nozik mijozlarda bajariladigan shakl yoki dasturni yopish mantig'i bilan bog'liq bo'lgan dastur kodiga ma'lum cheklovlarni kiritdilar. Ushbu nuanceni batafsil yoritgan maqolamizni o'qib chiqing. Bundan tashqari, "1C: Enterprise 8.3 da interfeyslar va shakllarni professional rivojlantirish" kursida modallikdan voz kechishga bag'ishlangan bob mavjud va siz ushbu mavzu bo'yicha juda ko'p foydali va kerakli ma'lumotlarni to'plashingiz mumkin.

Hamkasblar, siz cheksiz o'qishingiz mumkin bo'lgan ikkita narsa bor: VKontakte tasmasi va platformaning keyingi nashridagi o'zgarishlar ro'yxati, shuning uchun yakuniy natijalarni umumlashtiramiz;)

Sinxron modelning elementlaridan asinxronga o'tishga imkon beradigan misollarni ko'rib chiqish jarayonida siz umumiy holatda ko'proq dastur kodi mavjudligini allaqachon payqagan bo'lsangiz kerak. Kod qancha ko'p bo'lsa, uni keyingi parvarishlash va disk raskadrovka qilishning murakkabligi shunchalik ko'p bo'ladi.

Bundan tashqari, ishlab chiqish jarayonida ko'proq dialoglardan foydalansak, kod miqdori yanada oshadi. Shuning uchun, veb-mijozda ishlashga qaratilgan amaliy echimlarni ishlab chiqish jarayonida siz hozirgi vaqtda zamonaviy veb-ilovalarda qo'llaniladigan ish paradigmasini eslab qolishingiz kerak. Shuning uchun, agar sizning konfiguratsiyangizda foydalanuvchi bilan juda ko'p interaktiv dialoglar va ogohlantirishlar mavjud bo'lsa, unda ushbu funktsiyani foydalanuvchilarning o'zaro ta'sirini tashkil qilishning boshqa yondashuvlari foydasiga qayta ko'rib chiqish mantiqan to'g'ri keladi.

Xulosa o'rniga

"1C rivojlanishidagi birinchi qadamlar" tsiklimiz nihoyasiga yetdi. Agar siz uni to'liq o'qigan bo'lsangiz, ehtimol siz so'nggi paytlarda platforma qanday sakrash va chegaralar bilan rivojlanayotganini allaqachon payqagansiz. Ushbu seriyadagi materiallar nisbatan yaqinda yozilgan, ammo biz uni jiddiy yangilashga majbur bo'ldik, chunki... Bunday qisqa vaqt ichida ham juda ko'p yangi muhim funksiyalar va o'zgarishlar paydo bo'ldi. Bunday katta o'zgarishlar, agar u shu vaqtgacha platforma bilan professional ravishda o'smagan va rivojlanmagan bo'lsa, 1C dasturchisi uchun biroz chalkash bo'lishi mumkin.

Ixtisoslashgan Internet-resurslarda siz ko'pincha tajribasiz dasturchilar va ularning etuk hamkasblarining 1C platformasining keng va ba'zan cheksiz ko'rinadigan imkoniyatlarini tushunishga yordam beradigan materiallarni tavsiya etish bo'yicha so'rovlarini o'qishingiz mumkin. Biz, an'anaga ko'ra, dasturlash kurslarimizga e'tibor berishingizni tavsiya qilamiz

Nima uchun "Mijozda sinxron usullardan foydalanish taqiqlanadi" xatosi paydo bo'ladi?

Agar darslarni yakunlashda bunday xatolikka duch kelsangiz, uni tuzatish juda oson.

Konfiguratorga qayting va "Konfiguratsiya" -> "Konfiguratsiyani ochish" menyusini tanlang:

Ochilgan oynada "Konfiguratsiya" bandini o'ng tugmasini bosing va ochilgan menyudan "Xususiyatlar" ni tanlang:

Konfiguratsiya xususiyatlariga ega oyna ochiladi (o'ngda):

Pastki qismga o'ting va u erda "Modallik rejimi" bandini toping:

Uning qiymatini o'rnating "Foydalanish":

Diqqat! E'tibor bering, agar siz biz birinchi darsda (keyingi versiyada) yuklab olganimizdan farqli 1C platformasidan foydalansangiz, sizda "Sinxron qo'ng'iroqlardan foydalanish rejimi ..." maydoni ham bo'ladi. Shuningdek, u "Foydalanish" ga o'rnatilishi kerak.

Nihoyat, menyu bandini tanlang "Konfiguratsiya" -> "Konfiguratsiyani saqlash":

Tayyor! Endi xato boshqa bo'lmaydi.

Quyida tushuntirishlar - biz qilgan ishimizga qiziquvchilar uchun.

Biz konfiguratsiyamizda modallik rejimini yoqdik. Odatiy bo'lib, bu rejim o'chirilgan va bu bizga EnterNumber, EnterString, EnterDate, OpenValue kabi buyruqlardan foydalanishga ruxsat bermaydi.

Gap shundaki, bu buyruqlar modaldir. Ularga qo'ng'iroq qilish natijasida foydalanuvchi oldida (masalan, ma'lumot kiritish uchun) oyna paydo bo'ladi, bu oyna yopilguncha dastur bilan ishlash imkoniyatini bloklaydi.

Va veb-brauzer orqali 1C bilan ishlashda bunday oynalarning mavjudligi juda istalmaganligi sababli, yangi konfiguratsiyalarni ishlab chiqishda modallik rejimi sukut bo'yicha o'chiriladi.