1c 8.3 шуудангаар захиалга хүлээн авах хүсэлт. http хүсэлтийн дахин чиглүүлэлт хийж байна

Цахим баримт бичгийн менежментийн үндсэн систем (EDF) болон PHP (Symfony) дээр бичигдсэн B2B систем (дотоод хөгжүүлэлт) болгон ашиглахаар төлөвлөж буй 1C (хөгжүүлэлт, тохиргоог аутсорсинг хийсэн) хооронд өгөгдөл дамжуулах тухай даалгавар гарч ирэв. компаниудад анхан шатны мэдээлэл оруулах чиг үүргийг гүйцэтгэдэг.

Би B2B-г өөр B2B-тэй нэгтгэж байсан туршлагатай. Энэ санаа нь cURL ашиглан JSON-г шилжүүлэх явдал байв. Дараа нь Oracle дээр суурилсан Борлас системийг нэгтгэх даалгавар гарч ирсэн бөгөөд энэ аргыг мөн ашигласан. Харин Oracle тал дээр тэд өөрсдийн багцыг ашигласан - PHP дахь cURL-ийн аналог (хэрэв сонирхол байгаа бол би үүнийг шинэ өгүүллээр тайлбарлаж болно).

Миний олж мэдсэнээр 1С 8.2 нь GET болон POST хүсэлтийг илгээх боломжтой. Хэрэв бүх зүйл аль хэдийн тохируулагдсан бөгөөд бусад системүүдтэй ажилладаг бол энд бас ажиллах ёстой гэж би бодсон. 1С-ийн хөгжүүлэгчид JSON-г татгалзаж, формат нь тохиромжгүй, зөвхөн XML-г таньдаг гэж мэдэгджээ. Энэ нь бидэнд хамгийн бага өгөгдөл дамжуулах боломжийг олгоно гэсэн тайлбарыг өгсөн боловч бид үнэндээ маш их мэдээлэл хүлээн авсан, татгалзсан. Үүний үр дүнд бид XML-д суурилсан 2 системийг бэлтгэж эхэлсэн.

Миний хувьд 1С-ээс хүсэлт хүлээн авагч бичээд үр дүнгээ өгсөн. 1Sniki нь XML-г орлуулах ёстой байсан POST дахь хувьсагчийг хүлээн авах функц.
Формат нь ойролцоогоор дараах байдалтай байна.

123ABC456// зөвшөөрлийн түлхүүр Сүүлийн_захиалга авах//тэдний гүйцэтгэхийг хүссэн үйл ажиллагаа 4000//тэдний сонгохыг хүссэн бичлэгийн хязгаар

Нөхцөлийн дагуу аль хэдийн сонгогдсон бичлэгүүдийг буцааж, XML үүсгэдэг зохицуулагч:

1 O.P.S. 4853352 01.01.2013 1 b2b-ээс байршуулсан SNILS 999999999 Үйлчлүүлэгчийн бүтэн нэр Михайлов Михаил Евгеньевич Өргөдөл гаргасан огноо 01.01.2013 ...

Өгөгдлийг зөвхөн HTTPS холболтоор дамжуулж болно.

Эхлээд харахад бүх зүйл энгийн мэт боловч энэ явцад хэд хэдэн асуудал гарч ирэв.
1) аутсорсингууд ийм төрлийн хүсэлтийг сайн мэдэхгүй байгаагаа мэдэгдэж, хуучин батлагдсан схемийг санал болгохыг оролдсон:
1. B2B-ээс файл импортлох,
2. 1С руу ачаалах,
3. 1С-ээс юу боловсруулах боломжтой байсан, юу нь биш байсан гэсэн файлыг экспортлох,
4. B2B руу импортлох,
5. мөн эхнээсээ...
Энэ схемийг хурдан, хүний ​​оролцоо, ямар ч "товчлуур"гүйгээр хийх шаардлагатай байсан тул татгалзсан.

Дараа нь тэд кодын жишээ асуув. Би интернетээс дараах жишээг Google-ээс хайлаа.

Сервер = "test.com"; Порт = "443"; HTTPTry = Шинэ HTTP холболт(Сервер, Порт, Үнэн); Бусад HTTP = Шинэ HTTP холболт (Сервер, Порт); endIf; ScriptAddress = "/гарц/GetData1C/"; HTTP.SendForProcessing оролдлого(SendFileName, ScriptAddress, ResponseFileName, HTTPHeader); Онцгой байдлын тайлан("Холболтын оролдлого амжилтгүй болсон: " + ErrorDescription()); ElseLogRecord("HTTPConnection", LogLevel.Error, "Холбох оролдлого амжилтгүй болсон: " + ErrorDescription()); EndIf Буцах; EndAttempt;

Сервер дээр өгөгдөл ирж эхэлсэн боловч хоосон байсан, өөрөөр хэлбэл GET болон POST хоосон байсан. Би бүртгэлд оруулга нэмээд үүнийг амжилттай мартсан. 4 сарын дараа надад яаралтай даалгавар өгсөн - интеграцийг үр дүнд хүргэх (маш их цаг хугацаа өнгөрч, 1С хөгжүүлэгчид ажиллаж, ажиллаж байгаа боловч хариу үйлдэл үзүүлэхгүй байна). Тэд надад 1С суулгасан бөгөөд би эргэлдэж эхлэв.

Эхлээд би юу болж байгааг ойлгохын тулд Fiddler суулгахаар шийдсэн. Холболт нь HTTP-ээр дамждаг бөгөөд дараа нь сервер HTTPS руу дахин чиглүүлдэг болохыг би анзаарсан. Энэ шалтгааны улмаас өгөгдөл хоосон байна гэж би таамагласан. Би үүнийг Chrome-д хуулбарлахыг оролдсон бөгөөд дахин чиглүүлэх явцад POST хүсэлт дэх өгөгдөл алдагдсан гэсэн баталгааг хүлээн авсан.

HTTP-ээр дамжуулан ажиллахыг зөвшөөрөх боломжгүй тул би яагаад гэдгийг судалж эхэлсэн, учир нь:

HTTP = Шинэ HTTP холболт (Сервер, Порт, Үнэн); "Үнэн" параметр нь HTTPS ашиглах гэсэн үг бөгөөд дараа нь HTTP = Шинэ HTTPConnection(Сервер, Порт);

Үүний үр дүнд энэ "Үгүй бол" хаягдаж, гэрчилгээ буруу байна гэсэн алдаа гарсан. Гэрчилгээ нь өөрөө гарын үсэг зурсан. Интеграцийн хөгжүүлэлт нь PROD серверээс ялгаатай нь "Thawte SSL CA"-ийн гэрчилгээг албан ёсоор худалдаж авсан дотоод серверүүд дээр хийгдсэн. Сертификатыг боломжтой бүх дэлгүүрт импортлох нь үр дүнд хүрээгүй.

Нөөцөөс хайх нь 1С нь өөрийн үндсэн гэрчилгээтэй бөгөөд тэдгээрт үндэслэн бусдыг нь аль хэдийн шалгадаг болохыг харуулж байна. Тэдгээр нь 1С суулгасан "bin" хавтсанд байрлах "cacert.pem" файлд туршилтын хэлбэрээр байна. Импорт хийх нь өмнөх шигээ энгийн зүйл биш юм.

Нэгдүгээрт, бид шаардлагатай гэрчилгээгээ файл руу экспортлох хэрэгтэй (би үүнийг аль хэдийн хувийн хадгалах сандаа хадгалсан). "certmgr.msc" -ийг ажиллуулснаар бид гэрчилгээг олоод *.cer файл руу экспортлодог.

C:\OpenSSL-Win64\bin>openssl x509 -inform der -in C:\fiddler.cer -out C:\fiddler.pem -text -fingerprint -md5 АНХААРУУЛГА: тохиргооны файлыг нээх боломжгүй: /usr/local/ ssl/openssl.cnf MD5 Хурууны хээ=13:BF:73:43:BB:69:19:BA:22:5D:C7:2E:44:85:91:7F
Бид MD5-г хэмнэдэг, бидэнд хэрэгтэй болно.
Дараа нь "cacert.pem" файлыг нээнэ үү.
Бид хамгийн доод хэсэгт очоод эхлээд MD5, дараа нь "fiddler.pem" файлд гарч ирсэн бүх агуулгыг нэмнэ.
Файлыг хадгал.
Бид 1С-г дахин эхлүүлнэ (магадгүй энэ нь шаардлагагүй байж магадгүй, гэхдээ энэ нь надад тохирохгүй байсан тул би бүгдийг дахин эхлүүлсэн.

1С дахь эх файлыг дараах хэлбэрээр өгсөн болно.

Процедур SendRequestPress(Element) Connection = GetHTTPConnection(); Хэрэв холболт = Тодорхойгүй бол мэдээлэх("Биржийн тохиргоонд заасан сервертэй холбогдож чадсангүй! Боловсруулалт тасалдсан!"); Үгүй бол Source = FileAddress; endIf; Файлын нэр = Файлын үр дүн; PostFileName = PostFile; PostFile = Шинэ файл(PostFileName); SubmissionFileSize = XMLString(SubmissionFile.Size()); Толгой хэсэг = Шинэ тохирох (); Headers.Insert("Content-Type", "application/x-www-form-urlencoded"); Headers.Insert("Content-Lenght", SubmissionFileSize); Холболтыг оролдоорой.SendForProcessing(PostFileName, Source, FileName, Headers); Онцгой байдлын тайлан(ErrorDescription()); EndAttempts EndProcedures функц GetHTTPConnection() Export AttemptConnection = Шинэ HTTPConnection(HTTPServer,"443",Үнэн); Онцгой байдлын тайлан(ErrorDescription()); Холболт = Тодорхойгүй; EndAttempt; Буцах холболт; EndFunctions журам OnOpen() HTTPServer = "test.com"; FileAddress = "/ гарц/GetData1C"; PostFile = "C:\POST_1C\post.txt"; FileResult = "C:\POST_1C\result.xml"; Төгсгөлийн процедур

Товчлуур дээр дарсны дараа HTTPS-ээр хүсэлт илгээгдсэн бөгөөд зөв XML-г гаралт болгон хүлээн авсан.

Би 1С нь HTTPS дээр хэрхэн ажилладаг талаар маш их материал хайж байсан боловч өөрөө гарын үсэг зурах гэрчилгээг ашиглан хэрхэн ажиллахаа олж чадсангүй.

1С-ээс 8.3.9.2170 платформ хувилбар бүхий сайт руу мэдээлэл илгээх журмыг боловсруулахдаа би асуудалтай тулгарсан: сайтын хөгжүүлэгч надад PUT аргыг ашиглан зөвхөн HTTP хүсэлтийг ашиглан шаардлагатай мэдээллийг бүртгэх боломжийг олгосон.

Би хоёр ч удаа бодолгүйгээр энгийн кодыг зурсан:

Холболт = Шинэ HTTPConnection("www.mysite.ru"); Гарчиг = Шинэ тохирох; Headers["Content-Type"] = "application/x-www-form-urlencoded"; Хүсэлт = Шинэ HTTPRequest("/api/order_items/93076?order_item=30", Толгой хэсэг); Холболт.Бичих(Хүсэлт);

Гүйцэтгэлийн үр дүнд үндэслэн агуулахад хүлээн авсан барааны тоо хэмжээг вэбсайт дээрх худалдан авагчийн захиалгын харгалзах мөрөнд оруулах ёстой.

Гэсэн хэдий ч та аль хэдийн ойлгосон байх, юу ч болоогүй. Би сайт дээр ямар ч алдаа байхгүй эсэхийг шалгасны дараа (Chrome залгаасаар дамжуулан ижил төстэй хүсэлт илгээж) би үүнийг өөрийн компьютер дээр эхлүүлсэн. орон нутгийн компьютервэб сервер болон туршилт хийж эхлэв.

Хачирхалтай зүйл тэр даруй тодорхой болов: Дээрх код нь PUT биш, харин HEAD хүсэлтийг үүсгэдэг!

Apache логууд дээр би дараахь зүйлийг харсан.

127.0.0.1 - - "ТОЛГОЙ /api/order_items/93076?order_item=30 HTTP/1.1"

Би бага зэрэг гайхсан (эцэст нь гарын авлагад PUT гэж хар цагаан гэж бичсэн байсан), гэхдээ би андуурсангүй - та энэ аргыг шууд дуудаж болно:

Холболт.CallHTTPmethod("PUT", Хүсэлт);

Бүртгэлүүд ижил зүйлийг харуулж байна:

127.0.0.1 - - "ТОЛГОЙ /api/order_items/93076?order_item=30 HTTP/1.1"

"Магадгүй би буруу зүйл хийж байгаа юм болов уу?" -Би өөрөөсөө асуулт асуусан. Гэхдээ интернет болон гарын авлагад ямар ч зөвлөмж байгаагүй. Шинжлэх ухааны нотлох аргыг хэн ч цуцлаагүй байна. Эхлэхийн тулд би үүнийг хийхийг оролдсон:

Холболт.CallHTTPmethod("fyvfyv", Хүсэлт);

Миний хүлээн авсан бүртгэлд:

127.0.0.1 - - "?????? /api/order_items/93076?order_item=30 HTTP/1.1"

Сонирхолтой нь энэ нь 1С нь PUT аргыг тусгайлан сольсон гэсэн үг юм (яагаад 1С таалагдаагүй юм бэ?).

Хэд хэдэн оролдлого хийсний дараа би дараах зүйлийг олж мэдэв.

Холболт.CallHTTPmethod("PUT", Хүсэлт);

Миний хүлээн авсан бүртгэлд:

127.0.0.1 - - "PUT /api/order_items/93076?order_item=30 HTTP/1.1"

Мөн энэ сонголт сайт дээр аль хэдийн ажиллаж байсан бөгөөд бүгд баяртай байсан.

Тэрээр асуудлыг шийдэх илүү зөв шийдлийг санал болгосон: та хүсэлтийн бие, ямар ч бие, тэр ч байтугай хоосон зааж өгөх хэрэгтэй. Жишээлбэл, энэ сонголт ажиллах болно:

Холболт = Шинэ HTTPConnection("www.mysite.ru"); Гарчиг = Шинэ тохирох; Headers["Content-Type"] = "application/x-www-form-urlencoded"; Хүсэлт = Шинэ HTTPRequest("/api/order_items/93076?order_item=30", Толгой хэсэг); Request.SetBodyFromString("",TextEncoding.UTF8, UseByteOrderMark.NotUse); Холболт.Бичих(Хүсэлт);

Параметрийн утгыг хүсэлтийн үндсэн хэсэгт оруулах нь зөв байх.

Дүгнэлт нь дараах байдалтай байна: 1С платформ нь их биегүй PUT хүсэлтийг алдаатай гэж үзэж, аргыг HEAD-ээр сольсон.

1С нь POST хүсэлтийг биегүйгээр дагаж мөрддөггүй бөгөөд үүнийг GET болгон хувиргадаггүй нь сонин байна, би үүнийг хөгжилтэй болгохын тулд шалгасан.

Алдарт Вовочка алдартай хошигнолоос: "Логик хаана байна?"

Миний нийтлэл хэн нэгний хариултыг хайж хэдэн цагийн амьдралыг нь аварна гэж найдаж байна. =)))

Хэвлэх (Ctrl+P)

Та хоёрдугаар хэсгийг үзэх боломжтой

Ерөнхий мэдээлэл

Платформ хувилбарт 8.3.5.1068 , 2015 оны 9-р сард хэвлэгдсэн, 1С-тэй нэгтгэх механизм гадаад програмуудтехнологиор дамжуулан REST интерфейс. Платформ нь OData протоколыг хандалтын протокол болгон ашигладаг. Энэ нь өгөгдөл асуулга болон шинэчлэх нээлттэй вэб протокол юм. Энэ нь танд HTTP тушаалуудыг хүсэлт болгон ашиглан өгөгдлийг удирдах боломжийг олгодог. 8.3.5.1068 хувилбарт хариултыг зөвхөн форматаар хүлээн авах боломжтой байсан Атом/XML . Гэсэн хэдий ч 2017 оны 8-р сард 8.3.8.1652 хувилбараас эхлэн JSON (JavaScript Object Notation) форматаар өгөгдөл хүлээн авах хоёрдахь сонголт гарч ирэв. . XML-тэй харьцуулахад хүмүүс уншихад хялбар бөгөөд бага зай эзэлдэг. Нэмж дурдахад бүх хөтчүүд JSON-тэй ажиллахад зориулагдсан хэрэгслүүдтэй байдаг.

1C: Enterprise платформ дээр OData протоколтой ажиллахыг 17-р бүлгийн 1С: Хөгжүүлэгчийн гарын авлага номноос олж болно. Интернет үйлчилгээний механизмууд, догол мөр 17.2.1 Стандарт OData интерфейс.Та мөн OData протоколын дэмжлэгийг өргөжүүлэх жишээг харж болно.

Хэрэглэх давуу тал REST интерфейс. Гадаад програмаас системийн өгөгдөлд хандахын тулд програмын шийдлийн кодыг өөрчлөх шаардлагагүй (жишээлбэл, програмын шийдлийг дэмждэг бол) гэж дүгнэсэн. Энэ хандалтыг авахын тулд та програмыг вэб серверт тодорхой байдлаар нийтэлж, ямар тохиргооны объектуудыг ийм байдлаар ашиглахыг зааж өгөх ёстой. Гуравдагч талын системүүд HTTP хүсэлтийг ашиглан таны програмд ​​хандах боломжтой.

Стандарт OData интерфейсийг нийтлэх нь вэб сервер дээрх нийтлэх харилцах цонхыг ашиглан хийгддэг (Захиргаа - Нийтлэх вэб сервер) ба 1C: Enterprise 8.3 номонд тайлбарласан болно. "Администраторын гарын авлага".
Чухал!Стандарт OData интерфэйсээр дамжуулан тохиргооны объектуудад хандах боломжтой байхын тулд үүнийг глобал контекст аргыг ашиглан идэвхжүүлсэн байх ёстой. StandardInterfaceOData()-ийн бүрэлдэхүүнийг тохируулах.
Стандарт OData интерфейсийг ашиглан боломжтой объектуудын найрлагыг тохируулах механизмыг хэлбэрээр хийж болно гадаад боловсруулалт. Энэ нь хэрэглээний шийдлийг өөрчлөх шаардлагагүй.

1C: Enterprise-ийн гадаад REST вэб сервертэй харилцахын тулд бид HTTP: объектуудтай ажиллах платформ дээр байгаа хэрэгслүүдийг ашигладаг. HTTPConnection, HTTPRequest болон HTTPResponse.

Энэ цуврал нийтлэлд би тохирох HTTP аргыг ашиглан ердийн үйлдлийн жишээг харуулах болно;

  • Мэдээлэл хүлээн авах арга АВАХ;
  • Объект үүсгэх - арга POST;
  • Өгөгдлийг шинэчлэх: арга PATCH- энэ тохиолдолд та зөвхөн шинэчлэх шаардлагатай шинж чанаруудыг зааж өгч болно; арга PUT- энэ тохиолдолд аж ахуйн нэгжийн бүх шинж чанарыг зааж өгөх шаардлагатай;
  • Өгөгдлийг устгах - арга УСТГАХ.

1. Мэдээлэл цуглуулах жишээ. HTTP GET арга

Сервер нь вэб сервер дээр нэрээр нийтлэгдсэн мэдээллийн сан байх болно WebBuh("Аж ахуйн нэгжийн нягтлан бодох бүртгэл 3.0" үзүүлэх мэдээллийн сан). Би JSON форматыг өгөгдөл солилцох формат болгон ашиглах болно. JSON-тэй ажиллах талаарх дэлгэрэнгүй мэдээллийг бэлэн баримт бичигт бичсэн болно. HTTP GET аргыг ашиглан серверээс өгөгдөл хүлээн авахын тулд та объект үүсгэх хэрэгтэй JSON уншиж байнафайл эсвэл мөрөөс JSON өгөгдлийг дараалан унших. HTTP POST PATCH PUT аргыг ашиглан сервер дээрх объект, текстийн дараалсан бичлэгийг зохион байгуулахын тулд та объект үүсгэх хэрэгтэй. JSON оруулга. DELETE арга нь JSON-г шаарддаггүйг анхаарна уу.

REST интерфэйс рүү нэвтрэх үед JSON унших, бичих урсгалыг харуулахын тулд би дараах тусгай функцийг дуудах болно. Ерөнхий зорилго HTTPMethodOnServer руу залгана уу :

&Сервер дээр // <Описание функции>// // Сонголтууд: // - Хүсэлтийн HTTP аргын нэрийг агуулсан мөр ("POST"."PATCH", "PUT" ,"GET","DELETE" // - HTTPConnection объект //<АдресРесурса>- HTTP хүсэлтийг илгээх http нөөцийн мөр. //<ОтправляемыеДанные>- "POST" эсвэл "PATCH" эсвэл "PUT" HTTP аргыг ашиглан сервер дээр боловсруулахаар заасан хаяг руу илгээсэн өгөгдлийг агуулсан бүтэц эсвэл тохирол // Буцах утга: // серверийн хариу үйлдлийн бүтэц HTTPMethod// функц HTTPMethodOnServer руу залгах(HTTPmethod, HTTPConnection, ResourceAddress, SentData =Тэмдэглэгдээгүй ) // HTTP хүсэлт үүсгэхГарчиг = шинэ Тоглолт(); Гарчиг. Оруулах("Агуулгын төрөл", "програм/json"); HTTP хүсэлт = Шинэ HTTP хүсэлт ( ResourceAddress, Headers ); // Өгөгдөл үүсгэх, шинэчлэхийн тулд Json гэж бичнэ үүХэрэв HTTPMethod = "POST" эсвэл HTTPMethod = "PATCH" эсвэл HTTPMethod = "PUT" бол JSON Record = New JSON Record ; ParametersJSON = Шинэ ParametersRecordsJSON(Line WrapJSON.Auto,"",Үнэн); RecordJSON.SetString(ParametersJSON); WriteJSON(WriteJSON, Илгээсэн өгөгдөл ); // Илгээсэн өгөгдөлЭнэ тохиолдолд шаардлагатай LineForBody = RecordJSON.Close(); RequestHTTP.SetBodyFromString(StringForBody, TextEncoding.UTF8, ByteOrderMark-г ашиглах.Бүү ашигла); endIf; // HTTPConnection аргыг дуудах ResponseHTTP = HTTPConnection.CallHTTPmethod(HTTPmethod, HTTPRequest) ; Хариултын бүтэц= Шинэ бүтэц ; Хариултын бүтэц.Insert("Төлөвийн код", ResponseHTTP.StatusCode); // Зөвхөн GET аргын хувьд JSON-г уншина ууХэрэв HTTPMethod="GET"Дараа нь TryReadJSON = NewReadJSON ; ServerResponse = ResponseHTTP.GetBodyAsString("UTF-8"); ReadJSON.SetString(ServerResponse); Тохирох = ReadJSON(ReadJSON,Үнэн); Хариултын бүтэц. Оруулах("Серверийн хариу",Захидал) ; Хариултын бүтэц.Оруулах (" Серверийн хариу шифрлэгдээгүй", ServerResponse); Үл хамаарах зүйл Тайлан (Алдааны тайлбар()); Тодорхойгүй буцаах; EndAttempt; EndIf; Буцах Хариултын бүтэц ; Төгсгөлийн функц // HTTPMethodOnServer() руу залгах

Серверээс хүлээн авахын тулд JSON форматпрограмын шийдлийн REST интерфэйс рүү хандахдаа нөөцийн хаягийг зааж өгөх хэрэгтэй $format=json.Эсвэл MIME төрлийг зааж өгнө үү "програм/json"гарчигт:

Гарчиг = шинэ Тоглолт(); Гарчиг.Оруулах("Агуулгын төрөл", "application/json") ; ResourceAddress = " WebBuh/data/standard.data/ ?$format=json" RequestHTTP = Шинэ HTTPRequest(ResourceAddress, Headers);

Дэлхийн нөхцөл байдлын онцлог ReadJSON(ReadJSON, үнэн)

  • Хэрэв хоёр дахь параметрийг Үнэн гэж тохируулсан бол объектыг уншина уу JSONонд дуусгах болно Захидал.Хэрэв худал гэж тохируулсан бол объектуудыг төрлийн объект болгон унших болно Бүтэц.
  • JSON объектуудыг бүтцэд оруулахгүй байх үед та бүтцийн үндсэн шаардлагуудыг мэдэж байх хэрэгтэй. Хэрэв объектыг цувралаас хасах үед бүтцийн түлхүүрт хүчингүй өмчийн нэр олдвол онцгой тохиолдол гарна.

1. 1 HTTP холболтын параметрүүдийг тохируулах

Гадаад REST вэб сервертэй харилцах үйлчлүүлэгчийн хэсгийг зохион байгуулахын тулд би эхнээс нь BSP дээр суурилсан клиентийн тохиргоог үүсгэсэн. Энэ тохиргоог ашиглан би холболтын параметрүүдийг тохируулах лавлагаа үүсгэсэн (1-р зургийг үз)

Зураг 1 Үлдсэн интерфейсээр дамжуулан гадаад мэдээллийн аюулгүй байдалд HTTP холболтын параметрүүдийг тохируулах лавлах

Товчлуур дарсны дараа Серверийн хариуг шалгах, Үйлчлүүлэгч серверээс хариу авахыг оролдох процедурыг дууддаг. Програмын кодУг процедурыг доор бичсэн болно.

&OnClient Procedure CheckConnection(Command) Хаяг = Object.ServerAddress; Хэрэглэгч = Объект.Хэрэглэгч; Нууц үг = Объект.Нууц үг; Өгөгдлийн сангийн нэр = Объект.Нэр; Порт =? (Object.Port<>0,Object.Port,80); HTTPConnection = Шинэ HTTP холболт (хаяг, порт, хэрэглэгч, нууц үг); ResourceAddress = DatabaseName + "/odata/standard.data/ $ мета өгөгдөл "; //Дуудлага захиалгат функц Хариултын бүтэц= Б HTTPMethodOnServer руу залгана уу("АВАХ", HTTPConnection, ResourceAddress) ; Хэрэв Хариултын бүтэц <> Тодорхойгүй Дараа нь GeneralPurposeClientServer.NotifyUser("Төлөвийн код"+ResponseStructure.StatusCode); Төгсгөлгүй; Төгсгөлийн процедур

Энэхүү процедурын зорилго нь үйлчилгээг шалгах бахэрэглэгч холболтын параметрүүдийг зөв оруулсан эсэх. Үүнийг хийхийн тулд GET хүсэлтийг гүйцэтгэхэд л хангалттай.
HTTPConnection.CallHTTPmethod( "АВАХ", HTTP хүсэлт);
нөөцийн хаягийг ашиглан:
Нөөцийн хаяг =Үндсэн нэр+ /data/standard.data/ “;
Та мөн үйлчилгээг ашиглан хөтөч дээрээ шалгах боломжтой
URL
http://host/WebBuh/odata/standard.odata. Ийм асуулгын үр дүн нь зөвхөн байгууллагуудын жагсаалт юм. Стандарт OData интерфейсийн бүрэн тайлбарыг авахын тулд (боломжтой байгууллагуудын жагсаалт, тэдгээрийн шинж чанарууд, функцүүдийн XML хэлбэрээр)
баримт бичиг.) та параметрийг ашиглан GET хүсэлтийг гүйцэтгэх ёстой $ мета өгөгдөл. URL http://host/WebBuh/odata/standard.odata/$metadata. Дэлгэрэнгүй тодорхойлолтБаримт бичгийг http://www.odata.org/documentation/ (англи хэл дээр) хаягаар авч болно.
Та хариултыг форматаар хүлээн авах боломжтой Атом/XMLэсвэл JSON. HTTP хариултын төлөвийн кодыг дараах муж дахь хариултуудыг харж болно:

  • 100-199 - үйлчлүүлэгчийн хүсэлтийг хүлээн авч, боловсруулж байгааг харуулсан мэдээллийн хариу.
  • 200-299 – үйлчлүүлэгчийн хүсэлтийг амжилттай боловсруулсан гэсэн үг.
  • 300-399 Энэ нь хүсэлтийг биелүүлээгүй бөгөөд үйлчлүүлэгч хүсэлтийг хангахын тулд тодорхой арга хэмжээ авах шаардлагатай гэсэн үг юм.
  • 400-499 - үйлчлүүлэгчийн програмын алдааны талаар мэдээлдэг. Эдгээр кодууд нь үйлчлүүлэгчээс нэмэлт мэдээлэл авах шаардлагатайг илэрхийлж болно.
  • 500-599 - Серверийн алдааны талаар мэдээлэх нь серверт алдаа гарсан бөгөөд үйлчлүүлэгчийн хүсэлтийг биелүүлэх боломжгүй болохыг харуулж байна.

1.2 ID-аар объект хайх

Дараагийн функц нь сервер дээрх өвөрмөц танигчаар лавлах эсвэл баримтыг хайхад зориулагдсан. Хэрэв объект олдвол функц нь танигчийн (Ref_Key) утгыг буцаана, эс бөгөөс буцаана. тэмдэглэгдээгүй.Дараах параметрүүдийг функцэд шилжүүлнэ.

  • HTTPConnection – HTTPConnection төрлийн объект
  • PublicationName – Нийтэлсэн серверийн мэдээллийн сангийн нэр
  • Элемент - объектын танигч, жишээлбэл, Каталог_Байгууллагаэсвэл Document_- Байгууллагын лавлах.
  • Тодорхойлогч – Сервер дээр хайх объектын танигч, ж.нь. Organization.UniqueIdentifier()
&OnServer функц SearchObjectByGUID (HTTPConnection,PublicationName,Element,UniqueIdentifier) GUID = Мөр(Өвөрмөц танигч); // ResourceAddress = + мөр рүү хөрвүүлнэ Элемент+ "(guid""+ GUID+ "")?$format=json" ; Хариултын бүтэц = БHTTPMethodOnServer руу залгана уу("АВАХ" , HTTPConnection, ResourceAddress) ; Хэрэв Хариултын бүтэц .StatusCode >= 400 Дараа нь //General PurposeClientServer.NotifyUser(Элемент+ "Алдаа"+ResponseStructure.StatusCode+ //GeneralPurposeClientServer.NotifyUser(ResponseStructure.ServerResponseUndecrypted); Тодорхойгүй буцаах; EndIf; Тохирох = Хариултын бүтэц. ReplyServer a; Массив = Тохирох["утга"]; Хэрэв массив = тодорхойлогдоогүй бол Тоглолтыг буцаана["Ref_Key"] Эс бөгөөс массивыг буцаана["Ref_Key"]; endIf; Төгсгөлийн функц

Параметр Нөөцийн хаяг REST үйлчилгээнд хандахад ашигладаг. Үйлчилгээний ажиллагааг шалгахын тулд хөтөч дээрх нөөцийг ингэж зааж өгч болно

http://(WebServerAddress)/(PublicationName)/odata/standard.odata/(Element)?(Параметрүүд) ,Хаана

  • Вэб серверийн хаяг– Үйлчилгээ нийтлэгдсэн вэб серверийн хаяг, жишээ нь Localhost
  • Нэр Нийтлэлүүд-Нэр мэдээллийн баазшийдвэрийг нийтлэхдээ заасан
  • /data/standard.data/ – Стандарт OData интерфейс рүү нэвтрэх тэмдэг
  • Бүрэлдэхүүн – нөөцийн тодорхойлогч эсвэл урьдчилан тодорхойлсон нөөц. Жишээлбэл, Catalog_Account(guid’value’).
  • Сонголтууд- нөөцийн параметрүүд. Жишээлбэл, HTTP хүсэлтийн хувьд хүлээн зөвшөөрөгдсөн байдлаар сонгохдоо ашигладаг: ?key=value&key2=value2

1.3 Хайлтын талбаруудыг ашиглан объект хайх

Дараах хэрэглэгчийн тодорхойлсон функц нь тухайн объект таних дугаараар байгаа тохиолдолд хайлтын талбаруудаар объект хайхад зориулагдсан болно. Функцийн объектын мөр Ref_Key -таних дугаар.

&OnServer функц P searchObjectBySearchFields(HTTPConnection,PublicationName,Element,SearchFields)Нөхцөл = "" ;Хайлтын талбарын давталтын түлхүүр утга бүрийн хувьд Нөхцөл байдал = Нөхцөл байдал + ТүлхүүрҮнэ.Түлхүүр+ "eq"" + Түлхүүр утга.Үнэ цэнэ+ "" ба "; EndCycle; Хүсэлтийн текст =Lev(Нөхцөл, StrLength(Нөхцөл)-5); // сүүлийн 5 тэмдэгтийг устгана уу Нөөцийн хаяг= PublicationName+ "/odata/standard.data/" +Элемент+ "?$filter=" + Хүсэлтийн текст+ "&$format=json& $select=Ref_Key" ; //Миний захиалгат функцийг дууд Хариултын бүтэц= CallHTTPmethodOnServer( "АВАХ",HTTPConnection,ResourceAddress);Хэрэв Хариултын бүтэц .StatusCode >= 400 Дараа нь //General PurposeClientServer.NotifyUser(Элемент+ "Алдаа"+ResponseStructure.StatusCode); //General PurposeClientServer.NotifyUser(ResponseStructure.ServerResponseUndecrypted); Тодорхойгүй буцаах; endIf; Тохирох = Хариултын бүтэц. ReplyServer a; Массив = Тохирох["утга" ]; Хэрэв массив = тодорхойлогдоогүй бол тохирохыг буцаана ["Ref_Key" ] Эс бөгөөс массивыг буцаана ["Ref_Key" ]; endIf; Төгсгөлийн функц

Процедурын хэсгээс харж болноП SearchObjectBySearchFields, сонголт нь түлхүүр үгээр эхэлдэг$ шүүлтүүрнөөцийн хаягаар. Албан ёсны параметрХайлтын талбарууд -Энэ бол дэлгэрэнгүй мэдээллийн нэр, утгыг агуулсан захидал харилцаа юм.

Дэлгэрэнгүйн нэр нь заримдаа тодорхойгүй байдаг гэдгийг анхаарна уу. Лавлах номын хувьд дараахь зүйлийг санах нь зүйтэй.

  • Код - код,
  • Тодорхойлолт - Нэр
  • DeletionMark - устгах тэмдэг,
  • IsFolder - бүлгийн тэмдэг,
  • Эцэг эхийн_Түлхүүр - эцэг эх.
  • Хэрэв атрибут нь лавлагааны төрлийн байвал нэрэнд нь _Key дагаварыг нэмэх хэрэгтэй, жишээ нь Account_Key.

Баримт бичгийн хувьд:

  • дугаар - баримт бичгийн дугаар,
  • Огноо - баримт бичгийн огноо.

Логик сонголтын үйлдлүүд

  • eq - Тэнцүү; /Catalog_Cities?$filter=Нэр eq ‘Үндсэн’;
  • ne - тэнцүү биш; /Catalog_Cities?$filter=‘Перм’ гэсэн нэр;
  • gt - Илүү их; /Каталог_бүтээгдэхүүн?$шүүлтүүр=Үнэ gt 10;
  • ge - Их буюу тэнцүү; /Каталог_бүтээгдэхүүн?$шүүлтүүр=Үнэ 10;
  • lt - бага; /Каталог_бүтээгдэхүүн?$шүүлтүүр=Үнэ lt 10;
  • le --аас бага буюу тэнцүү; /Каталог_бүтээгдэхүүн?$шүүлтүүр=Үнэ le 10;
  • эсвэл - Логик OR; /Каталог_ Бүтээгдэхүүн ?$шүүлтүүр= Үнэ lt 10 эсвэл Үнэ gt 100;
  • ба - Логик БА; / Каталог _Бүтээгдэхүүн?$ шүүлтүүр =Үнэ g t 10 ба Үнэ l t 100;
  • үгүй - үгүйсгэх; /Каталог_ Бүтээгдэхүүн ?$шүүлтүүр=биш (Үнэ тэнцүү 10);

Мөн бодит параметрийн утгыг анхаарна уу Бүрэлдэхүүн(эсвэл аж ахуйн нэгж)) функц руу дамжуулдаг дараах дүрмийн дагуу үүсгэгддэг.

Нэрийн угтвар_тохиргооны объектНэр_нэр дагавар.

Стандарт OData интерфэйсийг ашиглан та дараах объектуудад хандах боломжтой ( Нэрийн угтвар):

  • Лавлах - Каталог;
  • Баримт бичиг - Баримт бичиг;
  • Баримт бичгийн сэтгүүл - DocumentJournal;
  • Тогтмол - Тогтмол;
  • Солилцооны төлөвлөгөө - Солилцооны төлөвлөгөө;
  • Дансны график - ChartOfAccounts
  • Тооцооллын төрлүүдийн график - ChartOfCalculationTypes;
  • Characteristic types chart - ChartOfCharacteristicTypes;
  • Мэдээллийн бүртгэл - Мэдээллийн бүртгэл;
  • Хуримтлалын бүртгэл - Хуримтлалын бүртгэл;
  • Тооцооллын бүртгэл - CalculationRegister;
  • Нягтлан бодох бүртгэлийн бүртгэл - Нягтлан бодох бүртгэлийн бүртгэл;
  • Бизнесийн үйл явц - Бизнесийн үйл явц;
  • Даалгавар - Даалгавар.

ConfigurationObjectName- Тохируулагчид заасан тохиргооны объектын "Нэр" шинж чанар.

Нэрийн дагавар- нөөцийн нэрийг тодруулахад шаардлагатай, нэмэлт, дараах утгыг авч болно:

  • Объектын хүснэгтийн хэсгийн нэр;
  • Нэр виртуал хүснэгтобьект;
  • RowType - объектын хүснэгтийн хэсгийн эгнээ;
  • RecordType - тусдаа бүртгэлийн оруулга.

Нөөцөд хандах параметрүүд

Нөөцийн нэрийг үүсгэсний дараа та нөөцөд хандах параметрүүдийг тодорхойлох хэрэгтэй, жишээлбэл, ?$шүүлтүүр= Утга &$формат=json& $сонгох= Ref_Key ,

  • $ шүүлтүүр- өгөгдөл хүлээн авах үед сонгох
  • $формат- буцаасан өгөгдлийн форматыг заана;
  • $сонго- асуулгын үр дүнд багтах аж ахуйн нэгжийн шинж чанаруудын жагсаалт;
  • $ мета өгөгдөл- стандарт OData интерфэйсийн тайлбарыг буцаана (нэрийн дагаварыг заахгүйгээр ашигладаг, жишээ нь дээрх зургуудын аль нэгэнд);
  • $ дээд- буцаасан бичлэгийн тоог хязгаарлах;
  • $ алгасах- асуулгын үр дүнгээс заасан тооны бичлэгийг устгана;
  • $тоо- асуулгын сонголт дахь бичлэгийн тоог буцаана;
  • $inlinecount=бүх хуудас(=байхгүй)- асуулгын үр дүнд бичлэгийн тооны талаарх мэдээллийг нэмнэ
  • $захиалга=<Реквизит1>ах,<Реквизит2>бууруулах- асуулгын үр дүнг эрэмбэлэх
  • Зөвхөн зөвшөөрөх- зөвхөн зөвшөөрөгдсөн ("$" тэмдэггүйгээр ашигладаг).

1.4 Мэдээллийн бүртгэлийн оруулгуудын массивыг авах

Хувь хүмүүсийн бүтэн нэр, жишээлбэл, овог нэр өөрчлөгдсөн түүхийн талаархи мэдээллийг авахын тулд регистрийн оруулгуудын массивыг олж авах жишээг авч үзье. хувь хүн

Нэр Нийтлэлүүд = "WebBuh";Элемент = "Хувь хүний ​​мэдээллийн бүртгэлийн_нэр"; Хугацаа = Тодорхойгүй; ReferenceType Data= шинэ бүтэц(); Д DataReferenceType.Insert("Хувь хүн", Хувь хүний_Түлхүүр); DataNON-ReferenceType= шинэ бүтэц(); DataNON-ReferenceType.Insert("Хувь хүний_төрөл", "СтандартODATA.Каталог_хувь хүн") Массив = GetRegisterInfoSet(HTTPхолболт, Нийтлэлийн нэр, Элемент, Хугацаа, Хэмжээ лавлагааны төрөл, Лавлагааны төрлийн бус хэмжээсүүд)

Энэ жишээнд дуудагдсан GetInfoRegisterRecordSet функцийн биеийг доор үзүүлэв

&OnServer функц GetSetRecordRegisterInformation(HTTPConnection,PublicationName,Element,Piod =Тодорхойгүй, Хэмжээ лавлагааны төрөл= Тодорхойгүй Лавлагааны төрлийн бус хэмжээсүүд= Тодорхойгүй) RequestText = "" ;Хэрэв үе<>Тодорхойгүй Дараа нь Formatted Period= Формат (Хугацаа,"DF=yyyy-MM-ddTHH:mm:ss"); RequestText = "Цэг = огноо"" + FormattedPeriod + """ ; endIf; Хэрэв Хэмжээ лавлагааны төрөл <>Тодорхойгүй Дараа нь ТүлхүүрУтга бүрийн хувьд Хэмжээ лавлагааны төрөл Cycle Powered =? ( Утга дүүргэсэн(QueryText), "," ,""); RequestText = RequestText+ Асаасан + ТүлхүүрҮнэ.Түлхүүр+ "=guid(""+ Түлхүүр утга.Үнэ цэнэ+ "")"; EndCycle; EndIf; If Лавлагааны төрлийн бус хэмжээсүүд<> Тодорхойгүй Дараа ньТүлхүүр утга бүрийн хувьд Лавлагааны төрлийн бус хэмжээсүүд Цикл Асуусан =? ( Утга дүүргэсэн(QueryText), "," ,""); QueryText = QueryText + Fed+ К ТүлхүүрУтга.Түлхүүр + "=" + Түлхүүр утга.Үнэ цэнэ; Төгсгөлийн мөчлөг; endIf; ResourceAddress=PublicationName + " /data/standard.data/" + Элемент + "("+ Асуулгын текст + + ") ?$format=json"; //Миний захиалгат функцийг дууд Хариултын бүтэц = HTTPMethodOnServer руу залгана уу("GET", HTTPConnection, ResourceAddress); Хэрэв Хариултын бүтэц.StatusCode >= 400 Дараа нь//General PurposeClientServer.NotifyUser(Элемент+ "Алдаа"+ResponseStructure.StatusCode); //General PurposeClientServer.NotifyUser(ResponseStructure.ServerResponseUndecrypted); Тодорхойгүй буцаах; endIf; Тохирох = 0

Платформын хоёр дахь хувилбар 8-аас эхлэн хэрэглэгчид болон хөгжүүлэгчид http хүсэлтийг 1С дээр шууд ашиглах боломжтой болсон. Хөтөлбөр нь хоёр төрлийн хүсэлтийг дэмждэг:

  • POST хүсэлт;
  • Хүсэлтүүдийг хүлээн авах.

Ийнхүү http-ээр дамжуулан ажилладаг вэб үйлчилгээ, үйлчилгээнүүдтэй мэдээлэл солилцох, харилцан ажиллахад тохиромжтой хэрэгсэл бий болсон.

Хүсэлтийг АВАХ

Мэдээжийн хэрэг, асуулга ашиглах хамгийн энгийн жишээнүүд нь тэдгээрийн чадавхийг олон мөрийн тайлбараас хамаагүй дээр харуулж байна. Ингээд оролдоод үзье:

  1. Манай сайтын үндсэн хуудасны хэсгийг авцгаая;
  2. Бид хүсэлтийг дахин чиглүүлэхээр ажиллах болно;
  3. Сайтаас зургийг нь авцгаая.

Сайтын биеийг авч байна

Энгийн зүйлээс эхэлцгээе. Зураг дээр..

Кодын энэ хэсгийг гүйцэтгэсний үр дүн нь нэлээд том текст бөгөөд эцсийн хэсгийг 2-р зурагт үзүүлэв.

Зураг 2

Кодын эхний мөрөнд бид http нөөцтэй холбогдох объектыг үүсгэдэг. Объект нь дараах шинж чанаруудыг агуулж болно.

  • Сервер - серверийн хаягийг агуулсан холболтын мөр;
  • Порт – серверийн портыг харуулсан дугаарыг агуулсан; анхдагчаар, холболтын төрлөөс хамааран хамгаалалтгүй холболтод 80, SSL хамгаалалттай холболтод 443-ыг зааж өгч болно.
  • Хэрэглэгчийн нэр - сервер дээр зөвшөөрөл шаардлагатай бол зааж өгнө;
  • Нууц үг - заасан нөөц дээрх хэрэглэгчийн нууц үг;
  • Прокси – сервертэй холбогдоход прокси ашиглах үед заасан InternetProxy төрлийн объектыг агуулж болно;
  • Аюулгүй холболт – өгөгдмөл утга нь ХУДАЛ, ҮНЭН рүү шилжих нь https протоколыг ашиглаж байгааг илтгэнэ.

Нэмж дурдахад, HTTPConnection объект нь өөрийн гэсэн аргуудтай бөгөөд энэ нь танд зохицуулагчийн гүйцэтгэлийн алгоритмыг илүү бүрэн дүрслэх боломжийг олгодог.

  • CallHTTPmethod – HTTPmethod болон HTTPrequest гэсэн хоёр шаардлагатай параметрийг агуулсан бөгөөд гурав дахь параметрт заасан файлд хариу бичих боломжийг дэмждэг;
  • Write - PUT хүсэлтийг ашиглан сервер рүү өгөгдөл илгээдэг;
  • Өөрчлөх – PATCH хүсэлтийг боловсруулах замаар объектыг өөрчилдөг;
  • SendForProcessing - өмнөх бүх аргуудын нэгэн адил POST хүсэлтийг ашиглахыг харуулсан арга нь хүсэлтийн текстийг агуулсан байх ёстой бөгөөд өгөгдлийг бүртгэх хариултын файлын хаягийг дамжуулах боломжтой;
  • Хүлээн авах - үүнийг доор дэлгэрэнгүй авч үзэх болно;
  • GetHeadings бол нийтлэлд хэрэглэгдэх өөр нэг арга юм;
  • Устгах нь үнэндээ хүсэлтээр дамжуулагдсан эх сурвалжийг серверээс устгадаг Delite хүсэлт юм.

Хоёрдахь мөрөнд бид сонгосон сайт руу хүсэлт гаргах бөгөөд бидний хүсэлтийн текст нь нэг налуу зураас агуулсан бөгөөд энэ нь бид хүлээн авахыг хүсч байна гэсэн үг юм. нүүр хуудас. Хэрэв ташуу зураасны араас ямар нэгэн илэрхийлэл, жишээ нь "хуудас2" эсвэл "мэдээ" байвал бид өөр хуудас авах болно.

Гурав дахь мөр нь сервер рүү илгээсэн хүсэлтийг гүйцэтгэдэг.

Дөрөвдүгээрт бид үр дүнг харуулж байна.

http хүсэлтийн дахин чиглүүлэлт хийж байна

Хайлтын үр дүнг программчлан авах шаардлагатай нөхцөл байдлыг төсөөлөөд үз дээ Хайлтын систем"1 секундын доторх хүсэлт" гэсэн түлхүүрээр. GOOGLE-д хандахад шаардагдах кодын хэсгийг Зураг 3-т үзүүлэв

Зураг 3

Энд бидэнд аль хэдийн танил болсон бүтцүүдээс гадна Толгой ба статусын код байдаг. Тэдэнтэй харьцъя.

Статусын код – "Сэтгэгдэл бичих хүсэлт" хэсэгт заасан стандарт утга нь дараах утгыг авч болно.

  1. Хэрэв бүх зүйл хэвийн байвал утга нь 100-аас 299 хүртэлх зайд буцаж ирнэ;
  2. Дахин чиглүүлэх тохиолдолд 300-аас 399 хүртэлх кодыг буцаах бөгөөд манай тохиолдолд нөөц рүү амжилттай байнгын дахин чиглүүлэхийг 301 кодоор тодорхойлно;
  3. Хэрэв хүсэлтэд алдаа байгаа бол параметр нь 400-аас 499 хүртэлх утгыг авна;
  4. 500-599 муж дахь утга нь сервертэй холбоотой асуудлуудыг илтгэнэ.

Хуудас бүр гарчигтай бөгөөд текстэнд хэд хэдэн параметрийг ялгаж болно (Зураг 4):

  1. Холболтын диаграмм ("//" хоёр налуу зураасны өмнө ирдэг бүх зүйл);
  2. Хаягийн мөрхолболтууд;
  3. Хэрэглэгчийн нэр, нууц үг;
  4. Холбох порт болон хост.

Яг энэ хуваалтыг SplitAddressLine функц гүйцэтгэдэг. Ийнхүү хүлээн авлаа шинэ хаяг, бид хуудсыг компьютер дээрээ хадгалж, анхдагч хөтөч дээр нээх боломжтой (GetPage процедур).

Зураг 5

Энд хүсэлттэй ажиллах шинэ функц эсвэл арга байхгүй, бид үнэндээ үүсгэж байна Текст баримтсайтын үндсэн хэсгээс болон хөтөч дээр хуудсыг ажиллуулна уу.

Бид файлыг D драйвын үндэс дээр байрлуулж, үүнийг тест гэж нэрлэдэг.

Бид зургийг сайтаас авдаг

Байгалийн асуулт гарч ирнэ: хэрвээ бидэнд бүхэл бүтэн сайт хэрэггүй, зөвхөн түүний бие даасан элементүүдийг олж авах шаардлагатай бол үүнийг яаж хийх вэ? Тиймээ чи чадна. Үүнийг хийх боломжийг олгодог програмын кодыг 6-р зурагт үзүүлэв

Зураг 6

Зургаас харахад хүсэлтийн хэсэгт бид хүлээн авах шаардлагатай сайтын бүтцийн элементийн кодтой байна. Энэ хэсэг нь бидний өмнөх тайлбарт байгаагүй бөгөөд бид энэ талаар илүү дэлгэрэнгүй ярих хэрэгтэй.

Бид хөтөч ашигласанСайт руу нэвтрэхийн тулд Opera. Энэ нь бидний хувьд нэг чухал хэрэгсэлтэй: та элемент дээр хулганы баруун товчийг дарснаар контекст цэсийг дуудах боломжтой бөгөөд тэдгээрийн нэг нь "Элементийн кодыг харах" юм.

Түүний ачаар бид хүсэлтийн 7-р зурагт ашиглах хаягийг олж авах боломжтой болсон.

POST хүсэлт

Энгийн Get хүсэлтүүдээс ялгаатай нь POST http хүсэлтүүд нь ердийнх шиг хадгалах боломжтой текст биетэй байдаг текст хэлбэр, мөн xml, soap, json өргөтгөлтэй файл хэлбэрээр. Сүлжээнд зарим хүсэлтийн гүйцэтгэлийг дибаг хийх, хянах боломжийг олгодог хүсэлтийн текст үүсгэх маш олон хэрэгсэл байдаг.

1С-д тодорхой текст бүхий хүсэлтийг эхлүүлэхийн тулд HTTP хүсэлтийн объект нь SetBodyFromString процедуртай байдаг.