Web usluge. Pavel Chistov Tehnička specifikacija za web servis 1s 8 primjer

Dom / Data Recovery

Ključne riječi: web servis, web servis, SOAP, WSDL, ws link

Odricanje od odgovornosti i uslovi korišćenja

Svi zaštitni znakovi koji su slučajno spomenuti u ovom članku pripadaju njihovim odgovarajućim vlasnicima.
Ovaj članak je objavljen pod licencom Creative Commons Attribution-Share Alike 3.0 Unported. http://creativecommons.org/licenses/by-sa/3.0/

Još jedno odricanje od odgovornosti (nakon mnogo puta)

Platforma 1C:Enterprise 8 stalno se razvija. Stoga će kod predstavljen u ovom članku generirati grešku u najnovijim verzijama platforme. To se događa, posebno, zbog činjenice da se promijenio redoslijed pozivanja metoda proxy objekta web usluge: na primjer, složeni objekti mora se eksplicitno konvertirati u XDTO objekt odgovarajućeg tipa korištenjem Tvornice odgovarajuće usluge. O tome možete pročitati na našem forumu ili u knjizi “Tehnologije integracije 1C: Enterprise” http://v8.1c.ru/metod/books/book.jsp?id=288

Uvod

Kada se pojavi nova verzija neki softverski proizvod, onda naravno, prije svega, želite razumjeti šta je novo u njemu. U slučaju 1C:Enterprise 8.1, web servisi su za mene postali tako nova “karakteristika”. O web servisima se dosta pisalo i govorilo, jer ova tehnologija po kompjuterskim standardima postoji dosta dugo. Stoga, neću se ponavljati, sve upućujem na Yandex za informacije. Reći ću samo da izlaskom novog izdanja platforme 1C:Enterprise 8.1, 1Snikov ima priliku da kreira i koristi tehnologiju web servisa, takoreći u svom matičnom okruženju. U ovom članku želim pokazati kako koristiti eksterne web servise u svojim razvojima.

Za one koji su potpuno "izvan petlje": o web uslugama "na dohvat ruke"

OK, specijalno za tebe Pokušat ću vam reći malo o tome što je web servis i zašto točno OvoČinilo mi se tako „ukusnom“ inovacijom platforme. Možda znate o COM tehnologiji ili ste čuli nešto o OLE? Prije ili kasnije, svaki pojedini radnik će naići na ovu tehnologiju (posebno ako trebate brzo prenijeti neki direktorij “Zaposleni”, a odjel za ljudske resurse, predviđajući potrebu ponovnog ubacivanja svih 1.500 zaposlenih, spreman je da vas objesi na prvu odgovarajući nokat koji dolazi zajedno).
Da, dakle, u srcu COM tehnologije je ideja mogućnosti poziv programski kod(i pristup podacima) jedne aplikacije iz druge aplikacije. Štaviše, mogućnosti učiniti to ne na nivou pojedinačnih procedura i funkcija, već stavljajući na raspolaganje objekata drugu aplikaciju. Kada koristimo OLE, kreiramo objekt u našoj aplikaciji koji je " predstavnik"ili, ako želite, " omotač"nekog objekta aplikacije sa kojim želimo da komuniciramo (tzv. "OLE objekat" ili "COM objekat"). Putem ovog "omotača" objekta, svojstva i metode objekta druge aplikacije postaju nam dostupni , i to samo one čiji je programer Togo Aplikacije su nam dozvolile da ih koristimo objavljivanjem u opisu interfejs. (Pa nisam htela da ulazim u korov, ali nema drugog načina...)
Sada zamislimo to potpuno isto aplikacija je na drugom računaru, a čak nije ni unutra lokalna mreža(DCOM, CORBA i druge nejasne kratice dosta dobro obrađuju takve slučajeve), a negdje daleko, daleko na internetu. Ovdje na scenu stupaju web servisi (također sa nejasnim akronimima: SOAP, WSDL, itd.), koji vam omogućavaju da izvedete sličan “trik” u ovom slučaju: tj. primaju podatke i manipulišu objektima iz aplikacije koja radi na računaru na drugoj strani Interneta.
pod " vanjski"Pod web servisom mislim na web uslugu koja se pruža nekima dobavljač servis (tj. ne naša aplikacija.) U skladu s tim, pod "internim" - web servisom koji ćemo pružiti od, ili, tačnije, na osnovu našu aplikaciju. Kada koristimo eksterne web servise, moramo razumjeti da iako je objekt “wrapper” kreiran u našoj “lokalnoj” aplikaciji, “izvršni kod” ovog objekta se nalazi, možda, na drugoj strani globusa. U isto vrijeme, razmjena između nas I njima odvija se na sada sveprisutnom XML-u, sa svojim dobro poznatim "prednostima" (svestranost i struktura) i "protiv" (naduvavanje), a stari dobri http se koristi kao "prenosna linija".
Da, i ne zaboravite na internet promet! Štaviše, u slučaju eksternih web servisa, većina njih će biti uključena dolazni komponenta.
Sve ostalo je u Yandexu. idemo dalje...

Odakle su noge, tj. krila rastu

Preturajući po Yandexu, pronašao sam divnu web-uslugu kompanije Aeroflot, koja vam omogućava da u realnom vremenu primate informacije o dolasku i odlasku aviona, i odlučio sam napraviti neku vrstu „Prikaz aerodroma“ u 1C:Enterprise. Sama usluga živi ovdje: http://webservices.aeroflot.ru/desc_flightinfo.asp

Rekao je: "Idemo!"

Za početak, napravio sam praznu konfiguraciju "1C:Enterprise 8.1" (u vrijeme pisanja imao sam na raspolaganju verziju platforme 8.1.5.123). Zatim sam dodao u svoju konfiguraciju novi objekat tip WS-link. Kada se od mene zatraži da unesem URL uvezenog WSDL-a, unio sam vezu na WSDL datoteku, koja je navedena na stranici usluge: http://webservices.aeroflot.aero/flightstatus.wsdl (WSDL datoteka je opis web servis za detalje idite na Yandex) i ponosno nazvali stvoreni objekat „Aeroflot“. Dvostrukim klikom na ovaj objekat dobio sam stablo sa strukturom web servisa.

Ovo stablo predstavlja “portret” web servisa, kako ga vidi 1Ska. Najzanimljivije je u grani "Web usluge": ovo imena I luke web servisi (zapravo, WSDL datoteka može opisati ne jedan, već nekoliko web servisa, tada će svaki web servis imati svoju granu) i navedeni su metode web servis. To su upravo one „žice“, povlačenjem kojih možete sebi omogućiti pristup podacima koje pruža web servis. Grana "Model podataka" sadrži opis biblioteka tipova podataka koje koristi web usluga.
Kratak sažetak kako koristiti web uslugu obično se može naći na istom mjestu kao i veza do WSDL datoteke. U slučaju Aeroflota, ovo je stranica http://webservices.aeroflot.aero/flightstatus.asmx

"Sada polijetanje, sad slijetanje..."

Za rad sa web servisom u konfiguraciju sam dodao obradu “Departures Display” iu njoj - jedan obrazac koji sam označio kao glavni. Na obrascu sam stavio polje za odabir "Izbor aerodroma", polje za unos "Datum leta", tablu "Tablica" sa dvije stranice "Dolasci" i "Odlasci", dok sam poništio oznaku "Distribuiraj po stranicama" u svojstva panela i polje tabele "Tableboard".
Interakcija sa web servisom odvija se po principu “zahtjev-odgovor”, a za web servis se kreira poseban posrednički objekt. Stoga sam dodao detalje obrasca "ServiceAeroflot" prilagođenog tipa.
Ako pažljivo pročitate opis usluge, možete vidjeti da web servis pruža podatke o dolascima i odlascima putem poziva na metode dolaska i odlaska. U ovom slučaju, obje metode uzimaju šifru aerodroma i željeni datum kao parametre. Osim toga, web servis pruža mogućnost dobijanja liste aerodroma za koje su podaci dostupni u sistemu. Sljedeći scenarij interakcije s web servisom je prilično očigledan:
1. Dobiti listu aerodroma;
2. Odaberite željeni aerodrom i datum;
3. Dobiti podatke o dolascima ili odlascima;
Ali prije nego što pristupite web servisu, morate inicijalizirati posrednički objekat (kao što je WSProxy), što sam i uradio u rukovatelju otvaranja obrasca:
ServiceAeroflot=WSLinks.Aeroflot.CreateWSProxy(" http: //www.aeroflot.ru/", "FlightStatus", "FlightStatusSoap");
Prvi parametar je URI imenskog prostora web usluge. To možete saznati otvaranjem svojstava web servisa u stablu WS veza. Drugi i treći parametar prenose ime i port web servisa, respektivno.
(ne brkajte koncepte “ime”, “port”, “proxy” itd. primijenjene na web usluge sa poznatijim konceptima TCP/IP protokola. Ako postoji korespondencija između njih, to je prilično semantičko U opšti slučaj morate shvatiti da su, na primjer, port web usluge i TCP port potpuno različite stvari).
Stoga sam inicijalizirao Aeroflot Service objekat tipa WSProxy, koji je u suštini „omot“ web usluge. Preko njega mogu pristupiti metodama web servisa kao „nativnim“ metodama platforme.
Prije svega, dobio sam listu aerodroma i popunio listu polja za odabir "Odaberi aerodrom":

SelectionList=FormElements.AirportSelection.SelectionList;
SelectionList.Clear();
AirportList=Aeroflot Service.AirportList().GetList("list"); TotalAirports=ListaAirports.Count(); Za ui=0 do TotalAirports-1 Cycle Airport=ListAirports.Get(ies);
SelectionList.Add(Airport.code, ""+Airport.city+" : "+Airport.name);

EndCycle;

Ovdje nam treba mali komentar na konstrukciju liste aerodroma = ServiceAeroflot.AirportList().GetList("list");

Činjenica je da su vrijednosti koje vraćaju metode web servisa predstavljene na platformi objektima tipa XDTO Object. Pošto je tema XDTO tehnologije izvan okvira ovog članka, reći ću to samo za transformacije", "Aviokompanija"); TableTable.Columns.Add("Broj leta", "Broj"); TableTable.Columns.Add(" AirportTransit", "Aerodromski tranzit"); Tableboard.Columns.Add("Aerodrom", "Aerodrom "+?(Dolasci,"odlasci,","dolasci")); Tableboard.Columns.Add(" TimeSchedule", "Po rasporedu"); TableTableboard.Columns.Add(" TimePlanned", "Planirano"); TableTableboard.Columns.Add(" TimeActual", "Stvarni"); TableTable.Columns.Add("Izračunato vrijeme", "Izračunato"); TableTable.Columns.Add("Vrijeme slijetanja", ?(Dolazak,"Slijetanje","Polijetanje")); TableTable. Kolone.("Kombinovani let", "Kombinovani let"); Add("Slijetanje"Elementi obrasca("EndIf"); ServiceAeroflot.Departure(SelectAirport,FlightDate).GetList("list") od TotalRecords-1 Cycle Record=Data.Get(ies); kompanija;

NewLine.FlightNumber = Entry.flight_no;

NewLine.AirportTransit = Entry.airport_inter;
NewLine.Airport = Ulaz.aerodrom;

NewLine.TimeSchedule=Record.sched;

Iznenađujuće, nakon što je članak napisan i objavljen, ispostavilo se da je ugledni ZAV već objavio sličan primjer na IT-Land-u: http://itland.ru/biblio/detail.php?ID=1060
Kako biste izbjegli moguće optužbe za plagijat, toplo preporučujem da pročitate i ovaj članak i uporedite pristupe autora.

Mehanizam Web usluga vam omogućava da koristite sistem napisan na 1C platformi kao skup usluga u složenim distribuiranim i heterogenim sistemima, a takođe vam omogućava da ga integrišete sa drugim informacioni sistemi koristeći uslužno orijentisanu arhitekturu (SOA).

1C platforma omogućava programeru da pozove Web usluge koje pružaju drugi provajderi na dva načina:

  • korištenje statičkih veza kreiranih u stablu konfiguracijskih objekata;
  • koristeći dinamičke veze kreirane od strane ugrađenog jezika.
Kada se koristi statična veza, 1C platforma prima opis web usluge dobavljača samo jednom, prilikom kreiranja veze. Zbog toga se postiže veća radna brzina.
Kada koristite dinamičku vezu, opis Web usluge se dobija svaki put kada se Web usluga pozove. U ovom slučaju, brzina rada se smanjuje, ali ovaj pristup osigurava relevantnost opisa web usluge dobavljača, odnosno koristi se najnovija verzija WSDL dokument. U slučaju korištenja statičkih veza za dobivanje trenutni opis Web usluga treba ponovo uvesti WSDL dokument koristeći konfigurator, a zatim sačuvati promijenjenu konfiguraciju.

*WSDL dokument je jezik za opisivanje web servisa i pristupanje njima, na osnovu XML jezika.

Razmotrimo primjer pozivanja web usluge pomoću dinamičke veze koristeći uslugu provjere pravopisa Yandex.Speller kao primjer. Za pristup Yandex.Spelleru putem HTTP, XML, SOAP, JSON i JSONP sučelja su ponuđeni. Sva sučelja pružaju istu funkcionalnost i koriste iste ulazne parametre. WSDL dokument za SOAP dostupan je na: http://speller.yandex.net/services/spellservice?WSDL.

Funkcija poziva web servisa:
// Funkcija provjerava pravopis teksta.
// Parametri
// CheckedText - String - tekst za provjeru pravopisa.
// Povratna vrijednost:
// String - riječi u kojima su napravljene greške.
&OnServer
Funkcija provjeri pravopis (provjereni tekst)

LocationWSDL = "http://speller.yandex.net/services/spellservice?WSDL";
WSDefinition = Nova WSDefinicija(WSDL lokacija);

Namespace = "http://speller.yandex.net/services/spellservice";
SpellService = Novi WSProxy(WSDefinition, Namespace, "SpellService", "SpellServiceSoap");

Odgovor = SpellService.checkText(CheckedText);

Greške = "";
Za svaku grešku iz petlje Reply.error
Greške = Greške + "Greška u riječi: " + Error.word + Symbols.PS;
EndCycle;

Return Error;

EndFunction //Provjeri pravopis()

Ova funkcija kreira objekt WS Definitions, koji dobija definiciju Web usluge iz WSDL dokumenta, adresa dokumenta je data iznad.

Objekt se kreira na osnovu definicije Web usluge WSProxy i kontaktira tačku veze sa Web servisom SpellServiceSoap.

Za inicijalizaciju objekta WSProxy sve potrebne informacije sadržane su u elementu WSDL dokument. U atributu ime ovaj element sadrži naziv usluge i atribut ime podređeni elementi sadrži naziv tačke veze.
Adresa imenskog prostora je sadržana u oznaci targetNamespace korijenski element WSDL dokumenta .

3. Adresa imenskog prostora web usluge
Nakon inicijalizacije objekta WSProxy, operacija Web usluge je u toku checkText(), u koji se šalje tekst.

4. Operacije web servisa i njihove vrste dolaznih i odlaznih poruka
Operacija web usluge vraća listu grešaka kao XDTO listu. Sam element liste je predstavljen XDTO objektom.

Nažalost, 1C platforma ne podržava u potpunosti rad s web uslugama koristeći ugrađeni jezik, na primjer, postavljanje vrijednosti atributa jezik, opcije, format Za dolaznu poruku operacije checkText() postaje nemoguće, jer nam je dozvoljeno samo da prenesemo parametre u operaciju:


5. Opis dolazne poruke operacije checkText().
Termin XDTO (XML Data Transfer Objects) ne označava neki globalno prihvaćen standard koji podržava 1C platforma, već, naprotiv, standard rođen u utrobi 1C kompanije, iako je vrlo sličan XML Schema-i, nedovršenoj XML Schema.

I tako, možete raditi! :)

Obrada poziva na web servis Yandex.Speller može se preuzeti sa ovog mjesta

30. jul 2012. u 13:19

Korištenje vanjskih web servisa u 1C na primjeru učitavanja tečajeva

  • Programiranje

Znam da na Habréu baš i ne vole dugotrpeljivi 1C. Iako (sa klijentima koji koriste Linux), to im se malo više sviđalo. Inače, nedavno je sučelje jednog od glavnih 1C razvoja - konfiguracije Manufacturing Enterprise Management - u potpunosti prevedeno u engleski jezik. Mnogo puta sam naišao na pitanja zašto ovdje ne pišu o 1C. Odgovor na njih je sasvim očigledan - postoji mnogo specijalizovanih resursa na kojima možete brzo razgovarati o svim pitanjima i nešto pročitati.

Postoje svi razlozi da vjerujemo da ovaj članak ovdje neće opstati, ali ipak ću riskirati, jer u 1C postoje neke zanimljive stvari o kojima vrijedi razgovarati.

Već neko vrijeme 1C 8.x omogućava korištenje web usluga: 1C može djelovati i kao dobavljač i kao potrošač. U ovom članku ću pokazati kako koristiti 1C kao potrošač na primjeru dobijanja kurseva sa servera Centralne banke.

Web servis

Centralna banka ima web servis za primanje dnevnih podataka: kursevi, vijesti, dinamika kursa itd. Opis usluge možete pronaći ovdje http://www.cbr.ru/scripts/Root.asp?Ptid=DWS. Zainteresovani smo za jednu od metoda ove usluge: GetCursOnDate(On_date)– dobijanje kurseva za dati datum. Jedan argument se prosljeđuje metodi On_date– ovo je datum kada treba da primite kurseve. Rezultat je XML koji sadrži tabelu ValueCursOnDate(sami kursevi i povezane informacije).

Konfiguracija

Za razvoj sam uzeo 1C 8.2 (8.2.15.317 u mom slučaju) i napravio praznu konfiguraciju. Da biste koristili eksterne web servise, pruža se WS link objekt, ali nije neophodno da se servisu može pristupiti dinamički iz koda. Ja ću koristiti prvu opciju, a zatim pokazati kako možete koristiti drugu. U konfiguraciji sam napravio obradu i nazvao je “Učitavanje CBR kurseva valuta”. Dodao sam obrazac (upravljan) i učinio ga glavnim. Napravio sam detalje na obrascu i postavio kontrole kao što je prikazano na slici.

Sada je najvažnije kreirati link do opisa web servisa. U konfiguraciju dodajemo novi objekat tipa WS-link. U prozoru koji se pojavi naznačite vezu na WSDL (opis ovog formata je izvan okvira članka, o tome možete pročitati na Wikipediji): http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL.

Na osnovu primljenog opisa, 1C će automatski kreirati vizuelnu mapu web usluge. Možete vidjeti naziv web usluge, vidjeti koje su joj operacije dostupne, kao i tipove podataka koji se koriste.

Konfiguracija je skoro gotova, samo trebamo napraviti nekoliko dodira kako bi naša aplikacija izgledala estetski ugodnije. Hajde da kliknemo desni klik miša na korijenu konfiguracije i pozovite "Open desktop command interface" meni. U prozoru koji se pojavi potrebno je da poništite oznaku „Vidljivost“ pored obrade „Učitavanje kurseva centralne banke“. Kliknite na dugme OK. Zatim kliknite desnim tasterom miša na root konfiguracije i pozovite meni „Otvori radni prostor radne površine“, tamo ćemo izvršiti podešavanja kao na slici:

Ove postavke će nam omogućiti da prikažemo obrazac za obradu direktno na radnoj površini (što znači radnoj površini 1C programa) u 1C Enterprise modu.

Programiranje

Sada ostaje samo da ispunimo našu obradu smislom: učinite da prima kurseve i prikaže je u tabeli na obrascu. U modu za uređivanje obrasca, morate dodati novu naredbu obrasca, nazovimo je LoadCurrencies. Ova komanda mora biti povezana sa dugmetom koje se nalazi na obrascu. Popunimo radnju za naredbu sljedećim kodom (napomena autora: wow, čvorište ima 1C isticanje koda, iako ne radi ispravno):

&O klijentskoj proceduri LoadCurrencies(Command) Ako NIJE ValueFilled(DownloadDate) Onda Report("Datum preuzimanja nije odabran!", MessageStatus.Important);
Povratak; endIf;

CurrencyRatesTable.Clear();

Procedura LoadCurrencyRates(fDataDownload) //Kreirajte proxy za pristup vanjskoj web usluzi, //prosljedite URI prostora imena, ime usluge, naziv porta funkciji.
Proxy = WSLinks.CBR_DailyInfoWebServ.CreateWSProxy("http://web.cbr.ru/", "DailyInfo", "DailyInfoSoap");

//Nabavite tip parametra koji se prosljeđuje metodi GetCursOnDate.

TypeWSParameter = Proxy.FactoryXDTO.Packets.Get("http://web.cbr.ru/").Get("GetCursOnDate");

//Kreirajte parametar na osnovu tipa i popunite vrijednost parametra On_Date.

WSParameter = Proxy.XDTO Factory.Create(WSParameterType);
WSParameter.On_Date = fLoadDate;

//Pozovite metodu web usluge, upišite rezultat u varijablu Currency Rates.

Kurs valuta = Proxy.GetCursOnDate(WSParameter);

Danas se WEB servisi koriste gotovo svuda - pružaju nam informacije o letovima aviona i voza, kursevima i vremenu. Nije iznenađujuće da 1C također ima mogućnost kreiranja vlastitih WEB usluga, što mu omogućava da djeluje i kao dobavljač i kao potrošač. Ovaj mehanizam je ugrađen u platformu 1C:Enterprise 8.3 i programeri ga mogu čak dodati tipična konfiguracija vlastiti objekti tipa “WEB usluge”. Njihova arhitektura je izgrađena na skupu usluga koje vam omogućavaju razmjenu informacija sa drugim softverom.

Kreiranje 1C web servisa

Jedna od glavnih prednosti 1C WEB usluga je odsustvo potrebe za pružanjem direktnog pristupa podacima o sigurnosti informacija. Ispravno konfigurirana 1C web usluga omogućava drugim aplikacijama da koriste funkcije izvana. U takvim slučajevima odredite pravo korištenja podataka do date parametre Sama funkcija mora slijediti pravila koja je propisao programer.

Kako napraviti web uslugu u 1C?

Da bi određena funkcija 1C sistema postala dostupna vanjskom softveru, potrebno je izvršiti sljedeći algoritam radnji:

  1. Idite na konfiguraciju i dodajte objekt WEB usluge u određenu granu stabla;
  2. Opišite sve operacije koje naša funkcionalnost može izvršiti. Opis funkcija se vrši u modulu na ugrađenom 1C jeziku;
  3. Dodajte opis parametara funkcija web usluge. Imajte na umu da su tipovi podataka opisani uzimajući u obzir postojeće vrste mehanizam XDTO, koji se pojavio u verziji platforme 8.1;
  4. Objavite kreiranu WEB uslugu na serveru. Mehanizam ugrađen u 1C platformu podržava sljedeće standarde:
  • SSL/TLS
  • WS-I BP

Primjer kreiranja jednostavne WEB usluge

Da bismo što jasnije demonstrirali rad mehanizma WEB usluga, napravimo primjer - funkcionalnost koja određuje dužinu unesenog niza. Softverće proslijediti string kao parametar upita, a funkcija opisana u 1C će vratiti broj znakova. Prilikom kreiranja, morate imati na umu da će objavljivanje ovog mehanizma omogućiti pristup različitim softverima. Pošto nije svaki softver sposoban da prihvati ćirilično pismo, konfiguracioni objekti ćemo imenovati latiničnim znakovima.

Otvorite konfigurator, pronađite granu “WEB usluge” u stablu i dodajte novu uslugu “wa_LengthString”. Također morate dodati novu operaciju na kartici "Operacije". Nazovimo ga “CalcLengthString”, navedite tip povratne vrijednosti u svojstvima - int ili integer i kreirajte parametar “InputString” unutar njega. Ostavljamo tip vrijednosti kao string.

Sada trebate registrirati akciju funkcije CalcLengthString u modulu WEB usluge. Da biste to učinili, otvorite svojstva kreirane funkcije i kliknite na dugme u obliku lupe na desnoj strani, pored polja za unos „Naziv procedure“. 1C će automatski kreirati funkciju u našem WEB servisnom modulu i otvoriti je tako da možemo opisati akciju CalcLengthString. Iskoristimo ovo i napišemo akciju funkcije - određivanje dužine ulaznog niza.


U stvari, ovo završava kreiranje jednostavne WEB usluge. Sada morate "objaviti" ovu uslugu u opšti pristup tako da softver treće strane ili drugi 1C sistemi mogu koristiti ovu funkcionalnost.

Da bismo mogli da objavimo kreirani web servis sa njegovom funkcionalnošću, potrebno je da imamo pristup sajtu. Prije nego počnemo objavljivati ​​uslugu, moramo provjeriti ime datoteke u svojstvima kreiranog modula wa_LengthString. Trebao bi biti jasan, jednostavan i imati ekstenziju “1cws”.


Sada je vrijeme da objavimo WEB servis koji smo kreirali na serveru. Ova funkcija se pojavila u verziji platforme 8.3 i mnoge kompanije su već shvatile sve prednosti ove funkcionalnosti. Da biste započeli sa objavljivanjem, potrebno je da u konfiguratoru otvorite obrazac “Administracija/Objavljivanje na web serveru...”.


U prozoru koji se otvori, trebamo Web setup 1C usluge i popunjavanje određenih polja:

  • Ime. Određuje mapu na web serveru u kojoj će biti pohranjen opis naše web usluge. Budite oprezni sa velikim i malim slovima, jer ponekad serveri razlikuju velike i male znakove;
  • Web server. Morate odabrati server od onih instaliranih na vašem računaru;
  • Katalog. Morate odabrati putanju do mape u kojoj se pohranjuju podaci web servera za postavljanje veze. Koriste se samo latinična slova;
  • Dva znaka Bulovog tipa. Prvi će nam biti od koristi ako trebamo podesiti pristup konfiguraciji putem web klijenta. Da biste objavili 1C uslugu, morate označiti drugi okvir.

Ostaje samo provjeriti da li željeni WEB servis ima označeno polje za potvrdu u prvoj koloni i kliknuti na “Objavi”.


Budući da je ovaj mehanizam još uvijek prilično nov, možete naići na grešku poput „Greška pri izvršavanju operacija datoteka..." U tom slučaju, samo trebate ponovo kliknuti na "Objavi". U većini slučajeva, ovo će funkcionirati i vidjet ćete poruku koja označava da je web usluga objavljena.

<имяСервера>.ru/<ИмяУказанногоКаталогаНаСервере>/ws/<НаименованиеФайла>.1cws?wsdl

Kao odgovor na takav zahtjev za adresu, pretraživač mora prikazati strukturu XML fajl. Ako vidite praznu stranicu, grešku ili čudne znakove (problemi kodiranja), morate ponovo provjeriti sve korake. Takođe je dobra ideja da se uverite da je server ispravno konfigurisan i da imate pristup njemu. Nakon uspješne objave, 1C WEB uslugu moći će koristiti aplikacije trećih strana.

Web usluge je jedan od platformskih mehanizama koji se koristi za integraciju sa drugim informacionim sistemima. To je sredstvo podrške SOA-i (Service-Oriented Architecture), uslužno orijentisanoj arhitekturi koja je moderan standard za integraciju aplikacija i informacionih sistema.

Značajna prednost uslužno orijentisane arhitekture je što vam omogućava da razvijete infrastrukturu preduzeća na uniforman način, bez uništavanja postojećih rešenja. Njegova upotreba vam omogućava da minimizirate troškove integracijom heterogenih i naslijeđenih sistema u moderno preduzeće. Omogućava vam da implementirate labavo povezane softverske komponente kako biste maksimalno povećali njihovu ponovnu upotrebu.

Servisno orijentisana arhitektura se intenzivno razvija i podržava od strane velikih dobavljača. Izgrađena je na bazi usluga, autonomna ili upravljana eksterno. Preferirani način za njihovu implementaciju je putem web servisa. Oni su nezavisni od platforme, samostalni i svugdje podržani.

Aplikacijsko rješenje 1C:Enterprise 8 može biti i pružatelj web usluga i potrošač web usluga koje objavljuju drugi provajderi.

Sistemi koji koriste proizvoljne hardverske i softverske platforme mogu djelovati kao potrošači. Tehnologija web usluga je nezavisna od platforme.


Tehnička implementacija web servisa

Ako je aplikativno rješenje provajder web servisa, tada se iu fajl i klijent-server načinu rada interakcija između aplikativnog rješenja i korisnika web servisa odvija preko web servera, koristeći modul proširenja web servera.

U ovom slučaju, kada korisnik pristupi web servisu nekog aplikativnog rješenja, modul web usluge se izvršava. Ovaj modul je sadržan u konfiguraciji i sadrži procedure koje se izvršavaju prilikom pozivanja određenih operacija web servisa.

U slučaju klijent-server verzije rada, ovaj modul će se izvršavati u klasteru. U slučaju verzije datoteke rada - u modulu ekstenzije web servera.

Ako je aplikativno rješenje potrošač dobavljača web usluga treće strane, tada se u ovom slučaju ostvaruje interakcija između aplikativnog rješenja i pružatelja web usluga

© 2024 ermake.ru -- O popravci računara - Informativni portal