Biz faylı 1c veb xidməti ilə qəbul edirik. Xarici proqramlardan Terrasoft Veb xidmətləri ilə işləmək. Dinamik WS bağlantısından istifadə nümunəsi

Bu gün WEB xidmətlərindən demək olar ki, hər yerdə istifadə olunur - onlar bizə təyyarə və qatarların uçuşları, valyuta məzənnələri və hava haqqında məlumat verir. Təəccüblü deyil ki, 1C həm təchizatçı, həm də istehlakçı kimi çıxış etməyə imkan verən öz WEB xidmətlərini yaratmaq qabiliyyətinə malikdir. Bu mexanizm 1C: Enterprise 8.3 platformasında qurulub və tərtibatçılar hətta əlavə edə bilərlər tipik konfiqurasiya“WEB-xidmətlər” tipli öz obyektləri. Onların arxitekturası digər proqram təminatı ilə məlumat mübadiləsinə imkan verən xidmətlər dəsti üzərində qurulub.

1C veb xidmətinin yaradılması

1C WEB-xidmətlərinin əsas üstünlüklərindən biri də informasiya təhlükəsizliyi məlumatlarına birbaşa çıxışın verilməsinə ehtiyacın olmamasıdır. Düzgün konfiqurasiya edilmiş 1C veb xidməti digər proqramlara xaricdən funksiyalardan istifadə etməyə imkan verir. Belə hallarda, məlumatların istifadə hüququnu təyin etmək verilmiş parametrlər Funksiya özü tərtibatçı tərəfindən müəyyən edilmiş qaydalara əməl etməlidir.

1C-də veb xidməti necə yaratmaq olar?

1C sisteminin müəyyən bir funksiyasının xarici proqram təminatı üçün əlçatan olması üçün aşağıdakı hərəkətlər alqoritmini yerinə yetirməlisiniz:

  1. Konfiqurasiyaya gedin və ağacın müəyyən bir filialına WEB xidmət obyekti əlavə edin;
  2. Funksionallığımızın yerinə yetirə biləcəyi bütün əməliyyatları təsvir edin. Funksiyaların təsviri modulda quraşdırılmış 1C dilində aparılır;
  3. Veb xidməti funksiyalarının parametrlərinin təsvirini əlavə edin. Qeyd edək ki, məlumat növləri ilə bağlı təsvir edilmişdir mövcud növlər platformanın 8.1 versiyasında ortaya çıxan XDTO mexanizmi;
  4. Yaradılmış WEB xidmətini serverdə dərc edin. 1C platformasında quraşdırılmış mexanizm aşağıdakı standartları dəstəkləyir:
  • SSL/TLS
  • WS-I BP

Sadə bir WEB xidmətinin yaradılması nümunəsi

WEB xidmətləri mexanizminin işini ən aydın şəkildə nümayiş etdirmək üçün bir nümunə yaradaq - daxil edilmiş sətirin uzunluğunu təyin edən bir funksional. Proqram təminatı sorğu parametri kimi sətir keçəcək və 1C-də təsvir edilən funksiya simvolların sayını qaytaracaq. Yaradarkən yadda saxlamaq lazımdır ki, bu mexanizmin nəşri müxtəlif proqram təminatının ona daxil olmasına imkan verəcək. Hər proqram təminatı kiril əlifbasını qavramaq iqtidarında olmadığından, biz Latın hərflərindən istifadə edərək konfiqurasiya obyektlərini adlandıracağıq.

Konfiquratoru açın, ağacda "WEB xidmətləri" filialını tapın və yeni xidmət "wa_LengthString" əlavə edin. Siz həmçinin "Əməliyyatlar" sekmesinde yeni əməliyyat əlavə etməlisiniz. Gəlin onu "CalcLengthString" adlandıraq, xassələrdə qaytarılan dəyərin tipini - int və ya tam ədədi təyin edirik və onun daxilində "InputString" parametrini yaradırıq. Dəyər növünü sətir kimi buraxın.

İndi WEB xidmət modulunda CalcLengthString funksiyasının hərəkətini qeydiyyatdan keçirmək lazımdır. Bunun üçün yaradılmış funksiyanın xassələrini açın və "Prosedurun adı" giriş sahəsinin yanında, sağda böyüdücü şüşə şəklində düyməni basın. 1C avtomatik olaraq WEB xidmət modulumuzda funksiya yaradacaq və onu açacaq ki, CalcLengthString hərəkətini təsvir edək. Gəlin bundan istifadə edək və funksiyanın hərəkətini yazaq - giriş sətirinin uzunluğunu təyin edək.


Əslində bu, ən sadə WEB xidmətinin yaradılmasını tamamlayır. İndi bu xidməti "yerləşdirməlisiniz" ümumi girişüçüncü tərəf proqram təminatı və ya digər 1C sistemləri bu funksiyadan istifadə edə bilsin.

Yaradılan veb-xidməti funksionallığı ilə dərc edə bilməyimiz üçün sayta girişimiz olmalıdır. Xidməti dərc etməyə başlamazdan əvvəl yaradılan wa_LengthString modulunun xüsusiyyətlərində fayl adını yoxlamaq lazımdır. Aydın, sadə və "1cws" uzantısına malik olmalıdır.


İndi serverdə yaratdığımız WEB xidmətini dərc etməyin vaxtıdır. Bu funksiya platformanın 8.3 versiyasında ortaya çıxdı və bir çox şirkətlər artıq bu funksionallığın tam faydasını dərk ediblər. Nəşr etməyə başlamaq üçün konfiquratorda “İdarəetmə/Veb serverdə nəşr…” formasını açmalısınız.


Açılan pəncərədə bizə lazımdır veb quraşdırma 1C xidmətləri və müəyyən sahələrin doldurulması:

  • ad. Veb xidmətimizin təsvirinin saxlanacağı veb serverdəki qovluğu göstərir. Hərflərlə diqqətli olun, çünki serverlər bəzən böyük və kiçik hərfləri fərqləndirirlər;
  • Veb server. Siz kompüterdə quraşdırılmış serverlərdən birini seçməlisiniz;
  • Kataloq. Bağlantının qurulması üçün veb server məlumatlarının saxlandığı qovluğa gedən yolu seçməlisiniz. Yalnız latın hərflərindən istifadə olunur;
  • "Boolean" növünün iki xüsusiyyəti. Birincisi, veb müştəri vasitəsilə konfiqurasiyaya girişi konfiqurasiya etməliyiksə, bizim üçün faydalıdır. 1C xidmətini dərc etmək üçün ikinci bir işarə qoymalısınız.

İstədiyiniz WEB xidmətinin birinci sütunda qeyd qutusunun olduğunu yoxlamaq və "Dərc et" düyməsini sıxmaq qalır.


Bu mexanizm hələ də kifayət qədər yeni olduğundan, "Fayl əməliyyatını yerinə yetirərkən xəta ..." kimi bir səhvlə qarşılaşa bilərsiniz. Bu halda, sadəcə olaraq, "Yayımla" düyməsini təkrarlamaq lazımdır. Əksər hallarda bu kömək edir və siz veb-xidmət nəşrinin tamamlandığı barədə mesaj görəcəksiniz.

<имяСервера>.ru/<ИмяУказанногоКаталогаНаСервере>/ws/<НаименованиеФайла>.1cws?wsdl

Belə ünvan sorğusuna cavab olaraq brauzer XML faylının strukturunu göstərməlidir. Boş bir səhifə görürsünüzsə, xəta və ya anlaşılmaz personajlar(kodlaşdırma ilə bağlı problemlər), sonra bütün addımları yenidən yoxlamaq lazımdır. Serverin düzgün qurulduğuna və ona girişinizin olduğuna əmin olmaq da yaxşı fikirdir. 1C WEB xidmətinin uğurlu dərcindən sonra üçüncü tərəf proqramları ondan istifadə edə biləcək.

Çap (Ctrl+P)

1C: Enterprise-də Veb xidmətləri mexanizmi Xidmət yönümlü Arxitekturaya (SOA) dəstək vasitəsidir.
Xidmət yönümlü arxitektura bütün funksiyaların çağırıla bilən interfeyslərə malik müstəqil xidmətlər kimi müəyyən edildiyi proqram arxitekturasıdır. Bu xidmətlərə müəyyən ardıcıllıqla daxil olmaq konkret iş prosesini həyata keçirməyə imkan verir.
Xidmət Oriented Architecture təklif edir yeni yanaşma proqram təminatı resurslarının şəbəkə üzərindən göstərilən xidmətlər hesab edildiyi paylanmış informasiya sistemlərinin yaradılmasına. Bu yanaşma müəyyən biznes proseslərini dəstəkləmək üçün paylanmış komponentləri (xidmətləri) tez bir zamanda vahid həlldə birləşdirməyə imkan verir.
Veb xidmətləri mexanizmi 1C: Müəssisəni mürəkkəb paylanmış və heterojen sistemlərdə xidmətlər dəsti kimi istifadə etməyə, həmçinin digər sistemlərlə inteqrasiya etməyə imkan verir. sənaye sistemləri xidmət yönümlü arxitekturadan istifadə etməklə.
1C: Enterprise sistem konfiqurasiyası öz funksionallığını Veb xidmətləri vasitəsilə ixrac edə bilər. Veb xidmət tərifləri konfiqurasiya ağacında müəyyən edilir və onları veb serverdə dərc etməklə ixtiyari informasiya sistemləri üçün əlçatan olur.
Bundan əlavə, 1C: Enterprise həm konfiqurasiya ağacında müəyyən edilmiş statik keçidlər, həm də dinamik bağlantılar vasitəsilə üçüncü tərəfin veb xidmətlərinə daxil ola bilər, vasitələrlə yaradılmışdır daxili dil. düyü. 1. Veb xidmətləri

1C: Enterprise 8 sisteminin xidmət arxitekturasının mərkəzində xidmət meneceri dayanır. Xidmət meneceri aşağıdakı funksiyaları yerinə yetirir:
● infobazalara qoşulmalar hovuzunun idarə edilməsi;
● xidmətin WSDL təsviri üçün dəstək;
● SOAP protokolunun həyata keçirilməsi, mesajın seriallaşdırılması, müvafiq xidmətə zəng edilməsi.
Xidmət meneceri xidmət menecerindən mesajların qəbulu/ötürülməsi funksiyasını yerinə yetirən xidmət host prosesində işləyir. Xidmət hostu IIS və ya Apache veb serveri ola bilər.
Xidmət meneceri 1C: Enterprise sisteminin verilənlər bazası ilə qarşılıqlı əlaqənin baş verdiyi bir əlaqə hovuzunu ehtiva edir.
1C: Enterprise-də tətbiq olunan Veb xidmətləri mexanizmi aşağıdakı standartları dəstəkləyir:
● SOAP 1.1,
● SOAP 1.2,
● WSDL 1.1,
● WS-I Əsas Profil 1.1,
● HTTP 1.1,
● kriptoqrafik alqoritmlər də daxil olmaqla TLS 1.x (serverə heç bir müştəri sertifikatının ötürülməsinə ehtiyac olmadığı halda TLS 1.1 və 1.2 dəstəklənir),
GOST R 34.10-2001, R 34.10-94, R 34.11-94 və 28147-89 uyğun;
● MTOM;
● Doğrulama: Əsas, NTLM/Danışıqlar.

Veb xidmətinə daxil olmaq üçün aşağıdakı kimi formalaşan ünvandan istifadə etməlisiniz:

http://host/base/ws/WebServiceName

Http://host/base/ws/WebServiceAddress.

Ünvanın komponentlərinə daha yaxından nəzər salaq:

http://host/base, məsələn, veb müştəridən istifadə edən infobazaya daxil olmaq üçün istifadə edilən ümumi URL-dir. Əgər ayırıcılar varsa, Z parametrindən istifadə edərək ayırıcı dəyərlərin təyin edilməsi dəstəklənmir komanda xətti müştəri tətbiqinin işə salınması.

ws veb xidmətinə daxil olunduğunu göstərir (HTTP xidmətinə girişi müəyyən edən hs-dən fərqli olaraq, buraya baxın).

WebServiceName - Veb xidmətinin adı. Veb xidmət obyektinin xassəsinə təyin edin.

WebService Address - Veb xidmətinə daxil olmaq üçün alternativ adı təsvir edir. Veb-xidmət obyektinin Publish File Name xassəsində təyin edilir.Veb xidməti dərc edərkən dəyişdirilə bilər.

Veb xidmətinin WebServiceName adı və WebServiceAddress ünvanı ilə edilən zənglər ekvivalentdir.

Veb xidmətləri vasitəsilə funksionallığın ifşası

1C: Müəssisə sisteminin funksionallığını veb xidmətlərinin xarici istehlakçıları üçün əlçatan etmək üçün aşağıdakıları etməlisiniz:
● konfiqurasiyada lazımi sayda Veb xidmətləri yaratmaq,
● istifadə edərək Veb xidmətləri dərc edin xüsusi alət konfiqurator.
Veb xidmətlərinin dərc edilməsi prosedurunun təsviri və 1C: Enterprise-ə daxil olmaq üçün Reverse Proxy-dən istifadənin təsviri ITS diskində 7-ci fəsildə yazılmışdır.
Veb xidmətinin yaradılması:
● Veb xidməti konfiqurasiya obyektinin metadata ağacına əlavə edilməsi,
● yaradılmış Veb xidmətin yerinə yetirə biləcəyi əməliyyatları təsvir etməklə,
● Veb xidmət əməliyyatlarının parametrlərinin təsviri.
Veb xidməti konfiqurasiya obyekti müəyyən Veb xidməti əməliyyatları çağırıldıqda yerinə yetirilən daxili dildə prosedurlar yaradan moduldan ibarətdir. Veb xidməti əməliyyat parametrlərinin növləri XDTO tiplərindən istifadə etməklə təsvir edilir və ya XDTO dəyərləri, ya da XDTO obyektləri ola bilər.
Veb xidmətinə zəng belə olur:
● ilə əlaqə hovuzundan uyğun əlaqə seçilir məlumat bazası; tələb olunan əlaqə olmadıqda, əlaqə yaradılır;
● yeni sessiya yaradılır və yaradılmış sessiya üçün hadisə qaldırılır SettingSessionParameters(sessiya modulunda);
● tələb olunan Veb xidməti metodu çağırılır və işləyici işə salınır SettingSessionParameters()(sessiya modulunda) hər dəfə açılmamış sessiya parametrinə daxil olduqda.
MƏSLƏHƏT. Hadisə idarəedicisində resurs tutumlu əməliyyatların yerinə yetirilməsi tövsiyə edilmir SettingSessionParameters.
Hadisə SettingSessionParameters Sessiya modulu imtiyazlı rejimdə serverdə çağırılır. Çağırılan xidmət modulu yerinə yetirilir
server normal rejimdə.
Sessiya modulu hər hansı 1C: Enterprise Veb xidmətinə zəng edərkən sessiya parametrlərini işə salmaq və müəyyən əmrlər toplusunu yerinə yetirmək üçün istifadə olunur.

Nümunə Veb Xidmətinin Tətbiqi

Məsələn, 1C: Müəssisə sisteminin veb xidmətini yaratmalısınız, bu, qəbul edilmiş faktura nömrəsinə uyğun olaraq cədvəl bölməsinin tərkibini qaytarmalıdır. HTTP xidmətlərindən istifadə edən oxşar nümunə başqa bir məqalədə müzakirə olunacaq.
Qaytarılan dəyəri təsvir etmək üçün XDTO paketi yaradaq DataExpense fakturası ad sahəsi ilə http://www.MyCompany.ru/shipment,üç növ XDTO obyekti ehtiva edir:
● Nomenklatura – Nomenklatura axtarış elementinin məlumatlarının ötürülməsi üçün. Bu tip XDTO obyekti aşağıdakı xüsusiyyətlərə malik olacaq:
● Ad – adlar sahəsindən sətir tipi
Tam adı– ad sahəsindən sətir tipi http://www.w3.org/2001/XMLSchema;
● Barkod - ad sahəsindən sətir növü http://www.w3.org/2001/XMLSchema;
● PurchasingPrice – ad sahəsindən int yazın http://www.w3.org/2001/XMLSchema.
StringInvoiceInvoice– fakturanın bir sətirinin məlumatlarını ötürmək. Bu tip XDTO obyekti aşağıdakı xüsusiyyətlərə malik olacaq:
● Nomenklatura – adlar sahəsindən Nomenklatura yazın; XDTO obyektinə istinaddır,
yuxarıda müəyyən etdiyimiz;
● Quantity - http://www.w3.org/2001/XMLSchema ad məkanından int yazın;
● Qiymət – http://www.w3.org/2001/XMLSchema ad məkanından int yazın;
● Sum http://www.w3.org/2001/XMLSchema ad sahəsinin int növüdür.
Satış fakturası– fakturanın bütün sətirlərinin məlumatlarını ötürmək. Bu tip XDTO obyekti tək xassədən ibarət olacaq:
● Tərkibi - növü StringInvoiceInvoice ad sahəsindən http://www.MyCompany.ru/shipment. XDTO obyektinə istinadı təmsil edir,
yuxarıda müəyyən etdiyimiz. Bu xüsusiyyətin limitsiz dəyərlər dəstini ehtiva etməsi üçün onu təyin etməlisiniz
xüsusiyyət Yuxarı -1 ilə bağlıdır.
Lazımi XDTO növləri yaradıldıqdan sonra konfiqurasiyaya yeni Veb xidməti əlavə edilməlidir DataExpense fakturası aşağıdakı əmlak dəyərləri ilə:

Ad sahəsi URI - http://www.MyCompany.ru/shipment;
● XDTO Paketləri - DataExpense fakturası;
Nəşr faylının adı– göndərmə.1cws .
Yaradılmış Veb xidmətində aşağıdakı xüsusiyyət dəyərləri ilə Get əməliyyatı olmalıdır:
qaytarma növüSatış fakturası ad sahəsindən http://www.MyCompany.ru/shipment;
Mümkün boş dəyər- quraşdırılmış;
● Prosedurun adı - Get .
Get əməliyyatı üçün DocumentNumber parametrini aşağıdakı xüsusiyyət qiymətləri ilə təyin edin:
● Dəyər növü - ad sahəsindən sətri yazın http://www.w3.org/2001/XMLSchema;
Transfer İstiqaməti - Giriş.
Bundan sonra siz yaradılmış Veb xidmətin modulunu açmalı və Get() funksiyasını bu modulda yerləşdirməlisiniz ki, bu Veb xidmət çağırıldıqda icra olunacaq.

Alın (SənədNömrəsi) İxrac funksiyası // Qəbul edilmiş nömrə ilə faktura obyektini əldə edin DocumentReference = Document.Invoice. FindByNumber(SənədNömrəsi, CurrentDate());Əgər DocumentReference.Empty() Sonra Müəyyən edilməmiş qayıt; EndIf; Sənəd = DocumentReference.GetObject(); // XDTO obyektlərinin növlərini əldə edin Nomenklatura Növü= FactoryXDTO.Type("http://www.MyCompany.ru/shipment", "Nomenklatura"); Gedən Faktura Növü = FabrikaXDTO.Type("http://www.MyCompany.ru/shipment", "Qaimə-faktura"); StringInvoiceInvoiceType = FactoryXDTO.Type("http://www.MyCompany.ru/shipment", "Fatura xətti"); // XDTO faktura obyekti yaradın Gedən faktura = FabrikaXDTO. Yarat(Konsiqnasiya fakturasının növü); Document.Composition Loop-dan Hər Sətir Sənədi üçün // Faktura xətti XDTO obyektləri yaradın // və nomenklatura StringInvoiceInvoice = FabrikaXDTO.Create(StringInvoiceType); Nomenklatura = FabrikaXDTO.Yarat(Nomenklatura Növü); // Element xassələrini doldurun Nomenklatura.Ad = Docstring.Nomenclature.Name; Nomenclature.FullName = DocumentString.Nomenclature.FullName; Nomenclature.BarCode = DocumentString.Nomenclature.BarCode; Nomenclature.PurchasePrice = Docstring.Nomenclature.PurchasePrice; // Faktura xəttinin xüsusiyyətlərini doldurun ci Faktura xətti Nomenklatura = Nomenklatura; İnvoice Line.Quantity = Document Line.Quantity; Faktura Xətti.Qiymət = Sənəd Xətti.Qiymət; Xərc faktura xətti Məbləğ = Sənəd xətti Məbləğ; // Faktura xətti əlavə edin Faktura.Tərkibi.Əlavə(qaimə-faktura xətti); EndCycle; // Fakturanı qaytarın Qayıt Satış fakturası; Son funksiyalar

Üçüncü tərəfin veb xidmətləri ilə işləmək

1C:Müəssisə digər provayderlər tərəfindən təqdim olunan veb-xidmətlərdən bir neçə yolla istifadə edə bilər:
● konfiqurasiya ağacında yaradılmış statik keçidlərdən istifadə etməklə;
● daxili dil vasitəsilə yaradılmış dinamik keçidlərdən istifadə;
● əvvəlki üsulların kombinasiyası.
Statik keçidlərdən istifadənin üstünlüyü daha çox sürətdir, çünki provayderin veb-xidmətinin təsviri bir dəfə, link yaradıldıqda əldə edilir. Daha sonra istinad edərkən bu veb xidməti mövcud veb xidmət təsvirindən istifadə edilir.
Dinamik bağlantılardan istifadə edərkən təchizatçının veb-xidmətinin təsviri veb-xidmət hər dəfə çağırılanda 1C: Enterprise tərəfindən əldə ediləcək və bu, təbii olaraq bu veb xidməti ilə işi ləngidir. Bununla belə, bu yanaşmanın üstünlüyü provayderin veb-xidmətinin müasir təsvirini əldə etmək imkanıdır. Statik keçidlərdən istifadə edərkən veb xidmətin faktiki təsvirini əldə etmək üçün siz konfiquratordan istifadə edərək WSDL təsvirini yenidən idxal etməli və dəyişdirilmiş konfiqurasiyanı yadda saxlamalısınız.
Tətbiq olunan həllərdən istifadə edərkən, eyni veb xidməti müxtəlif ünvanlarda (URL) təqdim edildikdə, lakin tamamilə eyni təsvirə (WSDL) malik olduqda vəziyyət yarana bilər. Bu halda, konfiqurasiyaya veb-xidmətin təsvirini yükləməyə ehtiyac var (konfiqurasiya obyektləri ağacında obyekt yaradın), lakin istifadə zamanı veb xidmətin yerləşdiyi konkret ünvanı göstərin. Kombinə edilmiş üsul bu şəkildə işləməyə imkan verir. Nümunə olaraq aşağıdakı vəziyyəti nəzərdən keçirin: yerinə yetirən təkrarlanan veb xidməti var
bəzi funksiya. 1C: Enterprise-də yazılmış tətbiqi həll bu xidmətin xidmətlərindən istifadə edir, xidmətin ünvanı fərqli ola bilər (xidmət təkrarlanır) və təsviri sabitdir. Bundan sonra, veb xidmətin təsviri tətbiq həllinə yüklənə bilər və tətbiq həllinin parametrlərində əməliyyat zamanı istifadə ediləcək (ünvan) xidmətin müəyyən bir nümunəsinin ünvanının daxil edilməsini təmin edin.
Başqa bir yol da mövcuddur: dinamik keçid istifadə olunur, lakin veb-xidmətin yerinin ünvanı təsvir faylından (WSDL) əldə edilmir, lakin obyekt yaradılan zaman birbaşa göstərilir.
Konfiquratorda Veb xidmətinin təsvirini yükləməyə çalışarkən (statik keçid yaratmaq) və ya dinamik keçiddən (WSDefinition obyektindən istifadə etməklə) sistem yüklənmiş Veb xidmət təsvirini (WSDL) yoxlayır. Veb xidmətinin təsvirində səhv olarsa (1C: Enterprise sisteminin "nöqteyi-nəzərindən"), onda təsvir yüklənməyəcək və istisna yaradılacaq. İstisna mətnində yükləmənin baş verməməsinin səbəblərinin ətraflı diaqnozu olacaqdır. WSDL xətaları rast gəlinmə sırasına görə sıralanır. Hər bir WSDL xətası aşağıdakıları təfərrüatlandıran bir giriş ehtiva edir:

<Тип элемента с ошибкой>.<Имя>
[<Тип элемента с ошибкой>.<Имя>[…]]
<Описание ошибки>
<Тип элемента с ошибкой>
<Имя>
Bu təsvirdə:
● Xəta element növü - WSDL element növü. Çox vaxt Veb xidmətini təsvir edən xml faylındakı etiket adına uyğun gəlir.
● Error Description - Xüsusi xətanın təsviri.
● Ad - Xətanın baş verdiyi WSDL obyektinin adı.

Statik WS keçidindən istifadə nümunəsi

Üçüncü tərəfin veb xidmətlərindən istifadə nümunəsi olaraq, yuxarıdakı nümunədə əvvəllər yaradılmış Veb xidmətinə daxil olmağı düşünün.

Əvvəlcə dərc edilmiş xidmətə istinad edən InvoiceData adlı konfiqurasiya ağacına yeni WS-istinad konfiqurasiya obyekti əlavə edirsiniz. Bunu etmək üçün dərc edilmiş xidmətin WSDL təsvirini idxal edin və URL-i kimi göstərin http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl. WSDL təsvirinin idxalının təsviri başqa bir məqalədə yazılmışdır.
Bundan sonra, məsələn, qəbz modulunda aşağıdakı proseduru yarada bilərsiniz. O doldurur cədvəl hissəsi təchizatçının veb xidmətindən istifadə edərək alınan tədarükçü faktura məlumatları ilə sənəd.

Prosedur GetDataInvoice(Təchizatçı faktura nömrəsi) Proksi = WSReferences.InvoiceData. CreateWSProxy("http://www.MyCompany.ru/shipment", "Qaimə-faktura məlumatları", "Faktura məlumatları"); DataInvoice = Proxy.Get(); Əgər DataInvoice = Müəyyən edilməmiş Sonra Qayıdış; EndIf; // Daxil olan fakturanı alınan məlumatlarla doldurun DataInvoice.Composition Loop-dan Hər Sətir Faktura üçün NewString = DocumentObject.Content.Add(); NewString.Quantity = StringInc.Quantity; NewLine.Price = LineInc.Price; NewLine.Amount = LineInc.Amount; // Keçirilmiş məlumatlara görə nomenklaturanın bəndini tapın // (məsələn, barkod ilə) NewString.Nomenklatura = Directories.Nomenklatura. FindBy Props("Barkod", StringInk.Nomenklatura.BarCode); EndCycle; EndProcedure

Xidmətin real yerinin ünvanı konfiqurasiyaya veb xidmət təsvirini yükləyərkən istifadə edilən ünvandan fərqlidirsə,
Bu yeni ünvan WSProxy obyekti yaradılarkən açıq şəkildə göstərilməlidir:

Dinamik WS bağlantısından istifadə nümunəsi

Dinamik keçiddən istifadə statik keçiddən yalnız WS proksisinin yaradılması üsulu ilə fərqlənir və konfiqurasiya ağacında WS linki yaratmağa ehtiyac yoxdur.
Əvvəlki bölmədə təqdim olunan nümunə ilə müqayisədə, statik keçid əsasında proksi yaratmaqdan fərqli olaraq, dinamik keçiddən istifadə edərkən WS proksi konstruktordan istifadə etməklə aşağıdakı kimi yaradılır:

// WS tərifi əsasında WS proxy yaradın
Tərif = Yeni WSDTəriflər (“http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl”);
Proksi = Yeni WSProxy (Tərif , “http://www.MyCompany.ru/shipment”, “Fatura Məlumatı”, “Faktura Məlumat Sabunu”);
Statik linkə əsaslanan WS proxy-nin yaradılması belə görünür:

// Linkə əsasən WS proxy yaradın
Proksi = WSReferences.InvoiceData. WSProxy yaradın (“http://www.MyCompany.ru/shipment”, “Fatura Məlumatı”, “Fatura Məlumatı”);
Xidmətin faktiki yerləşdiyi ünvanın ünvanı veb xidmət tərifini yaratmaq üçün istifadə edilən WSDL faylında göstərilən ünvandan fərqlidirsə, yeni ünvan veb xidmət tərifi əsasında WSProxy obyekti yaradılarkən açıq şəkildə göstərilməlidir:

// WS tərifi əsasında WS proxy yaradın Tərif = Yeni SDTəriflər ("http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl"); Proksi = Yeni WSProxy(Tərif, "http://www.MyCompany.ru/shipment", "İnvoice Data", "Invoice DataSoap",);

Veb Xidmət Xüsusiyyətlərini Redaktə etmək

Əsas sekmesinde obyektin adını, sinonimini və şərhini daxil edin.
Əməliyyatlar sekmesinde tabeli obyektlər Əməliyyatlar yaradılır və bu da öz növbəsində tabeli obyektlərə malik ola bilər Obyektlərlə işləmək üçün tələb olunan parametrlər bu tipdən. Tabeliyində olan obyektlərin təsviri xüsusiyyətlər palitrasında yerinə yetirilir.

Xüsusiyyətlər "Əməliyyatlar"

Konfiqurasiya obyektlərinin ümumi xassələrinə əlavə olaraq, Veb xidməti əməliyyatı aşağıdakı xüsusiyyətləri ehtiva edir:

● Return Type - Veb xidməti əməliyyatı tərəfindən qaytarılan dəyər növü. XDTO dəyər növü və ya obyekt növü ola bilər
XDTO.
● Can be null - Qaytarılan dəyərin sıfır ola biləcəyini göstərir.
● Tranzaksiyada - Veb xidmət modul kodunun əməliyyatda icra edilib-edilməyəcəyini göstərir. Mülk təyin olunarsa, onda Veb xidməti çağırıldıqda, əməliyyat avtomatik olaraq başlayacaq və Veb xidməti başa çatdıqda, əməliyyat ya həyata keçiriləcək, ya da əməliyyat geri qaytarılacaq (icranın nəticələrindən asılı olaraq). Mülk təyin edilmədikdə, Veb xidmət modulunun icrasına başladıqda
əməliyyat başlamayacaq.
● Metod Adı - Bu xassə çağırıldıqda icra ediləcək Veb xidmət modulunun ixrac edilmiş prosedurunun adı.
Alt sistemlər nişanı bu tip obyektlərin hansı alt sistemlərə aid olduğunu göstərir.
Digər sekmesinde aşağıdakı xüsusiyyətlər müəyyən edilir:
● Ad məkanı URI - Veb xidmətinin ad sahəsi URI-ni ehtiva edir. Hər bir Veb xidməti özünəməxsus şəkildə müəyyən edilə bilər.
adı və aid olduğu ad sahəsinin URI-si. Xidmət ad sahəsi artıq istifadədə olan və ya digər təşkilatlar tərəfindən qorunan məlum ad məkanları ilə eyni olmamalıdır. Tövsiyə olunur ki, xidmət ad sahəsinə Veb xidmətini inkişaf etdirən təşkilata xas olan fraqment daxil edilsin. Məsələn, Promresurs adlı bir təşkilat üçün bütün ad boşluqlarını http://promresurs.com kimi bir prefikslə başlamağın mənası var. Sonra Veb xidmətinin ad sahəsinin URI-si belə görünəcək http://promresurs.com/public/services/OurService.
● XDTO paketləri - növləri əməliyyat qaytarma növləri və Veb xidməti əməliyyat parametrləri növləri kimi istifadə edilə bilən XDTO paketlərinin siyahısı.
● Publish File Name - Veb serverdə yerləşən Veb xidmət təsviri faylının adı.
Modul düyməsi Veb xidmət modulu redaktorunu açır.

"Parametr" xüsusiyyətləri
Konfiqurasiya obyektlərinin ümumi xassələrinə əlavə olaraq, Veb xidməti əməliyyat parametri aşağıdakı xüsusiyyətləri ehtiva edir:
● Dəyər Tipi - Veb xidməti əməliyyat parametrinin dəyər növü. XDTO dəyər növü və ya XDTO obyekt növü ola bilər.
● Boş ola bilər - əməliyyat parametrinin dəyərinin qeyri-müəyyən qiymət ala biləcəyini göstərir.
● Transfer İstiqaməti - İstifadə edərək məlumat ötürülməsi istiqamətini təyin edir verilmiş parametr. Mümkün dəyərlər:
● Daxiletmə - məlumatların Veb xidmətə ötürülməsi üçün parametrdən istifadə edildiyini bildirir;
● Çıxış - parametrin Veb xidmətindən məlumatların qəbulu üçün istifadə edildiyini bildirir;
● Giriş-Çıxış - o deməkdir ki, parametr həm məlumatların ötürülməsi, həm də Veb xidmətindən məlumatların qəbulu üçün istifadə edilə bilər.


Açar sözlər: veb xidməti, veb xidməti, SOAP, WSDL, ws linki

İmtina və istifadə şərtləri

Bu məqalədə təsadüfən qeyd olunan bütün ticarət nişanları müvafiq sahiblərinə məxsusdur.
Bu məqalə Creative Commons Attribution-Share Alike 3.0 Unported License altında dərc edilmişdir. http://creativecommons.org/licenses/by-sa/3.0/

Başqa bir imtina (bir çox dəfədən sonra)

1C: Enterprise 8 platforması daim inkişaf edir. Bununla əlaqədar olaraq, bu məqalədə təqdim olunan kod, in son versiyalar platforma xəta verəcək. Bu, xüsusən də veb-xidmət proxy obyektinin metodlarının çağırılması qaydasının dəyişdiyinə görə baş verir: məsələn, mürəkkəb obyektlər müvafiq xidmətin Fabrikasından istifadə edərək açıq şəkildə müvafiq tipli XDTO Obyektinə çevrilməlidir. . Bu barədə forumumuzda və ya "1C: Müəssisələrin İnteqrasiya Texnologiyaları" kitabında oxuya bilərsiniz http://v8.1c.ru/metod/books/book.jsp?id=288

Giriş

Göründüyü zaman yeni versiya bəzi proqram məhsulu, sonra təbii olaraq, ilk növbədə, onda nə yeni olduğunu başa düşmək istəyirəm. "1C: Enterprise 8.1" vəziyyətində veb xidmətləri mənim üçün belə yeni bir "xüsusiyyət" oldu. Bu texnologiya uzun müddətdir kompüter standartları ilə mövcud olduğundan veb xidmətləri haqqında çox yazılıb və deyilib. Buna görə də özümü təkrarlamayacağam, hər kəsi məlumat üçün Yandex-ə göndərirəm. Buraxılışla bunu deyim yeni nəşr 1C:Enterprise 8.1 platforması olan 1Snikov, öz doğma mühitində, belə deyək, veb-xidmətlər texnologiyasını yaratmaq və istifadə etmək imkanına malikdir. Bu yazıda sizə inkişaflarınızda xarici veb xidmətlərindən necə istifadə edəcəyinizi göstərmək istəyirəm.

Tamamilə "əlaqəsiz" olanlar üçün: "barmaqlarda" veb xidmətləri haqqında

TAMAM, xüsusi olaraq sizin üçün Bir az veb xidmətin nə olduğunu və niyə məhz bunu izah etməyə çalışacağam Bu Mənə platformanın belə “dadlı” yeniliyi kimi göründü. Bəlkə COM texnologiyası haqqında bilirsiniz və ya OLE haqqında nəsə eşitmisiniz? Gec-tez hər hansı bir şəxs bu texnologiya ilə qarşılaşacaq (xüsusən də bəzi "İşçilər" kataloqunu tez bir zamanda köçürmək lazımdırsa və kadrlar şöbəsi, bütün 1500 işçini yenidən sürmək ehtiyacını qabaqcadan görərək, sizi birinci yerə asmağa hazırdır. uyğun dırnaq).
Bəli və beləliklə, COM texnologiyasının mərkəzində ideya dayanır imkanlar bir tətbiqin proqram kodunu çağırmaq (və məlumatlara daxil olmaq) digər proqramdan. Üstəlik, imkanlar bunu fərdi prosedurlar və funksiyalar səviyyəsində deyil, ixtiyarına almaqla edin obyektlər başqa bir tətbiq. OLE-dən istifadə edərkən biz tətbiqimizdə " olan bir obyekt yaradırıq. nümayəndəsi"yaxud istəsəniz," sarğı" qarşılıqlı əlaqə yaratmaq istədiyimiz tətbiqin bəzi obyekti ("OLE-obyekt" və ya "COM-obyekt" adlanır). Bu "sarğı" obyekti vasitəsilə başqa bir tətbiqin obyektinin xüsusiyyətləri və metodları əlçatan olur. bizə və yalnız inkişaf etdiricisi olanlara Getmək tətbiqlər təsvirdə dərc edərək istifadə etməyimizə icazə verdi interfeys. (Yaxşı, mən cəngəlliyə girmək istəmədim, amma başqa şəkildə işləmir ...)
İndi bunu təsəvvür edək eyni proqram başqa bir kompüterdədir, hətta içərisində deyil yerli şəbəkə(DCOM, CORBA və digər abbreviaturalar belə hallarla yaxşı iş görür) və hardasa uzaqda, uzaqda İnternetdə. Məhz burada veb-servislər səhnəyə çıxır (həmçinin abbreviaturalarla tamamlanır: SOAP, WSDL və s.), bu halda sizə bu halda oxşar “hiylə” etməyə imkan verir: i.e. məlumat almaq və İnternetin digər tərəfindəki kompüterdə işləyən proqramın obyektlərini manipulyasiya etmək.
altında " xarici"veb xidməti ilə mən bəzilərinin təqdim etdiyi veb xidmətini başa düşəcəyəm təchizatçı xidmət (yəni bizim tətbiqimiz deyil.) Müvafiq olaraq, "daxili" altında - təqdim edəcəyimiz veb xidməti -dan daha doğrusu, əsaslanır tətbiqimiz. Xarici veb-xidmətlərdən istifadə edərkən başa düşmək lazımdır ki, “sarğı” obyekti bizim “yerli” tətbiqimizdə yaradılsa da, bu obyektin “icraçı kodu” bəlkə də dünyanın o biri tərəfindədir. Ancaq arasında mübadilə bizəonlar məşhur "artıları" (universallığı və strukturu) və "mənfiləri" (bloat) ilə indi hər yerdə yayılmış XML-də baş verir və köhnə http "ötürmə xətti" kimi istifadə olunur.
Oh, və internet trafiki haqqında unutmayın! Üstəlik, xarici veb xidmətləri vəziyyətində, əksəriyyəti məcbur olacaq gələn komponent.
Qalan hər şey Yandex-də. Daha da gedək...

Ayaqlar haradandır, yəni. qanadlar böyüyür

Eyni Yandex-də dolaşaraq, Aeroflot şirkətindən təyyarələrin gəlişi və gedişi haqqında real vaxt məlumat almağa imkan verən gözəl bir veb xidməti tapdım və "1C"-də bir növ "Hava limanı ekranı" düzəltməyə qərar verdim: Müəssisə". Xidmətin özü burada yaşayır: http://webservices.aeroflot.ru/desc_flightinfo.asp

Dedi: “Gedək!”

Başlamaq üçün boş "1C:Enterprise 8.1" konfiqurasiyasını yaratdım (bu yazının yazıldığı vaxt mənim ixtiyarımda platformanın 8.1.5.123 versiyası var idi). Sonra konfiqurasiyama WS-istinad tipli yeni bir obyekt əlavə etdim. İdxal edilmiş WSDL-nin URL-ni daxil etmək üçün təklif olunan sorğuya xidmət səhifəsində göstərilən WSDL faylına keçid daxil etdim: http://webservices.aeroflot.aero/flightstatus.wsdl (WSDL faylı təsviridir Ətraflı məlumat üçün Yandex-ə baxın) və yaradılmış obyekti fəxrlə "Aeroflot" adlandırdı. Bu obyektin üzərinə iki dəfə klikləməklə veb xidmətin strukturuna malik ağac əldə etdim.

Bu ağac 1Ska-nın gördüyü kimi veb xidmətin "portretidir". Ən maraqlısı “Veb xidmətləri” filialındadır: bu adlarlimanlar veb xidmətləri (əslində, WSDL faylı bir deyil, bir neçə veb xidmətini təsvir edə bilər, sonra hər bir veb xidməti üçün ayrıca filial yaradılacaq) və sadalanan üsulları veb xidməti. Bunlar, veb xidməti tərəfindən təqdim olunan məlumatlara girişi bir az aça biləcəyiniz "mövzular"dır. "Məlumat Modeli" bölməsi veb xidməti tərəfindən istifadə edilən məlumat tipli kitabxanaların təsvirini ehtiva edir.
Veb xidmətindən istifadə haqqında qısa məlumat adətən WSDL faylına keçidlə eyni yerdə tapıla bilər. Aeroflot vəziyyətində bu, http://webservices.aeroflot.aero/flightstatus.asmx səhifəsidir.

"Uçuş, sonra eniş..."

Veb xidməti ilə işləmək üçün konfiqurasiyaya "Scoreboard" emalını əlavə etdim və onda - əsas kimi təyin etdiyim bir forma. Formada "SelectAirport" seçim sahəsini, "Uçuş tarixi" giriş sahəsini, "Gəliş" və "Gediş" iki səhifədən ibarət "Skorboard" panelini qoydum, eyni zamanda panel xüsusiyyətlərində "Səhifələr üzrə payla" bayrağının işarəsini sildim, və cədvəl sahəsi "TableScoreboard".
Veb xidməti ilə qarşılıqlı əlaqə "sorğu-cavab" prinsipi ilə baş verir, veb-servis üçün xüsusi vasitəçi obyekt yaradılır. Buna görə "Aeroflot Service" formasının ixtiyari tipli bir atributunu əlavə etdim.
Xidmətin təsvirini diqqətlə oxusanız, görə bilərsiniz ki, veb-xidmət gəlişlər və gedişlər haqqında məlumatları müvafiq olaraq Gəliş və Gediş metodlarına edilən zənglər vasitəsilə təqdim edir. Bu zaman hər iki üsul hava limanının kodunu və istədiyiniz tarixi parametr kimi götürür. Bundan əlavə, veb-servis sistemdə məlumatların mövcud olduğu hava limanlarının siyahısını əldə etmək imkanı verir. Veb xidməti ilə qarşılıqlı əlaqənin aşağıdakı ssenarisi olduqca açıqdır:
1. Hava limanlarının siyahısını əldə edin;
2. İstədiyiniz hava limanını və tarixi seçin;
3. Gəlişlər və ya gedişlər haqqında məlumat əldə edin;
Ancaq veb xidmətinə daxil olmamışdan əvvəl, açıq işləyici formada etdiyim proxy obyektini (WSProxy tipli) işə salmalısınız:
Aeroflot Service=WSLinks.Aeroflot.CreateWSProxy(" http: //www.aeroflot.ru/", "Uçuş Statusu", "Uçuş Status Sabunu");
Birinci parametr veb xidmətin ad sahəsi URI-dir. WS link ağacında veb xidmətinin xüsusiyyətlərini açaraq bunu öyrənə bilərsiniz. İkinci və üçüncü parametr parametrləri müvafiq olaraq veb xidmətinin adı və portudur.
(veb xidmətlərinə tətbiq edilən “ad”, “port”, “proksi” və s. anlayışlarını TCP/IP protokolunun daha tanış anlayışları ilə qarışdırmayın. Əgər onlar arasında uyğunluq varsa, bu, kifayət qədər semantikdir. Ümumi halda başa düşməlisiniz ki, məsələn, veb-xidmət portu və TCP portu tamamilə fərqli şeylərdir).
Beləliklə, mən WSProxy tipli Aeroflot Service obyektini işə saldım ki, bu da mahiyyətcə veb xidmətin “sarğı”sıdır. Onun vasitəsilə mən platformanın “doğma” metodları kimi veb xidmətin metodlarına daxil ola bilirəm.
Əvvəlcə hava limanlarının siyahısını aldım və "SelectAirport" seçim sahəsinin siyahısını doldurdum:

ChoiceList=FormItems.AirportChoice.ChoiceList; ChoiceList.Clear(); AirportList=ServiceAeroflot.AirportList().GetList("siyahı"); TotalAirports=ListAirports.Number(); ii=0 üçün TotalAirports-1 Loop Airport=ListAirports.Get(s); ChoiceList.Add(Airport.code, ""+Airport.city+" : "+Airport.name); EndCycle;
Burada dizayna kiçik bir şərh lazımdırAirportList=ServiceAeroflot.AirportList().GetList("list");
İş ondadır ki, veb xidmətlərinin metodları ilə qaytarılan dəyərlər platformada ObjectXDTO tipli obyektlərlə təmsil olunur. XDTO texnologiyası mövzusu bu məqalənin əhatə dairəsi xaricində olduğundan, yalnız bunun üçün deyəcəm transformasiya bu obyekti siyahıya (o da) daxil etdim, mən onun GetList() metodunu çağırdım. Kodun qalan hissəsi, veb xidmətin təsviri səhifəsində tapdığım Hava Limanı strukturunun sahə adları da daxil olmaqla kifayət qədər özünü izah edir.
İndi siz konfiqurasiyanı işə sala və seçim sahəsinin siyahısının hava limanlarının adları ilə doldurulduğuna əmin ola bilərsiniz:

“Gediş günü, gəliş günü...”

İndi skorbordumun funksiyasını yerinə yetirmək üçün demək olar ki, hər şeyə hazıram. Qalır sadəcə "boyayıb atmaq" :) Nə edim:

Prosedur Cədvəli doldurun(Gəliş=Doğru) Cədvəl Cədvəl.Columns.Clear(); TableScoreboard.Columns.Add("Uçuş Kodu", "Uçuş Kodu"); TableScoreboard.Columns.Add(" CodeAirline", "Aviaşirkət"); TableScoreboard.Columns.Add("UçuşNömrəsi", "Nömrə"); TableScoreboard.Columns.Add(" Hava limanı tranziti", "hava limanı tranziti"); TableScoreboard.Columns.Add("Hava limanı", "Hava limanı"+?(Gəliş,"gediş","gəliş")); TableScoreboard.Columns.Add(" Vaxt cədvəli", "Planlaşdırılıb"); TableScoreboard.Columns.Add(" Planlı vaxt", "Planlaşdırılıb"); TableScoreboard.Columns.Add(" Vaxt Aktual", "Faktiki"); CədvəlSkorbord. Sütunlar.Əlavə("Hesablanmış vaxt", "Hesablanmış"); CədvəlSkorbord. Sütunlar.Əlavə("Eniş vaxtı", ?(Gəliş,"Eniş","Uçuş")); CədvəlScoreboard. Sütunlar.Əlavə("Birləşmiş Uçuş", "Birləşmiş uçuş"); CədvəlScoreboard.Sütunlar.Əlavə("Status", "Status"); Gəlməsə, TableScoreboard.Columns.Add("Qeydiyyat", "Qeydiyyat"); TableScoreboard. Sütunlar .Əlavə("Eniş", "Eniş"); EndIf; FormElements.TableScoreboard.CreateColumns(); FormElements.TableScoreboard.Columns.FlightCode.Visibility=Yanlış; Əgər gəlmirsə, ThenFormElements.TableScoreboard.Columns.Visibility=Calability=Faalse. ; EndIf; Gəlirsə Data=ServiceAeroflot.Gəliş(SelectAirport, DateFlight).GetList("siyahı"); Else Data=ServiceAeroflot.Departure(SelectAirport, DateFlight).GetList("siyahı"); EndIf; TotalRecords=Data.Number ( ); TotalRecords-1 tərəfindən ii=0 üçün Loop Record=Data.Get(ies); NewRow=TableTable.Add(); NewRow.AirlineCode=Record.company; NewString.FlightNumber=Record.flight_no; NewString.AirportTransit=Record.airport_inter; NewRow.Airport=Record.airport; NewString.TimeSchedule=Record.sched; NewLine.TimePlanned=Record.plan; NewString.TimeActual=Record.fact; NewLine.CalculatedTime=Record.calc; NewString.DropDownTime=Record.real; NewRow.UnionFlight=Record.union_flight_no; NewRow.Status=Record.status; Əgər gəlmirsə NewString.Registration=Record.is_check; NewRow.Landing=Record.is_board; EndIf; EndCycle; EndProcedure

Bütün bunların necə işlədiyini yoxlamaq üçün mən formanın komanda çubuğuna müvafiq təsviri olan "Yeniləmə" düyməsini əlavə etdim və onun işləyicisinə aşağıdakıları yazdım:

Prosedur CommandPanel1 Refresh(Düymə) Scoreboard in doldurun(FormElements.PanelScoreboard.CurrentPage=FormElements.PanelScoreboard.Pages.Arrival); EndProcedure
Saxla, işlət, seçin, klikləyin, əldə edin:

Son söz

Bu heyrətamizdir, lakin məqalə yazıldıqdan və dərc edildikdən sonra məlum oldu ki, hörmətli ZAV artıq IT-Land "e: http://itland.ru/biblio/detail.php?ID=1060-da oxşar nümunə dərc edib.
Mümkün plagiat ittihamlarının qarşısını almaq üçün bu yazını da oxumağı və müəlliflərin yanaşmalarını müqayisə etməyi tövsiyə edirəm.

Məlumat mübadiləsi adətən bir proqramdan faylın yüklənməsi və digər proqrama yüklənməsi ilə təşkil edilir. Bəzi proqramçılar təmin edir üçüncü tərəf proqramları Giriş SQL verilənlər bazası 1C (bu, güclü şəkildə ruhdan salınmış kimi görünür).

"Məlumat mübadiləsi" termini həmişə tapşırıq üçün uyğun deyil, bəzən bunu söyləmək daha düzgündür - məlumatların verilməsi. Məsələn, xarici proqram 1C-də belə bir müştərinin olub olmadığını və onun balansını müəyyən etməlidir.

1C məlumatlarına girişin verilməsi məlumat təhlükəsizliyi səbəblərinə görə düzgün deyil. Əksinə, balansın daha da qaytarılması ilə ad və şifrə ilə yoxlama mexanizmi lazımdır.

Proqram məlumat deyil, müştərini müəyyən etməyə və onun balansını tapmağa imkan verən bir xidmət təqdim etdikdə bu yanaşma xidmət adlanır.

Bu necə işləyir?

Xarici funksiyalar SOAP sorğusu ilə çağırılır (başlanır).

Parametrləri və nəticələri ötürmək üçün istifadə olunur. Veb xidmətləri ilə işləmək üçün əsas anlayışınız olmalıdır.

Veb xidmətləri 1c

1C veb xidməti bəzi 1C funksiyalarının digər proqramlar və ya digər 1C bazaları da daxil olmaqla 1C bazasından kənarda işləməsinə icazə verə biləcəyiniz bir üsuldur.

Bu, 1C məlumatlarına birbaşa çıxışı təmin etməkdən daha yaxşıdır, çünki 1C veb xidmətinin metodunu (funksiyasını) çağırarkən, xarici proqramın məlumatlara çıxışı yoxdur. 1C dilindəki funksiya, xarici proqramın ötürülən parametrlərə (məsələn, ad və şifrə) uyğun olaraq müəyyən bir məlumat parçasını almaq hüququnu müstəqil olaraq müəyyənləşdirir.

Bir çox hallarda siz öz XDTO paketinizi yarada bilməzsiniz, lakin siyahıdan www.sample-package.org paketini seçərək standart paketdən istifadə edin.

1c veb xidməti üsulları

Bundan sonra, kənarda təqdim ediləcək funksiyaların siyahısını (1C veb xidmətinin üsulları) əlavə etməlisiniz. Onları ingiliscə çağırmaq daha yaxşıdır. Funksiya parametrlərə malik ola bilər.

İstifadə ediləcək əsas növlər:

  • simli
  • int və ya tam ədəd - tam ədəd
  • real - kəsr ədəd
  • tarix - tarix.

1C veb xidmətinin hər bir əlavə funksiyası üçün xassələrdə yaratmaq lazımdır, eynilə -də etdiyimiz kimi və s.

Məhz bu 1C funksiyası 1C veb xidməti metoduna zəng edərkən yerinə yetiriləcək. Unutmayın ki, o, 1C serverində icra olunacaq. Veb xidmətləri ilə 1C fayl rejimi tövsiyə edilmir.

Bir funksiya adətən bir növ məlumatı qaytarır. Adətən sətir tipini təyin edin və XML sətirini qaytarın.

XML sətri 1C dil obyektlərindən istifadə etməklə yaradıla bilər və ya siz sadəcə olaraq XML mətnini saxlayan mətn sətrini yarada bilərsiniz.

1C veb xidmətinin nəşri

Daha əvvəl dediyimiz kimi, digər proqramlar 1C veb xidmətinin mövcud olduğunu, belə bir üsul siyahısına sahib olduğunu və s. “bilməlidir”.

Təsvir saytda olmalıdır. Bunun üçün sizə lazımdır:

  • Veb saytınız olsun
  • 1C veb xidmətinin xüsusiyyətlərində, WSDL təsvirinə keçid olan 1cws uzantılı fayl adını göstərin.
  • Veb serverdə Administrasiya/Nəşriyyat menyusundan istifadə edərək bu faylı konfiquratorda vebsayta yükləyin.

Brauzer bəzilərini göstərməlidir XML faylı(WSDL faylının nümunəsi burada http://ru.wikipedia.org/wiki/WSDL-dir), xəta deyil, boş səhifə deyil və hər hansı kodlaşdırmada bulanıq mətn deyil.

Uğurlu dərc edildikdən sonra 1C veb xidmətindən istifadə edilə bilər. Bunu etmək üçün başqa bir proqramda istifadə etməlisiniz internet verilir 1C veb xidmətinə keçidlər üçün ünvan.

Misal üçün, vizual studiya istənilən dildə (C++, C#, Visual Basic) - 1C veb xidmətini WSDL təsvirinə uyğun olaraq layihəyə daxil edin və 1C veb xidmətindən istifadə üçün sinif yaradın.

Veb Xidmətləri digər informasiya sistemləri ilə inteqrasiya üçün istifadə olunan platforma mexanizmlərindən biridir. Tətbiqlərin və informasiya sistemlərinin inteqrasiyası üçün müasir standart olan xidmət yönümlü arxitektura - SOA (Service-Oriented Architecture) dəstəyi vasitəsidir.

Xidmət yönümlü arxitekturanın əhəmiyyətli üstünlüyü ondan ibarətdir ki, o, mövcud həlləri məhv etmədən müəssisənin infrastrukturunu homogen şəkildə inkişaf etdirməyə imkan verir. Onun istifadəsi heterojen və köhnə sistemləri müasir müəssisə mənzərəsinə inteqrasiya etməklə xərcləri minimuma endirməyə imkan verir. Bu, təkrar istifadə imkanlarını artırmaq üçün boş birləşdirilmiş proqram komponentlərinin həyata keçirilməsinə imkan verir.

Xidmət yönümlü arxitektura fəal şəkildə inkişaf etdirilir və iri satıcılar tərəfindən dəstəklənir. O, avtonom və ya kənardan idarə olunan xidmətlər əsasında qurulur. Veb xidmətləri onları həyata keçirmək üçün üstünlük verilən üsuldur. Onlar platformadan müstəqildir, müstəqildir və universal olaraq dəstəklənir.

Tətbiq həlli 1C: Müəssisə 8 həm veb xidmətlərinin provayderi, həm də digər provayderlər tərəfindən nəşr olunan veb xidmətlərinin istehlakçısı ola bilər.

İstehlakçılar ixtiyari aparatdan istifadə edən sistemlər ola bilər və proqram platformaları. Veb xidmətləri texnologiyası platformadan müstəqildir.


Veb xidmətlərinin texniki icrası

Tətbiq həlli veb-xidmət provayderidirsə, o zaman həm faylda, həm də müştəri-server əməliyyatında tətbiq həlli ilə veb-xidmət istehlakçıları arasında qarşılıqlı əlaqə veb server genişləndirilməsi modulundan istifadə etməklə veb server vasitəsilə həyata keçirilir.

Bu halda, istehlakçı tətbiq həlli veb xidmətinə daxil olduqda, veb xidmət modulu icra edilir. Bu modul konfiqurasiyaya daxildir və o, veb xidmətin müəyyən əməliyyatlarını çağırarkən yerinə yetirilən prosedurları ehtiva edir.

Müştəri-server əməliyyatı vəziyyətində bu modul klasterdə icra olunacaq. İşin fayl versiyası vəziyyətində - veb server genişləndirmə modulunda.

Tətbiq həlli üçüncü tərəfin veb xidməti istehlakçısıdırsa, o zaman proqram həlli ilə veb xidmət təminatçısı arasında qarşılıqlı əlaqə