WEB haqida hech narsani tushunmaydiganlar uchun HTTP xizmatlari. Veb-xizmatlar (SOAP), HTTP xizmatlari, oData (avtomatik REST xizmati) Yangi kurs 1c xizmati parametrlari

Agar siz WEB texnologiyalari haqida hech narsani tushunmasangiz va json, get, post va shunga o'xshash so'zlar siz uchun hech narsani anglatmaydi va siz shunchaki 1C foydalanuvchisisiz, lekin siz 1C bilan do'stlashishingiz kerak. uchinchi tomon ilovalari yoki veb-sayt. u holda ushbu maqola siz uchun.

Bir paytlar men o'zim veb-xizmatlar bilan shug'ullanishga majbur bo'lganimdan boshlaylik. Keyin qandaydir tarzda, asta-sekin men bu masalani o'zlashtira oldim va hamma narsa ishlashi uchun nima va qayerga bosish kerakligini tushundim. Yaxshiyamki, men ishlashim kerak bo'lgan konfiguratsiya allaqachon veb-xizmatlar bilan to'ldirilgan edi va uni o'xshashlik bo'yicha ko'rib chiqish va qilish mumkin edi va men Internetda bu masala bo'yicha etarlicha maqolalarni topishga muvaffaq bo'ldim. Shunday qilib, misollar yordamida (men uchun bu o'rganishning eng yaxshi usuli), men bu masalani o'zlashtirdim va endi ular meni qo'rqitmaydi.

SO. Har qanday integratsiyaning asosiy vazifasi, xoh u CD, xoh veb-xizmatlar yoki HTTP xizmatlari, biror joydan biror narsani uzatish, u bilan biror narsa qilish va javob qaytarishdir. Bu biz yangi texnologiyani ko'rib chiqadigan format.

Metadata daraxtida HTTP xizmatlari Umumiy bo'limda joylashgan:

Yangi HTTP xizmati har qanday boshqa metadata ob'ekti kabi qo'shiladi. Ism va sinonimni xohlaganingizcha. Bu erda faqat "Ildiz URL" muhim - bu, aslida, ushbu ma'lumotlar bazasidagi HTTP xizmatining identifikatori, ya'ni. Ushbu mulkda aynan nima yozsangiz, xizmatga havola sifatida uchinchi tomon ishlab chiqaruvchisiga (yoki o'zingizga) o'tkazasiz.

Bu yerda kirill alifbosida yozish mumkinmi, bilmayman, lekin ilg'or dunyoda kulib qolmaslik uchun lotin tilida yozing).

Shablon xususiyatining o'zi bu erda muhim:

Shablondan foydalanib, keyinchalik sizga uzatilgan ma'lumotlarga murojaat qilishingiz mumkin. SO: siz tashqaridan olishni istagan barcha ma'lumotlarni 2 blokga bo'lish mumkin - majburiy va ixtiyoriy.

Biz kerakli ma'lumotlarni/parametrlarni shablonga kiritamiz, shuning uchun agar xizmatga kiruvchi shaxs ularni to'ldirmasa, xizmat apriori xatolik hosil qiladi va ishlov beruvchi moduli matnini ishlab chiqishda siz ushbu ma'lumotlarga ishonch hosil qilasiz. bormi. Bu qanday amalga oshiriladi: "()" jingalak qavs ichidagi "Naqsh" qatorida "/" belgisi bilan almashib, biz o'zgaruvchilarning nomlarini yozamiz. Misol uchun, bizga, albatta, maqola kerak - keyin / (artikul) yozamiz. Agar maqola, ism va foydalanuvchi nomini olishimiz kerak bo'lsa, shablon qatori quyidagicha ko'rinadi: /(artikul)/(name)/(foydalanuvchi) va hokazo. Ishlovchi modul matnidagi ushbu parametrlarning har birini quyidagi tarzda olish mumkin: Request.ParametersURL["<имя параметра>"]. Agar talab qilinadiganlar bo'lmasa, shablon quyidagicha ko'rinadi: /*.

Biz xizmat orqali olishni istagan ixtiyoriy ma'lumotlar shablonda tasvirlanmagan. Xizmatga kirish uchun havolani qurishda ular havolaning oxirida "?" belgisidan keyin tavsiflanadi, "&" ampersand belgisi bilan ajratiladi va tuzilishga ega.<имя параметра>=<значение параметра>. Ishlovchi modul matnida ularga quyidagi konstruksiya bilan kirish mumkin: Request.RequestParameters.Get("<имя параметра>"). LEKIN: esda tutish kerakki, ular talab qilinmagani uchun ular mavjud bo'lmasligi mumkin; shunga ko'ra, biz Aniqlanmagan qiymatini tekshiramiz.

Keyinchalik, shablonimiz uchun yangi usul qo'shamiz. Bu erda HTTP usuli xususiyati muhim ahamiyatga ega. Ularning soni juda ko'p, ammo biz barcha tafsilotlarga kirmaymiz. Har qanday vazifangizni amalga oshirish uchun sizga faqat 2 ta kerak: GET va POST.

Qanday tanlash kerak: Agar oldingi ikki paragrafda tasvirlangan narsa sizning ishingiz uchun etarli bo'lsa, ya'ni. Siz so'rovning majburiy va ixtiyoriy parametrlaridan foydalanib, barcha kerakli ma'lumotlarni olishingiz mumkin, keyin biz GETni olamiz. Bunday holda, istalgan brauzerda, agar siz manzil satrini to'g'ri kiritsangiz, HTTP xizmatingiz natijasini ko'rasiz - PROFIT! Agar to'satdan xizmatingiz ishlashi uchun sizga murakkabroq shakldagi ma'lumotlar kerak bo'lsa (masalan, xml yoki boshqa biror narsa), oddiy manzil satriga to'ldirib bo'lmaydigan narsa, keyin POST-ni oling. Salbiy tomoni shundaki, GET-da bo'lgani kabi brauzerning manzil satri orqali bunday oson tekshirish ishlamaydi, lekin Internetda siz POST usuli yordamida xizmatlarni tekshirishingiz mumkin bo'lgan ba'zi saytlarni osongina topishingiz mumkin (masalan, https:/ sayti. /www.hurl.it). Agar POST usuli tanlangan bo'lsa, unda URL (manzil) ga qo'shimcha ravishda so'rovda siz xohlagan narsani to'ldirishingiz mumkin bo'lgan korpus mavjud va usul ishlov beruvchisida unga Request.GetBodyAsString() konstruktsiyasi orqali kirishingiz mumkin. Har qanday shablon ham GET, ham POST usuliga ega bo'lishi mumkin. Ular mos ravishda turli xil ishlov beruvchilarga ega bo'ladi va 1C, so'rov qanday yuborilganiga qarab, u yoki bu usulni tanlaydi.

HTTP xizmatini ishlov beruvchisi har doim HTTPServiceResponse turidagi qiymatni qaytaradigan funksiya bo'lib, u New HTTPServiceResponse( konstruktori tomonidan qurilgan.<КодСостояния>). <КодСостояния>- bu raqam, nima yozishni tanlash haqida tashvishlanmaslik uchun biz yozamiz: 200 - agar hamma narsa yaxshi bo'lsa va siz mantiqiy qiymatni qaytarsangiz, 400 - xato bo'lsa va xato tavsifini qaytarsangiz . Ushbu turdagi turli xil usullar mavjud (siz uni sintaksis yordamchisida o'qishingiz mumkin, u erda hamma narsa aniq yozilgan). Shunga qaramay, siz har doim kerakli narsani satr sifatida qaytarishingiz mumkin - SetBodyFromString() usuli. (bitta hiyla: agar siz html-ni qaytarsangiz va manzillar qatoriga xizmatingiz manzilini kiritganingizda brauzer uni ekranda chiroyli ko'rsatishini istasangiz, javobda Sarlavhalar xususiyatiga yozing: Answer.Headers.Insert("Content-Type" ","text/html; charset=utf-8") - bu bilan siz bu shunchaki belgilar to'plami emas, balki HTML ekanligini va shunga mos ravishda ko'rsatilishi kerakligini bildirasiz)

Hamma narsani bajarganingizdan so'ng, HTTP xizmati nashr etilishi kerak. Bu veb-server o'rnatilgan kompyuterda (sozlamalar haqida yozmayman, juda ko'p maqolalar mavjud) menyu orqali amalga oshiriladi:

Ma'muriyat - veb-serverda nashr qilish.

HTTP xizmatlari yorlig'i mavjud. Qutilarni belgilang va "Nashr qilish" tugmasini bosing.




Men joriy konfiguratsiya holatini olish zaruratiga duch keldim. Siz olishingiz kerak:

  • Muayyan tanlovga ega hujjatlar soni;
  • Mahsulot uchun oxirgi qayd etilgan narx davri;
  • Oxirgi 10 daqiqada foydalanuvchi tomonidan qayta ishlangan hujjatlar soni.

Loyihalarda mobil ilovani amalga oshirish tajribasini hisobga olgan holda, birinchi navbatda Android uchun konfiguratsiyani yozish haqida fikr paydo bo'ldi. Barcha ijobiy va salbiy tomonlarini ko'rib chiqqandan so'ng, men bu yondashuv mening muammomni hal qilish uchun mos emas degan xulosaga keldim. Keyin http xizmatidan foydalanish kursi o'tkazildi. Buning uchun konfiguratsiyada http xizmati "Statistika" ro'yxatdan o'tkazildi va get usuli qo'shilgan AnyURL url shabloni qo'shildi.


Konfiguratsiya daraxti ob'ektlarini yaratgandan so'ng, biz javobni yaratish algoritmini yozishni boshlaymiz. Usul HTTPServiceResponse tipidagi javobni qaytaradi:

Javob kodini yozganimizdan so'ng, biz konfiguratordan http xizmatini nashr etamiz va unga brauzerdan kiramiz. http xizmatiga kirish uchun “/hs/statistic/” qoʻshish orqali veb-mijozdagi kabi manzilga murojaat qilishingiz kerak. hs platformaga http xizmatiga kirishni bildiradi va statistika bizning xizmatimizning nomidir.

Menimcha, http xizmatlari quyidagi hollarda foydali bo'lishi mumkin:
— Konfiguratsiya statistikasini yaratish;
— Buyurtma maqomini uning raqami bo'yicha olish funksionalligi;
— Boshqa tizimlarga import qilish uchun maʼlumotlarni tayyorlash.

1C 8.3 va 8.2-dagi veb-xizmat - bu xizmatga yo'naltirilgan arxitektura (SOA) yordamida 1C platformasini boshqa axborot tizimlari bilan integratsiya qilish imkonini beruvchi metadata ob'ekti.

Keling, SOAP yordamida 1C 8 ma'lumotlar bazalari o'rtasida ikki tomonlama almashish imkonini beruvchi veb-xizmat misolini yaratish va sozlashni ko'rib chiqaylik.

Birinchidan, yorliqni ko'rib chiqaylik Boshqa:

1C da 267 ta video darslarni bepul oling:

  • Dalada Nom maydoni URI resurs identifikatorining joylashuvini tavsiflaydi.
  • — kelajakdagi veb-xizmat ishlay oladigan turlarning tavsifi.
  • Nashr fayl nomi— veb-serverga joylashtiriladigan *.1CWS fayl nomi

1C veb-xizmatining tuzilishi

Keling, veb-xizmatning tuzilishini ko'rib chiqaylik:

DataExchange bu veb-xizmatning o'zi. UnloadData, LoadData - operatsiyalar, asosan, SOAP protokoli orqali chaqirilishi mumkin bo'lgan funktsiyalar tavsifi. ExchangePlanName, NodeCode va boshqalar. — veb-xizmatga uzatiladigan qiymatlar.

Veb-xizmat moduli

Modulda eng qiziqarli narsa - kelajakdagi veb-xizmat funktsiyalarining tavsifi mavjud. Bizning holatda, biz standart 1C almashinuv mexanizmlari yordamida ma'lumotlarni qabul qilish va yuborish imkonini beruvchi funksionallikni tasvirlaymiz. Chunki Ayirboshlash bitta platforma - 1C o'rtasida amalga oshiriladi, keyin ular ma'lumotlarni ketma-ketlashtirishni talab qilmaydi.

Veb-serverda 1C http xizmatining ishlashini tekshirish

Bir paytlar men o'zim veb-xizmatlar bilan shug'ullanishga majbur bo'lganimdan boshlaylik. Keyin qandaydir tarzda, asta-sekin men bu masalani o'zlashtira oldim va hamma narsa ishlashi uchun nima va qayerga bosish kerakligini tushundim. Yaxshiyamki, biz ishlashimiz kerak bo'lgan konfiguratsiya allaqachon to'la edi Buni veb-xizmatlari yordamida ko'rib chiqish va analogiya bo'yicha qilish mumkin edi va Internetda men bu masala bo'yicha etarlicha maqolalarni topa oldim. Shunday qilib, misollar yordamida (men uchun bu o'rganishning eng yaxshi usuli), men bu masalani o'zlashtirdim va endi ular meni qo'rqitmaydi.

SO. Har qanday integratsiyaning asosiy vazifasi, xoh u CD, xoh veb-xizmatlar yoki HTTP xizmatlari, biror joydan biror narsani uzatish, u bilan biror narsa qilish va javob qaytarishdir. Bu biz yangi texnologiyani ko'rib chiqadigan format.

Metadata daraxtida HTTP xizmatlari Umumiy bo'limda joylashgan:

Yangi HTTP xizmati har qanday boshqa metadata ob'ekti kabi qo'shiladi. Ism va sinonimni xohlaganingizcha. Bu erda faqat "Ildiz URL" muhim - bu aslida identifikator Ushbu ma'lumotlar bazasida HTTP xizmati, ya'ni. Ushbu mulkda aynan nima yozsangiz, xizmatga havola sifatida uchinchi tomon ishlab chiqaruvchisiga (yoki o'zingizga) o'tkazasiz.

Bu yerda kirill alifbosida yozish mumkinmi, bilmayman, lekin ilg'or dunyoda kulib qolmaslik uchun lotin tilida yozing).

Shablon xususiyatining o'zi bu erda muhim:

Shablondan foydalanib, keyinchalik sizga uzatilgan ma'lumotlarga murojaat qilishingiz mumkin. SO: tashqaridan olishni istagan barcha ma'lumotlarni 2 blokga bo'lish mumkin - majburiy va ixtiyoriy.

Kerakli ma'lumotlar/parametrlar biz uni shablonga surib qo'yamiz, shuning uchun agar xizmatga kiruvchi ularni to'ldirmasa, xizmat apriori xatoga yo'l qo'yadi va ishlov beruvchi moduli matnini ishlab chiqishda siz ushbu ma'lumotlar mavjudligiga ishonch hosil qilasiz. . Bu qanday amalga oshiriladi: "()" jingalak qavs ichidagi "Naqsh" qatorida "/" belgisi bilan almashib, biz o'zgaruvchilarning nomlarini yozamiz. Misol uchun, bizga, albatta, maqola kerak - keyin / (artikul) yozamiz. Agar maqola, ism va foydalanuvchi nomini olishimiz kerak bo'lsa, shablon qatori quyidagicha ko'rinadi: /(artikul) /(name)/(foydalanuvchi) va hokazo. Ishlovchi modul matnidagi ushbu parametrlarning har birini quyidagi tarzda olish mumkin: Request.ParametersURL["<имя параметра>"]. Agar talab qilinadiganlar bo'lmasa, shablon quyidagicha ko'rinadi: /*.

Ixtiyoriy maʼlumotlar, biz xizmat orqali olishni xohlaymiz, shablonda tasvirlanmagan. Xizmatga kirish uchun havolani qurishda ular havolaning oxirida "?" belgisidan keyin tavsiflanadi, "&" ampersand belgisi bilan ajratiladi va tuzilishga ega.<имя параметра>=<значение параметра>. Ishlovchi modul matnida ularga quyidagi konstruksiya bilan kirish mumkin: Request.RequestParameters.Get("<имя параметра>"). LEKIN: esda tutish kerakki, ular talab qilinmagani uchun ular mavjud bo'lmasligi mumkin; shunga ko'ra, biz Aniqlanmagan qiymatini tekshiramiz.

Keyinchalik, shablonimiz uchun yangi usul qo'shamiz. Bu erda HTTP usuli xususiyati muhim ahamiyatga ega. Ularning soni juda ko'p, ammo biz barcha tafsilotlarga kirmaymiz. Vazifalaringizdan birini amalga oshirish uchun sizga faqat 2 ta kerak bo'ladi: OLISH Va POST.

Qanday tanlash kerak: Agar oldingi ikki paragrafda tasvirlangan narsa sizning ishingiz uchun etarli bo'lsa, ya'ni. Siz so'rovning majburiy va ixtiyoriy parametrlaridan foydalanib, barcha kerakli ma'lumotlarni olishingiz mumkin, keyin biz GETni olamiz. Bunday holda, istalgan brauzerda, agar siz manzil satrini to'g'ri kiritsangiz, HTTP xizmatingiz natijasini ko'rasiz - PROFIT! Agar to'satdan xizmatingiz ishlashi uchun sizga murakkabroq shakldagi ma'lumotlar kerak bo'lsa (masalan, xml yoki boshqa biror narsa), oddiy manzil satriga to'ldirib bo'lmaydigan narsa, keyin POST-ni oling. Salbiy tomoni shundaki, GET-da bo'lgani kabi brauzerning manzil satri orqali bunday oson tekshirish ishlamaydi, lekin Internetda siz POST usuli yordamida xizmatlarni tekshirishingiz mumkin bo'lgan ba'zi saytlarni osongina topishingiz mumkin (masalan, https:/ sayti. /www.hurl.it). Agar usul tanlangan bo'lsa POST, keyin so'rov qo'shimcha ravishda URL (manzillar) ichida siz istalgan narsani to'ldirishingiz mumkin bo'lgan korpus paydo bo'ladi va usulda ishlov beruvchi unga Request.GetBodyAsString() konstruktsiyasi orqali kirishadi. Har qanday shablon ham GET, ham POST usuliga ega bo'lishi mumkin. Ular mos ravishda turli xil ishlov beruvchilarga ega bo'ladi va 1C, so'rov qanday yuborilganiga qarab, u yoki bu usulni tanlaydi.

HTTP xizmatini ishlov beruvchisi har doim HTTPServiceResponse turidagi qiymatni qaytaradigan funksiya bo'lib, u New HTTPServiceResponse( konstruktori tomonidan qurilgan.<КодСостояния>). <КодСостояния>- bu raqam, nima yozishni tanlash haqida tashvishlanmaslik uchun biz yozamiz: 200 - agar hamma narsa yaxshi bo'lsa va siz mantiqiy qiymatni qaytarsangiz, 400 - xato bo'lsa va xato tavsifini qaytarsangiz . Ushbu turdagi turli xil usullar mavjud (siz uni sintaksis yordamchisida o'qishingiz mumkin, u erda hamma narsa aniq yozilgan). Shunga qaramay, siz har doim kerakli narsani satr sifatida qaytarishingiz mumkin - SetBodyFromString() usuli. (bitta hiyla: agar siz html-ni qaytarsangiz va manzillar qatoriga xizmatingiz manzilini kiritganingizda brauzer uni ekranda chiroyli ko'rsatishini istasangiz, javobda Sarlavhalar xususiyatiga yozing: Answer.Headers.Insert("Content-Type" ","text/html; charset=utf-8") - bu bilan siz bu shunchaki belgilar to'plami emas, balki HTML ekanligini va shunga mos ravishda ko'rsatilishi kerakligini bildirasiz)

Hamma narsani bajarganingizdan so'ng, HTTP xizmati nashr etilishi kerak. Bu veb-server o'rnatilgan kompyuterda (sozlamalar haqida yozmayman, juda ko'p maqolalar mavjud) menyu orqali amalga oshiriladi:

Ma'muriyat - veb-serverda nashr qilish.

HTTP xizmatlari yorlig'i mavjud. Qutilarni belgilang va "Nashr qilish" tugmasini bosing.

Shunday qilib, biz tayyor HTTP xizmatini oldik. U bilan QANDAY bog'lanish kerak? Agar biz GET usulidan foydalansak, brauzerning manzil satriga biz yozamiz: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Va nihoyat, yana bir bor rasmlarda))):

Diqqat! Endi kurs ham kechki soat 18:30 dan 21:30 gacha immersion formatida o'tkaziladi.

Kurs davomida siz 1C: Enterprise 8 platformasining quyidagi mexanizmlaridan foydalanish bo'yicha amaliy ko'nikmalarga ega bo'lasiz:

  • WEB xizmatlari (SOAP protokoli)
  • JSON formati
  • oData interfeysi (avtomatik REST xizmati)
  • HTTP xizmatlari

MUHIM!!! Kurs XDTO mexanizmi bilan ishlash ko'nikmalariga ega bo'lgan yoki avval kursni tugatgan dasturchilar uchun mo'ljallangan.

Kurs tavsifi va dasturi:

WEB kursi narxiga quyidagilar kiradi:

  • 2 hafta, albatta, o'qituvchi bilan 2 vebinar
  • 3-sonli 1C o'quv markazi sertifikati (amaliy mashg'ulotlardan o'tish sharti bilan)

To'liq kunlik immersion kursining narxiga quyidagilar kiradi:

  • 2 kun 10:00 dan 17:00 gacha yoki 16:30 dan 21:30 gacha
  • eslatmalar, naushniklar
  • tushlik, kofe tanaffuslari
  • kursni tugatgandan keyin 2 yil davomida yangilangan video materiallarga kirish
  • 1C-o'quv markazining №3 sertifikati

Trening formatlari

WEB trening

Bu qanday format:Taklif etilayotgan format masofaviy ta'limning ko'pgina afzalliklarini videomateriallar va onlayn maslahatlar bilan ifodalangan yuzma-yuz komponent bilan birlashtiradi.
WEB kursi videolar, amaliy topshiriqlar va o‘qituvchilar ishtirokidagi vebinarlardan iborat. Barcha kurs materiallari Internet orqali 24/7 mavjud bo'lib, siz o'zingizga mos vaqtda o'qishingiz mumkin. Kurs sinflarga bo'lingan. Dars davomida joriy mavzu bo'yicha materiallar o'rganiladi, amaliy mashg'ulotlar o'tkaziladi, o'qituvchiga savollar beriladi. Har bir dars oxirida vebinar o'tkaziladi, uning davomida o'qituvchi olingan barcha savollarni, tipik xatolarni tekshiradi va to'g'ri echimni tushuntiradi. Veb-seminarlarning yozuvlari portalda mavjud. Shu tarzda bir necha darslar birin-ketin o'tkaziladi. Yakuniy mustaqil ish va yakuniy vebinar.

Davomiyligi: 2 hafta

Bu qanday format:


Davomiyligi:16 akademik soat

Bu qanday format:To'liq kunlik immersion kursi kunduzgi ta'lim, masofaviy ta'lim va individual ta'limning barcha afzalliklarini o'zida mujassam etgan formatdir. Mashg'ulotlar jihozlangan sinfda o'tkaziladi, siz mustaqil ravishda kurs materiallarini (bosqichma-bosqich videolar) o'rganasiz va mahorat darslarini bajarasiz. Shu bilan birga, auditoriyada istalgan vaqtda savollarga javob berishga va amaliy muammolarni hal qilishda yordam berishga, shuningdek, ularning bajarilishining to'g'riligini tekshirishga tayyor bo'lgan o'qituvchi mavjud.
Afzalliklari - savollaringiz bo'yicha o'qituvchidan individual maslahatlar, materialni to'ldirish tezligi shaxsan sizga mos keladi.
Bularning barchasi kurs materialini yanada chuqurroq o'rganishni ta'minlaydi.
Ushbu kursni ish joyingizdan talaba bo'lgan joyda o'qituvchining mavjudligining to'liq ta'siri bilan olish mumkin! Agar ushbu imkoniyat sizni qiziqtirsa, bizga qo'ng'iroq qiling!

Davomiyligi:16 akademik soat