Mga serbisyo ng HTTP para sa mga hindi nakakaintindi ng anuman tungkol sa WEB. Mga serbisyo sa web (SOAP), mga serbisyo ng HTTP, oData (awtomatikong serbisyo ng REST) ​​Mga parameter ng serbisyong 1c ng bagong kurso

Kung wala kang naiintindihan tungkol sa mga teknolohiya ng WEB at mga salita tulad ng json, kumuha, mag-post at iba pa ay walang ibig sabihin sa iyo at ikaw ay isang masugid na gumagamit ng 1C hanggang sa kaibuturan, ngunit kailangan mong makipagkaibigan sa 1C sa mga third-party na application o isang website. kung gayon ang artikulong ito ay para sa iyo.

Hayaan akong magsimula sa katotohanan na minsan ay napilitan akong harapin ang mga serbisyo sa Web nang mag-isa. Pagkatapos, sa paanuman, unti-unti, nagawa kong makabisado ang bagay na ito at maunawaan kung ano at kung saan dapat pindutin para gumana ang lahat. Sa kabutihang palad, ang pagsasaayos kung saan kailangan kong magtrabaho ay puno na ng mga serbisyo sa Web at posible na silipin at gawin ito sa pamamagitan ng pagkakatulad, at nakahanap din ako ng sapat na mga artikulo sa bagay na ito sa Internet. At kaya, gamit ang mga halimbawa (para sa akin ito ang pinakamahusay na paraan upang mag-aral), pinagkadalubhasaan ko ang bagay na ito, at ngayon ay hindi na nila ako tinatakot.

KAYA. Ang pangunahing gawain ng anumang pagsasama, maging ito ay CD, mga serbisyo sa Web o mga serbisyo ng HTTP, ay maglipat ng isang bagay mula sa isang lugar, gumawa ng isang bagay dito, at magbalik ng isang tugon. Ito ang format kung saan isasaalang-alang natin ang bagong teknolohiya.

Sa metadata tree, ang mga serbisyo ng HTTP ay matatagpuan sa Pangkalahatang sangay:

Ang isang bagong serbisyo ng HTTP ay idinagdag sa parehong paraan tulad ng anumang iba pang metadata object. Pangalan at kasingkahulugan ayon sa gusto mo. Dito, tanging ang "Root URL" ang mahalaga - ito, sa katunayan, ay ang identifier ng serbisyo ng HTTP sa database na ito, i.e. kung ano mismo ang isusulat mo sa property na ito, ililipat mo sa isang third-party na developer (o sa iyong sarili) bilang isang link sa serbisyo.

Hindi ko alam kung posible bang magsulat dito sa Cyrillic, ngunit para hindi pagtawanan sa progresibong mundo, magsulat sa Latin).

Ang Template property mismo ay mahalaga dito:

Gamit ang isang template, maaari kang sumangguni sa data na inilipat sa iyo sa ibang pagkakataon. KAYA: ang lahat ng data na nais mong matanggap mula sa labas ay maaaring nahahati sa 2 bloke - sapilitan at opsyonal.

Itinutulak namin ang kinakailangang data/parameter sa template, kaya kung hindi pupunan ng taong nag-access sa serbisyo ang mga ito, ang serbisyo ay bubuo ng isang error, at kapag binuo ang teksto ng handler module, sigurado ka na ang data na ito ay nariyan. Paano ito ginagawa: sa linya ng Pattern sa mga kulot na bracket na "()", na kahalili ng "/" sign, isinusulat namin ang mga pangalan ng mga variable. Halimbawa, tiyak na kailangan namin ng isang artikulo - pagkatapos ay sumulat kami ng /(artikul). Kung kailangan nating makuha ang artikulo, pangalan at username, magiging ganito ang string ng template: /(artikul)/(pangalan)/(user), atbp. Ang bawat isa sa mga parameter na ito sa text ng handler module ay maaaring makuha tulad nito: Request.ParametersURL["<имя параметра>"]. Kung walang mga kinakailangan, ganito ang hitsura ng template: /*.

Ang opsyonal na data na gusto naming matanggap sa pamamagitan ng serbisyo ay HINDI inilarawan sa template. Kapag gumagawa ng link para ma-access ang isang serbisyo, inilalarawan ang mga ito sa dulo ng link pagkatapos ng "?" sign, na pinaghihiwalay ng ampersand character na "&" at may istraktura.<имя параметра>=<значение параметра>. Sa text ng handler module, maaari silang ma-access gamit ang sumusunod na construct: Request.RequestParameters.Get("<имя параметра>"). PERO: mahalagang tandaan na dahil hindi kinakailangan ang mga ito, maaaring wala ang mga ito; ayon dito, sinusuri namin ang halaga para sa Undefined.

Susunod, nagdagdag kami ng bagong paraan para sa aming template. Ang pag-aari ng pamamaraan ng HTTP ay mahalaga dito. Mayroong isang malaking bilang ng mga ito, PERO hindi namin isasaalang-alang ang lahat ng mga detalye. Para ipatupad ang alinman sa iyong mga gawain, kailangan mo lang ng 2: GET at POST.

Paano pumili: Kung ang inilarawan namin sa nakaraang dalawang talata ay sapat para sa iyong trabaho, i.e. Makukuha mo ang lahat ng data na kailangan mo gamit ang mandatory at opsyonal na mga parameter ng mismong kahilingan, pagkatapos ay kukuha kami ng GET. Sa kasong ito, sa anumang browser, kung naipasok mo nang tama ang address bar, makikita mo ang resulta ng iyong serbisyo sa HTTP - PROFIT! Kung biglang para gumana ang iyong serbisyo kailangan mo ng data sa isang mas kumplikadong anyo (halimbawa, xml, o iba pa), isang bagay na hindi maaaring ilagay sa isang simpleng address bar, pagkatapos ay kunin ang POST. Sa downside, ang gayong madaling pag-check sa address bar ng browser, tulad ng GET, ay hindi gagana, ngunit sa Internet madali mong mahahanap ang ilang mga site kung saan maaari mong suriin ang mga serbisyo gamit ang POST method (halimbawa, ang site https:/ /www.hurl.it) . Kung pipiliin ang paraan ng POST, bukod pa sa URL (address), ang kahilingan ay may katawan kung saan maaari mong ilagay ang anumang gusto mo, at sa handler ng pamamaraan, i-access ito sa pamamagitan ng Request.GetBodyAsString() construct. Ang anumang template ay maaaring magkaroon ng GET at POST na paraan. Magkakaroon sila ng magkakaibang mga tagapangasiwa, at ang 1C, depende sa kung paano ipinadala ang kahilingan, ay pipili ng isang paraan o iba pa.

Ang isang HTTP service handler ay isang function na palaging nagbabalik ng isang halaga ng uri ng HTTPServiceResponse, na binuo ng constructor na New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ito ay isang numero, upang hindi mag-alala tungkol sa pagpili kung ano ang isusulat, sumulat kami: 200 - kung ang lahat ay maayos at ibabalik mo ang ilang lohikal na halaga, 400 - kung mayroong isang error at ibabalik mo ang isang paglalarawan ng error . Ang ganitong uri ay may iba't ibang mga pamamaraan (maaari mong basahin ito sa syntax assistant, lahat ay malinaw na nakasulat doon). Muli, maaari mong palaging ibalik ang lahat ng kailangan mo bilang isang string - ang SetBodyFromString() na pamamaraan. (isang maliit na trick: kung ibabalik mo ang html at gusto mong ipakita ito ng browser nang maganda sa screen kapag ipinasok mo ang address ng iyong serbisyo sa address bar, sa tugon, isulat ang property ng Headings: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - sa gayon ay ipinapahiwatig mo na ito ay hindi lamang isang hanay ng mga character, ngunit HTML at dapat itong ipakita nang naaayon)

Pagkatapos mong gawin ang lahat, kailangang ma-publish ang serbisyo ng HTTP. Ginagawa ito sa isang computer na may naka-install na web server (hindi ako magsusulat tungkol sa mga setting, maraming mga artikulo) sa pamamagitan ng menu:

Pangangasiwa - Pag-publish sa isang web server.

Mayroong tab na Mga Serbisyo ng HTTP. Lagyan ng check ang mga kahon at i-click ang "I-publish"




Nahaharap ako sa pangangailangang makuha ang kasalukuyang estado ng pagsasaayos. Kailangan mong makatanggap ng:

  • Bilang ng mga dokumento na may isang tiyak na pagpipilian;
  • Ang panahon ng huling naitala na presyo para sa produkto;
  • Ang bilang ng mga dokumentong naproseso ng user sa huling 10 minuto.

Isinasaalang-alang ang karanasan ng pagpapatupad ng isang mobile application sa mga proyekto, unang pumasok ang ideya na magsulat ng configuration para sa Android. Matapos timbangin ang lahat ng mga kalamangan at kahinaan, dumating ako sa konklusyon na ang diskarte na ito ay hindi angkop para sa paglutas ng aking problema. Pagkatapos ay kinuha ang kurso upang magamit ang serbisyo ng http. Upang gawin ito, ang serbisyo ng http na "Mga Istatistika" ay nakarehistro sa pagsasaayos, at idinagdag ang template ng url na AnyURL, na may idinagdag na paraan ng pagkuha.


Matapos mabuo ang mga bagay ng puno ng pagsasaayos, magsisimula kaming magsulat ng isang algorithm para sa pagbuo ng isang tugon. Ang pamamaraan ay magbabalik ng isang tugon ng uri ng HTTPServiceResponse:

Pagkatapos isulat ang response code, ini-publish namin ang serbisyo ng http mula sa configurator at i-access ito mula sa browser. Upang ma-access ang serbisyo ng http, kailangan mong makipag-ugnayan sa address tulad ng sa web client sa pamamagitan ng pagdaragdag ng “/hs/statistic/”. hs ay nagsasabi sa platform na ang isang serbisyo ng http ay ina-access, at istatistika ang pangalan ng aming serbisyo.

Sa aking opinyon, ang mga serbisyo ng http ay maaaring maging kapaki-pakinabang sa mga sumusunod na kaso:
— Pagbuo ng mga istatistika ng pagsasaayos;
— Pag-andar para sa pagkuha ng katayuan ng order ayon sa numero nito;
— Paghahanda ng data para sa pag-import sa ibang mga system.

Ang isang web service sa 1C 8.3 at 8.2 ay isang metadata object na nagbibigay-daan sa iyong isama ang 1C platform sa iba pang mga information system gamit ang service-oriented architecture (SOA).

Tingnan natin ang paggawa at pag-configure ng halimbawa ng isang serbisyo sa web na nagbibigay-daan sa dalawang-daan na palitan sa pagitan ng 1C 8 na mga database gamit ang SOAP.

Una, tingnan natin ang tab Iba pa:

Kumuha ng 267 video lesson sa 1C nang libre:

  • Sa field Namespace URI inilalarawan ang lokasyon ng resource identifier.
  • — isang paglalarawan ng mga uri na magagawa ng serbisyo sa web sa hinaharap.
  • Pangalan ng file ng publikasyon— pangalan ng *.1CWS file na ilalagay sa web server

Istraktura ng 1C web service

Tingnan natin ang istraktura ng serbisyo sa web:

Ang DataExchange ay ang web service mismo. UnloadData, LoadData - mga pagpapatakbo, esensyal, mga paglalarawan ng mga function na maaaring tawagan sa pamamagitan ng SOAP protocol. ExchangePlanName, NodeCode, atbp. — mga halagang ipinadala sa serbisyo sa web.

Module ng serbisyo sa web

Ang module ay naglalaman ng pinaka-kagiliw-giliw na bagay - isang paglalarawan ng mga pag-andar ng hinaharap na serbisyo sa web. Sa aming kaso, inilalarawan namin ang functionality na nagbibigay-daan sa iyong tumanggap at magpadala ng data gamit ang karaniwang 1C exchange mechanisms. kasi Ang palitan ay nagaganap sa pagitan ng isang platform - 1C, pagkatapos ay hindi sila nangangailangan ng serialization ng data.

Sinusuri ang pagpapatakbo ng serbisyo ng 1C http sa isang web server

Hayaan akong magsimula sa katotohanan na minsan ay napilitan akong harapin ang mga serbisyo sa Web nang mag-isa. Pagkatapos, sa paanuman, unti-unti, nagawa kong makabisado ang bagay na ito at maunawaan kung ano at kung saan dapat pindutin para gumana ang lahat. Sa kabutihang palad, ang configuration na kailangan naming magtrabaho ay puno na Posibleng tingnan ito gamit ang mga serbisyo sa Web at gawin ito sa pamamagitan ng pagkakatulad, at sa Internet ay nakahanap ako ng sapat na mga artikulo sa bagay na ito. At kaya, gamit ang mga halimbawa (para sa akin ito ang pinakamahusay na paraan upang mag-aral), pinagkadalubhasaan ko ang bagay na ito, at ngayon ay hindi na nila ako tinatakot.

KAYA. Ang pangunahing gawain ng anumang pagsasama, maging ito ay CD, mga serbisyo sa Web o mga serbisyo ng HTTP, ay maglipat ng isang bagay mula sa isang lugar, gumawa ng isang bagay dito, at magbalik ng isang tugon. Ito ang format kung saan isasaalang-alang natin ang bagong teknolohiya.

Sa metadata tree, ang mga serbisyo ng HTTP ay matatagpuan sa Pangkalahatang sangay:

Ang isang bagong serbisyo ng HTTP ay idinagdag sa parehong paraan tulad ng anumang iba pang metadata object. Pangalan at kasingkahulugan ayon sa gusto mo. Tanging ang "Root URL" ang mahalaga dito - ito, sa katunayan, ang identifier HTTP na serbisyo sa database na ito, i.e. kung ano mismo ang isusulat mo sa property na ito, ililipat mo sa isang third-party na developer (o sa iyong sarili) bilang isang link sa serbisyo.

Hindi ko alam kung posible bang magsulat dito sa Cyrillic, ngunit para hindi pagtawanan sa progresibong mundo, magsulat sa Latin).

Ang Template property mismo ay mahalaga dito:

Gamit ang isang template, maaari kang sumangguni sa data na inilipat sa iyo sa ibang pagkakataon. KAYA: lahat ng data na gusto mong matanggap mula sa labas ay maaaring nahahati sa 2 bloke - sapilitan at opsyonal.

Mga kinakailangang data/parameter itinutulak namin ito sa template, kaya kung ang taong nag-access sa serbisyo ay hindi pupunan ang mga ito, ang serbisyo ay isang priori na bubuo ng isang error, at kapag binuo ang teksto ng module ng handler, sigurado kang naroroon ang data na ito. Paano ito ginagawa: sa linya ng Pattern sa mga kulot na bracket na "()", na kahalili ng "/" sign, isinusulat namin ang mga pangalan ng mga variable. Halimbawa, tiyak na kailangan namin ng isang artikulo - pagkatapos ay sumulat kami ng /(artikul). Kung kailangan nating makuha ang artikulo, pangalan at username, magiging ganito ang string ng template: /(artikul) /(pangalan)/(user), atbp. Ang bawat isa sa mga parameter na ito sa text ng handler module ay maaaring makuha tulad nito: Request.ParametersURL["<имя параметра>"]. Kung walang mga kinakailangan, ganito ang hitsura ng template: /*.

Opsyonal na data, na gusto naming matanggap sa pamamagitan ng serbisyo, ay HINDI inilarawan sa template. Kapag gumagawa ng link para ma-access ang isang serbisyo, inilalarawan ang mga ito sa dulo ng link pagkatapos ng "?" sign, na pinaghihiwalay ng ampersand character na "&" at may istraktura.<имя параметра>=<значение параметра>. Sa text ng handler module, maaari silang ma-access gamit ang sumusunod na construct: Request.RequestParameters.Get("<имя параметра>"). PERO: mahalagang tandaan na dahil hindi kinakailangan ang mga ito, maaaring wala ang mga ito; ayon dito, sinusuri namin ang halaga para sa Undefined.

Susunod, nagdagdag kami ng bagong paraan para sa aming template. Ang pag-aari ng pamamaraan ng HTTP ay mahalaga dito. Mayroong isang malaking bilang ng mga ito, PERO hindi namin isasaalang-alang ang lahat ng mga detalye. Para ipatupad ang alinman sa iyong mga gawain kailangan mo lang ng 2: GET At POST.

Paano pumili: Kung ang inilarawan namin sa nakaraang dalawang talata ay sapat para sa iyong trabaho, i.e. Makukuha mo ang lahat ng data na kailangan mo gamit ang mandatory at opsyonal na mga parameter ng mismong kahilingan, pagkatapos ay kukuha kami ng GET. Sa kasong ito, sa anumang browser, kung naipasok mo nang tama ang address bar, makikita mo ang resulta ng iyong serbisyo sa HTTP - PROFIT! Kung biglang para gumana ang iyong serbisyo kailangan mo ng data sa isang mas kumplikadong anyo (halimbawa, xml, o iba pa), isang bagay na hindi maaaring ilagay sa isang simpleng address bar, pagkatapos ay kunin ang POST. Sa downside, ang gayong madaling pag-check sa address bar ng browser, tulad ng GET, ay hindi gagana, ngunit sa Internet madali mong mahahanap ang ilang mga site kung saan maaari mong suriin ang mga serbisyo gamit ang POST method (halimbawa, ang site https:/ /www.hurl.it) . Kung ang paraan ay pinili POST, tapos yung request bukod URL (mga address) may lalabas na katawan kung saan maaari kang maglagay ng kahit ano, at sa handler ng pamamaraan, i-access ito sa pamamagitan ng Request.GetBodyAsString() construct. Ang anumang template ay maaaring magkaroon ng GET at POST na paraan. Magkakaroon sila ng magkakaibang mga tagapangasiwa, at ang 1C, depende sa kung paano ipinadala ang kahilingan, ay pipili ng isang paraan o iba pa.

Ang isang HTTP service handler ay isang function na palaging nagbabalik ng isang halaga ng uri ng HTTPServiceResponse, na binuo ng constructor na New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ito ay isang numero, upang hindi mag-alala tungkol sa pagpili kung ano ang isusulat, sumulat kami: 200 - kung ang lahat ay maayos at ibabalik mo ang ilang lohikal na halaga, 400 - kung mayroong isang error at ibabalik mo ang isang paglalarawan ng error . Ang ganitong uri ay may iba't ibang mga pamamaraan (maaari mong basahin ito sa syntax assistant, lahat ay malinaw na nakasulat doon). Muli, maaari mong palaging ibalik ang lahat ng kailangan mo bilang isang string - ang SetBodyFromString() na pamamaraan. (isang maliit na trick: kung ibabalik mo ang html at gusto mong ipakita ito ng browser nang maganda sa screen kapag ipinasok mo ang address ng iyong serbisyo sa address bar, sa tugon, isulat ang property ng Headings: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - sa gayon ay ipinapahiwatig mo na ito ay hindi lamang isang hanay ng mga character, ngunit HTML at dapat itong ipakita nang naaayon)

Pagkatapos mong gawin ang lahat, kailangang ma-publish ang serbisyo ng HTTP. Ginagawa ito sa isang computer na may naka-install na web server (hindi ako magsusulat tungkol sa mga setting, maraming mga artikulo) sa pamamagitan ng menu:

Pangangasiwa - Pag-publish sa isang web server.

Mayroong tab na Mga Serbisyo ng HTTP. Lagyan ng check ang mga kahon at i-click ang "I-publish"

Kaya, nakatanggap kami ng isang handa na serbisyong HTTP. PAANO siya makontak? Kung gagamitin namin ang paraan ng GET, pagkatapos ay sa address bar ng browser isusulat namin: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

At sa wakas, muli sa mga larawan))):

Pansin! Ngayon ang kurso ay gaganapin din sa gabi mula 18:30 hanggang 21:30 sa isang immersion na format.

Sa kurso ay magkakaroon ka ng mga praktikal na kasanayan sa paggamit ng mga sumusunod na mekanismo ng 1C:Enterprise 8 platform:

  • Mga serbisyo sa WEB (SOAP protocol)
  • JSON na format
  • oData interface (awtomatikong REST service)
  • Mga serbisyo ng HTTP

MAHALAGA!!! Ang kurso ay idinisenyo para sa mga programmer na may mga kasanayan sa pagtatrabaho sa mekanismo ng XDTO, o dati nang natapos ang kurso.

Paglalarawan at programa ng kurso:

Kasama sa presyo ng kursong WEB ang:

  • 2 linggo siyempre, 2 webinar kasama ang isang guro
  • sertipiko ng 1C Training Center No. 3 (napapailalim sa praktikal na pagsasanay)

Ang halaga ng full-time na kursong immersion ay kinabibilangan ng:

  • 2 araw mula 10:00 hanggang 17:00 o 4 pm mula 18:30 hanggang 21:30
  • mga tala, mga headphone
  • tanghalian, coffee break
  • access sa mga na-update na materyales sa video sa loob ng 2 taon pagkatapos makumpleto ang kurso
  • sertipiko ng 1C-Training center No. 3

Mga format ng pagsasanay

Pagsasanay sa WEB

Ano ang format na ito:Pinagsasama ng iminungkahing format ang marami sa mga pakinabang ng distance learning na may bahaging harapang kinakatawan ng mga materyal na video at online na konsultasyon.
Ang kurso sa WEB ay binubuo ng mga video, praktikal na gawain at mga webinar kasama ng mga guro. Ang lahat ng mga materyales sa kurso ay magagamit 24/7 sa pamamagitan ng Internet upang makapag-aral ka sa oras na nababagay sa iyo. Ang kurso ay nahahati sa mga klase. Sa panahon ng aralin, ang mga materyal sa kasalukuyang paksa ay pinag-aaralan, ang mga workshop ay isinasagawa, at ang mga tanong ay itinatanong sa guro. Sa pagtatapos ng bawat aralin, isang webinar ang gaganapin, kung saan susuriin ng guro ang lahat ng mga tanong na natanggap, karaniwang mga pagkakamali, at ipinapaliwanag ang tamang solusyon. Ang mga pag-record ng mga webinar ay magagamit sa portal. Sa ganitong paraan, sunud-sunod ang pagdaraos ng ilang klase. Sa dulo mayroong isang pangwakas na independiyenteng gawain at isang pangwakas na webinar.

Tagal: 2 linggo

Ano ang format na ito:


Tagal:16 na oras ng pag-aaral

Ano ang format na ito:Ang full-time na kursong immersion ay isang format na pinagsasama ang lahat ng mga pakinabang ng full-time na pagsasanay, pag-aaral ng distansya at indibidwal na pagsasanay. Ang mga klase ay gaganapin sa isang silid-aralan na may gamit, independyente mong pinag-aaralan ang mga materyales sa kurso (step-by-step na mga video) at nagsasagawa ng mga workshop. Kasabay nito, mayroong isang guro sa madla na handa sa anumang oras upang sagutin ang mga tanong at tumulong sa paglutas ng mga praktikal na problema, pati na rin suriin ang kawastuhan ng kanilang pagpapatupad.
Mga kalamangan - mga indibidwal na konsultasyon mula sa guro sa iyong mga katanungan, ang bilis ng pagkumpleto ng materyal ay angkop para sa iyo nang personal.
Ang lahat ng ito ay nagbibigay ng mas malalim na pag-aaral ng materyal ng kurso.
Ang kursong ito ay maaaring kunin mula sa iyong lugar ng trabaho na may ganap na epekto ng presensya ng guro kung nasaan ang estudyante! Kung interesado ka sa pagkakataong ito, tawagan kami!

Tagal:16 na oras ng pag-aaral