เพื่อประโยชน์ในการตรวจสอบหน่วยต่อไป

ซากาลเน บริการบนเว็บในปัจจุบันมีการใช้งานเกือบทุกที่ - พวกเขาให้ข้อมูลเกี่ยวกับเที่ยวบินของสายการบินและรถไฟ อัตราแลกเปลี่ยนและสภาพอากาศไม่น่าแปลกใจที่ 1C มีศักยภาพในการสร้างบริการเว็บที่มีประสิทธิภาพซึ่งช่วยให้คุณสามารถทำหน้าที่ทั้งในฐานะผู้จัดการและเพื่อนร่วมงาน

กลไกในการรับสมัครเข้าสู่แพลตฟอร์ม “1C:Enterprise 8.3” และผู้จัดจำหน่ายสามารถเพิ่มข้อมูลได้จาก

การกำหนดค่าทั่วไป

วัตถุ Vlasny ประเภท "บริการเว็บ"

สถาปัตยกรรมของมันขึ้นอยู่กับชุดบริการที่อนุญาตให้มีการแลกเปลี่ยนข้อมูลกับซอฟต์แวร์อื่น การสร้างบริการเว็บ 1Cข้อดีหลักประการหนึ่งของบริการ 1C WEB คือความจำเป็นในการเข้าถึงข้อมูล IB โดยตรง บริการเว็บ 1C ที่กำหนดค่าอย่างถูกต้องทำให้โปรแกรมอื่นสามารถใช้ฟังก์ชันการโทรได้ในกรณีเช่นนี้ สิทธิ์ในการใช้ข้อมูลสำหรับพารามิเตอร์ที่กำหนดจะเป็นหน้าที่ของกฎที่กำหนดโดยนักพัฒนา

  1. จะสร้างบริการเว็บใน 1C ได้อย่างไร?
  2. ชชอบ
  3. ฟังก์ชั่นเพลง
  4. ระบบ 1C พร้อมใช้งานสำหรับซอฟต์แวร์ภายนอกแล้ว จำเป็นต้องออก
  • อัลกอริธึมที่น่ารังเกียจ
  • การกระทำ:

ไปที่การกำหนดค่าของแผนผังและเพิ่มวัตถุบริการ WEB

อธิบายการดำเนินการทั้งหมดที่สามารถกำหนดค่าได้ด้วยฟังก์ชันการทำงานของเรา คำอธิบายของฟังก์ชั่นนั้นดำเนินการในโมดูลที่สร้างใน 1C movเพิ่มคำอธิบายของพารามิเตอร์ฟังก์ชันให้กับบริการเว็บ

เราเปิดตัวกำหนดค่า ค้นหาแท็บบริการ WEB ในแผนผัง และเพิ่มบริการใหม่ wa_LengthString

นอกจากนี้ยังจำเป็นต้องเพิ่มการดำเนินการใหม่ลงในแท็บ "การดำเนินการ"


เราเรียกมันว่า "CalcLengthString" เราสามารถระบุประเภทของค่าที่กำลังหมุนได้ - int หรือ integer และเราสามารถสร้างพารามิเตอร์ "InputString" ตรงกลางได้ ประเภทค่าจะถูกลบออกจากสตริงตอนนี้คุณต้องลงทะเบียนฟังก์ชัน CalcLengthString ในโมดูลบริการ WEB

หากต้องการเปิดพลังของฟังก์ชันที่สร้างขึ้น ให้กดปุ่มที่ดูเหมือนแว่นขยายทางด้านขวา ถัดจากช่องป้อนข้อมูล "ชื่อขั้นตอน"


1C สร้างฟังก์ชันในโมดูลของบริการเว็บของเราโดยอัตโนมัติ และเปิดเพื่ออธิบายการกระทำ CalcLengthString


มาเขียนฟังก์ชันนี้กันอย่างรวดเร็ว - ค่าของแถวสุดท้ายที่จะป้อน

  • ในความเป็นจริง การสร้างบริการเว็บที่ง่ายที่สุดเสร็จสมบูรณ์แล้ว
  • ตอนนี้จำเป็นต้อง "เยี่ยมชม" บริการนี้จาก
  • การเข้าถึงเบื้องหลัง
  • เพื่อให้ซอฟต์แวร์บุคคลที่สามหรือระบบ 1C อื่น ๆ สามารถใช้ฟังก์ชันนี้ได้

เพื่อให้เราสามารถเผยแพร่การสร้างสรรค์บริการเว็บด้วยฟังก์ชันการทำงานได้ เราจำเป็นต้องเข้าถึงไซต์


ก่อนที่คุณจะเริ่มเผยแพร่บริการ คุณต้องตรวจสอบชื่อไฟล์กับหน่วยงานของโมดูล wa_LengthString ที่สร้างขึ้น มันอาจจะสมเหตุสมผลให้อภัยแม่ส่วนขยาย “1cws”หากคุณยังคงดำเนินการใหม่เสร็จ คุณอาจติดอยู่กับข้อความที่ระบุว่า “Arrears at the end of the file operation...”

<имяСервера>ในกรณีนี้ คุณเพียงแค่ต้องทำซ้ำคำสั่ง "เผยแพร่"<ИмяУказанногоКаталогаНаСервере>ในกรณีส่วนใหญ่ สิ่งนี้จะช่วยให้คุณได้รับการแจ้งเตือนเกี่ยวกับการเผยแพร่ไปยังบริการเว็บ Wikonan<НаименованиеФайла>.ru/

/ws/ .1cws?wsdlเมื่อพิมพ์ที่อยู่เบราว์เซอร์จะรับผิดชอบในการเปลี่ยนแปลงโครงสร้าง

ไฟล์ XML - หากคุณมีหน้าว่าง มีสัญลักษณ์ว่างหรือไม่ชัดเจน (มีปัญหาในการเขียนโค้ด) คุณต้องตรวจสอบขั้นตอนทั้งหมดอีกครั้งนอกจากนี้ เราจะไม่ยืนยันว่าเซิร์ฟเวอร์การตั้งค่าได้รับการกำหนดค่าอย่างถูกต้องและคุณสามารถเข้าถึงได้

หลังจากการเผยแพร่สำเร็จ บริการ 1C WEB อาจถูกนำไปใช้ในทางที่ผิดโดยโปรแกรมของบุคคลที่สาม

ฉันจะไม่กังวลเกี่ยวกับโภชนาการที่บริการบนเว็บและทุกสิ่งทุกอย่างต้องการ
Merezha มีบทความมากมายในหัวข้อนี้

ฉันจะพยายามแสดงวิธีการสั้นๆ

ด้วยวิธีง่ายๆ

คุณสามารถสร้างไคลเอนต์สำหรับบริการเว็บใด ๆ ใน PHP ได้

การตั้งค่า
หากต้องการใช้ SOAP ใน php คุณต้องเปิดใช้งานโมดูล SOAP (รวมอยู่ในการแจกจ่าย php5)

ใน Windows สิ่งนี้ทำได้ง่าย - คุณต้องเพิ่ม (เพิ่มด้วยตัวเอง เนื่องจากความคิดเห็นทั้งแถวนี้ไม่ได้เป็นเพียงความคิดเห็น แต่ยังมีการใช้งานทุกวัน) ใน php.ini: ส่วนขยาย=php_soap.dllอย่าลืมรีสตาร์ทเซิร์ฟเวอร์เนื่องจากคุณได้ติดตั้ง PHP เป็นโมดูล การสร้างไคลเอ็นต์ SOAP หลังเอกสาร WSDLการสร้างไคลเอ็นต์ SOAP อาศัยเอกสาร WSDL ซึ่งเป็นเอกสาร XML ในรูปแบบเดียวที่อธิบายบริการเว็บอื่นโดยทั่วไป

สำหรับรายละเอียดเกี่ยวกับ WSDL ฉันแนะนำให้คุณไปที่เว็บไซต์สมาคม W3C - www.w3.org/TR/2005/WD-wsdl20-soap11-binding-20050510
และด้วยเหตุนี้ โค้ดจึงเรียบง่ายและกะทัดรัดยิ่งขึ้น แม้กระทั่งระดับพื้นฐาน:

// Vikoristanny ไปยังบริการบนเว็บ
// "อัตราแลกเปลี่ยนเงินตรา" จาก xmethods.com

// สร้างไคลเอนต์ SOAP ด้านหลังเอกสาร WSDL
$client = SoapClient ใหม่ ("http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl");

// ทำแบบสอบถาม SOAP และรับผลลัพธ์
$result = $client->getRate("พวกเรา", "รัสเซีย");

Echo 'อัตราแลกเปลี่ยนปัจจุบันของดอลลาร์: ', $result, 'รูเบิล';
?>

ดังที่คุณเห็นจากโค้ด ตัวสร้างคลาส SoapClient จำเป็นต้องส่ง URL ของเอกสาร WSDL และเลือกออบเจ็กต์เพื่อทำงานกับบริการเว็บที่ต้องการ

จากนั้นเลือกวิธีการของออบเจ็กต์นี้ซึ่งบริการเว็บจะบันทึกชื่อไว้

วิธีนี้ขึ้นอยู่กับผลลัพธ์ของเรา

นอกจากนี้ ตัวอย่างง่ายๆ นี้แสดงให้เห็นถึงหลักการของการสร้างไคลเอ็นต์ SOAP สำหรับบริการเว็บใน PHP
อย่างไรก็ตาม ส่วนเสริมที่แท้จริงยังมีข้อเสนออีกมากมาย ให้จับตาดูส่วนเสริมที่คุณอาจใช้งานไม่ได้ชั่วคราวหรือไม่สามารถดำเนินการได้ในขณะที่เข้าถึงบริการบนเว็บ
ต้องใช้บล็อก try/catch/throw แน่นอน :)
ดรุก (Ctrl+P)
กลไกของบริการเว็บในระบบ 1C:Enterprise รองรับ Service-Oriented Architecture (SOA) โดยเฉพาะ
สถาปัตยกรรมเชิงบริการและสถาปัตยกรรมแอปพลิเคชัน ซึ่งฟังก์ชันทั้งหมดถูกกำหนดให้เป็นบริการอิสระจากอินเทอร์เฟซ

สถาปัตยกรรมการบริการของระบบ "1C:Enterprise 8" ขึ้นอยู่กับผู้จัดการฝ่ายบริการ
ผู้จัดการฝ่ายบริการประกอบด้วยฟังก์ชันต่อไปนี้:
● พูลเชื่อมต่อกับฐานข้อมูล
● สนับสนุน WSDL สำหรับคำอธิบายบริการ;
● การใช้งานโปรโตคอล SOAP, การทำให้เป็นอนุกรมของการแจ้งเตือน, การโทรไปยังบริการที่เกี่ยวข้อง
ผู้จัดการฝ่ายบริการเชื่อมโยงกับกระบวนการโฮสต์บริการ ซึ่งกำหนดค่าฟังก์ชันการรับ/ส่งข้อความจากผู้จัดการฝ่ายบริการ
ในฐานะโฮสต์บริการ คุณสามารถใช้เว็บเซิร์ฟเวอร์ IIS หรือ Apache ได้
ผู้จัดการฝ่ายบริการดูแลรักษากลุ่มการเชื่อมต่อที่โต้ตอบกับฐานข้อมูลของระบบ 1C:Enterprise
กลไกของบริการเว็บที่นำไปใช้ในระบบ 1C:Enterprise รองรับมาตรฐานต่อไปนี้:
● สบู่ 1.1,
● สบู่ 1.2,
● WSDL 1.1,
● โปรไฟล์พื้นฐาน WS-I 1.1,
● HTTP 1.1,
● TLS 1.x (รองรับ TLS 1.1 และ 1.2 เนื่องจากไม่จำเป็นต้องถ่ายโอนใบรับรองไคลเอ็นต์ไปยังเซิร์ฟเวอร์) รวมถึงอัลกอริธึมการเข้ารหัส
ทั่วไป GOST R 34.10-2001, R 34.10-94, R 34.11-94 และ 28147-89;

● เอ็มทอม;

● การตรวจสอบสิทธิ์: พื้นฐาน, NTLM/Negotiate

ในการเข้าถึงบริการบนเว็บ คุณจะต้องป้อนที่อยู่ซึ่งมีรูปแบบดังนี้:.

http://host/base/ws/Im'yaWebService

http://host/base/ws/WebServiceAddresses รายงานจะดูส่วนคลังสินค้าของที่อยู่: http://host/base เป็น URL หลักที่ใช้ระบุการเข้าถึง เช่น ฐานข้อมูลโดยใช้เว็บไคลเอ็นต์เพิ่มเติม

สำหรับการมีอยู่ของตัวคั่น ไม่รองรับการป้อนค่าของตัวคั่นสำหรับพารามิเตอร์ Z เพิ่มเติม

บรรทัดคำสั่ง

เปิดตัวโปรแกรมไคลเอนต์

ws – สัญญาณว่าการเข้าถึงบริการบนเว็บเสร็จสมบูรณ์แล้ว (ในโดเมน hs ซึ่งหมายถึงการเข้าถึงบริการ HTTP ดูที่นี่)

ชื่อบริการเว็บ - ชื่อบริการเว็บ

กำหนดเป็นวัตถุบริการเว็บ
ที่อยู่บริการเว็บ - ระบุชื่ออื่นสำหรับการเข้าถึงบริการบนเว็บ
ตั้งเป็นชื่อของไฟล์สิ่งพิมพ์ออบเจ็กต์บริการเว็บ สามารถเปลี่ยนแปลงได้เมื่อเผยแพร่บริการบนเว็บ
กลับไปที่ชื่อของชื่อของ WebService และที่อยู่ของที่อยู่ของ WebService ไปยัง Web Service นั้นเทียบเท่ากัน
การเพิ่มฟังก์ชันการทำงานผ่านบริการบนเว็บ
● ออบเจ็กต์การกำหนดค่าบริการเว็บที่เพิ่มลงในแผนผังข้อมูลเมตา
● คำอธิบายของการดำเนินการที่สามารถทำได้เมื่อสร้างบริการเว็บ
● คำอธิบายของพารามิเตอร์สำหรับการดำเนินงานบริการเว็บ
ออบเจ็กต์การกำหนดค่าบริการเว็บประกอบด้วยโมดูลที่สร้างขั้นตอนภายในซึ่งจะเสร็จสมบูรณ์เมื่อมีการเรียกใช้การดำเนินการบริการเว็บบางอย่าง
ประเภทของพารามิเตอร์ในการดำเนินงานบริการเว็บอธิบายไว้ภายใต้ประเภท XDTO เพิ่มเติมและสามารถเป็นค่า XDTO หรือวัตถุ XDTO
การเรียกไปยังบริการเว็บถูกสร้างขึ้นดังนี้: ● จากพูลการเชื่อมต่อ ให้เลือกการเชื่อมต่อเฉพาะจากฐานข้อมูล
- หากจำเป็น การเชื่อมต่อจะถูกสร้างขึ้น ● มีการสร้างเซสชันใหม่และมีการเรียกชื่อของเซสชันที่สร้างขึ้นการตั้งค่าเซสชันพารามิเตอร์
(เซสชันโมดูล U); ● การคลิกวิธีการที่ต้องการไปยังบริการบนเว็บจะปรากฏขึ้น ในกรณีนี้การคลิกของผู้ค้นหาจะปรากฏขึ้นการตั้งค่าเซสชันพารามิเตอร์ ()
(ในโมดูลเซสชัน) ทันทีเมื่อจำเป็นต้องอัปเดตพารามิเตอร์เซสชันที่ไม่ได้กำหนดค่าเริ่มต้น ● มีการสร้างเซสชันใหม่และมีการเรียกชื่อของเซสชันที่สร้างขึ้น.
ปราดา. ● มีการสร้างเซสชันใหม่และมีการเรียกชื่อของเซสชันที่สร้างขึ้นไม่แนะนำให้รวมการปฏิบัติงานที่ใช้ทรัพยากรจำนวนมากไว้ในแผนกย่อย
โพเดีย
โมดูลเซสชันถูกเปิดใช้งานบนเซิร์ฟเวอร์ในโหมดสิทธิพิเศษ

ติดตั้งโมดูลบริการคลิกแล้ว

เซิร์ฟเวอร์ในโหมดเริ่มต้น
โมดูลเซสชันใช้เพื่อเริ่มต้นพารามิเตอร์เซสชันและเริ่มต้นชุดคำสั่งบางชุดเมื่อเรียกใช้บริการเว็บใด ๆ ของระบบ 1C:Enterprise ตัวอย่างการใช้งานบริการเว็บตัวอย่างเช่น คุณต้องสร้างบริการบนเว็บของระบบ 1C:Enterprise ซึ่งรับผิดชอบในการโอนหมายเลขใบแจ้งหนี้ไปยังคลังสินค้าและส่วนที่เป็นตาราง ตัวอย่างที่คล้ายกันสำหรับบริการ HTTP เพิ่มเติมจะกล่าวถึงในบทความอื่นเพื่ออธิบายความหมายที่แพ็คเกจ XDTO กำลังถูกหมุน
ข้อมูลเกี่ยวกับใบแจ้งหนี้ Vitra
ด้วยชื่อที่หลากหลาย
http://www.MyCompany.ru/shipment,ออบเจ็กต์ XDTO มีสามประเภท: ● ระบบการตั้งชื่อ - เพื่อส่งข้อมูลจากตัวแทนระบบการตั้งชื่อ
วัตถุประเภทนี้ XDTO ขึ้นอยู่กับพลังดังกล่าว: ● ระบบการตั้งชื่อ - เพื่อส่งข้อมูลจากตัวแทนระบบการตั้งชื่อ
● ชื่อ – ประเภทสตริงจากช่องว่างของชื่อ ชื่อภายนอก
– ประเภทสตริงจากช่องว่างของชื่อ http://www.w3.org/2001/XMLSchema;
● บาร์โค้ด – ประเภทสตริงจากช่องว่างของชื่อ
● ราคาซื้อ – ประเภท int จากช่องว่างของชื่อ
http://www.w3.org/2001/XMLSchema
● ราคา – ประเภท int จากช่องว่างของชื่อ http://www.w3.org/2001/XMLSchema;
● Suma – ประเภท int จากช่องว่างของชื่อ http://www.w3.org/2001/XMLSchema
ใบแจ้งหนี้ของ Vidatkov– สำหรับการโอนใบแจ้งหนี้ทุกแถว
วัตถุประเภทนี้ XDTO มีพลังเท่ากัน: – ประเภทสตริงจากช่องว่างของชื่อ● คลังสินค้า – ประเภท จากการขยายชื่อ http://www.MyCompany.ru/shipment
- Є ส่งไปยังวัตถุ XDTO
สิ่งที่เราหมายถึงมีมากกว่านั้น
เพื่อให้พาวเวอร์นี้มีมูลค่าไม่จำกัด จำเป็นต้องติดตั้ง ตัวอย่างการใช้งานบริการเว็บค่าขีดจำกัดบนของกำลัง -1

หลังจากสร้างประเภท XDTO ที่จำเป็นแล้ว คุณจะต้องเพิ่มบริการเว็บใหม่ก่อนที่จะกำหนดค่า;
ด้วยความหมายของเจ้าหน้าที่ที่กำลังจะเกิดขึ้น: ตัวอย่างการใช้งานบริการเว็บ;
พื้นที่ชื่อ URI - http://www.MyCompany.ru/shipment● แพ็คเกจ XDTO –
ชื่อไฟล์สิ่งพิมพ์
- จัดส่ง 1cwsใบแจ้งหนี้ของ Vidatkov● คลังสินค้า – ประเภท จากการขยายชื่อ;
สำหรับบริการบนเว็บที่สร้างขึ้น ให้เลือกการดำเนินการปฏิเสธด้วยค่าสิทธิ์ต่อไปนี้:ประเภทของค่าที่จะหมุนเวียน
Mozhlive ค่าว่าง
– การแทรก;
● ชื่อของขั้นตอนคือ Otrimati ● ระบบการตั้งชื่อ - เพื่อส่งข้อมูลจากตัวแทนระบบการตั้งชื่อ
สำหรับการดำเนินการ Remove Trace ให้เลือกพารามิเตอร์ Document Number ด้วยค่าสิทธิการใช้งานต่อไปนี้:.
● ประเภทค่า – ประเภทสตริงจากช่องว่างของชื่อ

การส่งสัญญาณโดยตรง – อินพุต หลังจากนี้ ให้เปิดโมดูลของบริการบนเว็บที่สร้างขึ้น และวางฟังก์ชัน Returne() ในโมดูลนี้ ซึ่งจะถูกบันทึกไว้เมื่อมีการเรียกใช้บริการบนเว็บนี้ ส่งออกฟังก์ชันดึงข้อมูล (DocumentNumber)// เลือกวัตถุใบแจ้งหนี้ตามหมายเลขการโอน DocumentPosilannya = Documents.VitratnaInvoice. KnowByNumber(หมายเลขเอกสาร, LineDate()); ยักชโชเอกสารPosylannya.Empty() โทดี; ไม่ได้รับการกำหนด; คิเนตส์ยักโช;เอกสาร = DocumentPosylannya.OtrimatiObject()// เลือกประเภทวัตถุ XDTO ประเภทการตั้งชื่อ= โรงงาน XDTO พิมพ์ ("http://www.MyCompany.ru/shipment", "ระบบการตั้งชื่อ"); VitratnaInvoiceType = FactoryXDTO.Type (“http://www.MyCompany.ru/shipment”, “VitratnaInvoice”); RowWithInvoiceType = FactoryXDTO.Type ("http://www.MyCompany.ru/shipment", "แถวของใบแจ้งหนี้"); // สร้างวัตถุ XDTO ของใบแจ้งหนี้ VitratnaInvoice = โรงงาน XDTO(ประเภทใบแจ้งหนี้แบบไวเตรต); สำหรับแถวสกินของเอกสาร Z Document วงจรคลังสินค้า// สร้างแถววัตถุ XDTO ของใบแจ้งหนี้ //ระบบการตั้งชื่อนั้น แถวของใบแจ้งหนี้ = FactoryXDTO .สร้าง(RowVitrateInvoiceType); Nomenclature.Barcode = RowDocument.Nomenclature.Barcode; Nomenclature.PurchasePrice = RowDocument.Nomenclature.PurchasePrice; // บันทึกอำนาจของแถวใบแจ้งหนี้ไทย RowInvoice.Nomenclature = ระบบการตั้งชื่อ; Row of Invoice.Quantity = แถวของ Document.Quantity; RowInvoice.Price = RowDocument.Price; แถวของ Invoice.Amount = แถวของ Document.Amount; //เพิ่มแถวของใบแจ้งหนี้ VitratnaInvoice.Warehouse.Add(แถวใบกำกับสินค้าวิทรัตน์); KіnetsCycle;// หมุนใบแจ้งหนี้วิดีโอ ใบแจ้งหนี้ของ Vidatkovหันหลังกลับ

- ฟังก์ชันสิ้นสุด

การทำงานกับบริการเว็บของบุคคลที่สาม
ระบบ 1C:Enterprise สามารถใช้บริการเว็บที่ลูกค้ารายอื่นใช้ในลักษณะต่อไปนี้:
● สำหรับความช่วยเหลือของข้อความคงที่ที่สร้างขึ้นในแผนผังการกำหนดค่า
● สำหรับความช่วยเหลือของข้อความแบบไดนามิกที่สร้างขึ้นโดยใช้ภาษาที่เรียนรู้;
● การผสมผสานวิธีการขั้นสูง
ข้อดีของข้อความคงที่ vikoristanny อยู่ที่ความเร็วที่มากขึ้นของหุ่นยนต์ ดังนั้นบริการเว็บของผู้ใช้ไปรษณีย์จะออกทันทีเมื่อมีการสร้างข้อความ
ถัดไป เมื่อคุณดาวน์โหลดบริการบนเว็บนี้ คำอธิบายใหม่ของบริการบนเว็บจะถูกสร้างขึ้น หากมีข้อความไดนามิกที่ส่งไปยังบริการเว็บของผู้ใช้ ระบบ 1C:Enterprise จะจัดการทันทีเมื่อมีการเรียกใช้บริการเว็บ ซึ่งจะช่วยปรับปรุงการทำงานกับบริการเว็บนี้ในท้ายที่สุดอย่างไรก็ตาม ข้อดีของแนวทางนี้คือความสามารถในการลบคำอธิบายปัจจุบันของบริการเว็บของลูกค้า
หากคำขอแบบคงที่ถูกลบออก คุณจะต้องนำเข้าคำอธิบาย WSDL อีกครั้งโดยใช้ตัวกำหนดค่า และบันทึกการกำหนดค่าที่เปลี่ยนแปลงเพื่อดึงคำอธิบายบริการเว็บปัจจุบัน เมื่อใช้โซลูชันแอปพลิเคชัน สถานการณ์อาจเกิดขึ้นหากบริการเว็บเดียวกันให้บริการภายใต้ที่อยู่ที่แตกต่างกัน (URL) แต่มีคำอธิบายใหม่ทั้งหมด (WSDL)ที่อยู่บริการของคุณอาจแตกต่างกัน (บริการสามารถทำซ้ำได้) และคำอธิบายอาจได้รับการแก้ไข
โซลูชันแอปพลิเคชันนี้สามารถป้อนคำอธิบายของบริการบนเว็บ และในการกำหนดค่าโซลูชันแอปพลิเคชัน ให้ถ่ายโอนที่อยู่ที่ป้อนของอินสแตนซ์เฉพาะไปยังบริการ ซึ่ง (ที่อยู่) จะถูกใช้ระหว่างการดำเนินการ
นอกจากนี้ยังมีวิธีอื่นที่ใช้ได้: ส่งข้อความแบบไดนามิก และแทนที่จะปล่อยให้ที่อยู่จัดส่งบริการเว็บออกจากไฟล์คำอธิบาย (WSDL) จะมีการระบุโดยตรงเมื่อสร้างออบเจ็กต์ เมื่อคุณพยายามกำหนดคำอธิบายให้กับบริการบนเว็บในตัวกำหนดค่า (ตามการส่งแบบคงที่) หรือเมื่อเลือกการส่งแบบไดนามิก (โดยใช้ออบเจ็กต์คำจำกัดความ WS เพิ่มเติม) ระบบจะตรวจสอบการกำหนดคำอธิบายให้กับบริการบนเว็บ ( WSDL)หากมีเครื่องหมายในคำอธิบายของบริการบนเว็บ (จาก "มุมมอง" ของระบบ 1C:Enterprises) คำอธิบายจะไม่ถูกค้นหาและจะมีการตำหนิ

<Тип элемента с ошибкой>.<Имя>
[<Тип элемента с ошибкой>.<Имя>[…]]
<Описание ошибки>
<Тип элемента с ошибкой>
<Имя>
ข้อความจะถูกปิด
รายงานการวินิจฉัย
เหตุผลที่เห็นผู้หญิงมีความรัก
ส่วนคำสั่ง WSDL จะออกเมื่อมีการเปิดเผย

การดูแลรักษาผิวหนัง WSDL มีบันทึกพร้อมคำอธิบายโดยละเอียดดังต่อไปนี้:

คำอธิบายของใคร:

● ประเภทองค์ประกอบนม – ประเภทองค์ประกอบ WSDL ส่วนใหญ่มักเป็นชื่อแท็กในไฟล์ XML ที่อธิบายบริการบนเว็บ● คำอธิบายการแก้ไข – คำอธิบายการแก้ไขเฉพาะ
● ชื่อ – ชื่อของวัตถุ WSDL ที่ใช้เขียนข้อความ

Vikoristannya ก้นโพสต์ WS แบบคงที่ เพื่อเป็นตัวอย่างของการใช้บริการเว็บของบริษัทอื่น มาดูการเปรียบเทียบกับบริการเว็บที่สร้างขึ้นก่อนหน้านี้บนแอปพลิเคชันก่อนอื่น หลังจากเพิ่มออบเจ็กต์การกำหนดค่าใหม่ลงในแผนผังการกำหนดค่า ข้อความ WS พร้อมชื่อของ Data Invoice ซึ่งถูกส่งไปยังบริการที่เผยแพร่ สำหรับแทร็กการเข้าสู่ระบบใด ให้นำเข้าคำอธิบาย WSDL ของบริการที่เผยแพร่แล้วป้อน URL http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl - คำอธิบายของคำอธิบายการนำเข้าของ WSDL ถูกเขียนไว้ในบทความอื่นหลังจากนี้ ตัวอย่างเช่น ในโมดูลใบแจ้งหนี้ คุณสามารถสร้างขั้นตอนที่อธิบายไว้ด้านล่าง คุณจะกรอกส่วนที่เป็นตารางของเอกสารพร้อมข้อมูลใบแจ้งหนี้ของผู้ซื้อทางไปรษณีย์ซึ่งได้มาจากบริการบนเว็บของผู้ซื้อทางไปรษณีย์ = ขั้นตอนดึงข้อมูลในใบแจ้งหนี้ (เลขที่ใบกำกับไปรษณีย์) Proxy = WSPill.Data ของใบแจ้งหนี้ NovaRow = DocumentObject.Composition.Add(); NewRow.Quality = RowNavigation.Quality; NewRow.Price = RowNakl.Price; NovaRow.Sum = RowNakl.Sum; // ค้นหาองค์ประกอบระบบการตั้งชื่อที่อยู่เบื้องหลังข้อมูลที่กำหนด // (เช่น หลังบาร์โค้ด) NovaRyadok.Nomenclature = Dovidniki.Nomenclatureรู้โดยรายละเอียด ("บาร์โค้ด", RowNakl.ระบบการตั้งชื่อ.บาร์โค้ด

- KіnetsCycle;
ขั้นตอน Kinets

เนื่องจากที่อยู่ของการใช้บริการจริงถูกแบ่งออกเป็นที่อยู่ที่ถูกเพิ่มเมื่อมีการเพิ่มคำอธิบายของบริการเว็บในการกำหนดค่า

ดังนั้นต้องระบุที่อยู่ใหม่อย่างชัดเจนเมื่อสร้างอ็อบเจ็กต์ WSProxy:
ก้นของพลัง WS แบบไดนามิก

ความเป็นไปได้ของการส่งแบบไดนามิกนั้นแตกต่างจากการส่งแบบคงที่โดยการสร้าง WS-proxy เท่านั้น และไม่จำเป็นต้องสร้าง WS-messaging ในแผนผังการกำหนดค่า
เพื่อเปรียบเทียบกับตัวอย่างที่นำเสนอในส่วนก่อนหน้า หลังจากสร้างพร็อกซีด้วยข้อความคงที่ ภายใต้การควบคุมของข้อความไดนามิก WS-proxy จะถูกสร้างขึ้นโดยใช้ตัวสร้างเพิ่มเติมดังนี้:
// สร้างพร็อกซี WS บนพร็อกซี WS
Viznachennya = WSVizachennya ใหม่ (“http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl”);

พร็อกซี = WSProxy ใหม่ (ค่า "http://www.MyCompany.ru/shipment", "ข้อมูลใบแจ้งหนี้", "ข้อมูลใบแจ้งหนี้สบู่");
ในขณะนั้น การสร้างพร็อกซี WS ตามข้อความคงที่จะมีลักษณะดังนี้:// สร้างพร็อกซี WS ตามคำขอ
Proxy = WSPill.Data ของใบแจ้งหนี้

CreateWSProxy ("http://www.MyCompany.ru/shipment", "ข้อมูลของใบแจ้งหนี้", "ข้อมูลของใบแจ้งหนี้");เนื่องจากที่อยู่ของการปรับใช้บริการจริงแบ่งออกเป็นที่อยู่ที่ระบุในไฟล์ WSDL ซึ่งใช้เมื่อสร้างบริการบนเว็บ จึงต้องระบุที่อยู่ใหม่อย่างชัดเจนเมื่อสร้างอ็อบเจ็กต์ WSProxy บนแพลตฟอร์มและการกำหนดบริการเว็บ:

// สร้างพร็อกซี WS บนพร็อกซี WS

Viznachennya = SViznachennya ใหม่ ("http://www.MyCompany.ru/shipment/ws/Shipment.1cws?wsdl");
พร็อกซี = WSProxy ใหม่ (ค่า "http://www.MyCompany.ru/shipment", "ข้อมูลใบแจ้งหนี้", "ข้อมูลใบแจ้งหนี้สบู่",); กฎระเบียบของหน่วยงานที่ใช้บริการเว็บบนแท็บหลัก ให้ป้อนชื่อที่ตรงกันกับความคิดเห็นของออบเจ็กต์

บนแท็บ การดำเนินการ คุณสามารถสร้างออบเจ็กต์ที่เรียงลำดับได้ การดำเนินการ ที่สามารถใช้เพื่อจัดระเบียบออบเจ็กต์ พารามิเตอร์ที่จำเป็นสำหรับการทำงานกับออบเจ็กต์

ประเภทนี้ เจ้าหน้าที่ที่ซ่อนอยู่ออบเจ็กต์การกำหนดค่าและการทำงานของบริการบนเว็บต้องมีลักษณะดังต่อไปนี้:

● ประเภทของค่าที่หมุน – ประเภทของค่าที่การดำเนินการหมุนไปยังบริการบนเว็บ
อาจเป็นประเภทค่า XDTO หรือประเภทอ็อบเจ็กต์
เอ็กซ์ดีทีโอ
● ค่าว่างที่เป็นไปได้ – แสดงค่าที่สามารถหมุนได้และยอมรับค่าที่ไม่สำคัญ
● ในการทำธุรกรรม – แสดงว่ารหัสโมดูลบริการเว็บจะถูกเพิ่มลงในธุรกรรมหรือไม่
เมื่อตั้งค่ากำลังแล้ว เมื่อเรียกใช้บริการบนเว็บ ธุรกรรมจะเริ่มต้นโดยอัตโนมัติ และเมื่อบริการบนเว็บเสร็จสมบูรณ์ ธุรกรรมจะถูกคอมมิต หรือธุรกรรมจะถูกเผยแพร่ (ขึ้นอยู่กับผลลัพธ์ของ )
เนื่องจากไม่ได้ติดตั้งระบบจ่ายไฟ โมดูลบริการเว็บจึงได้รับการติดตั้งบนซัง
ธุรกรรมจะไม่ออก
● ชื่อวิธีการ – ชื่อของขั้นตอนที่จะส่งออก โมดูลไปยังบริการบนเว็บ ซึ่งจะเปิดตัวเมื่อมีการเรียกสิทธิ์นี้
บนแท็บระบบย่อย จะระบุว่าระบบย่อยใดที่เป็นของออบเจ็กต์ประเภทนี้ พาวเวอร์ต่อไปนี้แสดงอยู่ในแท็บอื่นๆ:
● URI เนมสเปซ – ตั้งค่า URI เนมสเปซเป็นบริการบนเว็บ
แต่ละบริการบนเว็บสามารถระบุได้โดยไม่ซ้ำกัน
ชื่อและ URIs ในพื้นที่ของชื่อที่เป็นของพวกเขา

เนมสเปซบริการไม่จำเป็นต้องตรงกับเนมสเปซอื่นๆ ที่เลือกหรือสงวนไว้โดยองค์กรอื่นแล้ว
ขอแนะนำว่าในพื้นที่ชื่อบริการ คุณรวมส่วนที่ไม่ซ้ำกันสำหรับองค์กรที่พัฒนาบริการเว็บ
ตัวอย่างเช่น สำหรับองค์กรชื่อ Promresurs ควรขึ้นต้นชื่อทั้งหมดด้วยคำนำหน้า เช่น http://promresurs.com
Todi URI ของเนมสเปซของมุมมอง Matima ของบริการเว็บ
http://promresurs.com/public/services/ของเราบริการ
● แพ็คเกจ XDTO – ถ่ายโอนแพ็คเกจ XDTO ประเภทที่สามารถระบุได้จากประเภทของการดำเนินการที่ได้รับการประมวลผล และประเภทของพารามิเตอร์ในการทำงานของบริการบนเว็บ
● เอาท์พุต – หมายความว่าพารามิเตอร์นี้ใช้เพื่อดึงข้อมูลจากบริการบนเว็บ
● อินพุต-เอาต์พุต – หมายความว่าพารามิเตอร์สามารถเปลี่ยนแปลงได้ทั้งสำหรับการส่งข้อมูลและเอาต์พุตไปยังบริการบนเว็บ

จากบทความนี้ ฉันจะเรียนรู้หลักการทำงานกับบริการเว็บ Terrasoft อาหารเสริมภายนอก- ด้วยความช่วยเหลือของกลไกเหล่านี้ คุณสามารถดำเนินงานบูรณาการต่างๆ กับระบบภายนอกใดๆ ได้

ใช้บริการเว็บ ส่วนเสริมของบุคคลที่สามมีสองวิธี ทุกอย่างควรอยู่ภายใต้หัวข้อของวิกิและการเขียนโปรแกรมภาษาเฉพาะ:
1. ทำงานผ่านวัตถุ Terrasoft COM
2. ทำงานกับบริการบนเว็บโดยไม่ต้องยุ่งยากใดๆ

ทำงานผ่านวัตถุ COM

ตัวเลือกแรกคือวิธีที่ใช้แรงงานเข้มข้นน้อยที่สุดและตรงไปตรงมา แต่กำหนดให้ไลบรารี Terrasoft ต้องลงทะเบียนบนเครื่องไคลเอ็นต์ (สำหรับอ็อบเจ็กต์ COM ต่างๆ)

ในกรณีนี้ งานทั้งหมดกับบริการบนเว็บจะรวมอยู่ในออบเจ็กต์ Terrasoft COM ทำให้สามารถเข้าถึงออบเจ็กต์เหล่านี้ผ่านโมเดลออบเจ็กต์ของแพลตฟอร์ม Terrasoft: IDataset, ISelectQuery เป็นต้น

ในการเชื่อมต่อโดยทางโปรแกรมคุณต้องป้อนโค้ดต่อไปนี้ (ตัวอย่าง Jscript มิฉะนั้นคุณสามารถนำไปใช้ในลักษณะใดก็ได้ที่ทำงานกับออบเจ็กต์ COM):
// การสร้างอินสแตนซ์ของวัตถุ COM Connector และ Configuration WSConnector = ActiveXObject ใหม่ () ; "TSDskObjectLibrary.DskConnector"
// สำหรับเวอร์ชัน 3.4.0+ วัตถุจะถูกสร้างขึ้น ActiveXObject("TSObjectLibrary.Connector") var WSConfiguration = ActiveXObject ใหม่ () ;
"TSObjectLibrary.Configuration"

WSConfiguration.DBExecutorTypeCode = "บริการเว็บ" ;
// แคชครึ่งที่สร้างขึ้น

Connector.Attributes("WSConnector") = WSConnector;
// การตั้งค่าลำดับและชื่อของการกำหนดค่าที่กำหนดค่าบนเซิร์ฟเวอร์
WSConfiguration.SetConnectionString( +
""URL=http://192.168.227.128/TSWebServicesServerLibrary.dll/soap/IServer""

","ชื่อการกำหนดค่า=Dev332"" ) ;
// ดูการกำหนดค่า
var IsConnected = WSConnector.OpenConfiguration (
1 , WSการกำหนดค่า
// ประเภทการรับรองความถูกต้อง: 0 – การรับรองความถูกต้องของ Windows, 1 – เซิร์ฟเวอร์ "ddd",
// ฉันเป็นโคริสตูวัค

- // รหัสผ่าน

หลังจากการเชื่อมต่อสำเร็จ คุณสามารถนำทางไปยังออบเจ็กต์ใดก็ได้และลบออกได้
ตัวอย่างเช่น การแยกข้อมูลเกี่ยวกับคู่สัญญา:

// เชื่อมต่อบริการ ds_Account จากตัวเชื่อมต่อไปยังบริการบนเว็บ
var AccountDataset = WSConnector.Services .GetSingleItemByUSI ( "ds_Account" ) ;
// การเตรียมชุดข้อมูล: ปิดและทำความสะอาดตัวกรอง

AccountDataset.ปิด();
ApplyDatasetFilter(AccountDataset, "ID", dlData.Dataset("ID"), จริง);

// ดูชุดข้อมูล
AccountDataset.Open();

//อ่านคำไว้อาลัย
ถ้า (AccountDataset.IsEOF) (
var Value = "(ไม่มีข้อมูล)" ; !} !}
edtWSName.Value = ค่า;
edtWSOfficialName.Value = ค่า;
edtWSCode.Value = ค่า;
) อื่น (
edtWSName.Value = AccountDataset.ValAsStr ( "ชื่อ" ) ;
edtWSOfficialName.Value = AccountDataset.ValAsStr ( "OfficialAccountName" ) ;
edtWSCode.Value = AccountDataset.ValAsStr ( "รหัส" ) ;
}

// ปิดชุดข้อมูล
AccountDataset.ปิด();

การลงทุนนี้ใช้ได้กับ Jscript Web services, vikoryst และ COM object

ทำงานกับบริการบนเว็บได้อย่างราบรื่น

หุ่นยนต์ชนิดนี้มีความสำคัญมากกว่าเพราะว่า

คุณต้องดำเนินการคำขอทั้งหมดไปยังบริการบนเว็บด้วยตนเอง และสร้างเอาต์พุตจากเซิร์ฟเวอร์ด้วยตนเองด้วย

หากไม่ได้ใช้ออบเจ็กต์ Terrasoft COM ก็ไม่จำเป็นต้องติดตั้งและลงทะเบียนไลบรารี Terrasoft บนคอมพิวเตอร์ไคลเอนต์ แน่นอนว่าข้อมูลจะถูกสอบถามโดยบริการบนเว็บ

คุณสามารถเพิ่มคำขอไปยังบริการเว็บได้จากอินเทอร์เฟซ (WSDL) ซึ่งเป็นคำอธิบายของวิธีการทั้งหมดพร้อมพารามิเตอร์

เพื่อให้การพัฒนาโปรแกรมง่ายขึ้นด้วยบริการบนเว็บใน IDE เช่น Visual Studio การนำเข้า WSDL (เพิ่มการอ้างอิงบริการเว็บ) ได้ถูกถ่ายโอนแล้ว IDE เองจะสร้างคลาส wrapper สำหรับการทำงานกับบริการบนเว็บ

หากคุณเรียกใช้วิธีการในคลาสนี้ คุณจะได้รับแจ้งให้เรียกวิธีการอื่นไปยังบริการเว็บ
ความเรียบง่ายอยู่ที่ข้อเท็จจริงที่ว่าในการเรียกเมธอด บริการบนเว็บจำเป็นต้องส่งคำขอ XML เพิ่มเติม และนอกเหนือจากคลาส wrapper เพียงเรียกเมธอดที่เกี่ยวข้องพร้อมพารามิเตอร์ ชนใน C #:
// สร้างไคลเอนต์สำหรับบริการเว็บ ส.
IServer sc=ws ใหม่

","ชื่อการกำหนดค่า=Dev332"" ) ;
เซิร์ฟเวอร์ไคลเอนต์();
// ws.IServer – คลาสคลัสเตอร์สำหรับการทำงานกับบริการ Terrasoft Web
ส.
OpenConfigurationRequest rqOpenConfiguration = สร้างใหม่
OpenConfigurationRequest ();
// บันทึกการกำหนดค่า

ส.

OpenConfigurationResponse rsOpenConfiguration = สร้างใหม่

ขอบคุณ Oleksandr Kravchuk ที่ให้ก้น

บริการเว็บ- นี่เป็นหนึ่งในกลไกแพลตฟอร์มที่ใช้ในการรวมเข้ากับระบบข้อมูลอื่น ๆ

สิ่งนี้ได้รับการสนับสนุนเป็นพิเศษโดย SOA (Service-Oriented Architecture) ซึ่งเป็นมาตรฐานปัจจุบันสำหรับการบูรณาการแอปพลิเคชันและระบบข้อมูล ข้อได้เปรียบที่สำคัญของสถาปัตยกรรมเชิงบริการคือช่วยให้สามารถพัฒนาโครงสร้างพื้นฐานทางธุรกิจได้ในที่เดียวโดยไม่ต้องอัปเกรดโซลูชั่นที่จำเป็น

- กลยุทธ์นี้ช่วยให้คุณลดต้นทุนในการบูรณาการระบบที่แตกต่างและซับซ้อนในภูมิทัศน์ธุรกิจปัจจุบันได้

ช่วยให้คุณสามารถใช้ส่วนประกอบซอฟต์แวร์ที่เชื่อมต่ออย่างหลวม ๆ เพื่อเพิ่มการนำกลับมาใช้ใหม่ให้เกิดประโยชน์สูงสุด

สถาปัตยกรรมเชิงบริการได้รับการพัฒนาอย่างเข้มข้นและได้รับการสนับสนุนจากผู้จำหน่ายชั้นนำ


จะมีการผสมผสานบริการการโทรอัตโนมัติและปลอดภัย

วิธีการนำไปใช้ที่สั้นที่สุดคือบริการบนเว็บ กลิ่นเป็นอิสระจากแท่น เป็นอิสระ และดูแลรักษาได้ทุกที่โซลูชันแอปพลิเคชัน 1C:Enterprises 8 สามารถทำหน้าที่เป็น postmaster ของบริการเว็บ และยังรองรับบริการเว็บที่เผยแพร่โดย postmaster อื่น ๆ

วิธีที่ผู้คนสามารถโต้ตอบกับระบบที่ใช้แพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์เพิ่มเติม

เทคโนโลยีการบริการเว็บเป็นแพลตฟอร์มที่เป็นอิสระ

การใช้งานทางเทคนิคของบริการเว็บ