HTTP služby pro ty, kteří nerozumí WEBu. Webové služby (SOAP), HTTP služby, oData (automatická REST služba) Nové parametry služby kurz 1c

Pokud nerozumíte ničemu o WEB technologiích a slovům jako json, get, post a tak dále, nic vám to neříká a jste jen do morku kostí vášnivým uživatelem 1C, ale potřebujete se s 1C spřátelit s aplikace třetích stran nebo webové stránky. pak je tento článek určen právě vám.

Začnu tím, že jsem byl kdysi nucen řešit webové služby sám. Pak se mi nějak, kousek po kousku, podařilo tuto záležitost zvládnout a pochopit, co a kde stisknout, aby vše fungovalo. Naštěstí konfigurace, se kterou jsem musel pracovat, byla již nacpaná webovými službami a dalo se to analogicky nakouknout a také se mi na internetu podařilo najít dostatek článků o této věci. A tak jsem na příkladech (pro mě je to nejlepší způsob studia) tuto záležitost zvládl a už mě neděsí.

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

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

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

Nevím, jestli se tu dá psát azbukou, ale aby se vám v pokrokovém světě nesmáli, pište latinkou).

Vlastnost Template je zde důležitá:

Pomocí šablony můžete později odkazovat na data, která vám byla přenesena. SO: všechna data, která chcete přijímat zvenčí, lze rozdělit do 2 bloků – povinný a nepovinný.

Požadované údaje/parametry vtlačíme do šablony, takže pokud je osoba přistupující ke službě nevyplní, služba a priori vygeneruje chybu a při vývoji textu modulu handler budete mít jistotu, že tyto údaje je tady. Jak se to dělá: do řádku Vzor ve složených závorkách „()“ střídavě se znaménkem „/“ zapíšeme názvy proměnných. Například nutně potřebujeme článek - pak napíšeme /(artikul). Pokud potřebujeme získat článek, 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 takto: Request.ParametersURL["<имя параметра>"]. Pokud nejsou žádné povinné, šablona vypadá takto: /*.

Nepovinná data, která chceme prostřednictvím služby přijímat, NENÍ v šabloně popsána. Při vytváření odkazu pro přístup ke službě jsou popsány na konci odkazu za znakem „?“, oddělené znakem ampersand „&“ a mají strukturu<имя параметра>=<значение параметра>. V textu modulu handleru k nim lze přistupovat pomocí následující konstrukce: Request.RequestParameters.Get("<имя параметра>"). ALE: je důležité si uvědomit, že protože nejsou povinné, nemusí existovat; podle toho kontrolujeme hodnotu pro 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 detailů. K implementaci některého z vašich úkolů potřebujete pouze 2: GET a POST.

Jak si vybrat: Pokud vám pro práci stačí to, co jsme popsali v předchozích dvou odstavcích, tzn. Všechny potřebné údaje můžete získat pomocí povinných a volitelných parametrů samotného požadavku, my pak vezmeme GET. V tomto případě v jakémkoli prohlížeči, pokud zadáte správně adresní řádek, uvidíte výsledek vaší HTTP služby - ZISK! Pokud náhle, aby vaše služba fungovala, potřebujete data ve složitější formě (například xml nebo něco jiného), něco, co nelze nacpat do jednoduchého adresního řádku, pak použijte POST. Na druhou stranu taková snadná kontrola přes adresní řádek prohlížeče, jako u GET, nebude fungovat, ale na internetu můžete snadno najít nějaké stránky, kde můžete zkontrolovat služby pomocí metody POST (například stránka https:/ /www.hurl.it) . Pokud je zvolena metoda POST, pak má požadavek kromě URL (adresy) tělo, do kterého můžete nacpat cokoli chcete, a v handleru metody k tomu přistupovat přes konstrukci Request.GetBodyAsString(). Každá šablona může mít metodu GET i POST. Budou mít odpovídajícím způsobem různé handlery a 1C v závislosti na tom, jak byla žádost odeslána, 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(<КодСостояния>). <КодСостояния>- jedná se o číslo, abyste se nemuseli starat o výběr, co napsat, píšeme: 200 - pokud je vše v pořádku a vrátíte nějakou logickou hodnotu, 400 - pokud dojde k chybě a vrátíte popis chyby . Tento typ má různé metody (přečtete si to 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 na obrazovce, když do adresního řádku zadáte adresu vaší služby, do vlastnosti odpovědi Headings napište: 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 se musí zobrazovat)

Poté, co vše uděláte, je třeba službu HTTP publikovat. To se provádí na počítači s nainstalovaným webovým serverem (o nastavení nebudu psát, článků je spousta) přes nabídku:

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

Je zde záložka HTTP Services. Zaškrtněte políčka a klikněte na „Publikovat“




Byl jsem postaven před potřebu získat aktuální stav konfigurace. Potřebujete obdržet:

  • Počet dokumentů s určitým výběrem;
  • Období poslední zaznamenané ceny za produkt;
  • Počet dokumentů zpracovaných uživatelem za posledních 10 minut.

Vezmeme-li v úvahu zkušenosti s implementací mobilní aplikace v projektech, poprvé probleskla myšlenka napsat konfiguraci pro Android. Po zvážení všech pro a proti jsem došel k závěru, že tento přístup by pro řešení mého problému nebyl vhodný. Poté následoval kurz používání služby http. K tomu byla v konfiguraci zaregistrována http služba „Statistika“ a přidána šablona url AnyURL, která měla přidanou metodu get.


Po vygenerování objektů konfiguračního stromu začneme psát algoritmus pro generování odpovědi. Metoda vrátí odpověď typu HTTPServiceResponse:

Po napsání kódu odpovědi publikujeme službu http z konfigurátoru a přistupujeme k ní z prohlížeče. Pro přístup ke službě http je třeba kontaktovat adresu jako ve webovém klientovi přidáním „/hs/statistic/“. hs říká platformě, že se přistupuje ke službě http a statistika je název naší služby.

Podle mého názoru mohou být služby http užitečné v následujících případech:
— Generování statistik konfigurace;
— Funkce pro získání stavu objednávky podle jejího čísla;
— Příprava dat pro import do jiných systémů.

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

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

Nejprve se podívejme na kartu Jiný:

Získejte 267 videolekcí na 1C zdarma:

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

Struktura webové služby 1C

Podívejme se na strukturu webové služby:

DataExchange je samotná webová služba. UnloadData, LoadData - operace, v podstatě popisy funkcí, které lze volat přes protokol SOAP. ExchangePlanName, NodeCode atd. — hodnoty přenášené do webové služby.

Modul webové služby

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

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

Začnu tím, že jsem byl kdysi nucen řešit webové služby sám. Pak se mi nějak, kousek po kousku, podařilo tuto záležitost zvládnout a pochopit, co a kde stisknout, aby vše fungovalo. Naštěstí konfigurace, se kterou jsme museli pracovat, už byla nacpaná Bylo možné se na to podívat pomocí webových služeb a udělat to analogicky a na internetu jsem našel dostatek článků na toto téma. A tak jsem na příkladech (pro mě je to nejlepší způsob studia) tuto záležitost zvládl a už mě neděsí.

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

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

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

Nevím, jestli se tu dá psát azbukou, ale aby se vám v pokrokovém světě nesmáli, pište latinkou).

Vlastnost Template je zde důležitá:

Pomocí šablony můžete později odkazovat na data, která vám byla přenesena. TAK: všechna data, která chcete přijímat zvenčí, lze rozdělit do 2 bloků - povinný a nepovinný.

Požadovaná data/parametry vložíme do šablony, takže pokud je ten, kdo ke službě přistupuje, nevyplní, služba a priori vygeneruje chybu a při vývoji textu modulu handler budete mít jistotu, že tam tato data jsou . Jak se to dělá: do řádku Vzor ve složených závorkách „()“ střídavě se znaménkem „/“ zapíšeme názvy proměnných. Například nutně potřebujeme článek - pak napíšeme /(artikul). Pokud potřebujeme získat článek, 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 takto: Request.ParametersURL["<имя параметра>"]. Pokud nejsou žádné povinné, š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 pro přístup ke službě jsou popsány na konci odkazu za znakem „?“, oddělené znakem ampersand „&“ a mají strukturu<имя параметра>=<значение параметра>. V textu modulu handleru k nim lze přistupovat pomocí následující konstrukce: Request.RequestParameters.Get("<имя параметра>"). ALE: je důležité si uvědomit, že protože nejsou povinné, nemusí existovat; podle toho kontrolujeme hodnotu pro 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 detailů. K realizaci některého z vašich úkolů potřebujete pouze 2: DOSTAT A POŠTA.

Jak si vybrat: Pokud vám pro práci stačí to, co jsme popsali v předchozích dvou odstavcích, tzn. Všechny potřebné údaje můžete získat pomocí povinných a volitelných parametrů samotného požadavku, my pak vezmeme GET. V tomto případě v jakémkoli prohlížeči, pokud zadáte správně adresní řádek, uvidíte výsledek vaší HTTP služby - ZISK! Pokud náhle, aby vaše služba fungovala, potřebujete data ve složitější formě (například xml nebo něco jiného), něco, co nelze nacpat do jednoduchého adresního řádku, pak použijte POST. Na druhou stranu taková snadná kontrola přes adresní řádek prohlížeče, jako u GET, nebude fungovat, ale na internetu můžete snadno najít nějaké stránky, kde můžete zkontrolovat služby pomocí metody POST (například stránka https:/ /www.hurl.it) . Pokud je zvolena metoda POST a poté požadavek URL (adresy) objeví se tělo, do kterého můžete nacpat cokoli, a v obslužné rutině metody k němu přistupovat pomocí konstrukce Request.GetBodyAsString(). Každá šablona může mít metodu GET i POST. Budou mít odpovídajícím způsobem různé handlery a 1C v závislosti na tom, jak byla žádost odeslána, 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(<КодСостояния>). <КодСостояния>- jedná se o číslo, abyste se nemuseli starat o výběr, co napsat, píšeme: 200 - pokud je vše v pořádku a vrátíte nějakou logickou hodnotu, 400 - pokud dojde k chybě a vrátíte popis chyby . Tento typ má různé metody (přečtete si to 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 na obrazovce, když do adresního řádku zadáte adresu vaší služby, do vlastnosti odpovědi Headings napište: 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 se musí zobrazovat)

Poté, co vše uděláte, je třeba službu HTTP publikovat. To se provádí na počítači s nainstalovaným webovým serverem (o nastavení nebudu psát, článků je spousta) přes nabídku:

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

Je zde záložka HTTP Services. Zaškrtněte políčka a klikněte na „Publikovat“

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

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

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

Během 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
  • oDatové rozhraní (automaticky služba REST)
  • HTTP služby

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

Popis a program kurzu:

Cena WEB kurzu zahrnuje:

  • 2 týdny samozřejmě, 2 webináře s lektorem
  • certifikát školicího střediska 1C č. 3 (podmíněno praktickým výcvikem)

Cena prezenčního kurzu zahrnuje:

  • 2 dny od 10:00 do 17:00 nebo 16:30 od 18:30 do 21:30
  • poznámky, sluchátka
  • obědy, přestávky na kávu
  • přístup k aktualizovaným video materiálům po dobu 2 let po absolvování kurzu
  • certifikát 1C-Training center No.3

Školicí 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, kterou představují video materiály a online konzultace.
Kurz WEB 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, takže se můžete učit v čase, který vám vyhovuje. Kurz je rozdělen do tříd. Během lekce se studují materiály k aktuálnímu tématu, provádějí se workshopy a kladou se otázky učiteli. Na konci každé lekce se koná webinář, během kterého učitel prozkoumá všechny obdržené otázky, typické chyby a vysvětlí správné řešení. Záznamy webinářů jsou k dispozici na portálu. Tímto způsobem se koná několik lekcí za sebou. Na konci je 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í kurz je formát, který kombinuje všechny výhody prezenčního školení, distančního vzdělávání 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 v publiku vyučující, který je kdykoliv připraven zodpovědět dotazy a pomoci s řešením praktických problémů a také zkontrolovat správnost jejich realizace.
Výhody – individuální konzultace s vyučujícím k vašim dotazům, tempo vyplňování látky je pro vás osobně vhodné.
To vše poskytuje hlubší studium materiálu kurzu.
Tento kurz lze absolvovat z vašeho pracoviště s plným účinkem 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