HTTP usluge za one koji ne razumiju ništa o WEB-u. Web usluge (SOAP), HTTP usluge, oData (automatski REST servis) Novi parametri usluge kursa 1c

Ako ne razumete ništa o WEB tehnologijama i reči poput json, get, post i tako dalje vam ništa ne znače i vi ste samo strastveni korisnik 1C do srži, ali morate da se sprijateljite sa 1C sa aplikacije trećih strana ili web stranicu. onda je ovaj članak za vas.

Dozvolite mi da počnem sa činjenicom da sam jednom bio primoran da se sam bavim Web uslugama. Onda sam nekako, malo po malo, uspeo da savladam ovu materiju i shvatim šta i gde da pritisnem da sve funkcioniše. Na sreću, konfiguracija sa kojom sam morao da radim je već bila natrpana Web servisima i moglo se zaviriti i uraditi po analogiji, a uspeo sam da nađem i dovoljno članaka na ovu temu na internetu. I tako sam, koristeći primjere (za mene je ovo najbolji način za učenje), savladao ovu materiju i sada me više ne plaše.

SO. Glavni zadatak bilo koje integracije, bilo da se radi o CD-u, Web servisima ili HTTP servisima, je prenijeti nešto odnekud, učiniti nešto s tim i vratiti odgovor. Ovo je format u kojem ćemo razmatrati novu tehnologiju.

U stablu metapodataka, HTTP usluge se nalaze u grani Općenito:

Nova HTTP usluga se dodaje na isti način kao i bilo koji drugi objekat metapodataka. Ime i sinonim po želji. Ovdje je važan samo “Root URL” - to je, zapravo, identifikator HTTP usluge u ovoj bazi podataka, tj. upravo ono što napišete u ovom svojstvu, prenijet ćete trećem developeru (ili sebi) kao vezu do usluge.

Ne znam da li je ovde moguće pisati ćirilicom, ali da vam se ne bi smejali u naprednom svetu, pišite latinicom).

Ovdje je važno svojstvo Template:

Koristeći šablon, kasnije se možete pozvati na podatke koji su vam prebačeni. DAKLE: svi podaci koje želite primiti izvana mogu se podijeliti u 2 bloka - obavezni i opcioni.

Potrebne podatke/parametre guramo u šablon, tako da ako ih osoba koja pristupa servisu ne popuni, servis će a priori generirati grešku, a prilikom izrade teksta modula rukovatelja, bit ćete sigurni da ovi podaci je tamo. Kako se to radi: u retku Uzorak u vitičastim zagradama “()”, naizmjenično sa znakom “/”, upisujemo imena varijabli. Na primjer, definitivno nam treba članak - onda pišemo /(artikul). Ako trebamo dobiti članak, ime i korisničko ime, niz šablona će izgledati ovako: /(artikul)/(ime)/(korisnik) itd. Svaki od ovih parametara u tekstu modula rukovaoca može se dobiti ovako: Request.ParametersURL["<имя параметра>"]. Ako nema potrebnih, šablon izgleda ovako: /*.

Opcioni podaci koje želimo da primamo putem servisa NISU opisani u šablonu. Kada pravite vezu za pristup servisu, oni su opisani na kraju veze nakon znaka "?", odvojeni znakom ampersanda "&" i imaju strukturu<имя параметра>=<значение параметра>. U tekstu modula rukovaoca, njima se može pristupiti sa sljedećom konstrukcijom: Request.RequestParameters.Get("<имя параметра>"). ALI: važno je zapamtiti da pošto nisu obavezni, možda i ne postoje; shodno tome, provjeravamo vrijednost za Undefined.

Zatim dodajemo novu metodu za naš predložak. Svojstvo HTTP metode je ovdje važno. Ima ih ogroman broj, ALI nećemo ulaziti u sve detalje. Da biste implementirali bilo koji od vaših zadataka, trebate samo 2: GET i POST.

Kako odabrati: Ako je ono što smo opisali u prethodna dva pasusa dovoljno za vaš rad, tj. Možete dobiti sve podatke koji su vam potrebni koristeći obavezne i opcione parametre samog zahtjeva, a mi uzimamo GET. U ovom slučaju, u bilo kojem pretraživaču, ako ispravno unesete adresnu traku, vidjet ćete rezultat vaše HTTP usluge - PROFIT! Ako vam odjednom da bi vaš servis radio zatrebaju podaci u složenijem obliku (npr. xml ili nešto drugo), nešto što se ne može ubaciti u jednostavnu adresnu traku, onda uzmite POST. S druge strane, tako laka provjera kroz adresnu traku preglednika, kao kod GET-a, neće raditi, ali na Internetu možete lako pronaći neke stranice na kojima možete provjeriti usluge POST metodom (na primjer, stranica https:/ /www.hurl.it) . Ako je odabrana POST metoda, tada pored URL-a (adrese), zahtjev ima tijelo u koje možete ubaciti sve što želite, a u rukovatelju metoda mu pristupate preko Request.GetBodyAsString() konstrukcije. Svaki predložak može imati i GET i POST metodu. Oni će imati odgovarajuće različite rukovaoce, a 1C će, ovisno o tome kako je zahtjev poslan, izabrati jednu ili drugu metodu.

Rukovalac HTTP servisom je funkcija koja uvijek vraća vrijednost tipa HTTPServiceResponse, koji je izgrađen od strane konstruktora New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ovo je broj, da ne biste morali da brinete oko izbora šta da napišete, pišemo: 200 - ako je sve u redu i vratite neku logičku vrijednost, 400 - ako postoji greška i vratite opis greške . Ovaj tip ima različite metode (možete ga pročitati u pomoćniku za sintaksu, tamo je sve jasno napisano). Opet, uvijek možete vratiti sve što vam je potrebno kao string - metodu SetBodyFromString(). (jedan mali trik: ako vratite html i želite da ga pretraživač lijepo prikaže na ekranu kada unesete adresu svoje usluge u adresnu traku, u svojstvu naslova odgovora napišite: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - time ukazujete da ovo nije samo skup znakova, već HTML i mora biti prikazan u skladu s tim)

Nakon što sve uradite, HTTP uslugu treba objaviti. To se radi na računaru sa instaliranim web serverom (o postavkama neću pisati, ima dosta članaka) preko menija:

Administracija - Objavljivanje na web serveru.

Postoji kartica HTTP usluge. Označite kućice i kliknite na "Objavi"




Bio sam suočen sa potrebom da dobijem trenutno stanje konfiguracije. Potrebno je da dobijete:

  • Broj dokumenata sa određenim izborom;
  • Period posljednje zabilježene cijene za proizvod;
  • Broj dokumenata koje je korisnik obradio u posljednjih 10 minuta.

Uzimajući u obzir iskustvo implementacije mobilne aplikacije u projekte, prvo je proletjela misao da se napiše konfiguracija za Android. Nakon što sam odvagao sve za i protiv, došao sam do zaključka da ovaj pristup ne bi bio prikladan za rješavanje mog problema. Zatim je položen kurs za korištenje http usluge. Da bi se to postiglo, u konfiguraciji je registrovan http servis “Statistika” i dodat je url predložak AnyURL koji je imao dodat metod get.


Nakon generiranja objekata konfiguracijskog stabla, počinjemo pisati algoritam za generiranje odgovora. Metoda će vratiti odgovor tipa HTTPServiceResponse:

Nakon pisanja koda odgovora, objavljujemo http uslugu iz konfiguratora i pristupamo joj iz pretraživača. Za pristup http servisu potrebno je da kontaktirate adresu kao u web klijentu dodavanjem “/hs/statistic/”. hs govori platformi da se pristupa nekom http servisu, a statistika je naziv našeg servisa.

Po mom mišljenju, http usluge mogu biti korisne u sljedećim slučajevima:
— Generisanje statistike konfiguracije;
— Funkcionalnost dobijanja statusa naloga po broju;
— Priprema podataka za uvoz u druge sisteme.

Web servis u 1C 8.3 i 8.2 je objekat metapodataka koji vam omogućava da integrišete 1C platformu sa drugim informacionim sistemima koristeći arhitekturu orijentisanu na usluge (SOA).

Pogledajmo kreiranje i konfiguriranje primjera web servisa koji omogućava dvosmjernu razmjenu između 1C 8 baza podataka koristeći SOAP.

Prvo, pogledajmo karticu ostalo:

Nabavite 267 video lekcija na 1C besplatno:

  • Na terenu URI prostora imena opisuje lokaciju identifikatora resursa.
  • — opis tipova sa kojima će budući web servis moći da radi.
  • Naziv datoteke publikacije— naziv *.1CWS datoteke koja će biti postavljena na web server

Struktura 1C web servisa

Pogledajmo strukturu web servisa:

DataExchange je sama web usluga. UnloadData, LoadData - operacije, u suštini, opisi funkcija koje se mogu pozvati putem SOAP protokola. ExchangePlanName, NodeCode, itd. — vrijednosti koje se prenose na web servis.

Web servisni modul

Modul sadrži ono najzanimljivije - opis funkcija budućeg web servisa. U našem slučaju opisujemo funkcionalnost koja vam omogućava primanje i slanje podataka pomoću standardnih 1C mehanizama razmjene. Jer Razmjena se odvija između jedne platforme - 1C, tada im nije potrebna serijalizacija podataka.

Provjera rada 1C http usluge na web serveru

Dozvolite mi da počnem sa činjenicom da sam jednom bio primoran da se sam bavim Web uslugama. Onda sam nekako, malo po malo, uspeo da savladam ovu materiju i shvatim šta i gde da pritisnem da sve funkcioniše. Na sreću, konfiguracija s kojom smo morali raditi je već bila puna To je bilo moguće pogledati pomoću web servisa i uraditi po analogiji, a na internetu sam uspio pronaći dovoljno članaka o ovoj temi. I tako sam, koristeći primjere (za mene je ovo najbolji način za učenje), savladao ovu materiju i sada me više ne plaše.

SO. Glavni zadatak bilo koje integracije, bilo da se radi o CD-u, Web servisima ili HTTP servisima, je prenijeti nešto odnekud, učiniti nešto s tim i vratiti odgovor. Ovo je format u kojem ćemo razmatrati novu tehnologiju.

U stablu metapodataka, HTTP usluge se nalaze u grani Općenito:

Nova HTTP usluga se dodaje na isti način kao i bilo koji drugi objekat metapodataka. Ime i sinonim po želji. Ovdje je važan samo “Root URL” - ovo je, u stvari, identifikator HTTP servis u ovoj bazi podataka, tj. upravo ono što napišete u ovom svojstvu, prenijet ćete trećem developeru (ili sebi) kao vezu do usluge.

Ne znam da li je ovde moguće pisati ćirilicom, ali da vam se ne bi smejali u naprednom svetu, pišite latinicom).

Ovdje je važno svojstvo Template:

Koristeći šablon, kasnije se možete pozvati na podatke koji su vam prebačeni. DAKLE: svi podaci koje želite primiti izvana mogu se podijeliti u 2 bloka - obavezni i opcioni.

Potrebni podaci/parametri gurnemo ga u šablon, tako da ako ih osoba koja pristupa servisu ne popuni, tada će servis a priori generirati grešku, a kada razvijate tekst modula za obradu, bit ćete sigurni da su ti podaci tu. Kako se to radi: u retku Uzorak u vitičastim zagradama “()”, naizmjenično sa znakom “/”, upisujemo imena varijabli. Na primjer, definitivno nam treba članak - onda pišemo /(artikul). Ako trebamo dobiti članak, ime i korisničko ime, niz šablona će izgledati ovako: /(artikul) /(ime)/(korisnik) itd. Svaki od ovih parametara u tekstu modula rukovaoca može se dobiti ovako: Request.ParametersURL["<имя параметра>"]. Ako nema potrebnih, šablon izgleda ovako: /*.

Opcioni podaci, koje želimo da dobijemo putem servisa, NISU opisani u šablonu. Kada pravite vezu za pristup servisu, oni su opisani na kraju veze nakon znaka "?", odvojeni znakom ampersanda "&" i imaju strukturu<имя параметра>=<значение параметра>. U tekstu modula rukovaoca, njima se može pristupiti sa sljedećom konstrukcijom: Request.RequestParameters.Get("<имя параметра>"). ALI: važno je zapamtiti da pošto nisu obavezni, možda i ne postoje; shodno tome, provjeravamo vrijednost za Undefined.

Zatim dodajemo novu metodu za naš predložak. Svojstvo HTTP metode je ovdje važno. Ima ih ogroman broj, ALI nećemo ulaziti u sve detalje. Za implementaciju bilo kojeg od vaših zadataka potrebna su vam samo 2: GET I POŠTA.

Kako odabrati: Ako je ono što smo opisali u prethodna dva pasusa dovoljno za vaš rad, tj. Možete dobiti sve podatke koji su vam potrebni koristeći obavezne i opcione parametre samog zahtjeva, a mi uzimamo GET. U ovom slučaju, u bilo kojem pretraživaču, ako ispravno unesete adresnu traku, vidjet ćete rezultat vaše HTTP usluge - PROFIT! Ako vam odjednom da bi vaš servis radio zatrebaju podaci u složenijem obliku (xml na primjer, ili nešto drugo), nešto što se ne može ugurati u jednostavnu adresnu traku, onda uzmite POST. S druge strane, tako laka provjera kroz adresnu traku pretraživača, kao kod GET-a, neće raditi, ali na Internetu možete lako pronaći neke web stranice na kojima možete provjeriti usluge POST metodom (na primjer, stranica https:/ /www.hurl.it) . Ako je odabrana metoda POST, zatim zahtjev osim toga URL (adrese) pojavljuje se tijelo u koje možete staviti bilo što, a u rukovatelju metoda mu pristupate preko Request.GetBodyAsString() konstrukcije. Svaki predložak može imati i GET i POST metodu. Oni će imati odgovarajuće različite rukovaoce, a 1C će, ovisno o tome kako je zahtjev poslan, izabrati jednu ili drugu metodu.

Rukovalac HTTP servisom je funkcija koja uvijek vraća vrijednost tipa HTTPServiceResponse, koji je izgrađen od strane konstruktora New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- ovo je broj, da ne biste morali da brinete oko izbora šta da napišete, pišemo: 200 - ako je sve u redu i vratite neku logičku vrijednost, 400 - ako postoji greška i vratite opis greške . Ovaj tip ima različite metode (možete ga pročitati u pomoćniku za sintaksu, tamo je sve jasno napisano). Opet, uvijek možete vratiti sve što vam je potrebno kao string - metodu SetBodyFromString(). (jedan mali trik: ako vratite html i želite da ga pretraživač lijepo prikaže na ekranu kada unesete adresu svoje usluge u adresnu traku, u svojstvu naslova odgovora napišite: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - time ukazujete da ovo nije samo skup znakova, već HTML i mora biti prikazan u skladu s tim)

Nakon što sve uradite, HTTP uslugu treba objaviti. To se radi na računaru sa instaliranim web serverom (o postavkama neću pisati, ima dosta članaka) preko menija:

Administracija - Objavljivanje na web serveru.

Postoji kartica HTTP usluge. Označite kućice i kliknite na "Objavi"

Dakle, dobili smo gotovu HTTP uslugu. KAKO ga kontaktirati? Ako koristimo metodu GET, tada u adresnu traku pretraživača pišemo: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

I za kraj, još jednom u slikama))):

Pažnja! Sada se kurs održava i uveče od 18:30 do 21:30 u imersion formatu.

Tokom kursa steći ćete praktične vještine korištenja sljedećih mehanizama platforme 1C:Enterprise 8:

  • WEB usluge (SOAP protokol)
  • JSON format
  • oData interfejs (automatski REST servis)
  • HTTP usluge

BITAN!!! Kurs je namenjen programerima koji imaju veštine u radu sa XDTO mehanizmom, ili su prethodno završili kurs.

Opis i program kursa:

Cijena WEB kursa uključuje:

  • 2 sedmice naravno, 2 webinara sa nastavnikom
  • sertifikat 1C Centra za obuku br. 3 (podložno praktične obuke)

Trošak cjelodnevnog kursa za uranjanje uključuje:

  • 2 dana od 10:00 do 17:00 ili 16:00 od 18:30 do 21:30
  • bilješke, slušalice
  • ručkovi, pauze za kafu
  • pristup ažuriranim video materijalima 2 godine nakon završetka kursa
  • sertifikat 1C-trening centra br.3

Formati obuke

WEB trening

Koji je ovo format:Predloženi format kombinuje mnoge prednosti učenja na daljinu sa komponentom licem u lice koju predstavljaju video materijali i onlajn konsultacije.
WEB kurs se sastoji od video zapisa, praktičnih zadataka i webinara sa nastavnicima. Svi materijali za kurs dostupni su 24/7 putem interneta tako da možete učiti u vrijeme koje vam odgovara. Kurs je podeljen na časove. Tokom časa se proučavaju materijali na aktuelnu temu, izvode radionice i postavljaju pitanja nastavniku. Na kraju svake lekcije održava se webinar tokom kojeg nastavnik ispituje sva primljena pitanja, tipične greške i objašnjava ispravno rješenje. Snimci webinara dostupni su na portalu. Na ovaj način se održava nekoliko časova jedan za drugim. Na kraju je završni samostalni rad i završni webinar.

Trajanje: 2 sedmice

Koji je ovo format:


Trajanje:16 akademskih sati

Koji je ovo format:Redovni imersion kurs je format koji kombinuje sve prednosti redovnog treninga, učenja na daljinu i individualnog treninga. Nastava se održava u opremljenoj učionici, samostalno proučavate materijale kursa (video-korak po korak) i izvodite radionice. Istovremeno, u publici je i nastavnik koji je u svakom trenutku spreman odgovoriti na pitanja i pomoći u rješavanju praktičnih zadataka, kao i provjeriti ispravnost njihove realizacije.
Prednosti – individualne konsultacije nastavnika o vašim pitanjima, tempo popunjavanja gradiva odgovara vama lično.
Sve ovo omogućava dublje proučavanje materijala kursa.
Ovaj kurs možete preuzeti sa svog radnog mjesta uz potpuni efekat prisustva nastavnika gdje se učenik nalazi! Ako vas ova prilika zanima, pozovite nas!

Trajanje:16 akademskih sati