Servicii HTTP pentru cei care nu înțeleg nimic despre WEB. Servicii web (SOAP), servicii HTTP, oData (serviciu REST automat) Cursul nou 1c parametrii serviciului

Dacă nu înțelegi nimic despre tehnologiile WEB și cuvinte precum json, get, post și așa mai departe nu înseamnă nimic pentru tine și ești doar un utilizator pasionat 1C până la bază, dar trebuie să te împrietenești cu 1C cu aplicații terță parte sau un site web. atunci acest articol este pentru tine.

Permiteți-mi să încep cu faptul că am fost odată forțat să mă ocup de serviciile Web pe cont propriu. Apoi, cumva, încetul cu încetul, am reușit să stăpânesc această chestiune și să înțeleg ce și unde să apăs pentru ca totul să funcționeze. Din fericire, configurația cu care trebuia să lucrez era deja plină de servicii Web și era posibil să arunc o privire și să o fac prin analogie și am reușit să găsesc și suficiente articole pe această temă pe Internet. Și așa, folosind exemple (pentru mine aceasta este cea mai bună modalitate de a studia), am stăpânit această chestiune, iar acum nu mă mai sperie.

ASA DE. Sarcina principală a oricărei integrări, fie că este vorba despre CD, servicii Web sau servicii HTTP, este să transferați ceva de undeva, să faceți ceva cu el și să returnați un răspuns. Acesta este formatul în care vom lua în considerare noua tehnologie.

În arborele de metadate, serviciile HTTP sunt situate în ramura General:

Un nou serviciu HTTP este adăugat în același mod ca orice alt obiect de metadate. Numele și sinonimul după cum doriți. Aici, doar „Adresa URL rădăcină” este importantă - acesta este, de fapt, identificatorul serviciului HTTP din această bază de date, adică. exact ceea ce scrieți în această proprietate, veți transfera unui dezvoltator terț (sau dvs.) ca link către serviciu.

Nu știu dacă se poate scrie aici în chirilic, dar pentru a nu fi de râs în lumea progresistă, scrie în latină).

Proprietatea Template în sine este importantă aici:

Folosind un șablon, vă puteți referi ulterior la datele care v-au fost transferate. Așadar: toate datele pe care doriți să le primiți din exterior pot fi împărțite în 2 blocuri - obligatoriu și opțional.

Împingem datele/parametrii necesari în șablon, așa că dacă persoana care accesează serviciul nu le completează, serviciul va genera a priori o eroare, iar la elaborarea textului modulului handler, veți fi sigur că aceste date este acolo. Cum se face acest lucru: în linia Model în paranteze „()”, alternând cu semnul „/”, scriem numele variabilelor. De exemplu, ne trebuie neapărat un articol - apoi scriem /(articul). Dacă trebuie să obținem articolul, numele și numele de utilizator, șirul șablonului va arăta astfel: /(articul)/(name)/(user), etc. Fiecare dintre acești parametri din textul modulului de gestionare poate fi obținut astfel: Request.ParametersURL["<имя параметра>"]. Dacă nu există cele necesare, atunci șablonul arată astfel: /*.

Datele opționale pe care dorim să le primim prin intermediul serviciului NU sunt descrise în șablon. Când construiți o legătură pentru a accesa un serviciu, acestea sunt descrise la sfârșitul linkului după semnul „?”, separate prin caracterul „&” și au structura<имя параметра>=<значение параметра>. În textul modulului de gestionare, acestea pot fi accesate cu următorul construct: Request.RequestParameters.Get("<имя параметра>"). DAR: este important să ne amintim că, deoarece nu sunt necesare, este posibil să nu existe; prin urmare, verificăm valoarea pentru Nedefinit.

Apoi, adăugăm o nouă metodă pentru șablonul nostru. Proprietatea metodei HTTP este importantă aici. Sunt un număr foarte mare, DAR nu vom intra în toate detaliile. Pentru a implementa oricare dintre sarcinile dvs., aveți nevoie doar de 2: GET și POST.

Cum să alegi: Dacă ceea ce am descris în cele două paragrafe anterioare este suficient pentru munca ta, de ex. Puteți obține toate datele de care aveți nevoie folosind parametrii obligatorii și opționali ai cererii în sine, apoi luăm GET. În acest caz, în orice browser, dacă intri corect în bara de adrese, vei vedea rezultatul serviciului tău HTTP - PROFIT! Dacă brusc pentru ca serviciul dvs. să funcționeze aveți nevoie de date într-o formă mai complexă (xml, de exemplu, sau altceva), ceva care nu poate fi introdus într-o simplă bară de adrese, atunci luați POST. În dezavantaj, o verificare atât de ușoară prin bara de adrese a browserului, ca și în cazul GET, nu va funcționa, dar pe Internet puteți găsi cu ușurință câteva site-uri unde puteți verifica servicii folosind metoda POST (de exemplu, site-ul https:/ /www.hurl.it) . Dacă este selectată metoda POST, atunci, pe lângă URL (adresă), cererea are un corp în care puteți introduce orice doriți, iar în handlerul metodei să o accesați prin constructul Request.GetBodyAsString(). Orice șablon poate avea atât o metodă GET, cât și o metodă POST. Ei vor avea handleri corespunzător diferiți, iar 1C, în funcție de modul în care a fost trimisă cererea, va alege o metodă sau alta.

Un handler de serviciu HTTP este o funcție care returnează întotdeauna o valoare de tip HTTPServiceResponse, care este construită de constructorul New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- acesta este un număr, pentru a nu fi nevoit să vă faceți griji cu privire la alegerea ce să scriem, scriem: 200 - dacă totul este bine și returnați o valoare logică, 400 - dacă există o eroare și returnați o descriere a erorii . Acest tip are diverse metode (puteți citi în asistentul de sintaxă, totul este scris clar acolo). Din nou, puteți returna oricând tot ce aveți nevoie ca șir - metoda SetBodyFromString(). (un mic truc: dacă returnați html și doriți ca browserul să-l afișeze frumos pe ecran atunci când introduceți adresa serviciului dvs. în bara de adrese, în proprietatea Headings de răspuns scrieți: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - astfel indicați că acesta nu este doar un set de caractere, ci HTML și trebuie afișat în consecință)

După ce ați făcut totul, serviciul HTTP trebuie publicat. Acest lucru se face pe un computer cu un server web instalat (nu voi scrie despre setări, sunt multe articole) prin meniu:

Administrare - Publicare pe un server web.

Există o filă Servicii HTTP. Bifați casetele și faceți clic pe „Publicați”




M-am confruntat cu nevoia de a obține starea actuală de configurare. Trebuie să primiți:

  • Număr de documente cu o anumită selecție;
  • Perioada ultimului preț înregistrat pentru produs;
  • Numărul de documente procesate de utilizator în ultimele 10 minute.

Ținând cont de experiența implementării unei aplicații mobile în proiecte, a apărut mai întâi gândul de a scrie o configurație pentru Android. După ce am cântărit toate argumentele pro și contra, am ajuns la concluzia că această abordare nu ar fi potrivită pentru a-mi rezolva problema. Apoi a fost urmat cursul pentru utilizarea serviciului http. Pentru a face acest lucru, serviciul http „Statistici” a fost înregistrat în configurație și a fost adăugat șablonul de url AnyURL, care avea adăugată o metodă get.


După generarea obiectelor arborelui de configurare, începem să scriem un algoritm pentru generarea unui răspuns. Metoda va returna un răspuns de tip HTTPServiceResponse:

După ce scriem codul de răspuns, publicăm serviciul http din configurator și îl accesăm din browser. Pentru a accesa serviciul http, trebuie să contactați adresa ca în clientul web, adăugând „/hs/statistic/”. hs spune platformei că este accesat un serviciu http, iar statistica este numele serviciului nostru.

În opinia mea, serviciile http pot fi utile în următoarele cazuri:
— Generarea de statistici de configurare;
— Funcționalitate de obținere a stării comenzii după numărul acesteia;
— Pregătirea datelor pentru import în alte sisteme.

Un serviciu web în 1C 8.3 și 8.2 este un obiect de metadate care vă permite să integrați platforma 1C cu alte sisteme de informații folosind arhitectura orientată pe servicii (SOA).

Să ne uităm la crearea și configurarea exemplului unui serviciu web care permite schimbul bidirecțional între bazele de date 1C 8 folosind SOAP.

Mai întâi, să ne uităm la fila Alte:

Obțineți 267 de lecții video pe 1C gratuit:

  • În câmp URI al spațiului de nume descrie locația identificatorului de resursă.
  • — o descriere a tipurilor cu care va putea funcționa viitorul serviciu web.
  • Numele fișierului de publicare— numele fișierului *.1CWS care va fi plasat pe serverul web

Structura serviciului web 1C

Să ne uităm la structura serviciului web:

DataExchange este serviciul web în sine. UnloadData, LoadData - operațiuni, în esență, descrieri ale funcțiilor care pot fi apelate prin protocolul SOAP. ExchangePlanName, NodeCode etc. — valorile transmise către serviciul web.

Modul serviciu web

Modulul conține cel mai interesant lucru - o descriere a funcțiilor viitorului serviciu web. În cazul nostru, descriem funcționalitatea care vă permite să primiți și să trimiteți date folosind mecanisme standard de schimb 1C. Deoarece Schimbul are loc între o singură platformă - 1C, apoi nu necesită serializarea datelor.

Verificarea funcționării serviciului 1C http pe un server web

Permiteți-mi să încep cu faptul că am fost odată forțat să mă ocup de serviciile Web pe cont propriu. Apoi, cumva, încetul cu încetul, am reușit să stăpânesc această chestiune și să înțeleg ce și unde să apăs pentru ca totul să funcționeze. Din fericire, configurația cu care trebuia să lucrăm era deja plină A fost posibil să o privesc folosind serviciile Web și să o facem prin analogie, iar pe Internet am putut găsi suficiente articole pe această temă. Și așa, folosind exemple (pentru mine aceasta este cea mai bună modalitate de a studia), am stăpânit această chestiune, iar acum nu mă mai sperie.

ASA DE. Sarcina principală a oricărei integrări, fie că este vorba despre CD, servicii Web sau servicii HTTP, este să transferați ceva de undeva, să faceți ceva cu el și să returnați un răspuns. Acesta este formatul în care vom lua în considerare noua tehnologie.

În arborele de metadate, serviciile HTTP sunt situate în ramura General:

Un nou serviciu HTTP este adăugat în același mod ca orice alt obiect de metadate. Numele și sinonimul după cum doriți. Numai „Adresa URL rădăcină” este importantă aici - acesta este, de fapt, identificatorul Serviciul HTTP în această bază de date, de ex. exact ceea ce scrieți în această proprietate, veți transfera unui dezvoltator terț (sau dvs.) ca link către serviciu.

Nu știu dacă se poate scrie aici în chirilic, dar pentru a nu fi de râs în lumea progresistă, scrie în latină).

Proprietatea Template în sine este importantă aici:

Folosind un șablon, vă puteți referi ulterior la datele care v-au fost transferate. ASA DE: toate datele pe care doriți să le primiți din exterior pot fi împărțite în 2 blocuri - obligatoriu și opțional.

Date/parametri necesariîl împingem în șablon, astfel dacă persoana care accesează serviciul nu le completează, atunci serviciul va genera a priori o eroare, iar la dezvoltarea textului modulului de gestionare, veți fi sigur că aceste date sunt acolo. Cum se face acest lucru: în linia Model în paranteze „()”, alternând cu semnul „/”, scriem numele variabilelor. De exemplu, ne trebuie neapărat un articol - apoi scriem /(articul). Dacă trebuie să obținem articolul, numele și numele de utilizator, șirul șablonului va arăta astfel: /(articul) /(nume)/(utilizator), etc. Fiecare dintre acești parametri din textul modulului de gestionare poate fi obținut astfel: Request.ParametersURL["<имя параметра>"]. Dacă nu există cele necesare, atunci șablonul arată astfel: /*.

Date opționale, pe care dorim să le primim prin intermediul serviciului, NU sunt descrise în șablon. Când construiți o legătură pentru a accesa un serviciu, acestea sunt descrise la sfârșitul linkului după semnul „?”, separate prin caracterul „&” și au structura<имя параметра>=<значение параметра>. În textul modulului de gestionare, acestea pot fi accesate cu următorul construct: Request.RequestParameters.Get("<имя параметра>"). DAR: este important să ne amintim că, deoarece nu sunt necesare, este posibil să nu existe; prin urmare, verificăm valoarea pentru Nedefinit.

Apoi, adăugăm o nouă metodă pentru șablonul nostru. Proprietatea metodei HTTP este importantă aici. Sunt un număr foarte mare, DAR nu vom intra în toate detaliile. Pentru a implementa oricare dintre sarcinile dvs. aveți nevoie doar de 2: OBȚINEȘi POST.

Cum să alegi: Dacă ceea ce am descris în cele două paragrafe anterioare este suficient pentru munca ta, de ex. Puteți obține toate datele de care aveți nevoie folosind parametrii obligatorii și opționali ai cererii în sine, apoi luăm GET. În acest caz, în orice browser, dacă intri corect în bara de adrese, vei vedea rezultatul serviciului tău HTTP - PROFIT! Dacă brusc pentru ca serviciul dvs. să funcționeze aveți nevoie de date într-o formă mai complexă (xml, de exemplu, sau altceva), ceva care nu poate fi introdus într-o simplă bară de adrese, atunci luați POST. În dezavantaj, o verificare atât de ușoară prin bara de adrese a browserului, ca și în cazul GET, nu va funcționa, dar pe Internet puteți găsi cu ușurință câteva site-uri unde puteți verifica servicii folosind metoda POST (de exemplu, site-ul https:/ /www.hurl.it) . Dacă metoda este selectată POST, apoi cererea pe langa Adresa URL (adrese) apare un corp în care puteți introduce orice, iar în handlerul de metodă accesați-l prin constructul Request.GetBodyAsString(). Orice șablon poate avea atât o metodă GET, cât și o metodă POST. Ei vor avea handleri corespunzător diferiți, iar 1C, în funcție de modul în care a fost trimisă cererea, va alege o metodă sau alta.

Un handler de serviciu HTTP este o funcție care returnează întotdeauna o valoare de tip HTTPServiceResponse, care este construită de constructorul New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- acesta este un număr, pentru a nu fi nevoit să vă faceți griji cu privire la alegerea ce să scriem, scriem: 200 - dacă totul este bine și returnați o valoare logică, 400 - dacă există o eroare și returnați o descriere a erorii . Acest tip are diverse metode (puteți citi în asistentul de sintaxă, totul este scris clar acolo). Din nou, puteți returna oricând tot ce aveți nevoie ca șir - metoda SetBodyFromString(). (un mic truc: dacă returnați html și doriți ca browserul să-l afișeze frumos pe ecran atunci când introduceți adresa serviciului dvs. în bara de adrese, în proprietatea Headings de răspuns scrieți: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - astfel indicați că acesta nu este doar un set de caractere, ci HTML și trebuie afișat în consecință)

După ce ați făcut totul, serviciul HTTP trebuie publicat. Acest lucru se face pe un computer cu un server web instalat (nu voi scrie despre setări, sunt multe articole) prin meniu:

Administrare - Publicare pe un server web.

Există o filă Servicii HTTP. Bifați casetele și faceți clic pe „Publicați”

Asa de, am primit un serviciu HTTP gata făcut. CUM să-l contactezi? Dacă folosim metoda GET, atunci în bara de adrese a browserului scriem: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Și în sfârșit, încă o dată în imagini))):

Atenţie! Acum cursul se ține și seara de la 18:30 la 21:30 în format de imersiune.

Pe parcursul cursului veți dobândi abilități practice în utilizarea următoarelor mecanisme ale platformei 1C:Enterprise 8:

  • Servicii WEB (protocol SOAP)
  • format JSON
  • o Interfață de date (serviciu REST automat)
  • Servicii HTTP

IMPORTANT!!! Cursul este conceput pentru programatori care au abilități de lucru cu mecanismul XDTO sau care au finalizat anterior cursul.

Descrierea si programul cursului:

Pretul cursului WEB include:

  • 2 săptămâni desigur, 2 webinarii cu un profesor
  • certificat al Centrului de Formare 1C nr. 3 (sub rezerva pregătirii practice)

Costul cursului de imersiune full-time include:

  • 2 zile de la 10:00 la 17:00 sau 16:00 de la 18:30 la 21:30
  • note, căști
  • prânzuri, pauze de cafea
  • acces la materiale video actualizate timp de 2 ani de la finalizarea cursului
  • certificat de 1C-Centrul de formare nr.3

Formate de antrenament

Training WEB

Ce este acest format:Formatul propus combină multe dintre avantajele învățării la distanță cu o componentă față în față reprezentată de materiale video și consultări online.
Cursul WEB constă în videoclipuri, sarcini practice și webinarii cu profesori. Toate materialele de curs sunt disponibile 24/7 prin internet, astfel încât să puteți studia la ora care vă convine. Cursul este împărțit pe clase. În timpul lecției se studiază materiale pe tema curentă, se desfășoară ateliere și se pun întrebări profesorului. La sfârșitul fiecărei lecții, are loc un webinar, în timpul căruia profesorul examinează toate întrebările primite, erorile tipice și explică soluția corectă. Înregistrările webinarilor sunt disponibile în portal. În acest fel, mai multe cursuri se țin unul după altul. La sfârșit există o lucrare finală independentă și un webinar final.

Durată: 2 saptamani

Ce este acest format:


Durată:16 ore academice

Ce este acest format:Un curs de imersiune cu normă întreagă este un format care combină toate avantajele formării cu normă întreagă, ale învățării la distanță și ale formării individuale. Cursurile se desfășoară într-o sală de clasă echipată, studiați în mod independent materialele de curs (videoclipuri pas cu pas) și efectuați ateliere. În același timp, în audiență există un profesor care este gata în orice moment să răspundă la întrebări și să ajute la rezolvarea problemelor practice, precum și să verifice corectitudinea implementării acestora.
Avantaje – consultații individuale de la profesor la întrebările dvs., ritmul de completare a materialului este potrivit pentru dvs. personal.
Toate acestea oferă un studiu mai aprofundat al materialului de curs.
Acest curs poate fi luat de la locul dvs. de muncă cu efectul deplin al prezenței profesorului unde se află elevul! Dacă această oportunitate vă interesează, sunați-ne!

Durată:16 ore academice