Shërbimet HTTP për ata që nuk kuptojnë asgjë nga WEB. Shërbimet e uebit (SOAP), shërbimet HTTP, oData (shërbimi automatik REST) ​​Parametrat e shërbimit të kursit të ri 1c

Nëse nuk kupton asgjë rreth teknologjive WEB dhe fjalëve si json, merr, posto e kështu me radhë nuk do të thotë asgjë për ty dhe je thjesht një përdorues i zjarrtë i 1C deri në themel, por duhet të bëhesh miq me 1C me aplikacione të palëve të treta ose një faqe interneti, atëherë ky artikull është për ju.

Më lejoni të filloj me faktin se dikur u detyrova të merresha vetë me shërbimet e Uebit. Pastaj disi, pak nga pak, arrita ta zotëroja këtë çështje dhe të kuptoja se çfarë dhe ku të bëj presion që gjithçka të funksionojë. Për fat të mirë, konfigurimi me të cilin duhej të punoja ishte tashmë i mbushur me shërbime në internet dhe ishte e mundur të shikoja dhe ta bëja atë me analogji, dhe gjithashtu arrita të gjeja artikuj të mjaftueshëm për këtë çështje në internet. Dhe kështu, duke përdorur shembuj (për mua kjo është mënyra më e mirë për të studiuar), e zotërova këtë çështje dhe tani ata nuk më trembin më.

KËSHTU QË. Detyra kryesore e çdo integrimi, qoftë CD, shërbime ueb ose shërbime HTTP, është të transferoni diçka nga diku, të bëni diçka me të dhe të ktheni një përgjigje. Ky është formati në të cilin do të shqyrtojmë teknologjinë e re.

Në pemën e meta të dhënave, shërbimet HTTP ndodhen në degën e Përgjithshme:

Një shërbim i ri HTTP shtohet në të njëjtën mënyrë si çdo objekt tjetër metadata. Emri dhe sinonimi sipas dëshirës. Këtu, vetëm "URL-ja e rrënjës" është e rëndësishme - ky, në fakt, është identifikuesi i shërbimit HTTP në këtë bazë të dhënash, d.m.th. pikërisht atë që shkruani në këtë pronë, do ta transferoni te një zhvillues i palës së tretë (ose ju vetë) si lidhje me shërbimin.

Nuk e di nëse është e mundur të shkruash këtu në cirilik, por për të mos u tallur në botën përparimtare, shkruaj latinisht).

Vetë vetia Template është e rëndësishme këtu:

Duke përdorur një shabllon, më vonë mund t'i referoheni të dhënave që ju janë transferuar. SO: të gjitha të dhënat që dëshironi të merrni nga jashtë mund të ndahen në 2 blloqe - të detyrueshme dhe opsionale.

Ne i shtyjmë të dhënat/parametrat e kërkuar në shabllon, kështu që nëse personi që hyn në shërbim nuk i plotëson ato, shërbimi apriori do të gjenerojë një gabim dhe kur zhvilloni tekstin e modulit të mbajtësit, do të jeni të sigurt që këto të dhëna është atje. Si bëhet kjo: në rreshtin Modeli në kllapa kaçurrelë “()”, duke alternuar me shenjën “/”, shkruajmë emrat e variablave. Për shembull, na duhet patjetër një artikull - atëherë shkruajmë /(artikul). Nëse duhet të marrim artikullin, emrin dhe emrin e përdoruesit, vargu i shabllonit do të duket kështu: /(artikul)/(emri)/(përdoruesi), etj. Secili prej këtyre parametrave në tekstin e modulit të mbajtësit mund të merret si kjo: Request.ParametersURL["<имя параметра>"]. Nëse nuk ka të nevojshme, atëherë shablloni duket si ky: /*.

Të dhënat opsionale që duam të marrim nëpërmjet shërbimit NUK përshkruhen në shabllon. Kur ndërtohet një lidhje për të hyrë në një shërbim, ato përshkruhen në fund të lidhjes pas shenjës "?", të ndara me karakterin ampersand "&" dhe kanë strukturën<имя параметра>=<значение параметра>. Në tekstin e modulit të mbajtësit, ato mund të aksesohen me konstruktin e mëposhtëm: Request.RequestParameters.Get("<имя параметра>"). POR: është e rëndësishme të mbani mend se meqenëse ato nuk kërkohen, ato mund të mos ekzistojnë; në përputhje me rrethanat, ne kontrollojmë vlerën për të Padefinuar.

Më pas, ne shtojmë një metodë të re për shabllonin tonë. Vetia e metodës HTTP është e rëndësishme këtu. Ka një numër të madh të tyre, POR ne nuk do të hyjmë në të gjitha detajet. Për të zbatuar ndonjë nga detyrat tuaja, ju nevojiten vetëm 2: GET dhe POST.

Si të zgjidhni: Nëse ajo që përshkruam në dy paragrafët e mëparshëm është e mjaftueshme për punën tuaj, d.m.th. Ju mund të merrni të gjitha të dhënat që ju nevojiten duke përdorur parametrat e detyrueshëm dhe opsional të vetë kërkesës, atëherë ne marrim GET. Në këtë rast, në çdo shfletues, nëse futni saktë shiritin e adresave, do të shihni rezultatin e shërbimit tuaj HTTP - FITIMI! Nëse papritur që shërbimi juaj të funksionojë ju nevojiten të dhëna në një formë më komplekse (për shembull xml, ose diçka tjetër), diçka që nuk mund të futet në një shirit të thjeshtë adresash, atëherë merrni POST. Nga ana negative, një kontroll kaq i lehtë përmes shiritit të adresave të shfletuesit, si me GET, nuk do të funksionojë, por në internet mund të gjeni lehtësisht disa faqe ku mund të kontrolloni shërbimet duke përdorur metodën POST (për shembull, faqja https:/ /www.hurl.it) . Nëse zgjidhet metoda POST, atëherë përveç URL-së (adresës), kërkesa ka një trup në të cilin mund të futni gjithçka që dëshironi, dhe në trajtuesin e metodës aksesoni atë përmes konstruksionit Request.GetBodyAsString(). Çdo shabllon mund të ketë një metodë GET dhe POST. Ata do të kenë mbajtës përkatësisht të ndryshëm, dhe 1C, në varësi të mënyrës se si është dërguar kërkesa, do të zgjedhë një metodë ose një tjetër.

Një mbajtës shërbimi HTTP është një funksion që kthen gjithmonë një vlerë të tipit HTTPServiceResponse, e cila është ndërtuar nga konstruktori New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ky është një numër, në mënyrë që të mos shqetësohemi për zgjedhjen e asaj që të shkruajmë, ne shkruajmë: 200 - nëse gjithçka është në rregull dhe ju ktheni një vlerë logjike, 400 - nëse ka një gabim dhe ju ktheni një përshkrim të gabimit . Ky lloj ka metoda të ndryshme (mund ta lexoni në asistentin e sintaksës, gjithçka është shkruar qartë atje). Përsëri, gjithmonë mund të ktheni gjithçka që ju nevojitet si varg - metodën SetBodyFromString(). (një truk i vogël: nëse ktheni html dhe dëshironi që shfletuesi ta shfaqë bukur në ekran kur futni adresën e shërbimit tuaj në shiritin e adresave, në vetinë e titujve të përgjigjes shkruani: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - në këtë mënyrë ju tregoni se ky nuk është vetëm një grup karakteresh, por HTML dhe duhet të tregohet në përputhje me rrethanat)

Pasi të keni bërë gjithçka, shërbimi HTTP duhet të publikohet. Kjo bëhet në një kompjuter me një server në internet të instaluar (nuk do të shkruaj për cilësimet, ka shumë artikuj) përmes menysë:

Administrimi - Publikimi në një server në internet.

Ekziston një skedë Shërbimet HTTP. Kontrolloni kutitë dhe klikoni "Publiko"




Kam hasur nevojën për të marrë gjendjen aktuale të konfigurimit. Ju duhet të merrni:

  • Numri i dokumenteve me një përzgjedhje të caktuar;
  • Periudha e çmimit të fundit të regjistruar për produktin;
  • Numri i dokumenteve të përpunuara nga përdoruesi në 10 minutat e fundit.

Duke marrë parasysh përvojën e zbatimit të një aplikacioni celular në projekte, fillimisht u ndez mendimi për të shkruar një konfigurim për Android. Pasi peshova të mirat dhe të këqijat, arrita në përfundimin se kjo qasje nuk do të ishte e përshtatshme për zgjidhjen e problemit tim. Më pas kursi u mor për të përdorur shërbimin http. Për ta bërë këtë, shërbimi http "Statistikat" u regjistrua në konfigurim dhe u shtua shablloni i url-së AnyURL, i cili kishte shtuar një metodë të marrë.


Pas gjenerimit të objekteve të pemës së konfigurimit, fillojmë të shkruajmë një algoritëm për gjenerimin e një përgjigjeje. Metoda do të kthejë një përgjigje të llojit HTTPServiceResponse:

Pas shkrimit të kodit të përgjigjes, ne publikojmë shërbimin http nga konfiguruesi dhe e aksesojmë atë nga shfletuesi. Për të hyrë në shërbimin http, duhet të kontaktoni adresën si në klientin në internet duke shtuar “/hs/statistic/”. hs i tregon platformës se një shërbim http po aksesohet dhe statistika është emri i shërbimit tonë.

Sipas mendimit tim, shërbimet http mund të jenë të dobishme në rastet e mëposhtme:
— Gjenerimi i statistikave të konfigurimit;
— Funksionaliteti për marrjen e statusit të porosisë sipas numrit të tij;
— Përgatitja e të dhënave për import në sisteme të tjera.

Një shërbim në internet në 1C 8.3 dhe 8.2 është një objekt metadata që ju lejon të integroni platformën 1C me sisteme të tjera informacioni duke përdorur arkitekturën e orientuar nga shërbimi (SOA).

Le të shohim krijimin dhe konfigurimin e shembullit të një shërbimi në internet që lejon shkëmbimin e dyanshëm midis bazave të të dhënave 1C 8 duke përdorur SOAP.

Së pari, le të shohim skedën Të tjera:

Merrni 267 mësime video në 1C falas:

  • Në fushë URI i hapësirës së emrave përshkruan vendndodhjen e identifikuesit të burimit.
  • — një përshkrim i llojeve me të cilat do të mund të punojë shërbimi i ardhshëm në internet.
  • Emri i skedarit të publikimit— emri i skedarit *.1CWS që do të vendoset në serverin e internetit

Struktura e shërbimit në internet 1C

Le të shohim strukturën e shërbimit në internet:

DataExchange është vetë shërbimi në internet. UnloadData, LoadData - operacionet, në thelb, përshkrimet e funksioneve që mund të thirren përmes protokollit SOAP. ExchangePlanName, NodeCode, etj. — vlerat e transmetuara në shërbimin në internet.

Moduli i shërbimit në ueb

Moduli përmban gjënë më interesante - një përshkrim të funksioneve të shërbimit të ardhshëm të internetit. Në rastin tonë, ne përshkruajmë funksionalitetin që ju lejon të merrni dhe dërgoni të dhëna duke përdorur mekanizmat standardë të shkëmbimit 1C. Sepse Shkëmbimi bëhet midis një platforme - 1C, atëherë ato nuk kërkojnë serializimin e të dhënave.

Kontrollimi i funksionimit të shërbimit 1C http në një server në internet

Më lejoni të filloj me faktin se dikur u detyrova të merresha vetë me shërbimet e Uebit. Pastaj disi, pak nga pak, arrita ta zotëroja këtë çështje dhe të kuptoja se çfarë dhe ku të bëj presion që gjithçka të funksionojë. Për fat të mirë, konfigurimi me të cilin duhej të punonim ishte tashmë i plotë Ishte e mundur ta shikoja atë duke përdorur shërbimet e Uebit dhe ta bëja atë me analogji, dhe në internet munda të gjeja artikuj të mjaftueshëm për këtë çështje. Dhe kështu, duke përdorur shembuj (për mua kjo është mënyra më e mirë për të studiuar), e zotërova këtë çështje dhe tani ata nuk më trembin më.

KËSHTU QË. Detyra kryesore e çdo integrimi, qoftë CD, shërbime ueb ose shërbime HTTP, është të transferoni diçka nga diku, të bëni diçka me të dhe të ktheni një përgjigje. Ky është formati në të cilin do të shqyrtojmë teknologjinë e re.

Në pemën e meta të dhënave, shërbimet HTTP ndodhen në degën e Përgjithshme:

Një shërbim i ri HTTP shtohet në të njëjtën mënyrë si çdo objekt tjetër metadata. Emri dhe sinonimi sipas dëshirës. Vetëm "URL-ja e rrënjës" është e rëndësishme këtu - ky është, në fakt, identifikuesi Shërbimi HTTP në këtë bazë të dhënash, d.m.th. pikërisht atë që shkruani në këtë pronë, do ta transferoni te një zhvillues i palës së tretë (ose ju vetë) si lidhje me shërbimin.

Nuk e di nëse është e mundur të shkruash këtu në cirilik, por për të mos u tallur në botën përparimtare, shkruaj latinisht).

Vetë vetia Template është e rëndësishme këtu:

Duke përdorur një shabllon, më vonë mund t'i referoheni të dhënave që ju janë transferuar. KËSHTU QË: të gjitha të dhënat që dëshironi të merrni nga jashtë mund të ndahen në 2 blloqe - të detyrueshme dhe fakultative.

Të dhënat/parametrat e kërkuar ne e shtyjmë atë në shabllon, kështu që nëse ai që hyn në shërbim nuk i plotëson ato, atëherë shërbimi apriori do të gjenerojë një gabim dhe kur zhvilloni tekstin e modulit të mbajtësit, do të jeni i sigurt që këto të dhëna janë aty. . Si bëhet kjo: në rreshtin Modeli në kllapa kaçurrelë “()”, duke alternuar me shenjën “/”, shkruajmë emrat e variablave. Për shembull, na duhet patjetër një artikull - atëherë shkruajmë /(artikul). Nëse duhet të marrim artikullin, emrin dhe emrin e përdoruesit, vargu i shabllonit do të duket kështu: /(artikul) /(emri)/(përdoruesi), etj. Secili prej këtyre parametrave në tekstin e modulit të mbajtësit mund të merret si kjo: Request.ParametersURL["<имя параметра>"]. Nëse nuk ka të nevojshme, atëherë shablloni duket si ky: /*.

Të dhëna opsionale, të cilat duam t'i marrim përmes shërbimit, NUK përshkruhen në shabllon. Kur ndërtohet një lidhje për të hyrë në një shërbim, ato përshkruhen në fund të lidhjes pas shenjës "?", të ndara me karakterin ampersand "&" dhe kanë strukturën<имя параметра>=<значение параметра>. Në tekstin e modulit të mbajtësit, ato mund të aksesohen me konstruktin e mëposhtëm: Request.RequestParameters.Get("<имя параметра>"). POR: është e rëndësishme të mbani mend se meqenëse ato nuk kërkohen, ato mund të mos ekzistojnë; në përputhje me rrethanat, ne kontrollojmë vlerën për të Padefinuar.

Më pas, ne shtojmë një metodë të re për shabllonin tonë. Vetia e metodës HTTP është e rëndësishme këtu. Ka një numër të madh të tyre, POR ne nuk do të hyjmë në të gjitha detajet. Për të zbatuar ndonjë nga detyrat tuaja ju nevojiten vetëm 2: MARR Dhe POST.

Si të zgjidhni: Nëse ajo që përshkruam në dy paragrafët e mëparshëm është e mjaftueshme për punën tuaj, d.m.th. Ju mund të merrni të gjitha të dhënat që ju nevojiten duke përdorur parametrat e detyrueshëm dhe opsional të vetë kërkesës, atëherë ne marrim GET. Në këtë rast, në çdo shfletues, nëse futni saktë shiritin e adresave, do të shihni rezultatin e shërbimit tuaj HTTP - FITIMI! Nëse papritur që shërbimi juaj të funksionojë ju nevojiten të dhëna në një formë më komplekse (për shembull xml, ose diçka tjetër), diçka që nuk mund të futet në një shirit të thjeshtë adresash, atëherë merrni POST. Nga ana negative, një kontroll kaq i lehtë përmes shiritit të adresave të shfletuesit, si me GET, nuk do të funksionojë, por në internet mund të gjeni lehtësisht disa faqe ku mund të kontrolloni shërbimet duke përdorur metodën POST (për shembull, faqja https:/ /www.hurl.it) . Nëse zgjidhet metoda POST, pastaj kërkesa përveç kësaj URL (adresat) shfaqet një trup në të cilin mund të futni çdo gjë, dhe në trajtuesin e metodës aksesoni atë përmes konstruksionit Request.GetBodyAsString(). Çdo shabllon mund të ketë një metodë GET dhe POST. Ata do të kenë mbajtës përkatësisht të ndryshëm, dhe 1C, në varësi të mënyrës se si është dërguar kërkesa, do të zgjedhë një metodë ose një tjetër.

Një mbajtës shërbimi HTTP është një funksion që kthen gjithmonë një vlerë të tipit HTTPServiceResponse, e cila është ndërtuar nga konstruktori New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ky është një numër, në mënyrë që të mos shqetësohemi për zgjedhjen e asaj që të shkruajmë, ne shkruajmë: 200 - nëse gjithçka është në rregull dhe ju ktheni një vlerë logjike, 400 - nëse ka një gabim dhe ju ktheni një përshkrim të gabimit . Ky lloj ka metoda të ndryshme (mund ta lexoni në asistentin e sintaksës, gjithçka është shkruar qartë atje). Përsëri, gjithmonë mund të ktheni gjithçka që ju nevojitet si varg - metodën SetBodyFromString(). (një truk i vogël: nëse ktheni html dhe dëshironi që shfletuesi ta shfaqë bukur në ekran kur futni adresën e shërbimit tuaj në shiritin e adresave, në vetinë e titujve të përgjigjes shkruani: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - në këtë mënyrë ju tregoni se ky nuk është vetëm një grup karakteresh, por HTML dhe duhet të tregohet në përputhje me rrethanat)

Pasi të keni bërë gjithçka, shërbimi HTTP duhet të publikohet. Kjo bëhet në një kompjuter me një server në internet të instaluar (nuk do të shkruaj për cilësimet, ka shumë artikuj) përmes menysë:

Administrimi - Publikimi në një server në internet.

Ekziston një skedë Shërbimet HTTP. Kontrolloni kutitë dhe klikoni "Publiko"

Kështu që, morëm një shërbim të gatshëm HTTP. SI ta kontaktoni atë? Nëse përdorim metodën GET, atëherë në shiritin e adresave të shfletuesit shkruajmë: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Dhe së fundi, edhe një herë në foto))):

Kujdes! Tani kursi mbahet edhe në mbrëmje nga ora 18:30 deri në 21:30 në format zhytjeje.

Gjatë kursit do të fitoni aftësi praktike në përdorimin e mekanizmave të mëposhtëm të platformës 1C:Enterprise 8:

  • Shërbimet WEB (protokolli SOAP)
  • Formati JSON
  • o Ndërfaqja e të dhënave (shërbimi REST automatikisht)
  • Shërbimet HTTP

E RËNDËSISHME!!! Kursi është i dizajnuar për programues që kanë aftësi për të punuar me mekanizmin XDTO, ose kanë përfunduar më parë kursin.

Përshkrimi dhe programi i kursit:

Çmimi i kursit WEB përfshin:

  • 2 javë kurs, 2 webinare me një mësues
  • certifikatën e Qendrës së Trajnimit 1C Nr. 3 (subjekt i trajnimit praktik)

Kostoja e kursit të zhytjes me kohë të plotë përfshin:

  • 2 dite nga ora 10:00 deri në 17:00 ose 16:00 nga ora 18:30 deri në 21:30
  • shënime, kufje
  • dreka, pushimet për kafe
  • akses në materialet video të përditësuara për 2 vjet pas përfundimit të kursit
  • certifikata e 1C-Qendra e trajnimit nr.3

Format e trajnimit

Trajnim WEB

Cili është ky format:Formati i propozuar kombinon shumë nga avantazhet e mësimit në distancë me një komponent ballë për ballë të përfaqësuar nga materiale video dhe konsultime online.
Kursi WEB përbëhet nga video, detyra praktike dhe uebinarë me mësues. Të gjitha materialet e kursit janë të disponueshme 24/7 përmes internetit, në mënyrë që të mund të studioni në kohën që ju përshtatet. Kursi është i ndarë në klasa. Gjatë orës së mësimit studiohen materiale për temën aktuale, zhvillohen punëtori dhe mësuesit i bëhen pyetje. Në fund të çdo mësimi zhvillohet një webinar, gjatë të cilit mësuesi shqyrton të gjitha pyetjet e marra, gabimet tipike dhe shpjegon zgjidhjen e saktë. Regjistrimet e webinareve janë të disponueshme në portal. Në këtë mënyrë mbahen disa orë njëra pas tjetrës. Në fund ka një punë përfundimtare të pavarur dhe një webinar përfundimtar.

Kohëzgjatja: 2 javë

Cili është ky format:


Kohëzgjatja:16 orë akademike

Cili është ky format:Një kurs zhytjeje me kohë të plotë është një format që kombinon të gjitha avantazhet e trajnimit me kohë të plotë, mësimin në distancë dhe trajnimin individual. Klasat mbahen në një klasë të pajisur, ju studioni në mënyrë të pavarur materialet e kursit (video hap pas hapi) dhe kryeni punëtori. Në të njëjtën kohë, në audiencë ka një mësues i cili është i gatshëm në çdo kohë t'u përgjigjet pyetjeve dhe të ndihmojë në zgjidhjen e problemeve praktike, si dhe të kontrollojë korrektësinë e zbatimit të tyre.
Përparësitë - konsultime individuale nga mësuesi për pyetjet tuaja, ritmi i plotësimit të materialit është i përshtatshëm për ju personalisht.
E gjithë kjo siguron një studim më të thelluar të materialit të kursit.
Ky kurs mund të merret nga vendi juaj i punës me efektin e plotë të pranisë së mësuesit ku ndodhet studenti! Nëse kjo mundësi ju intereson, na telefononi!

Kohëzgjatja:16 orë akademike