Usługi HTTP dla tych, którzy nie rozumieją nic o sieci. Usługi sieciowe (SOAP), usługi HTTP, oData (automatyczna usługa REST) ​​Nowe parametry usługi kursu 1c

Jeśli nie rozumiesz nic na temat technologii WEBowych i słów takich jak json, get, post i tak dalej, nic dla ciebie nie znaczą i jesteś po prostu zagorzałym użytkownikiem 1C, ale musisz zaprzyjaźnić się z 1C aplikacji lub strony internetowej innych firm, to ten artykuł jest dla Ciebie.

Zacznę od tego, że kiedyś byłem zmuszony samodzielnie zajmować się serwisami WWW. Potem jakoś, krok po kroku, udało mi się opanować tę kwestię i zrozumieć, co i gdzie naciskać, aby wszystko zadziałało. Na szczęście konfiguracja, z którą musiałem pracować, była już wypchana usługami sieciowymi i można było zajrzeć i zrobić to przez analogię, a także udało mi się znaleźć wystarczającą liczbę artykułów na ten temat w Internecie. I tak na przykładach (dla mnie to najlepszy sposób nauki) opanowałem tę materię i teraz już mnie nie przerażają.

WIĘC. Głównym zadaniem każdej integracji, czy to CD, usług sieciowych czy usług HTTP, jest przesłanie czegoś skądś, zrobienie z tym czegoś i zwrócenie odpowiedzi. W takim formacie rozważymy nową technologię.

W drzewie metadanych usługi HTTP znajdują się w gałęzi Ogólne:

Nowa usługa HTTP jest dodawana w taki sam sposób, jak każdy inny obiekt metadanych. Imię i synonim, jak chcesz. Tutaj ważny jest tylko „Root URL” - tak naprawdę jest to identyfikator usługi HTTP w tej bazie danych, tj. dokładnie to, co napiszesz w tej właściwości, przekażesz zewnętrznemu programiście (lub sobie) jako link do usługi.

Nie wiem, czy można tu pisać cyrylicą, ale żeby nie być wyśmiewanym w postępowym świecie, pisz po łacinie).

Ważna jest tutaj sama właściwość Template:

Korzystając ze wzoru możesz później odwołać się do danych, które zostały Ci przekazane. SO: wszystkie dane, które chcesz otrzymać z zewnątrz, można podzielić na 2 bloki - obowiązkowy i opcjonalny.

Do szablonu wpychamy wymagane dane/parametry, więc jeśli osoba korzystająca z usługi ich nie wypełni, usługa a priori wygeneruje błąd, a opracowując tekst modułu obsługi, będziesz mieć pewność, że te dane jest tu. Jak to się robi: w wierszu Wzorzec w nawiasach klamrowych „()” na przemian ze znakiem „/” wpisujemy nazwy zmiennych. Na przykład zdecydowanie potrzebujemy artykułu - wtedy piszemy /(artikul). Jeśli potrzebujemy uzyskać artykuł, nazwę i nazwę użytkownika, ciąg szablonu będzie wyglądał następująco: /(artikul)/(nazwa)/(użytkownik) itp. Każdy z tych parametrów w tekście modułu obsługi można uzyskać w następujący sposób: Request.ParametersURL["<имя параметра>"]. Jeśli nie ma żadnych wymaganych, szablon wygląda następująco: /*.

Opcjonalne dane, które chcemy otrzymać za pośrednictwem usługi NIE są opisane w szablonie. Budując linki umożliwiające dostęp do usługi, są one opisane na końcu linku po znaku „?”, oddzielone znakiem ampersand „&” i mają strukturę<имя параметра>=<значение параметра>. W tekście modułu obsługi można uzyskać do nich dostęp za pomocą następującej konstrukcji: Request.RequestParameters.Get("<имя параметра>"). ALE: należy pamiętać, że ponieważ nie są one wymagane, mogą nie istnieć; w związku z tym sprawdzamy wartość Niezdefiniowane.

Następnie dodajemy nową metodę dla naszego szablonu. Ważna jest tutaj właściwość metody HTTP. Jest ich ogromna liczba, ALE nie będziemy wchodzić we wszystkie szczegóły. Aby wdrożyć którekolwiek ze swoich zadań, potrzebujesz tylko 2: GET i POST.

Jak wybrać: Jeśli do Twojej pracy wystarczy to, co opisaliśmy w dwóch poprzednich akapitach, tj. Możesz uzyskać wszystkie potrzebne dane, korzystając z obowiązkowych i opcjonalnych parametrów samego żądania, wtedy bierzemy GET. W takim przypadku w dowolnej przeglądarce, jeśli poprawnie wpiszesz pasek adresu, zobaczysz wynik swojej usługi HTTP - ZYSK! Jeśli nagle, aby Twoja usługa działała, potrzebujesz danych w bardziej złożonej formie (na przykład XML lub coś innego), czegoś, czego nie da się upchnąć w prostym pasku adresu, wykonaj POST. Wadą jest to, że takie łatwe sprawdzenie przez pasek adresu przeglądarki, jak w przypadku GET, nie zadziała, ale w Internecie można łatwo znaleźć strony, na których można sprawdzić usługi metodą POST (na przykład strona https:/ /www.hurl.it). Jeśli zostanie wybrana metoda POST, to oprócz adresu URL (adresu) żądanie posiada treść, w którą możesz wrzucić wszystko, co chcesz, a w procedurze obsługi metody uzyskać do niej dostęp poprzez konstrukcję Request.GetBodyAsString(). Każdy szablon może mieć zarówno metodę GET, jak i POST. Będą miały odpowiednio różne procedury obsługi, a 1C, w zależności od sposobu wysłania żądania, wybierze tę lub inną metodę.

Procedura obsługi usług HTTP to funkcja, która zawsze zwraca wartość typu HTTPServiceResponse, która jest budowana przez konstruktor New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- to jest liczba, żeby nie martwić się o wybór tego, co napisać, piszemy: 200 - jeśli wszystko jest w porządku i zwrócisz jakąś wartość logiczną, 400 - jeśli wystąpi błąd i zwrócisz opis błędu . Ten typ ma różne metody (można to przeczytać w asystencie składni, tam wszystko jest jasno napisane). Ponownie, zawsze możesz zwrócić wszystko, czego potrzebujesz w postaci ciągu znaków — metoda SetBodyFromString(). (jeden mały trik: jeśli zwrócisz HTML i chcesz, aby przeglądarka pięknie go wyświetliła na ekranie, gdy wpiszesz adres swojej usługi w pasku adresu, w odpowiedzi właściwości Headings napisz: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - tym samym wskazujesz, że nie jest to tylko zestaw znaków, ale HTML i należy go odpowiednio wyświetlić)

Po wykonaniu wszystkich czynności należy opublikować usługę HTTP. Odbywa się to na komputerze z zainstalowanym serwerem WWW (o ustawieniach nie będę się rozpisywał, artykułów jest mnóstwo) poprzez menu:

Administracja - Publikowanie na serwerze WWW.

Dostępna jest zakładka Usługi HTTP. Zaznacz pola i kliknij „Opublikuj”




Stanąłem przed koniecznością uzyskania aktualnego stanu konfiguracji. Musisz otrzymać:

  • Liczba dokumentów z określonym wyborem;
  • Okres ostatniej zarejestrowanej ceny produktu;
  • Liczba dokumentów przetworzonych przez użytkownika w ciągu ostatnich 10 minut.

Biorąc pod uwagę doświadczenia związane z wdrażaniem aplikacji mobilnej w projektach, jako pierwszy pojawił się pomysł napisania konfiguracji dla Androida. Po rozważeniu wszystkich za i przeciw doszedłem do wniosku, że takie podejście nie będzie odpowiednie do rozwiązania mojego problemu. Następnie odbył się kurs obsługi usługi http. W tym celu w konfiguracji zarejestrowano usługę http „Statystyka” oraz dodano szablon url AnyURL, do którego dodano metodę get.


Po wygenerowaniu obiektów drzewa konfiguracyjnego przystępujemy do pisania algorytmu generowania odpowiedzi. Metoda zwróci odpowiedź typu HTTPServiceResponse:

Po zapisaniu kodu odpowiedzi publikujemy usługę http z konfiguratora i uzyskujemy do niej dostęp z poziomu przeglądarki. Aby uzyskać dostęp do usługi http należy skontaktować się z adresem jak w kliencie WWW dodając „/hs/statistic/”. hs informuje platformę, że uzyskiwany jest dostęp do usługi http, a statystyka to nazwa naszej usługi.

Moim zdaniem usługi http mogą przydać się w następujących przypadkach:
— Generowanie statystyk konfiguracji;
— Funkcjonalność uzyskiwania statusu zamówienia po jego numerze;
— Przygotowanie danych do importu do innych systemów.

Usługa internetowa w 1C 8.3 i 8.2 to obiekt metadanych, który umożliwia integrację platformy 1C z innymi systemami informatycznymi wykorzystującymi architekturę zorientowaną na usługi (SOA).

Przyjrzyjmy się tworzeniu i konfigurowaniu przykładu usługi internetowej, która umożliwia dwukierunkową wymianę między bazami danych 1C 8 przy użyciu protokołu SOAP.

Najpierw spójrzmy na zakładkę Inny:

Uzyskaj 267 lekcji wideo na 1C za darmo:

  • W polu URI przestrzeni nazw opisuje lokalizację identyfikatora zasobu.
  • — opis typów, z którymi będzie mogła współpracować przyszła usługa sieciowa.
  • Nazwa pliku publikacji— nazwa pliku *.1CWS, który zostanie umieszczony na serwerze WWW

Struktura usługi internetowej 1C

Przyjrzyjmy się strukturze serwisu internetowego:

DataExchange to sama usługa internetowa. UnloadData, LoadData - operacje, czyli zasadniczo opisy funkcji, które można wywołać poprzez protokół SOAP. ExchangePlanName, NodeCode itp. — wartości przesyłane do serwisu internetowego.

Moduł usług internetowych

Moduł zawiera najciekawszą rzecz - opis funkcji przyszłego serwisu internetowego. W naszym przypadku opisujemy funkcjonalność, która pozwala odbierać i wysyłać dane za pomocą standardowych mechanizmów wymiany 1C. Ponieważ Wymiana odbywa się pomiędzy jedną platformą - 1C, wówczas nie wymagają serializacji danych.

Sprawdzanie działania usługi http 1C na serwerze internetowym

Zacznę od tego, że kiedyś byłem zmuszony samodzielnie zajmować się serwisami WWW. Potem jakoś, krok po kroku, udało mi się opanować tę kwestię i zrozumieć, co i gdzie naciskać, aby wszystko zadziałało. Na szczęście konfiguracja, z którą musieliśmy pracować, była już wypełniona Można było na to spojrzeć za pomocą serwisów WWW i zrobić to przez analogię, a w Internecie udało mi się znaleźć wystarczającą liczbę artykułów na ten temat. I tak na przykładach (dla mnie to najlepszy sposób nauki) opanowałem tę materię i teraz już mnie nie przerażają.

WIĘC. Głównym zadaniem każdej integracji, czy to CD, usług sieciowych czy usług HTTP, jest przesłanie czegoś skądś, zrobienie z tym czegoś i zwrócenie odpowiedzi. W takim formacie rozważymy nową technologię.

W drzewie metadanych usługi HTTP znajdują się w gałęzi Ogólne:

Nowa usługa HTTP jest dodawana w taki sam sposób, jak każdy inny obiekt metadanych. Imię i synonim, jak chcesz. Ważny jest tutaj tylko „główny adres URL” - w rzeczywistości jest to identyfikator Usługa HTTP w tej bazie danych, tj. dokładnie to, co napiszesz w tej właściwości, przekażesz zewnętrznemu programiście (lub sobie) jako link do usługi.

Nie wiem, czy można tu pisać cyrylicą, ale żeby nie być wyśmiewanym w postępowym świecie, pisz po łacinie).

Ważna jest tutaj sama właściwość Template:

Korzystając ze wzoru możesz później odwołać się do danych, które zostały Ci przekazane. WIĘC: wszystkie dane, które chcesz otrzymać z zewnątrz, można podzielić na 2 bloki - obowiązkowy i opcjonalny.

Wymagane dane/parametry wpychamy go do szablonu, zatem jeśli osoba uzyskująca dostęp do usługi ich nie wypełni, to serwis a priori wygeneruje błąd, a opracowując tekst modułu obsługi, będziesz mieć pewność, że te dane tam się znajdują. Jak to się robi: w wierszu Wzorzec w nawiasach klamrowych „()” na przemian ze znakiem „/” wpisujemy nazwy zmiennych. Na przykład zdecydowanie potrzebujemy artykułu - wtedy piszemy /(artikul). Jeśli potrzebujemy uzyskać artykuł, nazwę i nazwę użytkownika, ciąg szablonu będzie wyglądał następująco: /(artikul) /(nazwa)/(użytkownik) itp. Każdy z tych parametrów w tekście modułu obsługi można uzyskać w następujący sposób: Request.ParametersURL["<имя параметра>"]. Jeśli nie ma żadnych wymaganych, szablon wygląda następująco: /*.

Dane opcjonalne, które chcemy otrzymać za pośrednictwem usługi, NIE są opisane w szablonie. Budując linki umożliwiające dostęp do usługi, są one opisane na końcu linku po znaku „?”, oddzielone znakiem ampersand „&” i mają strukturę<имя параметра>=<значение параметра>. W tekście modułu obsługi można uzyskać do nich dostęp za pomocą następującej konstrukcji: Request.RequestParameters.Get("<имя параметра>"). ALE: należy pamiętać, że ponieważ nie są one wymagane, mogą nie istnieć; w związku z tym sprawdzamy wartość Niezdefiniowane.

Następnie dodajemy nową metodę dla naszego szablonu. Ważna jest tutaj właściwość metody HTTP. Jest ich ogromna liczba, ALE nie będziemy wchodzić we wszystkie szczegóły. Do realizacji któregokolwiek ze swoich zadań potrzebujesz tylko 2: DOSTAWAĆ I POST.

Jak wybrać: Jeśli do Twojej pracy wystarczy to, co opisaliśmy w dwóch poprzednich akapitach, tj. Możesz uzyskać wszystkie potrzebne dane, korzystając z obowiązkowych i opcjonalnych parametrów samego żądania, wtedy bierzemy GET. W takim przypadku w dowolnej przeglądarce, jeśli poprawnie wpiszesz pasek adresu, zobaczysz wynik swojej usługi HTTP - ZYSK! Jeśli nagle, aby Twoja usługa działała, potrzebujesz danych w bardziej złożonej formie (na przykład XML lub coś innego), czegoś, czego nie da się upchnąć w prostym pasku adresu, wykonaj POST. Wadą jest to, że takie łatwe sprawdzenie przez pasek adresu przeglądarki, jak w przypadku GET, nie zadziała, ale w Internecie można łatwo znaleźć strony, na których można sprawdzić usługi metodą POST (na przykład strona https:/ /www.hurl.it). Jeśli wybrano metodę POST, a następnie żądanie oprócz URL (adresy) pojawia się treść, w którą możesz upchnąć wszystko, a w procedurze obsługi metody uzyskać do niej dostęp poprzez konstrukcję Request.GetBodyAsString(). Każdy szablon może mieć zarówno metodę GET, jak i POST. Będą miały odpowiednio różne procedury obsługi, a 1C, w zależności od sposobu wysłania żądania, wybierze tę lub inną metodę.

Procedura obsługi usług HTTP to funkcja, która zawsze zwraca wartość typu HTTPServiceResponse, która jest budowana przez konstruktor New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- to jest liczba, żeby nie martwić się o wybór tego, co napisać, piszemy: 200 - jeśli wszystko jest w porządku i zwrócisz jakąś wartość logiczną, 400 - jeśli wystąpi błąd i zwrócisz opis błędu . Ten typ ma różne metody (można to przeczytać w asystencie składni, tam wszystko jest jasno napisane). Ponownie, zawsze możesz zwrócić wszystko, czego potrzebujesz w postaci ciągu znaków — metoda SetBodyFromString(). (jeden mały trik: jeśli zwrócisz HTML i chcesz, aby przeglądarka pięknie go wyświetliła na ekranie, gdy wpiszesz adres swojej usługi w pasku adresu, w odpowiedzi właściwości Headings napisz: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - tym samym wskazujesz, że nie jest to tylko zestaw znaków, ale HTML i należy go odpowiednio wyświetlić)

Po wykonaniu wszystkich czynności należy opublikować usługę HTTP. Odbywa się to na komputerze z zainstalowanym serwerem WWW (o ustawieniach nie będę się rozpisywał, artykułów jest mnóstwo) poprzez menu:

Administracja - Publikowanie na serwerze WWW.

Dostępna jest zakładka Usługi HTTP. Zaznacz pola i kliknij „Opublikuj”

Więc, otrzymaliśmy gotową usługę HTTP. JAK się z nim skontaktować? Jeżeli korzystamy z metody GET to w pasku adresu przeglądarki wpisujemy: http://<имя веб сервера>/<имя базы>/hs/<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

I na koniec jeszcze raz na zdjęciach))):

Uwaga! Teraz kurs odbywa się również wieczorem od 18:30 do 21:30 w formacie zanurzeniowym.

Podczas kursu zdobędziesz praktyczne umiejętności wykorzystania następujących mechanizmów platformy 1C:Enterprise 8:

  • Usługi WWW (protokół SOAP)
  • formacie JSON
  • oInterfejs danych (automatycznie usługa REST)
  • Usługi HTTP

WAŻNY!!! Kurs przeznaczony jest dla programistów posiadających umiejętności pracy z mechanizmem XDTO lub którzy wcześniej ukończyli kurs.

Opis i program kursu:

Cena kursu WEB obejmuje:

  • 2 tygodnie kursu, 2 webinary z lektorem
  • certyfikat Centrum Szkoleniowego 1C nr 3 (pod warunkiem odbycia szkolenia praktycznego)

Koszt pełnego kursu zanurzeniowego obejmuje:

  • 2 dni od 10:00 do 17:00 lub 16:00 od 18:30 do 21:30
  • notatki, słuchawki
  • obiady, przerwy kawowe
  • dostęp do aktualnych materiałów wideo przez 2 lata po ukończeniu kursu
  • certyfikat 1C-Centrum Szkoleniowego nr 3

Formy szkoleniowe

Szkolenia internetowe

Co to za format:Proponowany format łączy w sobie wiele zalet nauczania na odległość z elementem zajęć bezpośrednich, reprezentowanych przez materiały wideo i konsultacje online.
Kurs WEB składa się z filmów, zadań praktycznych i seminariów internetowych z nauczycielami. Wszystkie materiały szkoleniowe są dostępne 24 godziny na dobę, 7 dni w tygodniu przez Internet, dzięki czemu możesz uczyć się w dogodnym dla siebie czasie. Kurs jest podzielony na zajęcia. Podczas lekcji omawiane są materiały dotyczące aktualnego tematu, przeprowadzane są warsztaty i zadawane są pytania nauczycielowi. Na zakończenie każdej lekcji odbywa się webinar, podczas którego nauczyciel analizuje wszystkie otrzymane pytania, typowe błędy i wyjaśnia prawidłowe rozwiązanie. Nagrania webinarów dostępne są w portalu. W ten sposób odbywa się kilka zajęć jedna po drugiej. Na koniec następuje końcowa samodzielna praca i finałowe webinarium.

Czas trwania: 2 tygodnie

Co to za format:


Czas trwania:16 godzin akademickich

Co to za format:Kurs zanurzeniowy w pełnym wymiarze godzin to format, który łączy w sobie wszystkie zalety szkolenia w pełnym wymiarze godzin, nauki na odległość i szkolenia indywidualnego. Zajęcia odbywają się w wyposażonej sali, samodzielnie zapoznajesz się z materiałami kursu (filmy krok po kroku) i przeprowadzasz warsztaty. Jednocześnie na widowni znajduje się lektor, który w każdej chwili jest gotowy odpowiedzieć na pytania i pomóc w rozwiązaniu problemów praktycznych, a także sprawdzić poprawność ich realizacji.
Korzyści – indywidualne konsultacje z lektorem w sprawie Twoich pytań, tempo uzupełniania materiału jest dla Ciebie odpowiednie.
Wszystko to zapewnia bardziej dogłębną analizę materiału kursu.
Kurs ten możesz odbyć nie wychodząc z miejsca pracy z pełnym skutkiem obecności lektora tam, gdzie przebywa kursant! Jeśli ta oferta Cię interesuje, zadzwoń do nas!

Czas trwania:16 godzin akademickich