Menü
Bedava
kayıt
ev  /  internet/ 1c http servisi. Pavel Çistov

1c http servisi. Pavel Çistov

Dikkat! Şimdi kurs da akşamları 18:30-21:30 saatleri arasında daldırma formatında düzenleniyor.

Kursta, "1C: Enterprise 8" platformunun aşağıdaki mekanizmalarını kullanma konusunda pratik beceriler kazanacaksınız:

  • WEB servisleri (SOAP protokolü)
  • JSON biçimi
  • OData arayüzü (otomatik olarak REST hizmeti)
  • HTTP hizmetleri

ÖNEMLİ!!! Kurs, XDTO mekanizmasıyla çalışma becerisine sahip veya kursu daha önce tamamlamış programcılar için tasarlanmıştır.

Kursun tanımı ve programı:

WEB kursunun maliyeti şunları içerir:

  • 2 haftalık kurs, bir öğretmenle 2 web semineri
  • 1C-Eğitim Merkezi No. 3 sertifikası (uygulamaya tabidir)

Tam zamanlı daldırma kursunun maliyeti şunları içerir:

  • 2 gün 10:00 - 17:00 veya 16:00 - 18:30 - 21:30
  • özet, kulaklıklar
  • öğle yemekleri, kahve molaları
  • Kurs bitiminden sonra güncellenen videolara 2 yıl boyunca erişim
  • 1C-Eğitim Merkezi No. 3 sertifikası

Öğrenme biçimleri

WEB eğitimi

Bu biçim nedir:Önerilen format, video materyalleri ve çevrimiçi istişarelerle sunulan yüz yüze bir bileşenle uzaktan öğrenmenin birçok avantajını birleştirir.
WEB kursu, öğretmenlerle videolar, pratik görevler ve web seminerlerinden oluşur. Tüm kurs materyallerine İnternet üzerinden 24 saat erişim sağlanmaktadır - uygun bir zamanda eğitim alabilirsiniz. Kurs sınıflara ayrılmıştır. Ders sırasında mevcut konuyla ilgili materyaller incelenir, çalıştaylar yapılır, öğretmene sorular sorulur. Her dersin sonunda, öğretmenin alınan tüm soruları, tipik hataları analiz ettiği ve doğru çözümü açıkladığı bir web semineri düzenlenir. Web seminerlerinin kaydı portalda mevcuttur. Bu şekilde birkaç seans birbiri ardına gerçekleşir. Sonunda bir final bağımsız iş ve son web semineri.

Süre: 2 hafta

Bu biçim nedir:


Süre:16 akademik saat

Bu biçim nedir:Yüz yüze eğitim, yüz yüze eğitim, uzaktan eğitim ve bireysel eğitimin tüm avantajlarını birleştiren bir formattır. Dersler donanımlı bir sınıfta yapılır, ders materyallerini bağımsız olarak (adım adım videolar) inceler ve atölye çalışmaları gerçekleştirirsiniz. Aynı zamanda, sınıfta herhangi bir zamanda bir soruyu cevaplamaya ve pratik problemlerin çözümüne yardımcı olmaya ve uygulamalarının doğruluğunu kontrol etmeye hazır bir öğretmen var.
Avantajlar - öğretmenin sorularınızla ilgili bireysel danışmaları, kişisel olarak size uygun materyali geçme hızı.
Bütün bunlar kurs materyali hakkında daha derin bir çalışma sağlar.
Öğrencinin olduğu yerde öğretmenin varlığının tam etkisi ile bu dersi iş yerinizden almanız mümkün! Bu fırsatla ilgileniyorsanız - bizi arayın!

Süre:16 akademik saat

Başlangıç ​​olarak, bir zamanlar Web servisleriyle kendi başıma uğraşmak zorunda kaldım. Sonra bir şekilde bu işte ustalaşmayı başardım ve her şeyin çalışması için neye ve nereye basacağımı anladım. Neyse ki, çalışmak zorunda olduğum konfigürasyon zaten Web servisleri ve casusluk yapılabilir ve benzetme yoluyla yapılabilir ve İnternette bu dava hakkında yeterli makale bulabildim. Ve böylece, örneklerle (benim için En iyi yolçalışma), bu işte ustalaştım ve şimdi beni artık korkutmuyorlar.

BU YÜZDEN... Herhangi bir entegrasyonun ana görevi, CD, Web servisleri veya HTTP servisleri olsun, bir yerden bir şey transfer etmek, bu konuda bir şeyler yapmak ve bir yanıt döndürmektir. Yeni teknolojiyi bu formatta ele alacağız.

Meta veri ağacında, HTTP hizmetleri Genel dalında bulunur:

Yeni HTTP hizmeti, diğer herhangi bir meta veri nesnesi gibi eklenir. Ne istersen isim ve eş anlamlısı. Burada yalnızca "Kök URL" önemlidir - bu aslında tanımlayıcıdır Bu veritabanındaki HTTP hizmeti, yani. Bu mülkte tam olarak ne yazarsanız, onu hizmete bağlantı olarak üçüncü taraf bir geliştiriciye (iyi veya kendinize) ileteceksiniz.

Burada Kiril alfabesi ile yazmak mümkün mü bilmiyorum ama ilerici dünyada alay konusu olmamanız için Latince yazın).

Şablon özelliğinin kendisi burada önemlidir:

Şablonu kullanarak daha sonra size iletilen verilere başvurabilirsiniz. BU YÜZDEN: dışarıdan almak istediğiniz tüm veriler 2 bloğa ayrılabilir - zorunlu ve isteğe bağlı.

Zorunlu veriler / parametreler onları şablonun içine itiyoruz, böylece hizmete erişen kişi bunları doldurmadıysa, hizmet a priori bir hata verecektir ve işleyici modülünün metnini geliştirirken bu verilerin orada olduğundan emin olacaksınız. Nasıl yapılır: Şablon satırında küme parantezleri "()" içinde, "/" işaretiyle dönüşümlü olarak değişkenlerin adlarını yazın. Örneğin mutlaka bir makaleye ihtiyacımız var - sonra / (artikul) yazıyoruz. SKU'yu, adı ve kullanıcı adını almamız gerekirse, şablon dizesi şöyle görünecektir: / (makale) / (ad) / (kullanıcı), vb. İşleyici modülünün metnindeki bu parametrelerin her biri aşağıdaki gibi elde edilebilir: Request.ParametersURL ["<имя параметра>"]. Gerekli olanlar yoksa, şablon şöyle görünür: / *.

İsteğe bağlı veriler hizmet yoluyla almak istediğimiz şeyler şablonda AÇIKLANMAMIŞTIR. Bir bağlantı kurarken, hizmete erişmek için, bağlantının sonunda "?" İşaretinden sonra açıklanır, ve işareti "&" ile ayrılır ve yapıya sahiptir.<имя параметра>=<значение параметра>... İşleyici modülünün metninde bunlara şu yapıyla başvurabilirsiniz: Request.RequestParameters.Get ("<имя параметра>AMA: Hatırlamak önemlidir, çünkü gerekli olmadıkları için orada olmayabilirler, sırasıyla Undefined değerini kontrol ederiz.

Ardından, şablonumuza yeni bir yöntem ekliyoruz. HTTP yöntemi özelliği burada önemlidir. onlar burada büyük miktar AMA tüm inceliklere girmeyeceğiz. Görevlerinizden herhangi birini uygulamak için sadece 2'ye ihtiyacınız var: ELDE ETMEK ve İLETİ.

Nasıl seçilir: Önceki iki paragrafta anlattıklarımız çalışmanız için yeterliyse, yani. İsteğin kendisinin zorunlu ve isteğe bağlı parametrelerini kullanarak ihtiyacınız olan tüm verileri alabilirsiniz, sonra GET alırız. Bu durumda, herhangi bir tarayıcıda, adres çubuğuna doğru girerseniz, HTTP hizmetinizin eyleminin sonucunu göreceksiniz - KÂR! Birdenbire hizmetiniz daha karmaşık bir biçimde (örneğin xml veya başka bir şey), basit bir adres çubuğuna sığdırılamayacak bir veriye ihtiyaç duyarsa, POST alırız. Eksilerden, GET'de olduğu gibi tarayıcının adres çubuğundan bu kadar kolay bir kontrol çalışmaz, ancak İnternette hizmetleri kontrol edebileceğiniz bazı siteleri kolayca bulabilirsiniz. POST yöntemiyle(örneğin, https://www.hurl.it sitesi). Yöntemin seçilmesi durumunda POST, ardından istek URL (adresler), içine istediğiniz her şeyi doldurabileceğiniz bir gövde görünür ve yöntem işleyicisinde buna Request.GetBodyAsString () yapısı aracılığıyla başvurur. Herhangi bir şablon hem GET yöntemine hem de POST yöntemine sahip olabilir. Buna uygun olarak farklı işleyicilere sahip olacaklar ve isteğin nasıl gönderildiğine bağlı olarak 1C bir veya başka bir yöntem seçecek.

Bir HTTP hizmet işleyicisi, her zaman New HTTPServiceResponse oluşturucusu tarafından oluşturulan HTTPServiceResponse türünde bir değer döndüren bir işlevdir (<КодСостояния>). <КодСостояния>- bu bir sayıdır, ne yazacağınız konusunda sıkıntı çekmemek için şunu yazıyoruz: 200 - her şey yolundaysa ve bir tür mantıksal değer döndürürseniz, 400 - bir hata varsa ve bir açıklama döndürürseniz hata. Bu türün çeşitli yöntemleri vardır (sözdizimi asistanında okuyabilirsiniz, orada her şey açıkça yazılmıştır). Yine, ihtiyacınız olan her şeyi her zaman bir dize olarak döndürebilirsiniz - SetBodyFromString () yöntemi. (küçük bir numara: html döndürürseniz ve hizmet adresinizi adres çubuğuna girdiğinizde tarayıcının bunu güzel bir şekilde görüntülemesini istiyorsanız, Headers answer özelliğini yazın: Answer.Headers.Insert ("Content-Type", "text / html; charset = utf-8 ") - böylece bunun yalnızca bir karakter kümesi olmadığını, HTML olduğunu ve buna göre gösterilmesi gerektiğini belirtirsiniz)

Bitirdikten sonra, HTTP hizmetinin yayınlanması gerekiyor. Bu, bir web sunucusunun kurulu olduğu bir bilgisayarda menü aracılığıyla yapılır (ayarlar hakkında yazmayacağım, çok fazla makale var):

Yönetim - Bir web sunucusunda yayınlama.

HTTP servisleri sekmesi var. Küçük kargaları koyun ve "Yayınla" yı tıklayın

Bu yüzden, hazır bir HTTP hizmetimiz var. Onunla NASIL iletişime geçilir? eğer kullanırsak GET yöntemi daha sonra adres çubuğu yazdığımız tarayıcı: http://<имя веб сервера>/<имя базы>/ hs /<корневой URL>/<обязательный параметр1>/<обязательный параметр2> <имя не обязательного параметра 1>=<значение не обязательного параметра 1>&<имя не обязательного параметра 2> =<значение не обязательного параметра 2> .

Ve nihayet, bir kez daha resimlerde))):

1C Enterprise 8.3 platformunda HTTP hizmetleri oluşturmak mümkün hale geldi

Yerleşik dili kullanarak artık bir isteğe yanıt oluşturabilirsiniz. Bununla, kaynağın gövdesine, başlıklarına ve satırına kolayca erişebilirsiniz. rica etmek, ayrıca kod, gövde ve başlıklar oluşturmak da mümkündür. cevap kendi takdirine bağlı olarak.

SOAP platformunda bulunan web servisleriyle karşılaştırıldığında, HTTP servislerinin çeşitli avantajları vardır:

  • Bu tür hizmetlerin istemcisini programlama kolaylığı;
  • Potansiyel olarak daha az miktarda veri aktarımı;
  • Potansiyel olarak daha az hesaplama yükü;
  • HTTP hizmetleri kaynak odaklıyken, SOAP hizmetleri eylem odaklıdır.

Veritabanı, http hizmetlerinin uygulanmasını gösterir.

http servis Fatura Listesi

Http hizmeti, URL kalıplarını kullandı, mülk işlemeyi uyguladı parametrelerURL nesne HTTPServiceRequest
Bu örnek, üretim üssü ile kurumsal site arasında nasıl bir aralayıcı tabanı oluşturabileceğinizi gösterir.
Demo veritabanına bağlantı yapıldı " Ticaret Yönetimi 11", adıyla ek bir özellik ayarlamanız gereken Web şifresi , erişim için şifreyi nerede saklayacağız.
http isteği, kullanıcı adı ve şifre olarak INN URL parametrelerine iletilecektir.
Bir talep işlenirken ComConnector üzerinden UT'ye bağlantı yapılır (frenler garantilidir) ve oradan seçim yapılır.
Bu çözümün hızını ve güvenliğini iddia etmiyorum, bu bir örnek

Yani. Meta veri ağacında yeni bir dal belirdi - HTTP hizmetleri
Biz yaratırız yeni hizmet, adını ve kök URL'sini belirtin (liste)
Http hizmetimizi aramak için kök url kullanılacaktır.
Ardından, "/ (Giriş) / (Parola)" belirterek URL Şablonunu http hizmetine ekleyin
Böyle bir şablon, bir http isteğini işlerken, URL parametrelerinde karşılık gelen parametre yapısını ve değerlerini elde etmenizi sağlar.
Şimdi, URL modelimize "get" adlı bir yöntem ekleyin, http yöntemi olarak GET'i seçin.
İşleyiciyi açın ve kodu yazın
Yöntem işleyici, türde bir değer döndürmesi gereken bir işlevdir. HTTPHizmetYanıtla

http hizmeti Sipariş Durumu

Örnek, POST yöntemi tarafından geçirilen değişkenlerin işlenmesini, bir html sayfası şeklinde bir yanıtın oluşturulmasını uygular.
Bu sefer veriler hs'nin bulunduğu veritabanından getiriliyor, bu yüzden önceki http servisinden çok daha hızlı çalışıyor.
uygularken çalışma sistemi veritabanında (hizmetle birlikte) nesneler oluşturmak ve kaynak veritabanından (örneğin, ayrı bir veri tabanına) veri geçişini yapılandırmak mantıklıdır. arka plan süreci). Bir http isteği işlenirken, seçim doğrudan bulunduğu veritabanından yapılmalıdır.

yayın

Bir web sunucusunu kurmak ve yapılandırmak hakkında birçok bilgi vardır.
Buradan httpd-2.2.25-win32-x86-openssl-0.9.8y.exe derlemesini kullandım
"Sonraki-Sonraki-Bitir" yöntemi kullanılarak yüklendi :)
Http hizmetlerini yayınlamak, web hizmetlerini yayınlamak ile aynı yerdedir ve özellikle farklı değildir.
Web sunucusunu "Konfigüratör" modunda kurduktan sonra, "Yönetim" - "Web sunucusunda yayınlama" menüsüne gidin
"HTTP hizmetleri" sekmesinde yayın adını, web sunucusunu, yayın dizinini ayarlayın ve hizmetlerimizi işaretleyin (benim durumumda ad "web", Apache 2.2 web sunucusudur)
Yayınlarken ilgili bloklar otomatik olarak httpd.conf yapılandırma dosyasına yazılır ve sunucu yeniden başlatılır (ilk yayında)
http servisine başvurma
Örnek: http: // sitem / web / hs / liste, nerede
benim sitem- sunucu adresi (web sunucusu yerel olarak kuruluysa - 127.0.0.1 kullanabilirsiniz)
- yayın sırasında belirtilen ad (takma ad)
hs- http servisleri ile çalışan sunucuyu bilgilendiren yolun zorunlu bir bölümü yer alacak
liste- web hizmetinin kök url'si

Test yapmak

fatura listesi

http://127.0.0.1/web/hs/list/7705260681/pswMP (Parola için UT'de ek özellik yapılandırmayı unutmayın)

Belge kaydına erişmek için kullanıcının TIN ve şifreyi içeren doğrudan bir bağlantıya eriştiği varsayılmaktadır.

Sipariş durumu

http://127.0.0.1 / web / hs / kontrol edin

İstek ve yanıt aynı URL'de bulunur. Sayfaya girerken, GET yöntemi tetiklenir ve bir html formu döndürülür

"Kontrol Et"e tıkladığınızda, POST yöntemi kullanılarak aynı URL'ye sipariş numarası gönderilir, yanıt, talep edilen siparişe ilişkin verilerle tamamlanan aynı talep formuyla döndürülür.

Ekli dosyada - 1C 8.3 için veritabanının boşaltılması. Konfigürasyon, "Sipariş" belgesi olan UT 11 demo tabanı ile bir iletişim bağlantısı kuran 2 http hizmetini (yayından) içerir.

Başlatma ve test için gerekenler

  • Web sunucusu
  • herhangi bir web tarayıcısı
  • mevcut sürüm1C: Kurumsal 8.3



alma ihtiyacı ile karşı karşıya şu anki durum yapılandırma. Şunları almanız gerekir:

  • Belirli bir seçime sahip belge sayısı;
  • Ürün için son kayıtlı fiyatın süresi;
  • Son 10 dakikada kullanıcılar tarafından gönderilen dokümanların sayısı.

Projelerde bir mobil uygulama uygulama deneyimi göz önüne alındığında, ilk başta android için bir konfigürasyon yazma düşüncesi parladı. Tüm artıları ve eksileri tarttıktan sonra, sorunumu çözmem gerektiği sonucuna vardım. bu yaklaşımçalışmayacak. Daha sonra http servisini kullanmak için ders alınmıştır. Bunun için konfigürasyonda "İstatistikler" http hizmeti kaydedildi, url şablonuna AnyURL eklendi, bunun için get yöntemi eklendi.


Konfigürasyon ağacının nesnelerini oluşturduktan sonra, cevabı üretmek için algoritmayı yazmaya başlıyoruz. Yöntem, HTTPServiceResponse türünde bir yanıt döndürür:

Yanıt kodunu yazdıktan sonra yapılandırıcıdan http hizmetini yayınlıyor ve tarayıcıdan erişiyoruz. Http servisine erişmek için, adresi bir web istemcisindeki gibi "/ hs / statistic /" ekleyerek adreslemeniz gerekir. hs, platforma bir http hizmetine erişildiğini söyler ve istatistik, hizmetimizin adıdır.

Benim düşünceme göre, http hizmetleri şu durumlarda faydalı olabilir:
- Konfigürasyon istatistiklerinin oluşumu;
- Siparişin durumunu numarasına göre alma işlevi;
- Diğer sistemlere aktarılmak üzere verilerin hazırlanması.

Şirket " 1C»" 1C: Enterprise "platformunu aktif olarak geliştirir ve her sürümde yeni özellikler ekler. 8.3 şubesinin geliştirilmesinin başlamasından sonra, özellikle birçok yeni ürün ortaya çıkmaya başladı ve sürekli istihdam nedeniyle hepsini çalışırken test etmek için zamanınız yok. Çok uzun zaman önce değil ben ve tam bir nasıl geliştirilir mobil uygulama (evet, "1C: Enterprise" da), ancak bugün oluşturmak hakkında konuşmak istiyorum HTTP hizmetleri platform aracılığıyla.

Geliştirme yeteneği HTTP hizmetleri yapılandırmanın bir parçası olarak sürümde göründü 8.3.5 ... Bu süre zarfında, bileşen birkaç kez güncellendi ve bugün "çocukça" hataların varlığından korkmadan kullanmak oldukça mümkün. Henüz gerçek koşullarda http hizmetleri oluşturmak için 1C: Enterprise platformunun işlevselliğini kullanma şansım olmadı, şimdiye kadar deneyim eğitim projeleri ile sınırlı. Bununla birlikte, mevcut çalışma projelerinden birinde http-hizmetleri mekanizmasını kullanma umutlarını görüyorum. Bu küçük notlar döngüsünde tipik kullanım örneklerini göstermeye çalışacağım. http hizmetleri platform yapılandırmalarında " 1C: Kurumsal».

1C'de en basit http hizmetini oluşturma: Enterprise 8.3

Bugün en basit http hizmeti örneğine bakacağız ve ardından onu iyileştirip karmaşık hale getireceğiz. Dersin amacı, yaratmanın kolaylığını anlamak ve hissetmektir. http hizmetleri 1C: Enterprise 8.3 platformuna dayanmaktadır.

Bir sorun ifadesi ile başlayalım. Not çerçevesinde oluşturulan hizmet yalnızca iki şeye sahip olmalıdır: bir GET isteğini kabul etmek ve JSON biçiminde bir yanıt döndürmek. Görev önemsizdir ve PHP / ASP .NET'te benzer bir şey yapmak birkaç satır kod meselesidir. İleriye baktığımızda, 1C: Enterprise'da aynı şeye ihtiyacımız olduğunu söyleyeceğim (tamam, 1C platformunun tuhaflıklarına gülmek zorunda değilsiniz).

Http servislerinin kullanım durumlarından ayrı bir yazıda bahsedeceğiz ama şimdilik yeni bir http servisi oluşturmanız yeterli. Kolaylık sağlamak için yeni bir tane oluşturalım bilgi tabanı boş bir yapılandırma ile. Buna bir alt sistem ekleyelim, buna “ HTTP Hizmetlerini Test Etme". Şimdi yapılandırma ağacında "Genel" bölümünü açalım, "grubu bulalım" HTTP hizmetleri"Ve ilk web hizmetini ekleyin. Yeni bir hizmet oluşturma penceresinde alanları doldurun:

  • İsim- İlkWeb Hizmeti;
  • Eşanlamlı sözcük- İlk web hizmeti;
  • Kök URL- hizmetlerimiz;

Alana dikkat edin” Kök URL". Burada belirtilen ad, hizmete erişilirken kullanılacaktır. Burada boşluk olmamalıdır ve Kiril alfabesinin kullanılmaması tavsiye edilir. Anladık, sonra sekmeye gidin " alt sistemler"Ve http hizmetini mevcut tek alt sisteme ekleyin.

Sonraki adım, URL modelini tanımlamaktır. İlgili sekmeye gidelim ve “ adlı bir şablon ekleyelim. GörüntülemeHizmetler Listesi". Mülk müfettişinde, mülkü bulun “ Örneklem"Ve içine yaz" / liste". Bunu yaparak, http hizmetiyle etkileşimin gerçekleşeceği yolu belirleyeceğiz. Şablon şunları içerebilir: Özel semboller, geçirilen parametreleri tanımlamanıza izin verir (hem gerekli hem de değil), ancak ilk örnek için kendimizi basit bir " / liste". Bu yolu takip ederken, tek yöntemimiz tetiklenecek ve müşteriye bir dizi veri verecektir.

Harika, bir şablon var, şimdi yönteme kalmış. Adını koyacağımız şablonumuza ekleyelim getServicesList... Özellik denetçisinde, HTTP yöntemini belirtmemiz gerekiyor. Belirtilen değer, yöntemimizin ne tür isteklere yanıt vereceğini belirler. Mevcut görevin üstesinden gelmek oldukça mümkün “ yöntemiyle. ELDE ETMEK”.

Hizmetimiz neredeyse hazır, geriye kalan tek şey oluşturulan yöntem için bir olay işleyicisi yazmak. getServicesList... Özellik denetçisi aracılığıyla bir olay işleyicisi oluşturabilirsiniz. İşleyicinin gövdesine şunu yazıyoruz:

İşlev DeriveIndex getServicesList (Sorgu) ArrayServices = Yeni Dizi; ArrayServices.Add (Yeni Yapı ("başlık, açıklama", "Hizmet # 1", "Hizmet açıklaması # 1")); ArrayServices.Add (Yeni Yapı ("başlık, açıklama", "Hizmet # 2", "Hizmet açıklaması # 2")); ArrayServices.Add (Yeni Yapı ("başlık, açıklama", "Hizmet # 3", "Hizmet açıklaması # 3")); ArrayServices.Add (Yeni Yapı ("başlık, açıklama", "Hizmet No. 4", "Hizmet No. 4 açıklaması")); JSON Kaydı = Yeni JSON Kaydı; JSON.SetString (); WriteJSON (WriteJSON, ArrayServices); StringForReply = JSONWrite.Close (); Yanıt = Yeni HTTPServiceResponse (200); Answer.Headers.Paste ("İçerik türü", "application / json; karakter kümesi = utf-8"); Answer.SetBodyFromString (StringForResponse, TextCode.UTF8, UsingByteOrderMark.Do not use); Geri Ödeme Yanıtı; EndFunction

Verilen koda daha yakından bakalım. En başta, yapılardan oluşan bir diziyi anlatıyorum. Bu diziye yalnızca gösteri için ihtiyacımız var. Tüm içeriğini JSON'a çevireceğiz ve müşteriye vereceğiz. Bir tür nesneyi başlatıyoruz JSON kaydı... Yöntemi çağırdığınızdan emin olun Dize Ayarla(), Çünkü JSON metnini bir dize değişkenine almamız gerekiyor. Ardından, global yöntemi çağırıyoruz JSON yaz(), bir tür nesneyi ilettiğimiz JSON kaydı ve dönüştürülecek dizi. Sonra sonucu “ değişkenine alıyoruz. StringForReply"Ve bir HTTP yanıtı hazırlayın.

Yanıt olarak, ekliyoruz (bkz. yöntem " SetBodyFromStrings") Ortaya çıkan JSON. İşte bu, demo kodu hazır ve testlere geçebilirsiniz.

1C: Enterprise 8.3'te bir HTTP hizmeti yayınlama

Yapılan çalışmaların sonuçlarını test etmek için oluşturulan HTTP servisini yayınlayalım. En basit test için sisteminizde bir web sunucusunun kurulu olması gerekir. Bir web hizmeti rolüm tarafından gerçekleştiriliyor Apaçi... Web sunucusunu kurmak / yapılandırmak için gereken adımları atlayacağız ve bir HTTP hizmeti yayınlama konusuna geçeceğiz.

Yayınlamak için "Yönetim" menüsüne gitmeniz ve " Bir web sunucusuna yayınlama". Görünen pencerede doldurun:

  • İsimÇözümümüzün adıdır. Yayınlanan IB'ye erişirken URL'de kullanılacaktır. Örneğin, burada test belirtirseniz, IB'niz http://localhost / test adresinde bulunacaktır. Test seçeneği bana uyuyor.
  • Web sunucusu- Otomatik olarak doldurulur. Web sunucum olarak Apache 2.2'ye sahibim;
  • Katalog- yerleştirileceği dizinin yolu yapılandırma dosyası yayınlanan bilgi güvenliği;
  • kutuların işaretini kaldırın " Yayınla zayıf müşteri ve web istemcisi», « Yayınla standart arayüz OData», « Varsayılan olarak WEB hizmetlerini yayınla»;
  • HTTP hizmetleri sekmesinde, “ bayrağını işaretleyin. Varsayılan HTTP hizmetlerini yayınlayın"Ve oluşturulan hizmeti tablo bölümünde işaretleyin.

HTTP hizmetini test etme

Oluşturulan http servisini test etmek için bir tarayıcı açın ve ona erişmeyi deneyin. Tüm eylemlerimi tekrarladıysanız, yol şöyle görünmelidir:

Http: // localhost: 9090 / hizmetler / hs / hizmetlerimiz / liste

limana dikkat 9090 ana bilgisayar adından sonra iki nokta üst üste ile belirtilir. Apache'yi varsayılan ayarlarla kurduysanız, 80 numaralı bağlantı noktasını dinler, bu nedenle herhangi bir şey belirtmeniz gerekmez. Sonuç olarak, URL şu şekilde olacaktır:

Http: // localhost / hizmetler / hs / hizmetlerimiz / liste

Bunu takip etmeye çalışın ve her şey düzgün çalışıyorsa, JSON formatında veri içeren bir sayfa alacaksınız:

[(başlık: "Hizmet # 1", açıklama: "Hizmet # 1 açıklaması"), (başlık: "Hizmet # 2", açıklama: "Hizmet # 2 açıklaması"), (başlık: "Hizmet # 3", açıklama: "3 numaralı hizmetin açıklaması"), (başlık: "Hizmet No. 4", açıklama: "4 numaralı hizmetin açıklaması")]

Bu, demo örneğinin sonu, ancak sonunda URL'yi kurucu öğelerine ayrıştırmak istiyorum, böylece neden böyle bir bağlantı aldığımızı açıklığa kavuşturmak istiyorum.

Yani ilk kısım açık olmalı - localhost. Bu, web sunucusunun kurulu olduğu ana bilgisayar adıdır. Ayrıca, yayınlanan bilgi güvenliğine bir bağlantı (hizmetler) vardır. Bunu hs izler, bu yol öğesi, http hizmetiyle etkileşim kurmakla ilgilendiğimizi gösterir. Son iki öğe, hizmetimizin kök URL'si ve URL kalıbıdır.

Sonuç yerine

« 1C: Kurumsal 8.3»Basit oluşturmanıza olanak sağlar HTTP hizmetleri bu küçük notu okuduktan sonra ikna olmanız gereken minimum emekle. işlevsellik platformu kullanma seçeneklerini önemli ölçüde genişletir. Aşağıdaki notlarda, teknolojinin uygulanmasının pratik durumlarından bahsedeceğiz ve pratikte çeşitli çözümlerin uygulanmasını ele alacağız.