Өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдийн асинхрон дуудлага. "Үйлчлүүлэгч дээр синхрон аргыг ашиглахыг хориглоно" гэсэн алдаа яагаад гардаг вэ?

8.3.5.1383, 8.3.6.1977 хувилбаруудад хэрэгжсэн.

Орчин үеийн чиг хандлага

Хөтчийн хөгжлийн чиг хандлага нь платформ дахь "асинхрон"-ын хувь хэмжээг улам бүр нэмэгдүүлэхэд хүргэдэг. Эхний алхам нь байсан. Одоо криптографын өргөтгөлүүдтэй ажиллах, файлууд болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллах асинхрон дуудлага байдаг.

Дараачийн асинхрон руу шилжих болсон шалтгаан нь Google Chrome хөтчийг хөгжүүлэгчид өмнөх NPAPI (Netscape Plugin Application Programming Interface) технологийг дэмжихээ больсонтой холбоотой юм. Энэхүү технологийг хөтөч рүү гадаад модулиуд - өргөтгөлүүдийг холбоход ашигласан.

1С: Enterprise ийм өргөтгөлүүдийг криптографтай ажиллах, файлуудтай ажиллах, гадаад бүрэлдэхүүн хэсгүүдийг холбоход ашигладаг. Энэ бол нэлээд чухал функц юм. Криптографийг цахим баримт бичгийн менежментэд ашигладаг бөгөөд гадны бүрэлдэхүүн хэсгүүдийн ачаар програмууд нь бар код сканнер болон бусад жижиглэн худалдааны тоног төхөөрөмжтэй ажиллах боломжтой.

Одоо өмнөх синхрон NPAPI технологийн оронд Google Chrome хөгжүүлэгчид шинэ Native Messaging технологийг бүтээжээ. Үүний зэрэгцээ тэд бүх өргөтгөл хөгжүүлэгчдэд хуучин технологийг ашиглахгүй байхыг хатуу зөвлөж байна, учир нь энэ нь дэмжигдэхгүй.

Дэлгэрэнгүй ярихгүйгээр шинэ технологи нь илүү сайн, аюулгүй юм. Энэ сайн байна. Гэхдээ түүний нэг чухал ялгаа нь хөтчийн өргөтгөлүүдтэй зөвхөн асинхрон харилцан үйлчлэлийг хангадаг явдал юм. Энэ нь 1C: Enterprise дахь өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллах одоо байгаа бүх аргыг эрс өөрчлөхийг шаарддаг. Учир нь тэдгээр нь бүгд синхрон харилцан үйлчлэл дээр суурилдаг.

Асинхрон аргууд

Бид мод дуудлагын асуудлыг шийдсэнтэй адил энэ асуудлыг шийдсэн. NPAPI технологийг ашигладаг бүх синхрон аргуудын хувьд бид тэдгээрийн асинхрон аналогуудыг бий болгосон. Тэд угтвар байгаагаараа голчлон ялгаатай байдаг Эхлэхмөн эхний параметрийг тэдэнд дамжуулж байгаа нь Тайлбар анхааруулга, үүнээс дуудагдсан үйлдэл дууссаны дараа програмын кодын гүйцэтгэл үргэлжлэх болно.

Жишээлбэл, аргын оронд Шифрлэх()Одоо бид энэ аргыг ашиглахыг зөвлөж байна StartEncrypt():

CryptographyManager.Encrypt(<ИсходныеДанные>, <Получатели>) Cryptography Manager.Start Encryption(<ОписаниеОповещения>, <ИсходныеДанные>, <Получатели>)

Аргын оронд GetFiles() - StartGettingFiles():

GetFiles(<ПолучаемыеФайлы>, <ПолученныеФайлы>, <РасположениеФайлов>, <Интерактивно>) Файлуудыг хүлээн авч эхлэх ((<ОписаниеОповещения>, <ПолучаемыеФайлы>, <РасположениеФайлов>, <Интерактивно>)

Оронд нь SetExternalComponent()- ExternalComponents() суулгаж эхлэх:

SetExternalComponent(<Местоположение>) Гадаад бүрэлдэхүүн хэсгүүдийг суулгаж эхлэх (<ОписаниеОповещенияОЗавершении>, <Местоположение>)

Үнэн хэрэгтээ, ерөнхийдөө бүх зүйл бидний өмнө модал байдлаас ангижрах үед хийж байсан зүйлтэй маш төстэй юм. Гэхдээ шинэ асинхрон аргуудын ажиллагаа нь модаль бус харилцах цонхыг үүсгэдэг аргуудад байдаггүй чухал шинж чанартай байдаг.

Загваргүй харилцах цонхыг асинхроноор дуудах үед бид зөвхөн хэрэглэгчийн хариу үйлдлийг хүлээхээс өөр зүйлгүй. Гэнэтийн зүйл тохиолдохгүй гэдэг утгаараа.

Өргөтгөлүүд болон бүрэлдэхүүн хэсгүүдтэй ажиллах асинхрон аргуудыг дуудах явцад онцгой нөхцөл байдал үүсч болно. Өргөтгөл суулгаагүй, бүрэлдэхүүн хэсэг нь ачаалагдаагүй гэх мэт.

Та ихэвчлэн өөрийн програмын кодонд ийм үл хамаарах зүйлсийг зохицуулдаг. Оператор ашиглах Оролдож байна... Үл хамаарах зүйл. Гэхдээ одоо энэ боломжгүй болж байна, учир нь асинхрон дуудлага хийх үед програмын кодыг гүйцэтгээгүй байна. Үүний дагуу оператор ажиллахгүй байна Оролдож байна... Үл хамаарах зүйл.

  • NameProcedureProcessing Errors;
  • ErrorProcessingModule.

Хэрэв асинхрон дуудлагын явцад ямар нэг зүйл буруу болж, үл хамаарах зүйл тохиолдвол эдгээр шинж чанаруудын заасан процедурыг гүйцэтгэнэ. Эдгээр хоёр шинж чанарыг зөвхөн өргөтгөлтэй ажиллах асинхрон аргуудад ашиглах нь утга учиртай юм. Загваргүй харилцах цонхыг дуудах үед танд эдгээр шинж чанарууд хэрэггүй.

Тохируулгын шинж чанар

Модлогоос татгалзахтай адил хэрэглээний шийдэл бүхэлдээ "энэ нь юу болохыг" мэддэг байх ёстой. Энэ нь загварлаг эсвэл загварлаг бус байна. Энэ нь синхрон эсвэл асинхрон байна.

Өмнө нь горимын асуудлыг шийдэхийн тулд бид тусгай тохиргооны шинж чанарыг нэмсэн Модаль ашиглах арга. Одоо синхрончлолын асуудлыг шийдэхийн тулд бид үүнтэй төстэй шинж чанарыг нэмсэн Өргөтгөлүүд болон гадаад бүрэлдэхүүн хэсгүүдэд синхрон дуудлагыг ашиглах горим.

Түүний хэрэглээний мөн чанар нь дараах байдалтай байна.

  • Хэрэглэж болохгүй- энэ бол үйл ажиллагааны шинэ, асинхрон горим юм. Шинэ тохиргооны хувьд энэ нь стандарт горим юм. Хуучин, синхрон аргыг ашиглахыг хориглоно. Тэд синтаксийн хяналтыг давж чаддаггүй, контекстийн сэжүүрт байдаггүй. Синхрон аргыг хэрэгжүүлэх оролдлого нь үл хамаарах зүйл үүсгэдэг.
  • Анхааруулгатай хэрэглээрэй- энэ горим нь хөгжүүлэгчдэд зориулагдсан. Энэ нь хуучин, синхрон аргыг ашиглахад саад болохгүй. Гэхдээ үйлчлүүлэгч рүү синхрон аргыг дуудах бүрт энэ нь анхааруулах мессеж үүсгэдэг. Бид энэ горимыг "дахин боловсруулах" тохиргоонд ашиглахыг зөвлөж байна. Энэ нь синхрон дуудлагыг нүдээр хайх, засварлах явцад тэдгээрийг хянахад тохиромжтой.
  • Ашиглах- өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллахад синхрон аргыг ашигладаг хуучин тохиргоотой платформын шинэ хувилбарыг нийцтэй байлгах горим.

Бидний өнөөг хүртэл ярьсан бүх арга, шинж чанарууд нь хувилбарт хэрэгжсэн 8.3.5.1383 . Та тэдгээрийг хэрэглээний шийдэлдээ ашиглаж болно. Жишээлбэл, хөгжүүлэгчид криптографийн хэрэгслийг ашигладаг, файлууд болон гадаад бүрэлдэхүүн хэсгүүдтэй ажилладаг асинхрон үйлдлийн дэд системд шилжих болно.

Мэдээжийн хэрэг, модаль дуудлагын нэгэн адил танд асуулт байгаа байх. Би хэрэглээний шийдлээ дахин хийх шаардлагатай юу? Ерөнхийдөө би эдгээр асинхрон аргуудыг шинэ хэрэглээний шийдэлдээ ашиглах шаардлагатай юу?

Энэ нь хэзээ хэрэгтэй вэ?

Энэ асуултын хариулт нь бидний өмнө өгсөнтэй үндсэндээ ижил байна. Тэд горимоос татгалзах тухай ярихдаа.

Нэгдүгээрт, технологийн платформын хувилбар бүр өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдэд асинхрон дуудлагын горимыг дэмждэггүй. Энэ үйлдлийн горим 8.3.5.1383 хувилбараас эхлэн хэрэгжиж байна. Тиймээс, хэрэв та платформын доод хувилбарууд дээр ажиллаж байгаа бол одоохондоо синхрон аргуудаас татгалзах талаар санаа зовох хэрэггүй болно.

Хоёрдугаарт, бүх хэрэглээний шийдлүүд энэ горимыг заавал ашиглах албагүй. Чухал програмууд нь Google Chrome хөтөч дээрх вэб клиентийг ашиглан ажиллах програмууд юм. Ийм програмууд нь ихэвчлэн ажиллаж байгаа програмууд байдаг. Хэрэв таны хэрэглээний шийдлийг энэ горимд ашиглахгүй бол та одоогоор синхрон аргуудаас татгалзаж чадахгүй.

Гэсэн хэдий ч эхний болон хоёр дахь цэгүүдийг үл харгалзан таны төлөвлөгөөнд нөлөөлж болох дэлхийн чиг хандлага байдаг. Бид 1С компани нь бүх стандарт шийдлүүдийг боломжтой аль ч хэлбэрээр ашиглах боломжтой гэдэгт үндэслэн боловсруулдаг. Тиймээс бид шинэ хэрэглээний шийдлүүд болон тэдгээрт ашиглагдаж буй бүх номын сангуудыг синхрон дуудлагыг ашиглахгүйгээр горимд хэрэгжүүлэх болно.

Энэ нь та энэ үйлдлийн горимыг яг одоо эзэмшиж эхлэх нь дээр гэсэн үг юм. Хэдийгээр таны аппликешн үүнийг хараахан ашиглаагүй байгаа ч боломжтой бол одоо орчуулж эхлэхийг зөвлөж байна. Гэсэн хэдий ч бид таныг энэ үйл явцад бүтээлчээр хандахыг зөвлөж байна. Модлогоос татгалзаж байгаатай адилхан. Өөрөөр хэлбэл, синхрон аргыг асинхроноор механикаар солих шаардлагагүй болно. Нэгдүгээрт, энэ газарт бид синхрон аргыг ашиглахаас бүрэн татгалзахын тулд алгоритм эсвэл скриптийг өөрчлөх боломжтой эсэх талаар бодох нь зүйтэй болов уу?

Дахин засварлах

Нэг талаас, хэрэв тохиргоо нь том бөгөөд олон тооны синхрон дуудлага байгаа бол ийм тохиргоог "гараар" дахин боловсруулах нь маш их цаг хугацаа шаардсан ажил байж болно.

Нөгөө талаас, 8.3.5.1068 хувилбараас эхлэн уг платформ нь синхрон дуудлагыг асинхрон дуудлагууд руу хөрвүүлэх боломжийг олгодог.

Тиймээс бид аль хэдийн байгаа эдгээр хэрэгслийг авч, тэдгээрийг өргөжүүлж, "модал байдлаас холдох" -оос "асинхрон руу шилжих" рүү чиглүүлэв. Үндсэндээ асинхрон аргууд руу шилжих нь горимоос татгалзах үед хийгддэг үйлдлүүдтэй төстэй юм. Хуучин, "загваргүй", синхрон (модал) дуудлагуудыг шинэ, "загварлаг", асинхрон дуудлагаар солих шаардлагатай. Анхааруулга боловсруулж байна.

Энэхүү шинэчлэгдсэн хэлбэрээр рефакторын хэрэгслүүдийг хувилбарт ашиглах боломжтой болсон 8.3.6.1977 .

Эдгээр хэрэгслүүдийн "онцлол" нь асинхрон руу шилжсэн тул бид зарим командын нэрийг өөрчилсөн. "Модаль бус" гэсэн үгийн оронд одоо "хуучирсан синхрон" хэллэгийг ашиглаж байна:

Нэмж дурдахад бид тохируулагчийн тохиргоонд шинэ таб нэмсэн Дахин засварлах. Анхдагч байдлаар, хоёр хувиргалтыг идэвхжүүлсэн байна. Гэхдээ хэрэв танд хэрэгтэй бол түүний тусламжтайгаар та автомат рефакторинг хийх явцад зөвхөн нэг төрлийн хувиргалтыг хийж болно.

05.12.2014

8.3.5.1383, 8.3.6.1977 хувилбаруудад хэрэгжсэн.

Орчин үеийн чиг хандлага

Хөтөчийг хөгжүүлэх чиг хандлага нь платформ дахь "асинхрон"-ын хувь хэмжээг нэмэгдүүлэхэд хүргэдэг. Эхний алхам бол хэв маягаас татгалзах явдал байв. Одоо криптографийн өргөтгөлүүдтэй ажиллах, файлууд болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллах асинхрон дуудлага байдаг.

Дараачийн асинхрон руу шилжих болсон шалтгаан нь Google Chrome хөтчийг хөгжүүлэгчид өмнөх NPAPI (Netscape Plugin Application Programming Interface) технологийг дэмжихээ больсонтой холбоотой юм. Энэхүү технологийг хөтөч рүү гадаад модулиуд - өргөтгөлүүдийг холбоход ашигласан.

1С: Enterprise ийм өргөтгөлүүдийг криптографтай ажиллах, файлуудтай ажиллах, гадаад бүрэлдэхүүн хэсгүүдийг холбоход ашигладаг. Энэ бол нэлээд чухал функц юм. Криптографийг цахим баримт бичгийн менежментэд ашигладаг бөгөөд гадны бүрэлдэхүүн хэсгүүдийн ачаар програмууд нь бар код сканнер болон бусад жижиглэн худалдааны тоног төхөөрөмжтэй ажиллах боломжтой.

Одоо өмнөх синхрон NPAPI технологийн оронд Google Chrome хөгжүүлэгчид шинэ Native Messaging технологийг бүтээжээ. Үүний зэрэгцээ тэд бүх өргөтгөл хөгжүүлэгчдэд хуучин технологийг ашиглахгүй байхыг хатуу зөвлөж байна, учир нь энэ нь дэмжигдэхгүй.

Дэлгэрэнгүй ярихгүйгээр шинэ технологи нь илүү сайн, аюулгүй юм. Энэ сайн байна. Гэхдээ түүний нэг чухал ялгаа нь хөтчийн өргөтгөлүүдтэй зөвхөн асинхрон харилцан үйлчлэлийг хангадаг явдал юм. Энэ нь 1C: Enterprise дахь өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллах одоо байгаа бүх аргыг эрс өөрчлөхийг шаарддаг. Учир нь тэдгээр нь бүгд синхрон харилцан үйлчлэл дээр суурилдаг.

Асинхрон аргууд

Бид энэ асуудлыг загвар дуудлагын асуудалтай ижил аргаар шийдсэн. NPAPI технологийг ашигладаг бүх синхрон аргуудын хувьд бид тэдгээрийн асинхрон аналогуудыг бий болгосон. Тэдгээр нь үндсэндээ Эхлэх угтвар байгаагаараа ялгаатай бөгөөд эхний параметр нь дохиоллын тайлбар бөгөөд дуудагдсан үйлдэл дууссаны дараа програмын кодын гүйцэтгэл үргэлжлэх болно.

Жишээлбэл, Encrypt() аргын оронд StartEncrypt() аргыг ашиглахыг зөвлөж байна.

CryptographyManager.Encrypt(<ИсходныеДанные>, <Получатели>) Cryptography Manager.Start Encryption(<ОписаниеОповещения>, <ИсходныеДанные>, <Получатели>)

GetFiles() аргын оронд - StartGettingFiles():

GetFiles(<ПолучаемыеФайлы>, <ПолученныеФайлы>, <РасположениеФайлов>, <Интерактивно>) Файлуудыг хүлээн авч эхлэх ((<ОписаниеОповещения>, <ПолучаемыеФайлы>, <РасположениеФайлов>, <Интерактивно>)

InstallExternalComponent()-ын оронд - StartInstallingExternalComponent():

SetExternalComponent(<Местоположение>) Гадаад бүрэлдэхүүн хэсгүүдийг суулгаж эхлэх (<ОписаниеОповещенияОЗавершении>, <Местоположение>)

Үнэн хэрэгтээ, ерөнхийдөө бүх зүйл бидний өмнө модал байдлаас ангижрах үед хийж байсан зүйлтэй маш төстэй юм. Гэхдээ шинэ асинхрон аргуудын ажиллагаа нь модаль бус харилцах цонхыг үүсгэдэг аргуудад байдаггүй чухал шинж чанартай байдаг.

Загваргүй харилцах цонхыг асинхроноор дуудах үед бид зөвхөн хэрэглэгчийн хариу үйлдлийг хүлээхээс өөр зүйлгүй. Гэнэтийн зүйл тохиолдохгүй гэдэг утгаараа.

Өргөтгөлүүд болон бүрэлдэхүүн хэсгүүдтэй ажиллах асинхрон аргуудыг дуудах явцад онцгой нөхцөл байдал үүсч болно. Өргөтгөл суулгаагүй, бүрэлдэхүүн хэсэг нь ачаалагдаагүй гэх мэт.

Та ихэвчлэн өөрийн програмын кодонд ийм үл хамаарах зүйлсийг зохицуулдаг. Try... Exception операторыг ашиглах. Гэхдээ одоо энэ боломжгүй болж байна, учир нь асинхрон дуудлага хийх үед програмын кодыг гүйцэтгээгүй байна. Үүний дагуу оролдлого... Exception оператор ажиллахгүй байна.

  • ErrorProcedureName;
  • Алдаа зохицуулах модуль.

Хэрэв асинхрон дуудлагын явцад ямар нэг зүйл буруу болж, үл хамаарах зүйл тохиолдвол эдгээр шинж чанаруудын заасан процедурыг гүйцэтгэнэ. Эдгээр хоёр шинж чанарыг зөвхөн өргөтгөлтэй ажиллах асинхрон аргуудад ашиглах нь утга учиртай юм. Загваргүй харилцах цонхыг дуудах үед танд эдгээр шинж чанарууд хэрэггүй.

Тохируулгын шинж чанар

Модлогоос татгалзахтай адил хэрэглээний шийдэл бүхэлдээ "энэ нь юу болохыг" мэддэг байх ёстой. Энэ нь загварлаг эсвэл загварлаг бус байна. Энэ нь синхрон эсвэл асинхрон байна.

Өмнө нь горимын асуудлыг шийдэхийн тулд бид тохиргоонд тусгай шинж чанарыг нэмсэн: Модал ашиглах горим. Одоо синхрончлолын асуудлыг шийдэхийн тулд бид үүнтэй төстэй шинж чанарыг нэмсэн: Өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдийн синхрон дуудлагыг ашиглах горим.

Түүний хэрэглээний мөн чанар нь дараах байдалтай байна.

  • Ашиглахгүй байх нь шинэ, асинхрон үйлдлийн горим юм. Шинэ тохиргооны хувьд энэ нь стандарт горим юм. Хуучин, синхрон аргыг ашиглахыг хориглоно. Тэд синтаксийн хяналтыг давж чаддаггүй, контекстийн сэжүүрт байдаггүй. Синхрон аргыг хэрэгжүүлэх оролдлого нь үл хамаарах зүйл үүсгэдэг.
  • Анхааруулгатай ашиглах - энэ горим нь хөгжүүлэгчдэд зориулагдсан. Энэ нь хуучин, синхрон аргыг ашиглахад саад болохгүй. Гэхдээ үйлчлүүлэгч рүү синхрон аргыг дуудах бүрт энэ нь анхааруулах мессеж үүсгэдэг. Бид энэ горимыг "дахин боловсруулах" тохиргоонд ашиглахыг зөвлөж байна. Энэ нь синхрон дуудлагыг нүдээр хайх, засварлах явцад хянахад тохиромжтой.
  • Ашиглах - өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдтэй ажиллахад синхрон аргыг ашигладаг хуучин тохиргоотой платформын шинэ хувилбарыг нийцтэй байлгах горим.

Бидний өнөөг хүртэл ярьсан бүх арга, шинж чанаруудыг 8.3.5.1383 хувилбарт хэрэгжүүлсэн. Та тэдгээрийг хэрэглээний шийдэлдээ ашиглаж болно. Жишээлбэл, BSP хөгжүүлэгчид криптографийн хэрэгслийг ашигладаг, файлууд болон гадаад бүрэлдэхүүн хэсгүүдтэй ажилладаг дэд системүүдийг асинхрон ажиллагаанд шилжүүлэх болно.

Мэдээжийн хэрэг, модаль дуудлагын нэгэн адил танд асуулт байгаа байх. Би хэрэглээний шийдлээ дахин хийх шаардлагатай юу? Ерөнхийдөө би эдгээр асинхрон аргуудыг шинэ хэрэглээний шийдэлдээ ашиглах шаардлагатай юу?

Энэ нь хэзээ хэрэгтэй вэ?

Энэ асуултын хариулт нь бидний өмнө өгсөнтэй үндсэндээ ижил байна. Тэд горимоос татгалзах тухай ярихдаа.

Нэгдүгээрт, технологийн платформын хувилбар бүр өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдэд асинхрон дуудлагын горимыг дэмждэггүй. Энэ үйлдлийн горим 8.3.5.1383 хувилбараас эхлэн хэрэгжиж байна. Тиймээс, хэрэв та платформын доод хувилбарууд дээр ажиллаж байгаа бол одоохондоо синхрон аргуудаас татгалзах талаар санаа зовох хэрэггүй болно.

Хоёрдугаарт, бүх хэрэглээний шийдлүүд энэ горимыг заавал ашиглах албагүй. Чухал програмууд нь Google Chrome хөтөч дээрх вэб клиентийг ашиглан ажиллах програмууд юм. Ийм программууд нь ихэнх тохиолдолд үйлчилгээний загварт ажилладаг програмууд юм. Хэрэв таны хэрэглээний шийдлийг энэ горимд ашиглахгүй бол та одоогоор синхрон аргуудаас татгалзаж чадахгүй.

Гэсэн хэдий ч эхний болон хоёр дахь цэгүүдийг үл харгалзан таны төлөвлөгөөнд нөлөөлж болох дэлхийн чиг хандлага байдаг. Бид 1С компани нь бүх стандарт шийдлүүдийг боломжтой аль ч хэлбэрээр ашиглах боломжтой гэдэгт үндэслэн боловсруулдаг. Тиймээс бид шинэ хэрэглээний шийдлүүд болон тэдгээрт ашиглагдаж буй бүх номын сангуудыг синхрон дуудлагыг ашиглахгүйгээр горимд хэрэгжүүлэх болно.

Энэ нь та энэ үйлдлийн горимыг яг одоо эзэмшиж эхлэх нь дээр гэсэн үг юм. Хэдийгээр таны аппликешн үүнийг хараахан ашиглаагүй байгаа ч боломжтой бол одоо орчуулж эхлэхийг зөвлөж байна. Гэсэн хэдий ч бид таныг энэ үйл явцад бүтээлчээр хандахыг зөвлөж байна. Модлогоос татгалзаж байгаатай адилхан. Өөрөөр хэлбэл, синхрон аргыг асинхроноор механикаар солих шаардлагагүй болно. Нэгдүгээрт, энэ газарт бид синхрон аргыг ашиглахаас бүрэн татгалзахын тулд алгоритм эсвэл скриптийг өөрчлөх боломжтой эсэх талаар бодох нь зүйтэй болов уу?

Дахин засварлах

Нэг талаас, хэрэв тохиргоо нь том бөгөөд олон тооны синхрон дуудлага байгаа бол ийм тохиргоог "гараар" дахин боловсруулах нь маш их цаг хугацаа шаардсан ажил байж болно.

Нөгөөтэйгүүр, 8.3.5.1068 хувилбараас эхлэн платформ нь синхрон дуудлагыг асинхрон дуудлагууд руу хөрвүүлэх боломжийг олгодог хэрэгслүүдтэй.

Тиймээс бид аль хэдийн байгаа эдгээр хэрэгслийг авч, тэдгээрийг өргөжүүлж, "модал байдлаас холдох" -оос "асинхрон руу шилжих" рүү чиглүүлэв. Үндсэндээ асинхрон аргууд руу шилжих нь горимоос татгалзах үед хийгддэг үйлдлүүдтэй төстэй юм. Хуучин, "загваргүй", синхрон (модаль) дуудлагуудыг Мэдэгдэл боловсруулалтыг ашигладаг шинэ, "загварлаг", асинхрон дуудлагаар солих шаардлагатай.

Энэхүү шинэчлэгдсэн хэлбэрээр, 8.3.6.1977 хувилбар дээр дахин засварлах хэрэгслүүд танд боломжтой болсон.

Эдгээр хэрэгслүүдийн "онцлол" нь асинхрон руу шилжсэн тул бид зарим командын нэрийг өөрчилсөн. "Модаль бус" гэсэн үгийн оронд одоо "хуучирсан синхрон" хэллэгийг ашиглаж байна:

Нэмж дурдахад бид тохируулагчийн тохиргоонд шинэ Refactoring tab-г нэмсэн. Анхдагч байдлаар, хоёр хувиргалт идэвхжсэн байна. Гэхдээ хэрэв танд хэрэгтэй бол түүний тусламжтайгаар та автомат рефакторинг хийхдээ зөвхөн нэг төрлийн хувиргалтыг хийж болно.

Нийтлэлд 1С: Аж ахуйн нэгжийн платформ дахь горимоос татгалзах гол шалтгаанууд болон кодын хэсгүүдийг шинэ асинхрон загварт хөрвүүлэх үндсэн аргуудыг авч үзэх болно.

Хэрэглэх чадвар

Нийтлэлд бизнесийн логикийг бий болгох асинхрон загвар, нэмсэн платформ "1C: Enterprise" хэвлэл 8.3-ийн талаар авч үзэх болно. Үзүүлсэн мэдээлэл нь одоогийн платформын хувилбаруудад хамааралтай.

1C: Enterprise 8.3 платформ дээр модаль цонх ашиглахаас татгалзах

1C: Enterprise 8 платформ дээр тохиргоог боловсруулахдаа хэрэглэгч шийдвэр гаргах эсвэл ямар нэгэн үйлдэл хийх хүртэл програмыг түр зогсоох шаардлагатай болдог.

Жишээлбэл, хүснэгтийн хэсгийг бөглөх товчийг дарах үед өмнө нь оруулсан өгөгдлийг алдахгүйн тулд хүснэгтийн хэсгийг цэвэрлэх шаардлагатай эсэхийг хэрэглэгчээс асуух хэрэгтэй.

Энэ зан үйлийг жишээлбэл, дараах кодоор хийж болно.

&OnClient
Процедур Бүтээгдэхүүнийг бөглөнө үү(баг)
Хариулт = Асуулт ("Хүснэгт хэсэг арилах болно. Үргэлжлүүлэх үү?", Харилцан ярианы горимАсуулт. ТиймҮгүй);
Хэрэв хариулт = Харилцан ярианы буцах код. ТиймДараа нь
//бөглөх алгоритм
EndIf;
Төгсгөлийн процедур

Энэхүү кодын фрагментийн үр дүнд програмын кодын гүйцэтгэлийг түр зогсоож, дэлгэцэн дээр асуулт гарч ирэх бөгөөд асуулт бүхий харилцах цонхноос бусад програмын интерфейс боломжгүй болж, систем хэрэглэгчээс ямар нэгэн үйлдэл хийхийг хүлээх болно. шийдвэр, кодыг гүйцэтгэх нь асуултанд хариулсны дараа л үргэлжлэх болно.

OpenModal() аргыг дуудаж модаль цонх нээх нь кодын гүйцэтгэлийг түр зогсоож, интерфэйсийг блоклодог.

Хөтөчөөр дамжуулан вэб клиентийн горимд тохиргоотой ажиллах үед энэ тохиолдолд шинэ цонх нээгдэх болно - зөвхөн одоогийн табыг төдийгүй бусад нээлттэй цонх, табуудыг оруулаад хөтчийн бүх интерфейсийг хаах цонх гарч ирнэ.

Интернет дэх гарч ирэх цонхнууд нь ихэвчлэн хүсээгүй зар сурталчилгааг хорлонтойгоор түгээхэд ашиглагддаг тул хөтчүүдэд попап хаах функцууд байдаг.

Энэ тохиолдолд хөтчөөр дамжуулан 1C: Enterprise 8 тохиргоотой ажиллахын тулд попап хаалтыг идэвхгүй болгох шаардлагатай.

Мөн хөдөлгөөнт төхөөрөмж дээр ажиллахад асуудал гардаг. Жишээлбэл, модаль цонхыг iPad дээр дэмждэггүй.

Эдгээр асуудлыг шийдэхийн тулд та модаль цонхны оронд хаах цонхыг ашиглах хэрэгтэй. Хэрэглэгчийн хувьд бүх зүйл ижил төстэй харагдаж байна: цонх нь вэб клиентийн интерфейсийг хаадаг.

Гэсэн хэдий ч хаах цонх нь үндсэн цонхны дээд талд "зурагдсан" бөгөөд зөвхөн тохиргоо нээлттэй байгаа хөтчийн табыг хаасан бөгөөд хөтчийн модаль цонхыг ашиглаагүй тул бусад таб руу шилжих боломжийг танд олгоно.

Тиймээс хөтөч дээр гарч ирэх цонхнууд нээгддэггүй бөгөөд мобайл төхөөрөмж дээрх вэб клиентээр дамжуулан ажиллах боломжтой болно.

Тохиргооны үндсэн элемент нь тохиргоонд модаль цонх нээх боломжтой эсэхийг тодорхойлдог "Modality mode" шинж чанартай байдаг.

Хэрэв "Ашиглах" сонголтыг сонгосон бол модаль цонхыг нээж болно. Хэрэв "Бүү ашиглах" сонголтыг сонгосон бол модаль цонхыг зөвшөөрөхгүй. Модал цонхыг нээдэг аргыг дуудахыг оролдох үед систем алдааны мессежийг харуулна:

"Modality usage mode" шинж чанарын энэ утгыг ашиглан зөвхөн цонхыг хаахыг зөвшөөрнө.

Хэрэв "Анхааруулгатай ашиглах" сонголтыг сонгосон бол модаль цонхыг нээх үед мессежийн цонхонд дараах текст гарч ирнэ.

Модал цонхны хэрэглээг орхихын тулд тохиргоог дахин боловсруулахдаа энэ ажлын сонголтыг завсрын хувилбар болгон ашиглаж болно.

Цонхыг блоклох ба модаль цонхны гол ялгаа нь блоклох цонхыг нээх нь кодын гүйцэтгэлийг түр зогсоохгүй байх явдал юм.

Тиймээс хөгжүүлэгчид энэ функцийг анхаарч үзэхийн тулд модаль цонх ашигладаг програмын кодыг дахин бичих шаардлагатай болно.

Кодыг хоёр хэсэгт хуваах шаардлагатай:

  • хаах цонх нээх;
  • хэрэглэгчийн сонголтыг боловсруулах.

Өгүүллийн эхэнд өгөгдсөн кодын фрагментийг дараах байдлаар дахин бичих шаардлагатай.

&OnClient
Процедур Бүтээгдэхүүнийг бөглөнө үү(баг)
Анхааруулга = Шинэ Тайлбар анхааруулга(, ThisObject );

Харилцан ярианы горимАсуулт. ТиймҮгүй);
Төгсгөлийн процедур
&OnClient
Процедур (Үр дүн, Нэмэлт сонголтууд) Экспорт
Хэрэв үр дүн = Харилцан ярианы буцах код. ТиймДараа нь
//бөглөх алгоритм
EndIf;
Төгсгөлийн процедур

ShowQuestion() процедурыг гүйцэтгэсний дараа систем зогсохгүй, хэрэглэгчийн хариуг хүлээж, кодын гүйцэтгэл үргэлжилнэ.

Процедурыг бүхэлд нь хийж дууссаны дараа хэрэглэгч сонголтоо хийх боломжтой болно. Энэ тохиолдолд FillItemsQuestionComplete() экспортын процедурыг дуудах болно. Бид түүний нэрийг DescriptionAlerts объектын бүтээгчид дамжуулсан.

Сонголт хийсний дараа дуудагдах процедурыг маягтын модуль, тушаалын модуль эсвэл ерөнхий бус модульд байрлуулж болно.

Үзэж буй жишээн дээр дуудагдсан процедур нь удирддаг маягтын модульд байрладаг тул бид ThisObject параметрийг дамжуулсан.

Нийтлэг модульд байрлах процедурыг дуудах талаар авч үзье. Үүнийг хийхийн тулд "Мэдэгдэл боловсруулах" шинэ нийтлэг модулийг нэмж, "Клиент (удирддаг програм)" гэсэн тугийг тохируулж, "Глобал" тугийг бүү тавь. Бүтээгдэхүүнийг бөглөх асуултыг бөглөх () процедурыг энэ модульд байрлуулцгаая.

Дараа нь дүүргэх командын зохицуулагч дараах байдлаар харагдах болно.

&OnClient
Процедур Бүтээгдэхүүнийг бөглөнө үү(баг)
Анхааруулга = Шинэ Тайлбар анхааруулга("Бүтээгдэхүүний асуултыг бөглөх",
Боловсруулах сэрэмжлүүлэг);
Асуултын текст = "Хүснэгтийн хэсэг арилах болно. Үргэлжлүүлэх үү?" ;
ShowQuestion (Анхааруулга, Асуултын Текст, Харилцан ярианы горимАсуулт. ТиймҮгүй);
Төгсгөлийн процедур

Блоклох цонхыг нээдэг дурын аргыг дуудсаны дараа процедур нь гарах ёстой бөгөөд дараа нь ажиллах кодыг цонх хаагдсаны дараа дуудагдах процедурт байрлуулна.

Модал цонхыг нээдэг процедураас контекстийг (туслах өгөгдөл, тодорхой параметрүүд, хувьсагчийн утгууд) хаагдсан үед дуудагдах процедур руу шилжүүлэхийн тулд объект үүсгэгчийн гуравдахь нэмэлт параметрийг өгсөн болно: DescriptionAlerts – Нэмэлт параметрүүд.

Энэ объектыг (ямар ч төрлийн) Сэрэмжлүүлэгийн тайлбарт сүүлийн параметр болгон тайлбарласан процедурт шилжүүлэх болно.

Дээр дурдсан кодын хэсгийн жишээг ашиглан үүнийг дараах байдлаар хийж болно.

&OnClient
Процедур Бүтээгдэхүүнийг бөглөнө үү(баг)
Параметр1 = 0 ;
Параметр2 = 0 ;
Параметрүүдийн жагсаалт= Шинэ бүтэц (Параметр1, Параметр2″, Параметр1, Параметр2);
Анхааруулга = Шинэ Тайлбар анхааруулга("Бүтээгдэхүүний асуултыг бөглөх", ThisObject,
Параметрүүдийн жагсаалт);
ShowQuestion (Анхааруулга, "Хүснэгт хэсэг арилах болно. Үргэлжлүүлэх үү?",
Харилцан ярианы горимАсуулт. ТиймҮгүй);
Төгсгөлийн процедур
&OnClient
Процедур Бүтээгдэхүүний асуултыг бөглөнө үү(Үр дүн, Нэмэлт сонголтууд) Экспорт
Хэрэв үр дүн = Харилцан ярианы буцах код. ТиймДараа нь
//Нэмэлт параметрүүдэд дүн шинжилгээ хийх.Parameter1
//Нэмэлт параметрүүдэд дүн шинжилгээ хийх.Parameter2
EndIf;
Төгсгөлийн процедур

Хэрэв та зөвхөн нэг утгыг дамжуулах шаардлагатай бол бүтцийг ашиглах боломжгүй, гэхдээ энэ утгыг DescriptionAlerts объектын байгуулагчийн Нэмэлт параметрийн параметрт оноож өгнө үү.

Цонхыг хаахтай ажиллах хэд хэдэн жишээг харцгаая.

Даалгавар 1: Өөр маягт нээнэ үү

Баримт бичгийн маягтаас "Нээлттэй параметрүүд" товчийг дарснаар хэрэглэгч тохируулах ёстой Параметр1 ба Параметр2 гэсэн хоёр нүдтэй маягтыг нээх хэрэгтэй. Маягтыг хаасны дараа параметрийн утгыг мессежийн мөрөнд харуулна уу.

Бид "ParametersForm" гэсэн ерөнхий маягтыг үүсгэж, үүн дээр Параметр1 ба Параметр2 дэлгэрэнгүй мэдээлэл, мөн CloseForm командыг байрлуулна.

Командын зохицуулагч дараах байдалтай байна.

Тушаал зохицуулагч дараах байдалтай байна: &OnClient
CloseForm процедур (тушаал)
Параметрүүдийн жагсаалт= Шинэ бүтэц ( "Параметр1, Параметр2", Параметр1 , Параметр2 );
Хаах ( Параметрүүдийн жагсаалт); Төгсгөлийн процедур

Маягтын хувьд WindowOpenMode шинж чанарыг "Интерфэйсийг бүхэлд нь хаах" болгож тохируулна уу:

Баримт бичгийн маягт дээр бид OpenParameters командыг байрлуулж, зохицуулагчийг дараах байдлаар тайлбарласан болно.

&OnClient
Процедур Нээлттэй сонголтууд(баг)
Анхааруулга = Шинэ Тайлбар анхааруулга("Нээлттэй сонголтуудыг дуусгах", ThisObject );
OpenForm ( "Ерөнхий хэлбэр. FormParameters", , , , , , Мэдэгдэл);
Төгсгөлийн процедур
&OnClient
Процедур OpenOptionsComplete(Үр дүн, Нэмэлт сонголтууд) Экспорт
Хэрэв TypeValue (Үр дүн) = Төрөл ("Бүтэц") Дараа нь
Үр дүнгийн давталтаас гарсан түлхүүр утга бүрийн хувьд
Мессеж = Шинэ Хэрэглэгч рүү илгээх мессеж;
Message.Text = "Түлхүүр: "" ” + KeyValue.Key + “””, утга = ”
+ Түлхүүр үнэ цэнэ;
Message.Report();
EndCycle;
EndIf;
Төгсгөлийн процедур

Хэрэглэгчийн горимд вэб клиентийн тохиргоог ажиллуулснаар бид дараах үр дүнг авна.

Томруулахын тулд зураг дээр дарна уу.

Цонх нээх горимыг OpenForm процедурын сүүлийн параметрт мөн зааж өгч болно.

&OnClient
Процедур Нээлттэй сонголтууд(баг)
Анхааруулга = Шинэ Тайлбар анхааруулга("Нээлттэй сонголтуудыг дуусгах", ThisObject );
OpenForm ( "Ерөнхий хэлбэр. FormParameters", , , , , , Мэдэгдэл
FormWindowOpenMode.LockEntireInterface
);
Төгсгөлийн процедур

Даалгавар 2. Маягтыг хаах үед асуулт

Боловсруулах цонхыг хаахдаа хэрэглэгч үнэхээр цонхоо хаахыг хүсч байгаа эсэхийг асуу.

Энэ асуудлыг боловсруулах маягтын модульд байрлах дараах кодыг ашиглан шийдэж болно.

&OnClient
Перем Маягтыг хаах шаардлагатай;
&OnClient
Хаалтын өмнөх журам (бүтэлгүйтсэн, Стандарт боловсруулалт)
Хэрвээ биш бол Маягтыг хаах шаардлагатай= Үнэн тэгвэл
Татгалзах = Үнэн;
Анхааруулга = Шинэ Тайлбар анхааруулга("Хаах дуусахаас өмнө", ThisObject );
ShowQuestion ("Та цонхоо хаахдаа итгэлтэй байна уу?" Анхааруулга,
Харилцан ярианы горимАсуулт. ТиймҮгүй
);
EndIf;
Төгсгөлийн процедур
&OnClient
Процедур Дуусгах ажлыг хаахаас өмнө(Үр дүн, Нэмэлт сонголтууд) Экспорт
Хэрэв үр дүн = Харилцан ярианы буцах код. ТиймДараа нь
Маягтыг хаах шаардлагатай= Үнэн;
хаах();
Үгүй бол
Маягтыг хаах шаардлагатай= Тодорхойгүй;
EndIf;
Төгсгөлийн процедур

BeforeClosing маягтын процедурт хэрэглэгчээс асуулт асууж, Refusal flag-г True болгож, маягтыг хаахыг цуцална.

Асуултанд эерэг хариулт өгсний дараа Need toCloseForm хувьсагчийг True болгож, маягт дахин хаагдана.

Даалгавар 3: Тоон утгыг оруулах

Боловсруулах маягт дээрх товчлуур дээр дарахад стандарт дугаар оруулах харилцах цонхыг нээнэ үү.

Үүнийг хийхийн тулд EnterNumber()-ийн оронд ShowNumberInput() аргыг ашиглах хэрэгтэй бөгөөд энэ нь модаль цонхны оронд блоклох цонхыг нээдэг.

&OnClient
Тоо оруулах журам (Тушаал)
Анхааруулга = Шинэ Тайлбар анхааруулга("Дугаарыг бөглөнө үү", ThisObject );
ShowEnterNumbers(Анхааруулга, 0, “Тоо хэмжээг оруулна уу”, 15, 3);
Төгсгөлийн процедур
&OnClient
Процедур Оруулж буй дугаарууд(Үр дүн, Нэмэлт сонголтууд) Экспорт

Мессеж = Шинэ Хэрэглэгч рүү илгээх мессеж;
Message.Text = "Та тоо оруулсан" + Үр дүн;
Message.Report();
EndIf;
Төгсгөлийн процедур

Дугаар оруулах цонхыг хаасны дараа процедурыг дуудах бөгөөд эхний параметр нь оруулсан дугаар эсвэл хэрэглэгч оруулахаас татгалзсан тохиолдолд тодорхойгүй утга байх болно.

Даалгавар 4. Өнгө сонгох

Стандарт өнгө сонгох харилцах цонхыг ашиглан боловсруулах маягт дээрх товчлуур дээр дарахад хэрэглэгч шаардлагатай өнгийг зааж өгнө. Дарсан товчлуурын дэвсгэр дээр энэ өнгийг тохируулна уу.

SelectColor командыг дараах зохицуулагчаар маягтанд нэмнэ.

&OnClient
Өнгө сонгох журам (команд)
Өнгө сонгох харилцах цонх= Шинэ Өнгө сонгох харилцах цонх;
Анхааруулга = Шинэ Тайлбар анхааруулга("Өнгө сонгох бүрэн", ThisObject );
Өнгө сонгох харилцах цонх.Үзүүлэх(Анхааруулга);
Төгсгөлийн процедур
&OnClient
Процедур Сонголт Өнгө дуусгах(Үр дүн, Нэмэлт сонголтууд) Экспорт
Хэрэв ҮГҮЙ бол Үр дүн = Тодорхойгүй Дараа нь
Элементүүд. Өнгөний сонголт. Арын өнгө= Үр дүн;
EndIf;
Төгсгөлийн процедур

Өнгө сонгох харилцах цонхны объектуудын хувьд (мөн Стандарт хугацааны засварлах цонх, Форматын мөр үүсгэгч, ердийн ажлын хуваарь харилцах цонх, фонт сонгох харилцах цонх гэх мэт) Show() арга нь хаах цонхыг нээдэг.

Цонхыг хаасны дараа процедур дуудах бөгөөд эхний параметр нь сонгосон утга (өнгө, фонт гэх мэт) эсвэл хэрэглэгч сонголтоос татгалзсан тохиолдолд тодорхойгүй утгыг дамжуулна.

FileSelectionDialog объект нь өнгө, фонт сонгох харилцах цонхнуудаас ялгаатай нь Show() арга байхгүй гэдгийг тэмдэглэх нь зүйтэй, учир нь эдгээр харилцах цонхнуудын хэрэгжилт ихээхэн ялгаатай байдаг.

Вэб клиент дээр файл сонгох харилцах цонхыг ашиглахын тулд эхлээд файлын өргөтгөлийг идэвхжүүлэх ёстой.

Файлын өргөтгөлөөр хэрэгжсэн харилцах цонхнууд нь хөтчийн горимын цонхтой адил үйл ажиллагааны асуудал үүсгэдэггүй тул FileSelectionDialog объектын хаах цонхыг нээхийг хэрэгжүүлээгүй.

Эцэст нь хэлэхэд, 8.3.10 хувилбараас эхлэн вэб клиент дээр модаль цонхны дэмжлэг зогссоныг бид тэмдэглэж байна. Энэ тохиолдолд тохиргоонд модаль аргыг дуудсан тохиолдолд үл хамаарах зүйл үүснэ. Мөн вэб клиент дээр интерфэйсийн горимыг дэмжихээ больсон Тусдаа цонхонд. Нэмж дурдахад, нимгэн болон вэб клиентүүдийн аль алинд нь маягтыг тусдаа цонхонд нээх боломжгүй болсон (Хавчуурга интерфэйсийн горимд ажиллах үед). Ийм эрс алхмууд нь орчин үеийн бүх хөтчүүд дэмжигдэхгүй болсон интерфейсийн горимоос татгалзах боломжтой болсон.

Энэ мэдээллээс ямар бодитой дүгнэлт хийж болох вэ? Дүгнэлт нь маш энгийн - хэрэв ямар нэг шалтгааны улмаас таны тохиргоонд модаль дуудлага байсаар байвал вэб клиент дээрх эдгээр газруудад алдааны мессеж бүхий цонх гарч ирнэ. Би энэ асуудлыг хурдан шийдэхийн тулд "Google"-ээр оролдохоос сэрэмжлүүлмээр байна, учир нь... Ихэнх зөвлөгөө нь энэ жор дээр ирдэг: тохиргооны түвшний тохируулагч дээр "Хэрэглээний горим" шинж чанарыг "Ашиглах" гэж тохируулна уу. Мэдээжийн хэрэг, орчин үеийн хөтчүүд өөрсдөө модаль дуудлагыг дэмжихээ больсон тул энэ нь ажиллахгүй.

Дээр дурдсан асуудлыг шийдэх хоёр л арга танд байна:

  1. 8.3.10+ (8.3.11) хувилбарыг гаргахын тулд платформыг шинэчилж, "Тохирох горим" тохиргооны шинж чанарыг "Ашиглахгүй" гэж тохируулж, загварлаг аргуудыг ашигладаг кодын фрагментуудыг асинхрон бизнесийн логик загварт дахин бичнэ үү.
  2. Үйлчлүүлэгчиддээ загвар дуудлагыг дэмждэг хуучин хөтчүүдийг (Mozilla Firefox 37 ба түүнээс доош хувилбарууд, 37-аас доош Chrome хувилбарууд гэх мэт) ашиглахыг санал болго.

Дашрамд хэлэхэд, 8.3.11 хувилбараас эхлэн Microsoft Internet Explorer вэб хөтчийн 8, 9-р хувилбарыг дэмжихээ больсон.

Бид вэб хөтчүүдийг загварчлалын үүднээс авч үзсэн тул одоо бусад үйлчлүүлэгчидтэй нөхцөл байдлыг тодруулах цаг болжээ.

Хувилбар 8.3.5-аас эхлэн нимгэн болон бүдүүн клиентүүдийн Modality Usage Mode шинж чанарыг зөвхөн /EnableCheckModal командын мөрийн сонголтыг зааж өгсөн тохиолдолд л хүндэтгэдэг. Програмыг тохируулагчаас эхлүүлэх үед л энэ параметрийг командын мөрөнд автоматаар оруулна. Хэрэв энэ параметрийг заагаагүй бол үл хамаарах зүйл үүсэхгүй бөгөөд холбогдох анхааруулгыг харуулахгүй. Тэдгээр. практик дээр зузаан, нимгэн үйлчлүүлэгчийг ашиглах үед модаль горимыг ашиглах үед үйл ажиллагааны үндсэн өөрчлөлт ажиглагддаггүй - модаль дуудлага нь вэб клиенттэй адил ямар ч анхааруулга үүсгэхгүйгээр өмнө нь ажиллаж байсан шиг ажиллах болно.

Бүх "i"-г цэгцлэхийн тулд бид 8.3.9-ээс эхлэн "Платформ өргөтгөл болон гадаад бүрэлдэхүүн хэсгүүдийн синхрон дуудлагыг ашиглах горим" тохиргооны шинж чанарыг зузаан клиент дээр үл тоомсорлож, харгалзах синхрон аргууд нь үүсгэхгүйгээр ажилладаг болохыг анхаарна уу. үл хамаарах зүйлүүд болон анхааруулга харуулах. Google Chrome вэб хөтөч дээрх файлуудтай ажиллахад зориулсан гадаад бүрэлдэхүүн хэсгүүд, криптографи болон өргөтгөлүүдтэй асинхрон ажиллахыг дэмжих зорилгоор 8.3.5-д заасан үл тоомсорлосон шинж чанарыг нэмсэн. Энэ нь зузаан үйлчлүүлэгчтэй ямар ч холбоогүй нь ойлгомжтой тул энэ өмчийг "чимээгүй" үл тоомсорлох нь тохиргоог ашиглах үед синхрон аргыг ашиглах шаардлагагүй шалгалтыг арилгасан.

Дашрамд хэлэхэд! Платформ нь вэб рүү итгэлтэйгээр хөдөлж байгаа тул 8.3.8 хувилбарын дагуу хөгжүүлэгчид зузаан, нимгэн үйлчлүүлэгчдэд хийгдсэн маягт эсвэл програмыг хаах логиктой холбоотой програмын кодонд тодорхой хязгаарлалтуудыг нэвтрүүлсэн. Энэ нюансыг нарийвчлан тусгасан манай нийтлэлийг уншихаа мартуузай. Нэмж дурдахад, "1С: Enterprise 8.3 дахь интерфэйс ба маягтыг мэргэжлийн түвшинд хөгжүүлэх" хичээлд хэв маягаас татгалзахад зориулагдсан бүлэг байгаа бөгөөд та энэ сэдвээр олон хэрэгтэй, холбогдох мэдээллийг олж авах боломжтой.

Хамтран ажиллагсад аа, та эцэс төгсгөлгүй унших боломжтой хоёр зүйл бий: VKontakte-ийн мэдээлэл болон платформын дараагийн хувилбарт гарсан өөрчлөлтүүдийн жагсаалт, тиймээс эцсийн үр дүнг нэгтгэн дүгнэе;)

Синхрон загварын элементүүдээс асинхрон руу шилжих боломжийг олгодог жишээнүүдийг авч үзэх явцад ерөнхий тохиолдолд илүү олон програмын код байгааг анзаарсан байх. Илүү их код байх тусам түүний цаашдын засвар үйлчилгээ, дибаг хийх нарийн төвөгтэй байдал нэмэгддэг.

Нэмж дурдахад бид хөгжүүлэлтийн явцад илүү олон харилцах цонх ашигладаг бол кодын хэмжээ улам нэмэгдэх болно. Тиймээс вэб клиент дээр ажиллахад чиглэсэн хэрэглээний шийдлүүдийг боловсруулах явцад орчин үеийн вэб програмуудад одоо ашиглагдаж байгаа ажлын парадигмыг санах хэрэгтэй. Тиймээс, хэрэв таны тохиргоонд хэрэглэгчтэй харилцах олон харилцах цонх, анхааруулга байгаа бол энэ функцийг хэрэглэгчийн харилцан үйлчлэлийг зохион байгуулах бусад аргуудын талд дахин авч үзэх нь зүйтэй юм.

Дүгнэлтийн оронд

Манай "1С хөгжлийн эхний алхам" мөчлөг маань дууслаа. Хэрэв та үүнийг бүрэн эхээр нь уншсан бол сүүлийн үед платформ хэрхэн үсрэнгүй хөгжиж байгааг анзаарсан байх. Энэ цувралын материалыг харьцангуй саяхан бичсэн боловч бид үүнийг нухацтай шинэчлэхээс өөр аргагүй болсон, учир нь... Ийм богино хугацаанд ч гэсэн маш олон шинэ чухал функц, өөрчлөлтүүд гарч ирэв. Хэрэв энэ бүх хугацаанд платформ дээр мэргэжлийн түвшинд өсч, хөгжөөгүй бол 1С програмист ийм томоохон өөрчлөлтүүд нь зарим талаараа эргэлзээ төрүүлж магадгүй юм.

Мэргэшсэн интернетийн эх сурвалжуудаас та шинэхэн програмистууд болон тэдний илүү боловсорсон хамт ажиллагсдаас 1С платформын өргөн цар хүрээтэй, заримдаа төгсгөлгүй мэт санагдах чадварыг ойлгоход туслах материалыг санал болгох хүсэлтийг уншиж болно. Бид уламжлал ёсоор програмчлалын сургалтанд анхаарлаа хандуулахыг зөвлөж байна

"Үйлчлүүлэгч дээр синхрон аргыг ашиглахыг хориглоно" гэсэн алдаа яагаад гардаг вэ?

Хэрэв та хичээлээ дуусгах явцад ийм алдаатай тулгарвал үүнийг засах нь маш хялбар юм.

Тохируулагч руу буцаж очоод "Тохиргоо" -> "Нээлттэй тохиргоо" цэсийг сонгоно уу:

Нээгдсэн цонхонд "Тохиргоо" дээр хулганы баруун товчийг дараад нээгдэх цэснээс "Properties" -ийг сонгоно уу.

Тохируулгын шинж чанаруудтай цонх нээгдэнэ (баруун):

Доод тал руу гүйлгээд тэндээс "Модалийн горим" гэсэн зүйлийг олоорой.

Үүний утгыг тохируулна уу "Ашиглах":

Анхаар!Хэрэв та бидний эхний хичээл дээр (сүүлийн хувилбар) татаж авсанаас өөр 1С платформ ашиглаж байгаа бол "Синхрон дуудлагыг ашиглах горим..." талбартай болохыг анхаарна уу. Үүнийг мөн "Ашиглах" гэж тохируулах шаардлагатай.

Эцэст нь "Тохиргоо" -> "Тохиргоог хадгалах" цэсийн зүйлийг сонгоно уу:

Бэлэн! Одоо алдаа гарахгүй.

Доорх тайлбар - бидний хийсэн зүйлийг сонирхож буй хүмүүст зориулав.

Бид тохиргоондоо горимын горимыг идэвхжүүлсэн. Анхдагч байдлаар, энэ горим идэвхгүй бөгөөд энэ нь бидэнд EnterNumber, EnterString, EnterDate, OpenValue зэрэг тушаалуудыг ашиглахыг зөвшөөрдөггүй.

Үнэн хэрэгтээ эдгээр тушаалууд нь модаль шинж чанартай байдаг. Тэднийг дуудах үед хэрэглэгчийн өмнө цонх гарч ирдэг (жишээлбэл, мэдээлэл оруулах) цонх хаагдах хүртэл програмтай ажиллах боломжийг хаадаг.

Вэб хөтчөөр дамжуулан 1С-тэй ажиллахад ийм цонх байх нь туйлын хүсээгүй тул шинэ тохиргоог боловсруулахдаа горимын горимыг анхдагчаар унтраадаг.