HTTP služby pre tých, ktorí nerozumejú ničomu o WEB. Webové služby (SOAP), HTTP služby, oData (automatická REST služba) Nové parametre služby kurz 1c

Ak nerozumiete ničomu o WEB technológiách a slovám ako json, get, post a podobne nič vám nehovoria a ste len zanietený používateľ 1C do špiku kostí, no potrebujete sa spriateliť s 1C s aplikácie tretích strán alebo webové stránky. potom je tento článok určený práve vám.

Začnem tým, že som bol kedysi nútený zaoberať sa webovými službami sám. Potom sa mi nejako, kúsok po kúsku, podarilo túto záležitosť zvládnuť a pochopiť, čo a kde treba tlačiť, aby všetko fungovalo. Našťastie konfigurácia, s ktorou som musel pracovať, bola už preplnená webovými službami a dalo sa to analogicky nahliadnuť a urobiť a tiež sa mi podarilo nájsť dostatok článkov o tejto veci na internete. A tak som pomocou príkladov (pre mňa je to najlepší spôsob štúdia) túto záležitosť zvládol a teraz ma už nestrašia.

SO. Hlavnou úlohou akejkoľvek integrácie, či už ide o CD, webové služby alebo služby HTTP, je niečo odniekiaľ preniesť, niečo s tým urobiť a vrátiť odpoveď. Toto je formát, v ktorom budeme uvažovať o novej technológii.

V strome metadát sa služby HTTP nachádzajú vo vetve Všeobecné:

Nová služba HTTP sa pridá rovnakým spôsobom ako akýkoľvek iný objekt metadát. Meno a synonymum podľa želania. Tu je dôležitá iba „Root URL“ - to je v skutočnosti identifikátor služby HTTP v tejto databáze, t.j. presne to, čo napíšete v tejto vlastnosti, prenesiete na vývojára tretej strany (alebo sebe) ako odkaz na službu.

Neviem, či sa tu dá písať azbukou, ale aby vás v pokrokovom svete nezosmiali, píšte latinkou).

Vlastnosť Template je tu dôležitá:

Pomocou šablóny sa neskôr môžete odvolať na údaje, ktoré vám boli prenesené. TAKŽE: všetky údaje, ktoré chcete dostávať zvonku, je možné rozdeliť do 2 blokov – povinný a nepovinný.

Požadované údaje/parametre natlačíme do šablóny, takže ak ich osoba pristupujúca k službe nevyplní, služba a priori vygeneruje chybu a pri vývoji textu modulu handler budete mať istotu, že tieto údaje je tam. Ako sa to robí: v riadku Vzor v zložených zátvorkách „()“ striedajúcom sa so znamienkom „/“ napíšeme názvy premenných. Napríklad určite potrebujeme článok - potom napíšeme /(artikul). Ak potrebujeme získať článok, meno a používateľské meno, reťazec šablóny bude vyzerať takto: /(artikul)/(meno)/(používateľ) atď. Každý z týchto parametrov v texte modulu handler možno získať takto: Request.ParametersURL["<имя параметра>"]. Ak nie sú žiadne povinné, potom šablóna vyzerá takto: /*.

Nepovinné údaje, ktoré chceme prostredníctvom služby prijímať, NIE sú v šablóne popísané. Pri vytváraní odkazu na prístup k službe sú popísané na konci odkazu za znakom „?“, oddelené znakom ampersand „&“ a majú štruktúru<имя параметра>=<значение параметра>. V texte modulu handler k nim možno pristupovať pomocou nasledujúcej konštrukcie: Request.RequestParameters.Get("<имя параметра>"). ALE: je dôležité si uvedomiť, že keďže nie sú povinné, nemusia existovať; podľa toho kontrolujeme hodnotu Nedefinované.

Ďalej pridáme novú metódu pre našu šablónu. Tu je dôležitá vlastnosť metódy HTTP. Je ich obrovské množstvo, no nebudeme zachádzať do všetkých detailov. Na implementáciu akejkoľvek z vašich úloh potrebujete iba 2: GET a POST.

Ako si vybrať: Ak vám na prácu stačí to, čo sme popísali v predchádzajúcich dvoch odstavcoch, t.j. Všetky údaje, ktoré potrebujete, môžete získať pomocou povinných a voliteľných parametrov samotnej požiadavky, potom vezmeme GET. V tomto prípade v akomkoľvek prehliadači, ak správne zadáte panel s adresou, uvidíte výsledok vašej HTTP služby - ZISK! Ak zrazu na to, aby vaša služba fungovala, potrebujete údaje v zložitejšej forme (napríklad xml alebo niečo iné), niečo, čo sa nedá vložiť do jednoduchého panela s adresou, potom použite POST. Nevýhodou je, že taká jednoduchá kontrola cez panel s adresou prehliadača, ako pri GET, nebude fungovať, ale na internete môžete ľahko nájsť niektoré stránky, kde môžete skontrolovať služby pomocou metódy POST (napríklad stránka https:/ /www.hurl.it) . Ak je zvolená metóda POST, tak okrem URL (adresy) má požiadavka aj telo, do ktorého môžete napchať čokoľvek chcete a v obslužnom programe metódy k tomu pristupovať cez konštrukciu Request.GetBodyAsString(). Každá šablóna môže mať metódu GET aj POST. Budú mať zodpovedajúcim spôsobom rôznych spracovateľov a 1C si v závislosti od toho, ako bola žiadosť odoslaná, vyberie jednu alebo druhú metódu.

Obslužný program služby HTTP je funkcia, ktorá vždy vracia hodnotu typu HTTPServiceResponse, ktorú vytvoril konštruktor New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- toto je číslo, aby ste si nemuseli robiť starosti s výberom, čo napísať, píšeme: 200 - ak je všetko v poriadku a vrátite nejakú logickú hodnotu, 400 - ak sa vyskytne chyba a vrátite popis chyby . Tento typ má rôzne metódy (môžete si to prečítať v asistentovi syntaxe, všetko je tam jasne napísané). Opäť môžete vždy vrátiť všetko, čo potrebujete, ako reťazec - metódu SetBodyFromString(). (jeden malý trik: ak vrátite html a chcete, aby ho prehliadač krásne zobrazil na obrazovke, keď do panela s adresou zadáte adresu svojej služby, do vlastnosti Nadpisy odpovede napíšte: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - tým dávate najavo, že nejde len o množinu znakov, ale o HTML a podľa toho sa musí zobraziť)

Potom, čo ste urobili všetko, je potrebné publikovať službu HTTP. To sa deje na počítači s nainštalovaným webovým serverom (o nastaveniach nebudem písať, je tam veľa článkov) cez menu:

Administrácia - Publikovanie na webovom serveri.

Je tu záložka HTTP Services. Začiarknite políčka a kliknite na „Publikovať“




Narazil som na potrebu získať aktuálny stav konfigurácie. Potrebujete prijať:

  • Počet dokumentov s určitým výberom;
  • Obdobie poslednej zaznamenanej ceny za produkt;
  • Počet dokumentov spracovaných používateľom za posledných 10 minút.

S prihliadnutím na skúsenosti s implementáciou mobilnej aplikácie do projektov sa najprv objavila myšlienka napísať konfiguráciu pre Android. Po zvážení všetkých pre a proti som dospel k záveru, že tento prístup by nebol vhodný na riešenie môjho problému. Potom prešiel kurz na používanie služby http. Na tento účel bola v konfigurácii zaregistrovaná služba http „Štatistika“ a bola pridaná šablóna adresy URL AnyURL, ktorá mala pridanú metódu get.


Po vygenerovaní objektov konfiguračného stromu začneme písať algoritmus na generovanie odpovede. Metóda vráti odpoveď typu HTTPServiceResponse:

Po napísaní kódu odpovede zverejníme službu http z konfigurátora a pristúpime k nej z prehliadača. Ak chcete získať prístup k službe http, musíte kontaktovať adresu ako vo webovom klientovi pridaním „/hs/statistic/“. hs informuje platformu, že sa pristupuje k službe http a štatistika je názov našej služby.

Podľa môjho názoru môžu byť služby http užitočné v nasledujúcich prípadoch:
— Generovanie konfiguračných štatistík;
— Funkcia na získanie stavu objednávky podľa jej čísla;
— Príprava údajov na import do iných systémov.

Webová služba v 1C 8.3 a 8.2 je objekt metadát, ktorý vám umožňuje integrovať platformu 1C s inými informačnými systémami pomocou architektúry orientovanej na služby (SOA).

Pozrime sa na vytvorenie a konfiguráciu príkladu webovej služby, ktorá umožňuje obojsmernú výmenu medzi databázami 1C 8 pomocou SOAP.

Najprv sa pozrime na kartu Iné:

Získajte 267 video lekcií na 1C zadarmo:

  • V teréne URI menného priestoru popisuje umiestnenie identifikátora zdroja.
  • — popis typov, s ktorými bude budúca webová služba schopná pracovať.
  • Názov súboru publikácie— názov súboru *.1CWS, ktorý bude umiestnený na webovom serveri

Štruktúra webovej služby 1C

Pozrime sa na štruktúru webovej služby:

DataExchange je samotná webová služba. UnloadData, LoadData - operácie, v podstate popisy funkcií, ktoré možno volať cez protokol SOAP. ExchangePlanName, NodeCode atď. — hodnoty prenášané do webovej služby.

Modul webovej služby

Modul obsahuje to najzaujímavejšie – popis funkcií budúcej webovej služby. V našom prípade popisujeme funkčnosť, ktorá vám umožňuje prijímať a odosielať údaje pomocou štandardných mechanizmov výmeny 1C. Pretože Výmena prebieha medzi jednou platformou - 1C, potom nevyžadujú serializáciu dát.

Kontrola fungovania služby 1C http na webovom serveri

Začnem tým, že som bol kedysi nútený zaoberať sa webovými službami sám. Potom sa mi nejako, kúsok po kúsku, podarilo túto záležitosť zvládnuť a pochopiť, čo a kde treba tlačiť, aby všetko fungovalo. Našťastie konfigurácia, s ktorou sme museli pracovať, bola už plná Bolo možné sa na to pozrieť pomocou webových služieb a urobiť to analogicky a na internete som našiel dostatok článkov na túto tému. A tak som pomocou príkladov (pre mňa je to najlepší spôsob štúdia) túto záležitosť zvládol a teraz ma už nestrašia.

SO. Hlavnou úlohou akejkoľvek integrácie, či už ide o CD, webové služby alebo služby HTTP, je niečo odniekiaľ preniesť, niečo s tým urobiť a vrátiť odpoveď. Toto je formát, v ktorom budeme uvažovať o novej technológii.

V strome metadát sa služby HTTP nachádzajú vo vetve Všeobecné:

Nová služba HTTP sa pridá rovnakým spôsobom ako akýkoľvek iný objekt metadát. Meno a synonymum podľa želania. Tu je dôležitá iba „Root URL“ - v skutočnosti ide o identifikátor HTTP služba v tejto databáze, t.j. presne to, čo napíšete v tejto vlastnosti, prenesiete na vývojára tretej strany (alebo sebe) ako odkaz na službu.

Neviem, či sa tu dá písať azbukou, ale aby vás v pokrokovom svete nezosmiali, píšte latinkou).

Vlastnosť Template je tu dôležitá:

Pomocou šablóny sa neskôr môžete odvolať na údaje, ktoré vám boli prenesené. SO: všetky údaje, ktoré chcete dostávať zvonku, je možné rozdeliť do 2 blokov - povinný a nepovinný.

Požadované údaje/parametre vtlačíme do šablóny, teda ak ich nevyplní ten, kto pristupuje k službe, služba a priori vygeneruje chybu a pri vývoji textu modulu handler budete mať istotu, že tam tieto údaje sú . Ako sa to robí: v riadku Vzor v zložených zátvorkách „()“ striedajúcom sa so znamienkom „/“ napíšeme názvy premenných. Napríklad určite potrebujeme článok - potom napíšeme /(artikul). Ak potrebujeme získať článok, meno a používateľské meno, reťazec šablóny bude vyzerať takto: /(artikul) /(meno)/(používateľ) atď. Každý z týchto parametrov v texte modulu handler možno získať takto: Request.ParametersURL["<имя параметра>"]. Ak nie sú žiadne povinné, potom šablóna vyzerá takto: /*.

Nepovinné údaje, ktoré chceme prostredníctvom služby prijímať, NIE SÚ popísané v šablóne. Pri vytváraní odkazu na prístup k službe sú popísané na konci odkazu za znakom „?“, oddelené znakom ampersand „&“ a majú štruktúru<имя параметра>=<значение параметра>. V texte modulu handler k nim možno pristupovať pomocou nasledujúcej konštrukcie: Request.RequestParameters.Get("<имя параметра>"). ALE: je dôležité si uvedomiť, že keďže nie sú povinné, nemusia existovať; podľa toho kontrolujeme hodnotu Nedefinované.

Ďalej pridáme novú metódu pre našu šablónu. Tu je dôležitá vlastnosť metódy HTTP. Je ich obrovské množstvo, no nebudeme zachádzať do všetkých detailov. Na implementáciu ktorejkoľvek z vašich úloh potrebujete iba 2: GET A POST.

Ako si vybrať: Ak vám na prácu stačí to, čo sme popísali v predchádzajúcich dvoch odstavcoch, t.j. Všetky údaje, ktoré potrebujete, môžete získať pomocou povinných a voliteľných parametrov samotnej požiadavky, potom vezmeme GET. V tomto prípade v akomkoľvek prehliadači, ak správne zadáte panel s adresou, uvidíte výsledok vašej HTTP služby - ZISK! Ak zrazu na to, aby vaša služba fungovala, potrebujete údaje v zložitejšej forme (napríklad xml alebo niečo iné), niečo, čo sa nedá vložiť do jednoduchého panela s adresou, potom použite POST. Nevýhodou je, že taká jednoduchá kontrola cez panel s adresou prehliadača, ako pri GET, nebude fungovať, ale na internete môžete ľahko nájsť niektoré stránky, kde môžete skontrolovať služby pomocou metódy POST (napríklad stránka https:/ /www.hurl.it) . Ak je zvolená metóda POST, potom žiadosť navyše URL (adresy) objaví sa telo, do ktorého môžete napchať čokoľvek a v obslužnom programe metódy k nemu pristupovať cez konštrukciu Request.GetBodyAsString(). Každá šablóna môže mať metódu GET aj POST. Budú mať zodpovedajúcim spôsobom rôznych spracovateľov a 1C si v závislosti od toho, ako bola žiadosť odoslaná, vyberie jednu alebo druhú metódu.

Obslužný program služby HTTP je funkcia, ktorá vždy vracia hodnotu typu HTTPServiceResponse, ktorú vytvoril konštruktor New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- toto je číslo, aby ste si nemuseli robiť starosti s výberom, čo napísať, píšeme: 200 - ak je všetko v poriadku a vrátite nejakú logickú hodnotu, 400 - ak sa vyskytne chyba a vrátite popis chyby . Tento typ má rôzne metódy (môžete si to prečítať v asistentovi syntaxe, všetko je tam jasne napísané). Opäť môžete vždy vrátiť všetko, čo potrebujete, ako reťazec - metódu SetBodyFromString(). (jeden malý trik: ak vrátite html a chcete, aby ho prehliadač krásne zobrazil na obrazovke, keď do panela s adresou zadáte adresu svojej služby, do vlastnosti Nadpisy odpovede napíšte: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - tým dávate najavo, že nejde len o množinu znakov, ale o HTML a podľa toho sa musí zobraziť)

Potom, čo ste urobili všetko, je potrebné publikovať službu HTTP. To sa deje na počítači s nainštalovaným webovým serverom (o nastaveniach nebudem písať, je tam veľa článkov) cez menu:

Administrácia - Publikovanie na webovom serveri.

Je tu záložka HTTP Services. Začiarknite políčka a kliknite na „Publikovať“

Takže, dostali sme hotovú službu HTTP. AKO ho kontaktovať? Ak použijeme metódu GET, do panela s adresou prehliadača napíšeme: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

A na záver ešte raz na obrázkoch))):

Pozor! Teraz sa kurz koná aj večer od 18:30 do 21:30 v ponornom formáte.

Počas kurzu získate praktické zručnosti v používaní nasledujúcich mechanizmov platformy 1C:Enterprise 8:

  • WEB služby (protokol SOAP)
  • formát JSON
  • oDátové rozhranie (automaticky služba REST)
  • HTTP služby

DÔLEŽITÉ!!! Kurz je určený pre programátorov, ktorí majú zručnosti v práci s mechanizmom XDTO, alebo kurz v minulosti absolvovali.

Popis a program kurzu:

V cene WEB kurzu je zahrnuté:

  • 2 týždne samozrejme, 2 webináre s lektorom
  • certifikát školiaceho strediska 1C č. 3 (podlieha praktickému výcviku)

Cena celodenného ponorného kurzu zahŕňa:

  • 2 dni od 10:00 do 17:00 alebo 16:30 od 18:30 do 21:30
  • poznámky, slúchadlá
  • obedy, prestávky na kávu
  • prístup k aktualizovaným video materiálom po dobu 2 rokov po absolvovaní kurzu
  • certifikát 1C-Tréningového centra č.3

Tréningové formáty

WEB školenie

Aký je tento formát:Navrhovaný formát kombinuje mnohé z výhod dištančného vzdelávania s prezenčnou zložkou, ktorú predstavujú video materiály a online konzultácie.
Kurz WEB pozostáva z videí, praktických úloh a webinárov s učiteľmi. Všetky študijné materiály sú dostupné 24 hodín denne, 7 dní v týždni cez internet, takže môžete študovať v čase, ktorý vám vyhovuje. Kurz je rozdelený do tried. Počas hodiny sa študujú materiály na aktuálnu tému, uskutočňujú sa workshopy a kladú sa otázky učiteľovi. Na konci každej hodiny sa koná webinár, počas ktorého učiteľ skúma všetky prijaté otázky, typické chyby a vysvetľuje správne riešenie. Záznamy webinárov sú dostupné na portáli. Týmto spôsobom sa koná niekoľko tried po sebe. Na konci je záverečná samostatná práca a záverečný webinár.

Trvanie: 2 týždne

Aký je tento formát:


Trvanie:16 akademických hodín

Aký je tento formát:Ponorný kurz na plný úväzok je formát, ktorý kombinuje všetky výhody denného školenia, dištančného vzdelávania a individuálneho školenia. Triedy sa konajú vo vybavenej učebni, samostatne študujete učebné materiály (videá krok za krokom) a vykonávate workshopy. Zároveň je v publiku učiteľ, ktorý je pripravený kedykoľvek odpovedať na otázky a pomôcť s riešením praktických problémov, ako aj skontrolovať správnosť ich realizácie.
Výhody – individuálne konzultácie s vyučujúcim k vašim otázkam, tempo dokončovania látky je pre vás osobne vhodné.
To všetko poskytuje hlbšie štúdium učebných materiálov.
Tento kurz je možné absolvovať z vášho pracoviska s plným účinkom prítomnosti učiteľa tam, kde sa študent nachádza! Ak vás táto príležitosť zaujala, zavolajte nám!

Trvanie:16 akademických hodín