การแปลงการแลกเปลี่ยนข้อมูลระหว่างแอพพลิเคชั่น งานในโลกแห่งความจริง

การแปลงข้อมูล 2.0 และ 2.1 - การกำหนดค่าทางเทคโนโลยีของ บริษัท 1C ดำเนินการบนแพลตฟอร์มเวอร์ชันจาก 8.1 เป็น 8.3

ภารกิจหลักของเครื่องมือคือการเขียนกฎสำหรับการแลกเปลี่ยนระหว่างโซลูชันที่ประยุกต์ใช้ 1C 8 และ 7 เวอร์ชันปัจจุบันของการแปลงข้อมูลวันนี้คือ 3.0

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

การกำหนดค่าจะสะดวกมากที่จะใช้เมื่อ

การแปลงข้อมูลจะเป็นประโยชน์กับโปรแกรมเมอร์ทุกคน: การมีทักษะในการสร้างกฎการแลกเปลี่ยนนั้นเป็นประโยชน์อย่างมากสำหรับทักษะวิชาชีพ

ปัญหาในทางปฏิบัติเหมาะที่สุดสำหรับการเรียนรู้ที่จะทำงานกับการกำหนดค่า ลองคิดหางานด้วยตนเองเช่นถ่ายโอนข้อมูลใด ๆ จากฐานข้อมูลหนึ่งไปยังอีกแปลงเอกสารการขายเป็นเอกสารใบเสร็จรับเงิน“ ขับรถ” ยอดบัญชีปัจจุบันเป็นเอกสาร“ รายการบัญชี” และงานอื่น ๆ

มันจะมีประโยชน์มากในการทำความเข้าใจกฎการแลกเปลี่ยน "ทั่วไป" 1C 8.3 ที่นั่นคุณมักจะพบตัวอย่างที่น่าสนใจของการใช้งาน

ในการทำความเข้าใจพื้นฐานคุณจำเป็นต้องมีวัสดุเราจะพิจารณาข้อมูลด้านล่าง

คำแนะนำการแปลงวิดีโอ

พื้นฐานของการตั้งค่าการแลกเปลี่ยนข้อมูลใน 1C โดยใช้การกำหนดค่า "1C การแปลงข้อมูล" ตัวอย่างเช่นดูวิดีโอ:

สื่อการสอนสำหรับการศึกษา 1C Data Conversion 2.0

มีเครือข่ายและเอกสารประกอบไม่มากเกินไปฉันพยายามรวบรวมวัสดุที่สำคัญและน่าสนใจที่สุด:

0. ก่อนอื่นฉันขอแนะนำหลักสูตรวิดีโอฟรีของ Ilya Leontiev ที่มีให้ที่ ลิงค์.

1. ฉันขอแนะนำให้ใช้วิธีใช้ในตัวในการกำหนดค่าก่อน มันเขียนได้ดีจริง ๆ และนำมาใช้ทางเทคนิคได้ดี:

2. แหล่งข้อมูลที่สำคัญที่สุดอันดับสองคือไซต์ http://www.mykod.info/ (ไซต์ถูกปิด) ซึ่งเชี่ยวชาญในการแปลงข้อมูล คุณสามารถดาวน์โหลดสื่อการแปลงจำนวนมากได้ที่นั่น

3. แยกฉันต้องการเน้นคู่มือ - (โดย Olga Kuznetsova)

หนังสือแผ่นพับบทความ

1C: องค์กร 8. การแปลงข้อมูล: การแลกเปลี่ยนข้อมูลระหว่างโซลูชันที่ใช้งาน (ด้วยแอปพลิเคชันบนซีดีรอม) (บทความ 4601546049094)

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

ความสามารถในการจัดระเบียบการแลกเปลี่ยนระหว่างระบบข้อมูลที่แตกต่างกันมีความสำคัญอย่างยิ่งสำหรับการทำงานที่มีประสิทธิภาพ แพลตฟอร์ม 1C: Enterprise มีเครื่องมือที่หลากหลายสำหรับการแลกเปลี่ยนข้อมูลและการรวมโซลูชันที่ใช้

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

หนังสือเล่มนี้มาพร้อมกับซีดีที่มีฐานข้อมูลตัวอย่างพร้อมกฎการแลกเปลี่ยนและการกำหนดค่า "1C: Enterprise. Data Conversion"

ความสนใจ! ในรุ่นแรกข้อบกพร่องทางเทคนิคได้รับอนุญาตในตอนท้ายของหนังสือเล่มนี้ หน้าที่ถูกต้องสามารถ

ปัจจุบันการสมรสที่เหลืออยู่ได้ถูกถอนออกจากการขายและมีการเผยแพร่ฉบับแก้ไข
เราขออภัยในความไม่สะดวกที่เกิดขึ้นและพร้อมที่จะเปลี่ยนสำเนาที่มีข้อบกพร่องฟรี


สามารถส่งคำถามเกี่ยวกับวรรณกรรมของสำนักพิมพ์ "1C-Publishing" ได้ [ป้องกันอีเมล].

ซื้อ:

ติดต่อพันธมิตร 1C ที่ให้บริการองค์กรของคุณและสั่งซื้อสินค้าโดยแจ้งรหัสที่ได้รับมอบหมายให้กับเขา (แสดงในตารางด้านล่าง) คุณสามารถซื้อหนังสือจากคนอื่น ๆ พันธมิตรของ บริษัท "1C"

  • ในร้านค้าออนไลน์ "1C- ดอกเบี้ย" (จัดส่งหนังสือโดยผู้ส่ง "รัสเซียโพสต์", DHL, EMS)
  • ในร้านหนังสือในเมืองของคุณ

ดูสิ่งนี้ด้วย:

ราคาหนังสือ

รหัส ชื่อ แนะนำ ราคาปลีกถู * เจ้ามือ พันธมิตรถาวร ผู้จัดจำหน่าย
4601546049094 1C: องค์กร 8. การแปลงข้อมูล: การแลกเปลี่ยนข้อมูลระหว่างโซลูชันที่ใช้งาน (ด้วยแอปพลิเคชันบนซีดีรอม) (บทความ 4601546049094) 240 150 135 120

โครงสร้างหนังสือ

บทนำ

บทที่ 1 หลักการทั่วไปของการตั้งค่ากฎ

บทที่ 2 ใช้กฎ

บทที่ 3 การสร้างกฎอัตโนมัติ

บทที่ 4 โครงสร้างกฎ

บทที่ 5 การศึกษารายละเอียดของกฎ

บทที่ 6 ตัวจัดการเหตุการณ์

  • พารามิเตอร์
  • ตัวจัดการการแปลง
  • เครื่องมือจัดการกฎการอัปโหลดข้อมูล
  • ตัวจัดการกฎการแปลงวัตถุ
  • ตัวจัดการกฎการแปลงกลุ่มคุณสมบัติ
  • ตัวจัดการกฎการแปลงคุณสมบัติ

บทที่ 7 ฟิลด์ค้นหา

บทที่ 8 กฎการทำความสะอาดข้อมูล

บทที่ 9 อัลกอริทึมและแบบสอบถาม

บทที่ 10 ตัวอย่างทั่วไปของกฎ วิธีแก้ปัญหา

  • กำลังแปลง enumerations
  • การแปลงไดเรกทอรี
  • การแปลงเอกสาร
  • การแปลงการลงทะเบียนข้อมูล
  • แปลงผังบัญชี
  • การแปลงแผนภูมิของประเภทคุณลักษณะ
  • แปลงแผนภูมิประเภทการคำนวณ
  • การแปลงค่าคงที่ 1C: Enterprise 7.7
  • การแปลงธุรกรรมทางบัญชี 1C: Enterprise 7.7

บทที่ 11 การเพิ่มประสิทธิภาพกฎ

  • กฎการอัพโหลดข้อมูล
  • กฎการแปลงวัตถุ
  • การประมวลผลการแลกเปลี่ยนข้อมูล XML ทั่วไป

1. บทนำ.

2. สิ่งที่คุณต้องการ: การกำหนดค่า 1C: การแปลงข้อมูล 2. * และการประมวลผลจากแพ็คเกจ สำหรับตัวอย่างของงานลองทำการกำหนดค่า 1C: การจัดการการค้า 11 และ 1C: BP 3 *

ดังนั้นในการพัฒนากฎสำหรับการอัปโหลดข้อมูลไปยัง 1C คุณจะต้องมีการกำหนดค่า 1C: การแปลงวัตถุ 2 รวมถึงการประมวลผลที่รวมอยู่ในแพ็คเกจ

ตัวอย่างเช่นเราได้ปรับใช้ฐานการแปลงและเปิดใช้แล้ว

เราจะเขียนการพัฒนากฎการแลกเปลี่ยนระหว่างการกำหนดค่า 1C: การจัดการการค้า 11 และ 1C: การบัญชีองค์กร 3 (กฎสำหรับการแลกเปลี่ยน UT / ACC)

3. เราจะต้องดำเนินการสำหรับการยกเลิกการโหลดโครงสร้างข้อมูลเมตาและการแลกเปลี่ยน

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

ที่จริงแล้วในไดเรกทอรีการกำหนดค่าที่ไม่ได้แพ็คสำหรับการกำหนดค่าในแบบฟอร์มที่มีการจัดการเราสนใจจัดการ MD83Exp.epf หากจำเป็นต้องทำการยกเลิกการโหลดจากการกำหนดค่าในรูปแบบปกติการประมวลผลของ MD82Exp.epf จะถูกใช้ ตัวอย่างเช่นถ้าคุณจำเป็นต้องได้รับโครงสร้างจากการกำหนดค่าเช่น 1C: UT 10, 1C: การผลิตการจัดการองค์กร 1.3, 1C: การผสานรวมอัตโนมัติ 1.1, 1C: Zup 2.5 และอื่น ๆ

นอกจากนี้ในการอัปโหลดและดาวน์โหลดข้อมูลไปยัง 1C โดยใช้กฎของเราคุณจะต้องดำเนินการ "Universal data exchange ในรูปแบบ XML" V8Exchan83.epf สำหรับการกำหนดค่าในรูปแบบที่มีการจัดการเช่น 1C: การจัดการการค้า 11 *, 1C BP 3, 1C: ERP 2 * และไม่ชอบ และตามด้วย V8Exchan83.epf - สำหรับการกำหนดค่าในรูปแบบปกติ

4. การอัปโหลดโครงสร้างข้อมูลเมตาของการกำหนดค่า 1C: การจัดการการค้า 11.3 และ 1C: การบัญชีองค์กร 3.0

เริ่มต้นด้วยการยกเลิกการโหลดโครงสร้างข้อมูลเมตาจากการกำหนดค่า 1C: บัญชีองค์กร 3
มาเปิดการประมวลผล MD83Exp.epf

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

ตอนนี้คุณต้องโหลดการกำหนดค่าลงในฐานข้อมูลการแปลง คุณสามารถมาที่จุดนี้ทั้งจากรายการการกำหนดค่าและจากรายการการแปลง ลองโหลดจากเดสก์ทอป:

โหลดโครงสร้าง BP ในกล่องโต้ตอบ:

และในทำนองเดียวกัน - โครงสร้างของการบริหารการค้า

หลังจากดาวน์โหลดเสร็จแล้วกล่องโต้ตอบจะปรากฏขึ้นซึ่งคุณสามารถระบุชื่อที่สะดวกสำหรับคุณ

6. การสร้างกฎการแปลงใน 1C ในตัวอย่างที่เฉพาะเจาะจงของงาน

จากนั้นไปที่ "การตั้งค่ากฎของวัตถุ" ซึ่งเราสร้างการตั้งค่าใหม่
ในกล่องโต้ตอบสำหรับการสร้างการแปลงให้เลือกการกำหนดค่า "แหล่งที่มา" และการตั้งค่า "รับ" (ซึ่งถูกโหลดก่อนหน้านี้) และคลิกตกลง

เนื่องจากในบทความนี้ฉันวางแผนที่จะแสดงการสร้าง "ตั้งแต่เริ่มต้น" และ "ไม่มีขยะ" ฉันเตือนคุณว่าเราไม่ได้สร้างอะไรโดยอัตโนมัติ ไม่มีต้นแบบ

เราจะไม่ทำอะไรในกล่องโต้ตอบนี้เพียงคลิก - "ปิด"

เราจะสร้างกฎสำหรับการยกเลิกการโหลดเอกสารหนึ่งฉบับไม่เป็นหนึ่ง แต่หนึ่งประเภทเป็นอีกเอกสารหนึ่งตัวอย่างเช่นเอกสารการขายสินค้า / บริการจาก UT 11 พร้อมหนังสืออ้างอิงที่จำเป็นไปยังเอกสารการรับสินค้า / บริการใน BP 3

ดังนั้นเราจึงสร้าง PKO ใหม่ (กฎสำหรับการแปลงวัตถุเป็น 1C)

เลือกแหล่งที่มาของการขายสินค้า / บริการและผู้รับการรับสินค้า / บริการและคลิกตกลง
ในกรณีนี้กล่องโต้ตอบจะปรากฏขึ้นอีกครั้งซึ่งเราปฏิเสธที่จะสร้าง PCS (กฎการแปลงคุณสมบัติ) โดยอัตโนมัติ ต่อไปเราจะเลือกเฉพาะสิ่งที่จำเป็น

แต่สำหรับข้อเสนอในการสร้าง PVD (กฎการอัปโหลดข้อมูล) เราตอบว่า "ใช่"

PVDs ถูกสร้างขึ้นซึ่งจะสะท้อนให้เห็นในการประมวลผลของการแลกเปลี่ยน XML สากลสำหรับการเลือก:

กฎการแปลงข้อมูลที่มีกฎการแปลงคุณสมบัติว่างจะถูกสร้างขึ้นด้วย

ยิ่งไปกว่านั้นจะเห็นได้ว่า POC เป็นค่าเริ่มต้นถูกเสนอให้ค้นหาโดยตัวระบุภายในของวัตถุ นี่คือการระบุด้วยแว่นขยายใกล้ PKO เราจะทำการค้นหาของเราและเราจะทำตามหมายเลขเอกสารและวันที่ในตอนต้นของวัน

เราลบการค้นหาโดย UIO:

ตอนนี้เรามาเริ่มจับคู่คุณสมบัติที่ต้องการ (คุณสมบัติ) ของวัตถุ ในการทำเช่นนี้กด "ซิงโครไนซ์คุณสมบัติ" (ทำเครื่องหมาย "1" บนหน้าจอ) เราลบการสร้างกฎแบบเรียกซ้ำ ("2") ลบรายละเอียดที่ทำเครื่องหมายไว้ทั้งหมด ("3") และเราจะเลือกสิ่งที่เราต้องการด้วยตัวเอง

ตัวอย่างเช่นเลือกสิ่งที่จำเป็น:

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

ที่เราเห็นว่ายังไม่มีกฎการแปลง

เรามาเริ่มศึกษารายละเอียดและอธิบายกัน อันดับแรกเราตั้งค่าการค้นหาเอกสารในลักษณะเดียวกับที่เราเขียนไว้ก่อนหน้านี้เราอัปโหลดและค้นหาเอกสารเมื่อต้นวันที่และเราจะเปลี่ยนหมายเลข เราจะแทนที่อักขระสามตัวแรกด้วยคำนำหน้า "UTB" ของเราเอง และเนื่องจากใน BP และ UT มีอักขระแต่ละตัว 11 ตัวเราจึงสร้างหมายเลขประกอบ: คำนำหน้าและ 8 ตัวอักษรจากแหล่งที่มา ตัวอย่างที่แสดงด้านล่าง

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

ในการทำเช่นนี้ PCN ถูกตั้งค่าเป็นไม่ได้ดำเนินการ 0 หรือ 1 เราใช้มันเป็นบูลีน

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

กฎการแปลงที่สร้างขึ้นถูกแทนที่ลงในเอกสาร PKO สำหรับ PMS และกฎจะถูกเสนอโดยค่าเริ่มต้นโดยตัวระบุที่ไม่ซ้ำกัน เราแก้ไขทำการค้นหารหัสและตั้งค่าคุณสมบัติเพื่อไม่ให้สร้างวัตถุใหม่

เป็นผลให้เราได้รับตัวเลือก:

นอกจากนี้โดยการเปรียบเทียบเราสร้างรายละเอียดที่เหลือ PKO และ PKS ยิ่งไปกว่านั้นเราได้ทำการค้นหาองค์กรโดยคู่ค้าและในทางกลับกันโดย TIN นี่เป็นลักษณะโดยประมาณโดยมีรายละเอียดน้อยที่สุด (คุณสามารถเพิ่มได้หากจำเป็น)

สำหรับสัญญาของผู้รับเหมา PKO เราทำการค้นหาโดย PKS Contractor ชื่อและเจ้าของ

มาดูวิธีการระบุค่าที่ต้องการในประเภทการแจงนับใน PCN ตัวอย่างเช่นแอตทริบิวต์ "TypeOperation" ที่นี่คุณสามารถใช้เงื่อนไขต่าง ๆ และค่าทดแทน ตัวอย่างเช่นเราต้องการ "ประเภทของการทำงาน" ที่จะถูกยกเลิกการโหลด "ผลิตภัณฑ์" เสมอในกรณีนี้มันก็เพียงพอที่จะเขียนค่าที่ต้องการในบรรทัด "บนหน้าผาก"

มันแสดงให้เห็นด้านล่างวิธีการตั้งค่าโดยไม่มีภาวะแทรกซ้อนและในกรณีส่วนใหญ่ PKS สำหรับความถี่การตั้งถิ่นฐานรวมอัตราการชำระบัญชีรวมบัญชีการบัญชี

สำหรับ PKO Nomenclature เรามาจากการค้นหาโดยรหัสเฉพาะภายใน แต่ฉันจะใส่ใจกับวิธีที่คุณสามารถกำหนดกลุ่มของคุณใหม่ ตัวอย่างเช่นเรายอมรับว่ารายการใหม่จะถูกยกเลิกการโหลดจากการกำหนดค่า 1C: การจัดการการค้า 11 แต่จำเป็นต้องรวบรวมรายการในกลุ่ม“ OurGroup”

เพื่อให้งานนี้สำเร็จเราสร้าง PKO ใหม่ ลองเรียกมันว่า "NomenclatureParent" ซึ่งเราจะระบุในพีซีของผู้ปกครองในกฎการแปลง

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

เนื่องจากเราได้ตัดสินใจว่ารายชื่อสต็อคทั้งหมดของเราอยู่ในกลุ่มของเราจึงไม่จำเป็นต้องยกเลิกการโหลดกลุ่มจาก UT 11 เมื่อทำการยกเลิกการโหลดในการทำเช่นนี้ในระบบชื่อ PKO ในตัวจัดการเหตุการณ์ "Before Unloading" ตั้งค่าตัวกรองว่า กลุ่มนี้; "

ใน PVD (กฎการขนถ่ายข้อมูล) การใช้งาน GoodsServices ให้เพิ่มตัวกรองเพื่อให้เอกสารที่ถูกทำเครื่องหมายสำหรับการลบไม่ถูกยกเลิกการโหลด ในการทำเช่นนี้ในตัวจัดการเหตุการณ์ "ก่อนที่จะยกเลิกการโหลด" ใน PVA เราจะเขียนตัวกรอง "Refusal \u003d Object ลบเครื่องหมาย;"


ลองบันทึกกฎที่พัฒนาแล้วลงในไฟล์


7. เพื่อสรุป: อัพโหลดและดาวน์โหลดข้อมูลโดยใช้กฎการแลกเปลี่ยนข้อมูลที่พัฒนาขึ้น

เราเปิดใน 1C: การจัดการการค้า 11 กำลังประมวลผล "การแลกเปลี่ยนข้อมูลสากลในรูปแบบ XML" V8Exchan83.epf

การยกเลิกการโหลดเกิดขึ้นตอนนี้ด้วยการประมวลผลเดียวกันที่เรากำลังโหลดลงใน 1C: การบัญชีองค์กร 3


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

ตรวจสอบการโหลดของระบบการตั้งชื่อ เราเห็นว่าทุกอย่างกลายเป็นตามที่เราวางแผนไว้


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

ขณะนี้มีการแปลงข้อมูล 3 รายการมันสามารถแก้ไขปัญหาอื่น ๆ ได้ ดังนั้นการแปลง 2 จึงเป็นสิ่งจำเป็น ขอให้โชคดีกับทุกคนในการเรียนรู้และการเรียนรู้

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

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

ปัญหาการโยกย้ายข้อมูล (เรากำลังพูดถึงโดยเฉพาะอย่างยิ่งเกี่ยวกับผลิตภัณฑ์ 1C) จากการแก้ปัญหาหนึ่งไปยังอีกที่ไม่ได้เกิดขึ้นเมื่อวานนี้ บริษัท 1C เข้าใจดีถึงสิ่งที่นักพัฒนาประสบปัญหาในระหว่างการสร้างการย้ายข้อมูลดังนั้นจึงพยายามทุกวิถีทางในการช่วยเหลือเครื่องมือ

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

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

ลองพิจารณาบางส่วนของพวกเขา:

  • แลกเปลี่ยนผ่านไฟล์ข้อความ
  • ใช้แผนการแลกเปลี่ยน
  • เป็นต้น

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

ความซับซ้อนและค่าใช้จ่ายสูงในการสนับสนุนทำให้ 1C สร้างโซลูชันที่เป็นสากล เทคโนโลยีที่ทำให้การพัฒนาและบำรุงรักษาการย้ายข้อมูลเป็นไปอย่างง่ายดายที่สุด ด้วยเหตุนี้จึงเกิดความคิดขึ้นในรูปแบบของการกำหนดค่าแยกต่างหาก - "การแปลงข้อมูล"

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

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

เครื่องหมายบวกใหญ่อันดับสองคือภาพ สร้างการย้ายข้อมูลอย่างง่ายโดยไม่ต้องเขียนโปรแกรม ใช่ใช่ไม่มีรหัสบรรทัดเดียว! เพียงเพื่อประโยชน์ของสิ่งนี้มันคุ้มค่าที่จะใช้เวลากับเทคโนโลยีการเรียนรู้และใช้ทักษะที่ทรงคุณค่าหลายครั้ง

ข้อได้เปรียบที่สามที่ฉันจะชี้ให้เห็นก็คือการขาดข้อ จำกัด ในการกระจายข้อมูล ผู้พัฒนาเองเลือกวิธีการส่งข้อมูลไปยังการกำหนดค่าตัวรับสัญญาณ มีตัวเลือกให้เลือกสองแบบ: การอัปโหลดไปยังไฟล์ xml และการเชื่อมต่อโดยตรงกับ infobase (COM / OLE)

เราศึกษาสถาปัตยกรรม

เรารู้อยู่แล้วว่าการแปลงข้อมูลสามารถทำงานได้อย่างน่าอัศจรรย์ แต่ยังไม่ชัดเจนว่าข้อได้เปรียบทางเทคนิคคืออะไร สิ่งแรกที่ต้องเรียนรู้คือการย้ายข้อมูล (การแปลง) ใด ๆ จะขึ้นอยู่กับกฎการแลกเปลี่ยน กฎการแลกเปลี่ยน - ไฟล์ xml ปกติพร้อมคำอธิบายโครงสร้างที่จะอัปโหลดข้อมูลจาก IB การบริการการประมวลผลซึ่งยกเลิกการโหลด / โหลดข้อมูลวิเคราะห์กฎการแลกเปลี่ยนและดำเนินการยกเลิกการโหลดตามข้อมูลเหล่านั้น กระบวนการกลับด้านในระหว่างการบู๊ต

การกำหนดค่า "KD" เป็นตัวสร้างภาพที่มองเห็นได้ด้วยความช่วยเหลือซึ่งนักพัฒนาสร้างกฎการแลกเปลี่ยน เธอไม่ทราบวิธีการขนถ่ายข้อมูล การประมวลผลบริการภายนอกเพิ่มเติมที่รวมอยู่ในการแจกจ่ายซีดีนั้นเป็นผู้รับผิดชอบในเรื่องนี้ มีหลายคน (XX ในชื่อไฟล์คือหมายเลขเวอร์ชันของแพลตฟอร์ม):

  • MDXXExp.epf - การประมวลผลช่วยให้การยกเลิกการโหลดคำอธิบายของโครงสร้างข้อมูลลงในไฟล์ xml คำอธิบายโครงสร้างถูกโหลดลงในซีดีเพื่อการวิเคราะห์และสร้างกฎการแลกเปลี่ยนเพิ่มเติม
  • V8ExchanXX.epf - ยกเลิกการโหลด / โหลดข้อมูลจากกล่องข้อมูลตามกฎการแลกเปลี่ยน ในการกำหนดค่าทั่วไปการประมวลผลอยู่นอกกรอบ (ดูรายการเมนู“ บริการ”) การประมวลผลนั้นเป็นสากลและไม่เชื่อมโยงกับการกำหนดค่า / กฎเฉพาะใด ๆ

โอเคทีนี้เราจะกำหนดขั้นตอนในการพัฒนาการแปลงใหม่:

  1. ความหมายของงาน มีความจำเป็นต้องเข้าใจอย่างชัดเจนว่าข้อมูลใดที่จำเป็นต้องมีการถ่ายโอน (จากการกำหนดค่าวัตถุ) และที่สำคัญที่สุดคือการถ่ายโอนที่ไหน
  2. การจัดทำคำอธิบายโครงสร้างการกำหนดค่า (ต้นทาง / ปลายทาง) สำหรับการโหลดลงในซีดีในภายหลัง งานได้รับการแก้ไขโดยการประมวลผลบริการ MDXXExp.epf
  3. กำลังโหลดคำอธิบายโครงสร้างที่เตรียมไว้ลงใน IB
  4. การสร้างกฎการแลกเปลี่ยนโดยใช้เครื่องมือซีดีภาพ
  5. อัพโหลด / ดาวน์โหลดตามกฎการแปลงข้อมูลที่สร้างขึ้นโดยใช้การประมวลผล V8ExchanXX.epf
  6. การแก้จุดบกพร่องกฎการแลกเปลี่ยน (ถ้าจำเป็น)

การแปลงที่ง่ายที่สุด

สำหรับการสาธิตเราต้องการการกำหนดค่าที่ปรับใช้สองแบบ ฉันตัดสินใจที่จะใช้ตัวเลือก“ การจัดการการค้า” รุ่นที่ 10 และโซลูชันที่เขียนด้วยตนเองขนาดเล็ก ภารกิจจะเป็นการถ่ายโอนข้อมูลจากการกำหนดค่า UT ทั่วไป เพื่อความกระชับลองเรียกวิธีแก้ปัญหาที่เขียนด้วยตนเองว่า“ ผู้รับ” และการจัดการการค้า“ แหล่งที่มา” มาเริ่มแก้ปัญหาด้วยการถ่ายโอนองค์ประกอบของหนังสืออ้างอิง "ระบบการตั้งชื่อ"

ก่อนอื่นเรามาดูที่โครงร่างการแปลงข้อมูลและอ่านรายการการกระทำที่ต้องทำอีกครั้ง จากนั้นเราจะเปิดการกำหนดค่า“ ที่มา” และเปิดการประมวลผลบริการ MD82Exp.epf

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

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

เอกสารบางฉบับ (โดยเฉพาะในการกำหนดค่าทั่วไป) สร้างความเคลื่อนไหวในหลาย ๆ รีจิสเตอร์ การทิ้งทั้งฟาร์มนี้จะทำให้ไฟล์ XML ที่ได้มีขนาดใหญ่เกินไป สิ่งนี้สามารถทำให้การขนส่งที่ตามมาซับซ้อนและโหลดลงในฐานของผู้รับ ยิ่งไฟล์ข้อมูลมีขนาดใหญ่เท่าใดจำเป็นต้องใช้ RAM ในการประมวลผล ตลอดระยะเวลาที่ฝึกซ้อมฉันเจอไฟล์อัพโหลดขนาดใหญ่อย่างลามก ไฟล์ดังกล่าวปฏิเสธที่จะแยกวิเคราะห์อย่างสมบูรณ์ด้วยวิธีมาตรฐาน

ดังนั้นเราปล่อยให้การตั้งค่าเริ่มต้นทั้งหมดและอัปโหลดคำอธิบายการกำหนดค่าไปยังไฟล์ เราทำซ้ำขั้นตอนที่คล้ายกันสำหรับฐานสอง

เปิดซีดีและเลือกในเมนูหลัก "ไดเรกทอรี" -\u003e "การกำหนดค่า"... การอ้างอิงประกอบด้วยคำอธิบายของโครงสร้างของการกำหนดค่าทั้งหมดซึ่งจะช่วยในการสร้างการแปลง เราโหลดคำอธิบายการกำหนดค่าหนึ่งครั้งจากนั้นเราสามารถใช้หลายครั้งเพื่อสร้างการแปลงที่หลากหลาย

ในหน้าต่างไดเรกทอรีกดปุ่ม“ เพิ่ม” และในหน้าต่างที่ปรากฏขึ้นให้เลือกไฟล์ที่มีคำอธิบายการกำหนดค่า เราทำเครื่องหมายในช่อง“ โหลดไปยังการกำหนดค่าใหม่” และคลิกที่ปุ่ม“ ดำเนินการโหลด” เราทำเช่นเดียวกันกับคำอธิบายของโครงสร้างของการกำหนดค่าที่สอง

ตอนนี้ทุกอย่างพร้อมที่จะสร้างกฎการแลกเปลี่ยน ในเมนูหลักของซีดีเลือก "การอ้างอิง" -\u003e "การแปลง" เราเพิ่มองค์ประกอบใหม่ ในหน้าต่างสำหรับการสร้างการแปลงใหม่คุณต้องระบุ: การกำหนดค่าแหล่งที่มา (เลือก UT) และการกำหนดค่าตัวรับสัญญาณ (เลือก“ ผู้รับ”) ถัดไปเปิดแท็บ "ขั้นสูง" และกรอกข้อมูลในฟิลด์ต่อไปนี้:

  • ชื่อไฟล์กฎการแลกเปลี่ยน - กฎการแลกเปลี่ยนที่สร้างขึ้นจะถูกบันทึกไว้ภายใต้ชื่อนี้ ชื่อไฟล์สามารถเปลี่ยนแปลงได้ตลอดเวลา แต่จะได้ผลกำไรมากขึ้นในการตั้งค่าทันที สิ่งนี้จะช่วยประหยัดเวลาในอนาคต ฉันตั้งชื่อกฎสำหรับการสาธิต: "rules-ut-to-priemnik.xml"
  • name - ชื่อของการแปลง ชื่อสามารถเป็นอะไรก็ได้ฉัน จำกัด ตัวเองที่ "สาธิต UT ในตัวรับสัญญาณ”

แค่นี้ให้คลิก“ ตกลง” ทันทีที่หน้าต่างปรากฏขึ้นต่อหน้าเราพร้อมคำถามเพื่อสร้างกฎทั้งหมดโดยอัตโนมัติ การยอมรับข้อเสนอที่ดึงดูดดังกล่าวจะทำให้คำสั่งของวิซาร์ดช่วยวิเคราะห์คำอธิบายของการกำหนดค่าที่เลือกโดยอัตโนมัติและสร้างกฎการแลกเปลี่ยนอย่างอิสระ

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

ลองมาดูอย่างใกล้ชิดที่หน้าต่าง "การตั้งค่ากฎการแลกเปลี่ยน" อินเทอร์เฟซอาจดูสับสนเล็กน้อย - แท็บจำนวนมากเต็มไปด้วยการควบคุม ในความเป็นจริงทุกอย่างไม่ยากนักคุณเริ่มคุ้นเคยกับความบ้าคลั่งนี้หลังจากทำงานกับแอปพลิเคชันไม่กี่ชั่วโมง

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

ในช่วงครึ่งหลังของแท็บ "กฎการแปลงวัตถุ" มีแผงเพิ่มเติมที่มีสองแท็บ: "การแปลงคุณสมบัติ" และ " การแปลงค่า” ครั้งแรกจะเลือกคุณสมบัติ (คุณสมบัติ) ของวัตถุที่เลือกและที่สองเป็นสิ่งจำเป็นในการทำงานกับค่าที่กำหนดไว้ล่วงหน้า (ตัวอย่างเช่นองค์ประกอบแคตตาล็อกที่กำหนดไว้ล่วงหน้าหรือองค์ประกอบการแจงนับ)

เยี่ยมมากมาสร้างกฎการแปลงสำหรับหนังสืออ้างอิง คุณสามารถดำเนินการนี้ได้สองวิธี: ใช้ตัวช่วยสร้างการซิงโครไนซ์วัตถุ (ปุ่ม "") หรือเพิ่มการจับคู่สำหรับแต่ละวัตถุด้วยตนเอง

เพื่อประหยัดพื้นที่ลองใช้ตัวเลือกแรก ในหน้าต่างตัวช่วยสร้างยกเลิกการเลือกกล่องจาก“ เอกสาร"(เราสนใจหนังสืออ้างอิงเท่านั้น) และเปิดกลุ่ม" อ้างอิง” เราเลื่อนดูรายการอย่างระมัดระวังและดูชื่อหนังสืออ้างอิงที่สามารถเปรียบเทียบได้

ในกรณีของฉันมีสามไดเรกทอรีดังกล่าว: ระบบการตั้งชื่อองค์กรและคลังสินค้า นอกจากนี้ยังมีไคลเอนต์หนังสืออ้างอิงซึ่งตอบสนองโหลดความหมายเช่นเดียวกับ“ ผู้รับเหมา"จากการกำหนดค่า" ยูทาห์” จริงเจ้านายไม่สามารถจับคู่พวกเขาได้เนื่องจากชื่อที่ยอดเยี่ยมของพวกเขา

เราสามารถแก้ไขข้อบกพร่องนี้ได้ด้วยตัวเอง เราพบในหน้าต่าง " การจับคู่วัตถุ"หนังสืออ้างอิง" ลูกค้า", และในคอลัมน์" แหล่งที่มา "เลือกหนังสืออ้างอิง" ผู้รับเหมา " จากนั้นทำเครื่องหมายในช่องในคอลัมน์ "ประเภท" แล้วกดปุ่ม "ตกลง"

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

พื้นฐานสำหรับกฎการแลกเปลี่ยนพร้อมแล้ว เราเลือกวัตถุสำหรับการซิงโครไนซ์และกฎสำหรับการแปลงคุณสมบัติและกฎการขนถ่ายถูกสร้างขึ้นโดยอัตโนมัติ บันทึกกฎการแลกเปลี่ยนลงในไฟล์จากนั้นเปิด IB "Source" (ในกรณีของฉันคือ UT) และเริ่มการประมวลผลบริการ V8Exchan82.epf.

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

หลังจากเสร็จสิ้นกระบวนการอัปโหลดข้อมูลไปยังไฟล์ให้ไปที่ IB“ ผู้รับ” เรายังเปิดการประมวลผลด้วย V8Exchan82.epfเฉพาะคราวนี้ไปที่แท็บ "ดาวน์โหลดข้อมูล" เลือกไฟล์ข้อมูลและกดปุ่ม "โหลด" นั่นคือข้อมูลได้รับการถ่ายโอนเรียบร้อยแล้ว

งานในโลกแห่งความจริง

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

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

ปัญหาหมายเลข 1 เรากรอกรายละเอียดที่ขาดหายไป

สมมติว่าเราต้องการโอนจากไดเรกทอรี UT " ผู้รับเหมา” ผู้รับมีไดเรกทอรี "ลูกค้า" ที่คล้ายกันสำหรับเรื่องนี้ มันเหมาะอย่างยิ่งสำหรับการจัดเก็บข้อมูล แต่มีอุปกรณ์ประกอบฉาก“ องค์กร” ซึ่งช่วยให้คุณสามารถแยกผู้รับเหมาโดยเป็นขององค์กร ตามค่าเริ่มต้นผู้รับเหมาทั้งหมดจะต้องอ้างอิงถึงองค์กรปัจจุบัน (สามารถรับได้จากค่าคงที่ของชื่อเดียวกัน)

ปัญหามีหลายวิธี เราจะพิจารณาตัวเลือกในการกรอกข้อมูลที่จำเป็น " องค์กร"ขวาในฐานข้อมูล" ผู้รับ”, I.e. ในช่วงเวลาของการโหลดข้อมูล องค์กรปัจจุบันถูกเก็บไว้ในค่าคงที่ดังนั้นจึงไม่มีอุปสรรคในการรับค่านี้ ลองเปิดกฎการแปลงวัตถุ (ต่อไปนี้ PCO)“ ลูกค้า” (ดับเบิลคลิกที่วัตถุ) และในตัวช่วยสร้างกฎให้ไปที่ส่วน“ ตัวจัดการเหตุการณ์” ในรายการของตัวจัดการเราพบ“ หลังจากโหลดแล้ว”.

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

ถ้าไม่ใช่ Object.EtoGroup จากนั้น Object.Organization \u003d Constants.CurrentOrganization.Get (); EndIf;

ก่อนที่จะกรอกในสิ่งที่จำเป็น " องค์กร"จำเป็นต้องตรวจสอบค่าของตัวแปร" กลุ่มนี้" สำหรับการอ้างอิง“ ลูกค้า»มีการตั้งค่าสถานะลำดับชั้นดังนั้นจำเป็นต้องมีการตรวจสอบกลุ่ม ในทำนองเดียวกันการกรอกรายละเอียดใด ๆ โปรดอ่านวิธีใช้สำหรับพารามิเตอร์ตัวจัดการอื่น ๆ " หลังจากดาวน์โหลด" ตัวอย่างเช่นในหมู่พวกเขามีพารามิเตอร์“ การสละ" หากมีการกำหนดค่าเป็น "จริง" วัตถุจะไม่ถูกเขียนไปยังฐานข้อมูล ดังนั้นจึงเป็นไปได้ที่จะ จำกัด วัตถุสำหรับการบันทึกในเวลาที่โหลด

ปัญหาหมายเลข 2 รายละเอียดการลงทะเบียนข้อมูล

ในการอ้างอิง“ ผู้รับเหมา"การกำหนดค่า UT มีรายละเอียด" ผู้ซื้อ"และ" ผู้ให้บริการ” คุณลักษณะทั้งสองเป็นประเภท“ บูลีน” และมีการใช้เพื่อกำหนดประเภทของคู่สัญญา ใน IB“ ผู้รับ", ณ หนังสืออ้างอิง" ลูกค้า"ไม่มีรายละเอียดที่คล้ายกัน แต่มีการลงทะเบียนข้อมูล" ประเภทของลูกค้า” มันทำหน้าที่คล้ายกันและสามารถจัดเก็บคุณสมบัติหลายอย่างสำหรับหนึ่งลูกค้า งานของเราคือการถ่ายโอนค่าคุณลักษณะลงในบันทึกแยกต่างหากของการลงทะเบียนข้อมูล

น่าเสียดายที่วิธีการใช้ภาพเพียงอย่างเดียวไม่สามารถรับมือกับสิ่งนี้ได้ เริ่มกันเลยสร้าง PKO ใหม่สำหรับการลงทะเบียนข้อมูล“ ประเภทของลูกค้า” อย่าระบุสิ่งใดเป็นแหล่งที่มา ปฏิเสธที่จะสร้างกฎการขนถ่ายโดยอัตโนมัติ

ขั้นตอนต่อไปคือการสร้างกฎการขนถ่าย ไปที่แท็บที่เกี่ยวข้องแล้วกดปุ่ม“ เพิ่ม” ในหน้าต่างเพื่อเพิ่มกฎการอัปโหลดให้กรอก:

  • วิธีการเก็บตัวอย่าง เปลี่ยนเป็น "อัลกอริทึมฟรี";
  • กฎการแปลง เลือกการลงทะเบียนข้อมูล "ชนิดของลูกค้า";
  • รหัส (ชื่อ) ของกฎ เราเขียนมันเป็น“ การยกเลิกการโหลดมุมมองลูกค้า”;

ตอนนี้คุณต้องเขียนรหัสเพื่อเลือกข้อมูลสำหรับการอัปโหลด พารามิเตอร์“ ดึงข้อมูล” เราสามารถใส่ชุดข้อมูลพร้อมชุดข้อมูลที่เตรียมไว้ พารามิเตอร์“ ดึงข้อมูล” สามารถรับค่าต่าง ๆ - ผลการสืบค้นการเลือกคอลเลกชันของค่า ฯลฯ เราเริ่มต้นมันเป็นตารางของค่าที่มีสองคอลัมน์: ประเภทลูกค้าและลูกค้า

ด้านล่างเป็นรหัสสำหรับตัวจัดการเหตุการณ์“ ก่อนประมวลผล” มันเริ่มต้น“ ดึงข้อมูล"ตามด้วยการกรอกข้อมูลจากไดเรกทอรี" ผู้รับเหมา” ที่นี่คุณควรใส่ใจกับการกรอกคอลัมน์ " ประเภทลูกค้า” ใน“ UT” เรามีสัญญาณของประเภท“ บูลีน” และในตัวรับมันเป็นการถ่ายโอน

ในขั้นตอนนี้เราไม่สามารถลดพวกเขาเป็นประเภทที่ต้องการ (ไม่ใช่ใน UT) ดังนั้นตอนนี้เราจะปล่อยพวกเขาในรูปแบบของสตริง คุณไม่จำเป็นต้องทำสิ่งนี้ แต่ฉันต้องการแสดงให้คุณเห็นว่าจะส่งไปยังประเภทที่ขาดหายไปได้อย่างไร

DataFetch \u003d NewValuesTable (); FetchData.Columns.Add ("ลูกค้า"); FetchData.Columns.Add ("ClientType"); SamplingDataFromDirectory \u003d Directories.Contractors.Select (); ในขณะที่ FetchingDataFromDirectory.Next () วนรอบ IfFetchingDataFromDirectory.ThisGroup จากนั้นดำเนินการต่อ; EndIf; ถ้า DataFetchFromDirectory.Buyer ดังนั้น NewRow \u003d DataFetch.Add (); NewString.Client \u003d DataFetchFromDirectory.Link; NewString.ClientType \u003d "ผู้ซื้อ"; EndIf; IfFetchDataFromDirectory.Provider ดังนั้น NewRow \u003d FetchData.Add (); NewString.Client \u003d DataFetchFromDirectory.Link; NewString.ClientType \u003d "ผู้จัดหา"; EndIf; สิ้นสุดรอบ;

ลองบันทึกกฎการขนถ่ายข้อมูลและกลับไปที่“ กฎการแปลงวัตถุ” เพิ่มสำหรับการลงทะเบียนข้อมูล“ ประเภทของลูกค้า” กฎการแปลงทรัพย์สิน: ประเภทลูกค้าและลูกค้า ปล่อยให้แหล่งข้อมูลนั้นว่างเปล่าและเขียนในตัวจัดการเหตุการณ์“ ก่อนทำการขนถ่าย”

// สำหรับคุณสมบัติ“ ลูกค้า” มูลค่า \u003d แหล่งที่มาของลูกค้า; // สำหรับคุณสมบัติ“ ClientType” ถ้า Source.Client \u003d "ผู้ซื้อ" จากนั้น Expression \u003d "Enumerations.ClientTypes.Customer" มิฉะนั้นถ้า Source.Client \u003d "ซัพพลายเออร์" จากนั้นแสดงออก \u003d "Enumerations.ClientTypes.Supplier"; EndIf;

ในรายการรายละเอียดจะถูกกรอกตามการเลือกข้อมูลที่ทำ เราถ่ายโอนลูกค้าเพียงแค่เป็นลิงค์และเขียนประเภทลูกค้าในพารามิเตอร์“ การแสดงออก" ข้อมูลของพารามิเตอร์นี้จะถูกตีความในตัวรับและเมื่อดำเนินการตัวแปรจะถูกเติมด้วยค่าที่ถูกต้องจากการแจงนับ

นั่นคือกฎการแลกเปลี่ยนพร้อมแล้วตัวอย่างที่พิจารณาแล้วกลายเป็นสากล วิธีการนี้มักใช้เมื่อโอนย้ายข้อมูลจากการกำหนดค่าที่สร้างขึ้นบนแพลตฟอร์ม 7.7 ตัวอย่างที่ชัดเจนของเรื่องนี้คือการโอนความต้องการตามงวด

ปัญหาหมายเลข 3 เทคนิคส่วนตาราง

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

เราสร้างกฎสำหรับการยกเลิกการโหลดข้อมูลระบุอัลกอริทึมโดยพลการและในตัวจัดการ "ก่อนที่จะขนถ่าย" เขียนคำขอเพื่อรับข้อมูลจากส่วนตาราง

เพื่อประหยัดพื้นที่ฉันจะไม่อ้างอิงรหัส (คุณสามารถอ้างถึงซอร์สโค้ด) ของคำขอได้เสมอ - ไม่มีสิ่งใดผิดปกติในนั้น เราวนซ้ำการเลือกผลลัพธ์และวางผลลัพธ์ที่เรียงไว้ในพารามิเตอร์ที่คุ้นเคยแล้ว“ ดึงข้อมูล” นอกจากนี้ยังสะดวกในการใช้ตารางค่าเป็นคอลเล็กชัน:

DataFetch \u003d NewValuesTable (); // จะมีอีกหนึ่งตารางส่วน DataFetch.Columns.Add (“ ผลิตภัณฑ์”); // จะมีส่วนของตาราง DataFetch.Columns.Add (“ Services”); FetchData.Columns.Add (“ ลิงก์”);

ปัญหาหมายเลข 4 การถ่ายโอนข้อมูลไปยังการดำเนินการ

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

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

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

ปัญหาหมายเลข 5 การซิงโครไนซ์ข้อมูลสำหรับสิ่งที่จำเป็นหลายอย่าง

เราได้ดูตัวอย่างบางส่วนแล้ว แต่ยังไม่ได้พูดคุยเกี่ยวกับการซิงโครไนซ์วัตถุระหว่างการย้ายข้อมูล ลองนึกภาพว่าเราต้องถ่ายโอนผู้รับเหมาและบางคนอาจอยู่ในฐานข้อมูลของผู้รับ วิธีการถ่ายโอนข้อมูลและป้องกันการซ้ำซ้อน? ในเรื่องนี้ซีดีนำเสนอหลายวิธีในการซิงโครไนซ์วัตถุพกพา

ตัวแรกขึ้นอยู่กับตัวระบุที่ไม่ซ้ำกัน วัตถุจำนวนมากมีตัวระบุเฉพาะที่รับประกันความเป็นเอกลักษณ์ภายในตาราง ตัวอย่างเช่นในการอ้างอิง“ ผู้รับเหมา” ไม่สามารถมีสององค์ประกอบที่มี ID เดียวกัน ซีดีทำการคำนวณสำหรับสิ่งนี้และสำหรับ PQS ที่สร้างขึ้นทั้งหมดการค้นหาโดยตัวระบุจะเปิดใช้งานตามค่าเริ่มต้น ในระหว่างการสร้าง PCO คุณควรให้ความสนใจกับภาพแว่นขยายถัดจากชื่อวัตถุ

การซิงโครไนซ์ด้วยตัวระบุที่ไม่ซ้ำกันเป็นวิธีที่เชื่อถือได้ แต่มันก็ยังไม่เหมาะสมเสมอไป เมื่อรวมไดเรกทอรี“ ผู้รับเหมา” (จากระบบที่แตกต่างกัน) ไม่ได้ช่วยอะไรมาก

ในกรณีเช่นนี้มันถูกต้องมากขึ้นในการซิงโครไนซ์วัตถุตามเกณฑ์ต่างๆ มันถูกต้องมากขึ้นในการค้นหาคู่สัญญาโดย TIN, KPP, ชื่อหรือแยกการค้นหาออกเป็นหลายขั้นตอน

การแปลงข้อมูลไม่ จำกัด นักพัฒนาในการกำหนดเกณฑ์การค้นหา ลองพิจารณาตัวอย่างที่เป็นนามธรรม สมมติว่าเราต้องการซิงโครไนซ์ไดเรกทอรี“ ผู้รับเหมา” จากฐานข้อมูลต่าง ๆ มาเตรียม POC กันและในการตั้งค่าของกฎการแปลงวัตถุให้ทำเครื่องหมายที่ช่องทำเครื่องหมาย“ ค้นหาช่องค้นหาต่อไปหากไม่พบวัตถุเป้าหมายโดยตัวระบุ” ด้วยการกระทำนี้เราจะกำหนดเกณฑ์การค้นหาสองทันทีโดยระบุเฉพาะและฟิลด์ที่กำหนดเอง

เรามีสิทธิ์เลือกสาขาด้วยตนเอง เมื่อสังเกตว่า INN, KPP, ชื่อเราจะระบุเกณฑ์การค้นหาหลายทันที สะดวกสบาย? ค่อนข้างมาก แต่ก็ไม่เพียงพอ ถ้าเราต้องการเปลี่ยนเกณฑ์การค้นหา ตัวอย่างเช่นอันดับแรกเรามองหาลิงก์ INN + KPP และหากเราไม่พบสิ่งใดเลยเราจะลองเสี่ยงโชคด้วยชื่อ

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

ถ้า SearchVariantNumber \u003d 1 ดังนั้น SearchPropertyNameString \u003d“ INN, KPP”; มิฉะนั้นถ้า SearchVariantNumber \u003d 2 จากนั้น SearchPropertyNameString \u003d“ ชื่อ”; EndIf;

มีโซลูชั่นหลายวิธีเสมอ

งานใด ๆ ที่มีหลายวิธีและการถ่ายโอนข้อมูลระหว่างการกำหนดค่าที่แตกต่างกันจะไม่มีข้อยกเว้น นักพัฒนาแต่ละคนมีสิทธิ์ที่จะเลือกเส้นทางการแก้ปัญหาของเขาเอง แต่ถ้าคุณต้องพัฒนาการโยกย้ายข้อมูลที่ซับซ้อนอยู่ตลอดเวลาฉันขอแนะนำให้คุณใส่ใจกับการกำหนดค่า "" ให้ทรัพยากร (เวลา) ต้องลงทุนในการฝึกอบรมก่อน แต่พวกเขาจะได้รับผลตอบแทนมากกว่าในโครงการที่ร้ายแรงมากขึ้นหรือน้อยลงเป็นครั้งแรก

ในความเห็นของฉัน 1C ไม่ผ่านการข้ามหัวข้อการใช้การแปลงข้อมูลโดยไม่สมควร สำหรับการมีอยู่ทั้งหมดของเทคโนโลยีหนังสือเล่มเดียวที่ตีพิมพ์ในนั้น:“ 1C: องค์กร 8 การแปลงข้อมูล: การแลกเปลี่ยนระหว่างโซลูชันแอปพลิเคชัน” หนังสือเล่มนี้ค่อนข้างเก่า (2008) แต่ก็ยังเป็นที่ต้องการที่จะทำความคุ้นเคยกับมัน

ความรู้เกี่ยวกับแพลตฟอร์มยังจำเป็น

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

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

ความสามารถในการจัดระเบียบการแลกเปลี่ยนระหว่างระบบข้อมูลที่แตกต่างกันมีความสำคัญอย่างยิ่งสำหรับงานที่มีประสิทธิภาพ แพลตฟอร์ม " 1C: องค์กร"มอบเครื่องมือที่หลากหลายสำหรับการแลกเปลี่ยนข้อมูลและการรวมแอปพลิเคชัน

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

หนังสือเล่มนี้มาพร้อมกับแผ่นซีดีที่มีฐานข้อมูลตัวอย่างพร้อมกฎการแลกเปลี่ยนและการตั้งค่า " 1C: องค์กร การแปลงข้อมูล".

โครงสร้างหนังสือ

บทนำ

บทที่ 1. หลักการทั่วไปสำหรับการตั้งค่ากฎ

บทที่ 2. ใช้กฎ

บทที่ 3. การสร้างกฎอัตโนมัติ

บทที่ 4 โครงสร้างกฎ

บทที่ 5 การศึกษารายละเอียดของกฎ

บทที่ 6 ตัวจัดการเหตุการณ์

  • พารามิเตอร์
  • ตัวจัดการการแปลง
  • เครื่องมือจัดการกฎการอัปโหลดข้อมูล
  • ตัวจัดการกฎการแปลงวัตถุ
  • ตัวจัดการกฎการแปลงกลุ่มคุณสมบัติ
  • ตัวจัดการกฎการแปลงคุณสมบัติ

บทที่ 7 ค้นหาช่อง

บทที่ 8 กฎการล้างข้อมูล

บทที่ 9 อัลกอริทึมและแบบสอบถาม

บทที่ 10 ตัวอย่างทั่วไปของกฎ วิธีแก้ปัญหา

  • กำลังแปลง enumerations
  • การแปลงไดเรกทอรี
  • การแปลงเอกสาร
  • การแปลงการลงทะเบียนข้อมูล
  • แปลงผังบัญชี
  • การแปลงแผนภูมิของประเภทคุณลักษณะ
  • แปลงแผนภูมิประเภทการคำนวณ
  • การแปลงค่าคงที่ 1C: Enterprise 7.7
  • การแปลงธุรกรรมทางบัญชี 1C: Enterprise 7.7

บทที่ 11 ปรับกฎให้เหมาะสม

  • กฎการอัพโหลดข้อมูล
  • กฎการแปลงวัตถุ
  • การประมวลผลการแลกเปลี่ยนข้อมูล XML ทั่วไป

 

การอ่านอาจเป็นประโยชน์: