Pavel je čistý. Webové služby (SOAP), HTTP služby, oData (automatická služba REST) ​​Nový kurz Vrácení proměnné z http služby 1c 8.3

Pozornost! Nyní probíhá kurz také večer od 18:30 do 21:30 v ponorném formátu.

Na kurzu získáte praktické dovednosti v používání následujících mechanismů platformy „1C: Enterprise 8“:

  • WEBové služby (protokol SOAP)
  • formát JSON
  • Rozhraní OData (automaticky služba REST)
  • HTTP služby

DŮLEŽITÉ!!! Kurz je určen pro programátory, kteří mají dovednosti pracovat s mechanismem XDTO, nebo kurz již absolvovali.

Popis a program kurzu:

Cena WEB kurzu zahrnuje:

  • 2 týdenní kurz, 2 webináře s lektorem
  • certifikát 1C-Training Center č. 3 (v závislosti na praxi)

Cena prezenčního kurzu zahrnuje:

  • 2 dny od 10:00 do 17:00 nebo 16:30 od 18:30 do 21:30
  • abstraktní, sluchátka
  • obědy, přestávky na kávu
  • přístup po dobu 2 let k aktualizovaným videím po skončení kurzu
  • certifikát 1C-Training Center č. 3

Výukové formáty

WEB školení

Co je to za formát:Navrhovaný formát kombinuje mnoho výhod distančního vzdělávání s prezenční složkou, prezentovanou videomateriály a online konzultacemi.
WEB-kurz se skládá z videí, praktických úkolů a webinářů s učiteli. Všechny studijní materiály jsou k dispozici 24 hodin denně 7 dní v týdnu přes internet - můžete studovat v vhodná doba... Kurz je rozdělen do tříd. Během lekce se studují materiály na aktuální téma, probíhají workshopy, kladou se otázky učiteli. Na konci každé lekce se koná webinář, kde učitel analyzuje všechny obdržené otázky, typické chyby, vysvětluje správné řešení... Záznam webinářů je k dispozici na portálu. Tímto způsobem probíhá několik tříd za sebou. Na závěr je provedena závěrečná samostatná práce a závěrečný webinář.

Doba trvání: 2 týdny

Co je to za formát:


Doba trvání:16 akademických hodin

Co je to za formát:Prezenční imerzní kurz je formát, který kombinuje všechny výhody prezenčního vzdělávání, distančních technologií a individuálního školení. Výuka probíhá ve vybavené učebně, samostatně studujete materiály kurzu (videa krok za krokem) a provádíte workshopy. Zároveň je ve třídě vyučující, který je připraven kdykoliv zodpovědět dotaz a pomoci s řešením praktických problémů a také zkontrolovat správnost jejich provedení.
Výhody - individuální konzultace vyučujícího k Vašim otázkám, tempo předávání látky, které Vám osobně vyhovuje.
To vše umožňuje hlubší studium učebního materiálu.
Tento kurz je možné absolvovat z vašeho pracoviště s plným efektem přítomnosti učitele tam, kde se student nachází! Pokud vás tato příležitost zaujala - zavolejte nám!

Doba trvání:16 akademických hodin

Pro začátek jsem se jednou musel vypořádat s webovými službami sám. Pak se mi nějak podařilo tento obchod zvládnout a pochopit, co a kde stisknout, aby vše fungovalo. Naštěstí konfigurace, se kterou jsem musel pracovat, už byla napěchovaná Webové služby a bylo možné nahlédnout a provést analogicky a na internetu jsem našel dostatek článků o tomto případu. A tak na příkladech (pro mě to tak je Nejlepší způsob studium), zvládl jsem tento obchod a teď už mě neděsí.

TAK... Hlavním úkolem jakékoli integrace, ať už jde o CD, webové služby nebo služby HTTP, je něco odněkud přenést, něco s tím udělat a vrátit odpověď. Právě v tomto formátu budeme uvažovat o nové technologii.

Ve stromu metadat jsou služby HTTP umístěny ve větvi Obecné:

Nová služba HTTP je přidána stejně jako jakýkoli jiný objekt metadat. Jméno a synonymum, co chcete. Zde je důležitá pouze "Root URL" - to je ve skutečnosti identifikátor HTTP služba v této databázi, tzn. přesně to, co napíšete do této vlastnosti, přenesete na vývojáře třetí strany (dobře nebo sami) jako odkaz na službu.

Nevím, jestli se zde dá psát azbukou, ale aby vám v pokrokovém světě nebyli k smíchu, pište latinkou).

Zde je důležitá samotná šablona vlastnosti:

Pomocí šablony se následně můžete odkázat na data, která vám byla předána. TAK: všechna data, která chcete přijímat zvenčí, lze rozdělit do 2 bloků – povinný a nepovinný.

Povinné údaje / parametry vložíme do šablony, takže pokud je osoba, která přistupuje ke službě, nevyplnila, služba a priori vypíše chybu a při vývoji textu modulu handler budete mít jistotu, že tam tato data jsou . Jak na to: do řádku Šablona ve složených závorkách „()“ střídavě se znaménkem „/“ napište názvy proměnných. Například nutně potřebujeme článek - pak napíšeme / (artikul). Pokud potřebujeme získat SKU, jméno a uživatelské jméno, bude řetězec šablony vypadat takto: / (artikul) / (jméno) / (uživatel) atd. Každý z těchto parametrů v textu modulu handleru lze získat následovně: Request.ParametersURL ["<имя параметра>"]. Pokud nejsou žádné povinné, pak šablona vypadá takto: / *.

Nepovinné údaje které chceme prostřednictvím služby přijímat, NEJSOU v šabloně popsány. Při vytváření odkazu jsou pro přístup ke službě popsány na konci odkazu za znakem „?“, oddělené znakem „&“ a mají strukturu<имя параметра>=<значение параметра>... V textu modulu handler na ně můžete odkazovat pomocí konstrukce: Request.RequestParameters.Get ("<имя параметра>ALE: je důležité si pamatovat, že protože nejsou povinné, nemusí tam být, respektive je zaškrtnuta hodnota na Nedefinováno.

Dále přidáme novou metodu pro naši šablonu. Zde je důležitá vlastnost metody HTTP. Je jich obrovské množství, ALE nebudeme zabíhat do všech jemností. K realizaci některého z vašich úkolů potřebujete pouze 2: DOSTAT a POŠTA.

Jak si vybrat: Pokud vám k práci stačí to, co jsme popsali v předchozích dvou odstavcích, tzn. můžete získat všechna potřebná data pomocí povinných a volitelných parametrů samotného požadavku, pak vezmeme GET. V tomto případě v jakémkoli prohlížeči, pokud zadáte správně adresní řádek, uvidíte výsledek akce vaší HTTP služby - ZISK! Pokud vaše služba najednou potřebuje data ve složitější podobě (např. xml nebo něco jiného), něco, co nelze nacpat do jednoduchého adresního řádku, pak vezmeme POST. Z mínusů nebude fungovat taková snadná kontrola přes adresní řádek prohlížeče, jako u GET, ale na internetu můžete snadno najít některé stránky, na kterých můžete zkontrolovat služby pomocí metody POST (například stránky https://www.hurl.it). V případě, že je zvolena metoda POST a poté požadavek URL (adresy), objeví se tělo, do kterého můžete nacpat cokoli chcete a v handleru metody se na to můžete odkazovat pomocí konstruktu Request.GetBodyAsString (). Každá šablona může mít metodu GET i metodu POST. Budou mít odpovídajícím způsobem různé handlery a 1C v závislosti na tom, jak byl požadavek odeslán, zvolí jednu nebo druhou metodu.

Obslužný program služby HTTP je funkce, která vždy vrací hodnotu typu HTTPServiceResponse, která je vytvořena konstruktorem New HTTPServiceResponse (<КодСостояния>). <КодСостояния>- toto je číslo, abychom netrpěli výběrem, co napsat, píšeme: 200 - pokud je vše v pořádku a vrátíte nějakou logickou hodnotu, 400 - pokud je chyba a vrátíte popis chyba. Mít tohoto typu tady je různé metody(můžete si to přečíst v asistentu syntaxe, tam je vše přehledně napsáno). Opět můžete vždy vrátit vše, co potřebujete, jako řetězec - metodu SetBodyFromString (). (jeden malý trik: pokud vrátíte html a chcete, aby jej prohlížeč krásně zobrazil, když zadáte adresu služby do adresního řádku, napište do vlastnosti Headers response: Answer.Headers.Insert ("Content-Type", "text / html; charset = utf-8 ") - tím dáváte najevo, že se nejedná pouze o sadu znaků, ale o HTML a podle toho by se měl zobrazovat)

Po dokončení je třeba službu HTTP publikovat. To se provádí na počítači s nainstalovaným webovým serverem (nebudu psát o nastavení, existuje spousta článků) prostřednictvím nabídky:

Administrace - Publikování na webovém serveru.

Je zde záložka HTTP services. Vložte kavky a klikněte na "Publikovat"

tak, máme hotovou službu HTTP. JAK ho kontaktovat? Pokud použijeme metodu GET, pak in adresní řádek prohlížeč píšeme: http://<имя веб сервера>/<имя базы>/ hs /<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2>.

A nakonec ještě jednou v obrázcích))):

Společnost " 1C»Aktivně vyvíjí platformu" 1C: Enterprise "a přidává nové funkce s každým vydáním. Po zahájení vývoje větve 8.3 se zejména začala objevovat spousta novinek a díky neustálému zaměstnávání nemáte čas je všechny otestovat v akci. Není to tak dávno, co jsem a jak vyvinout kompletní mobilní aplikace (ano, na "1C: Enterprise"), ale dnes bych chtěl mluvit o tvoření HTTP služby pomocí platformy.

Vývojová schopnost HTTP služby jako součást konfigurace se objevila ve verzi 8.3.5 ... Během této doby byla komponenta několikrát aktualizována a dnes je docela možné ji používat bez obav z přítomnosti „dětských“ chyb. Zatím jsem neměl možnost využít funkcionalitu platformy 1C: Enterprise pro tvorbu http služeb v reálných podmínkách, takže zatím jsou zkušenosti omezeny na vzdělávací projekty. Perspektivy využití mechanismu http-služeb však vidím v jednom ze současných fungujících projektů. V tomto cyklu drobných poznámek se pokusím ukázat typické příklady použití. http služby v konfiguracích pro platformu " 1C: Enterprise».

Vytvoření nejjednodušší služby http v 1C: Enterprise 8.3

Dnes se podíváme na ukázku nejjednodušší http služby a následně ji vylepšíme a zkomplikujeme. Účelem lekce je pochopit a pocítit snadnost tvoření http služby založené na platformě 1C: Enterprise 8.3.

Začněme prohlášením o problému. Služba vytvořená v rámci poznámky by měla umět pouze dvě věci: přijmout požadavek GET a vrátit odpověď ve formátu JSON. Úkol je triviální a udělat něco podobného v PHP / ASP .NET je otázkou pár řádků kódu. Při pohledu do budoucna řeknu, že v 1C: Enterprise budeme potřebovat přibližně totéž (dobře, nemusíte se smát zvláštnostem platformy 1C).

O případech použití http služeb si povíme v samostatném článku, ale zatím si vytvořme jen novou http službu. Pro usnadnění vytvořte nový informační základna s prázdnou konfigurací. Přidejme k tomu jeden subsystém, který budeme nazývat „ Testování služeb HTTP". Nyní otevřeme sekci "Obecné" v konfiguračním stromu, najdeme skupinu " HTTP služby„A přidejte první webovou službu. V okně pro vytvoření nové služby vyplňte pole:

  • název- FirstWebService;
  • Synonymum- První webová služba;
  • Kořenová adresa URL- naše služby;

Věnujte pozornost poli“ Kořenová adresa URL". Zde uvedené jméno bude použito při přístupu ke službě. Neměly by zde být žádné mezery a je vhodné nepoužívat azbuku. Přišli jsme na to, pak přejděte na kartu „ Subsystémy"A přidejte službu http do jediného dostupného podsystému."

Dalším krokem je popis vzoru adresy URL. Pojďme na odpovídající kartu a přidejte šablonu s názvem „ DisplayServicesList". V inspektoru nemovitosti najděte nemovitost “ Vzorek"A napiš do něj" / seznam". Tím nastavíme cestu, po které bude probíhat interakce se službou http. Šablona může obsahovat speciální znaky, které vám umožní definovat předávané parametry (povinné i ne), ale pro první příklad se omezíme na jednoduchý " / seznam". Když budete následovat tuto cestu, spustí se naše jediná metoda a poskytne klientovi sadu dat.

Super, je tam šablona, ​​teď je to na metodě. Přidejme pro naši šablonu, kterou budeme nazývat getServicesList... V inspektoru vlastností musíme zadat metodu HTTP. Zadaná hodnota určuje, na jaké typy požadavků bude naše metoda reagovat. Aktuální úkol je docela možné obejít metodou „ DOSTAT”.

Naše služba je téměř připravena, zbývá pouze napsat obsluhu události pro zkonstruovanou metodu. getServicesList... Pomocí inspektoru vlastností můžete vytvořit obslužnou rutinu události. V těle handlera zapíšeme:

Funkce DeriveIndex getServicesList (Dotaz) Pole služeb = Nové pole; ArrayServices.Add (Nová struktura ("název, popis", "Služba č. 1", "Popis služby č. 1")); ArrayServices.Add (Nová struktura ("název, popis", "Služba č. 2", "Popis služby č. 2")); ArrayServices.Add (Nová struktura ("název, popis", "Služba č. 3", "Popis služby č. 3")); ArrayServices.Add (Nová struktura ("název, popis", "Služba č. 4", "Popis služby č. 4")); Záznam JSON = Nový záznam JSON; Zápis JSON.SetString (); WriteJSON (WriteJSON, ArrayServices); StringFor Reply = WriteJSON.Close (); Odpověď = New HTTPServiceResponse (200); Answer.Headers.Paste ("Typ obsahu", "aplikace / json; charset = utf-8"); Answer.SetBodyFromString (StringForResponse, TextCode.UTF8, UsingByteOrderMark.Do not use); Odpověď na vrácení peněz; EndFunction

Pojďme se na daný kód podívat blíže. Na samém začátku popisuji řadu struktur. Toto pole potřebujeme čistě pro demonstraci. Veškerý jeho obsah přeložíme do JSON a předáme klientovi. Inicializujeme objekt typu záznam JSON... Nezapomeňte metodu zavolat Nastavit řetězec(), protože potřebujeme dostat text JSON do řetězcové proměnné. Dále zavoláme globální metodu Napište JSON(), kterému předáme objekt typu záznam JSON a pole, které se má převést. Výsledek pak dostaneme do proměnné „ StringForReply"A připravte odpověď HTTP.

V reakci na to přidáme (viz metoda „ SetBodyFromStrings") Výsledný JSON. To je vše, demo kód je připraven a můžete přistoupit k testům.

Publikování služby HTTP v 1C: Enterprise 8.3

Publikujme vytvořenou HTTP službu, abychom otestovali výsledky odvedené práce. Pro nejjednodušší test musí být ve vašem systému nainstalován webový server. Moji roli webové služby plní Apache... Přeskočíme kroky potřebné k instalaci / konfiguraci webového serveru a přejdeme k problému publikování služby HTTP.

Chcete-li publikovat, přejděte do nabídky „Správa“ a vyberte možnost „ Publikování na webový server". V zobrazeném okně vyplňte:

  • název Je název našeho řešení. Použije se v URL při přístupu k publikovanému IB. Pokud zde například zadáte test, pak bude váš IB dostupný na http: // localhost / test. S variantou testu jsem spokojen.
  • webový server- Vyplněno automaticky. Jako webový server mám Apache 2.2;
  • Katalog- cesta k adresáři, kam bude umístěn konfigurační soubor publikovaného IB;
  • Zrušte zaškrtnutí políček " Publikovat tenký klient a webový klient», « Publikování standardního rozhraní OData», « Ve výchozím nastavení publikovat webové služby»;
  • Na kartě služby HTTP označte příznak „ Publikovat výchozí služby HTTP„A vytvořenou službu označte v tabulkové části.

Testování služby HTTP

Chcete-li otestovat vytvořenou službu http, spusťte prohlížeč a zkuste se k ní dostat. Pokud jste zopakovali všechny mé akce, cesta by měla vypadat takto:

Http: // localhost: 9090 / služby / hs / naše-služby / seznam

Věnujte pozornost přístavu 9090 který je uveden dvojtečkou za názvem hostitele. Pokud jste nainstalovali Apache s výchozím nastavením, bude naslouchat na portu 80, takže nemusíte nic specifikovat. V důsledku toho bude adresa URL vypadat takto:

Http: // localhost / services / hs / our-services / list

Zkuste se jím řídit a pokud vše funguje správně, dostanete stránku s daty ve formátu JSON:

[(title: "Služba č. 1", popis: "Popis služby č. 1"), (název: "Služba č. 2", popis: "Popis služby č. 2"), (název: "Služba č. 3", popis: "Popis služby č. 3"), (název: "Služba č. 4", popis: "Popis služby č. 4")]

Toto je konec ukázkového příkladu, ale rád bych konečně rozebral adresu URL na její základní prvky, aby bylo jasné, proč jsme obdrželi právě takový odkaz.

První část by tedy měla být jasná – localhost. Toto je název hostitele, kde je nainstalován webový server. Dále je zde odkaz (služby) na publikovanou informační bezpečnost. Následuje hs, tento element path označuje, že máme zájem o interakci se službou http. Poslední dva prvky jsou kořenová adresa URL naší služby a vzor adresy URL.

Místo závěru

« 1C: Enterprise 8.3»Umožňuje vytvářet jednoduché HTTP služby s minimem pracnosti, což jste měli vidět po přečtení této malé poznámky. Funkčnost výrazně rozšiřuje možnosti využití platformy. V následujících poznámkách si povíme o praktických případech aplikace technologie a zvážíme implementaci různá řešení na praxi.

Webová služba v 1C 8.3 a 8.2 je objekt metadat, který vám umožňuje integrovat platformu 1C s ostatními informační systémy pomocí architektury orientované na služby (SOA).

Uvažujme vytvoření a konfiguraci na příkladu webové služby, která umožňuje obousměrnou výměnu mezi databázemi 1C 8 pomocí SOAP.

Nejprve věnujme pozornost kartě Jiný:

Získejte zdarma výukové video 267 1C:

  • V terénu URI jmenného prostoru popisuje umístění identifikátoru zdroje.
  • - popis typů, se kterými bude budoucí webová služba umět pracovat.
  • Publikovat název souboru- název souboru * .1CWS, který bude umístěn na web serveru

Struktura webové služby 1C

Zvažte strukturu webové služby:

DataExchange je samotná webová služba. UnloadData, LoadData - operace, ve skutečnosti popis funkcí, které lze volat přes protokol SOAP. ExchangePlanName, NodeCode atd. - hodnoty předané webové službě.

Modul webové služby

Modul obsahuje to nejzajímavější – popis funkcí budoucí webové služby. V našem případě popisujeme funkcionalitu, která umožňuje přijímat a odesílat data pomocí standardních výměnných mechanismů 1C. Protože výměna je mezi jednou platformou - 1C, pak nevyžadují serializaci dat.

Kontrola fungování služby 1C http na webovém serveru