ธุรกิจของฉันคือแฟรนไชส์ การให้คะแนน เรื่องราวความสำเร็จ ไอเดีย การทำงานและการศึกษา
ค้นหาไซต์

การแปลงข้อมูล 1c องค์กร 8 มีวิธีแก้ไขหลายประการอยู่เสมอ

หนังสือ หนังสือเล่มเล็ก บทความ

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

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

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

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

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

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

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


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

ซื้อ:

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

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

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

ค่าหนังสือ

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

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

การแนะนำ

บทที่ 1 หลักการทั่วไปในการตั้งกฎเกณฑ์

บทที่ 2: การใช้กฎ

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

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

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

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

  • ตัวเลือก
  • ตัวจัดการ "Conversion"
  • ตัวจัดการ "กฎการอัปโหลดข้อมูล"
  • ตัวจัดการ "กฎการแปลงวัตถุ"
  • ตัวจัดการ "กฎการแปลงกลุ่มพร็อพเพอร์ตี้"
  • ตัวจัดการ "กฎการแปลงทรัพย์สิน"

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

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

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

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

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

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

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

1. บทนำ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ตัวอย่างเช่น เลือกสิ่งที่คุณต้องการ:

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

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

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

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

เมื่อต้องการทำสิ่งนี้ โดยตั้งค่า PKS เป็นไม่ได้ดำเนินการ 0 หรือ 1 เราจะใช้เป็นบูลีน

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

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

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

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

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

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

ด้านล่างนี้แสดงวิธีการติดตั้งโดยไม่ยาก และในกรณีส่วนใหญ่ PCS สำหรับ Multiplicity การชำระบัญชีร่วมกัน, อัตราการชำระบัญชีร่วมกัน, บัญชีการบัญชี

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

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

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

เนื่องจากเราได้ตัดสินใจว่ารายการทั้งหมดของเราอยู่ในกลุ่มของเราจึงไม่จำเป็นต้องยกเลิกการโหลดกลุ่มจาก UT 11 เมื่อทำการยกเลิกการโหลด เมื่อต้องการทำเช่นนี้ ในซอฟต์แวร์ Nomenclature ในตัวจัดการเหตุการณ์ "ก่อนยกเลิกการโหลด" เราจะตั้งค่าตัวกรองที่ ไม่จำเป็นต้องยกเลิกการโหลดกลุ่ม “Failure = Source. This group;".

ใน DRP (กฎการอัปโหลดข้อมูล) สำหรับการขายผลิตภัณฑ์และบริการ เราจะเพิ่มตัวกรองเพื่อไม่ให้มีการอัปโหลดเอกสารที่ถูกทำเครื่องหมายเพื่อลบ ในการดำเนินการนี้ ใน VDP ในตัวจัดการเหตุการณ์ "ก่อนยกเลิกการโหลด" เราจะเขียนตัวกรอง "Failure = Object.DeletionMark;"


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


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

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

การขนถ่ายเสร็จสมบูรณ์ ตอนนี้เราใช้การประมวลผลเดียวกันเพื่อโหลดลงใน 1C: การบัญชีองค์กร 3


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

เราตรวจสอบการบรรทุกสิ่งของ เราเห็นว่าทุกอย่างเป็นไปตามที่เราวางแผนไว้


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

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

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

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

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

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

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

ลองดูบางส่วนของพวกเขา:

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

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

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

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

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

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

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

กำลังศึกษาสถาปัตยกรรม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ปัญหาโลกแห่งความเป็นจริง

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

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

ภารกิจที่ 1 กรอกรายละเอียดที่ขาดหายไป

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

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

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

ถ้าไม่ใช่ Object.ThisGroup ดังนั้น Object.Organization = Constants.CurrentOrganization.Get(); สิ้นสุดถ้า;

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

ภารกิจที่ 2 รายละเอียดการลงทะเบียนข้อมูล

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

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

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

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

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

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

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

DataFetch = ตารางค่าใหม่ (); DataSelection.Columns.Add("ลูกค้า"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); ขณะ SelectingDataFromDirectory.Next() วนซ้ำ หากเลือก DataFromDirectory.ThisGroup ให้ดำเนินการต่อ สิ้นสุดถ้า; ถ้าเลือกข้อมูลจาก Directory.Buyer แล้ว NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "ลูกค้า"; สิ้นสุดถ้า; ถ้า DataFetchFromDirectory.Supplier แล้ว NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "ซัพพลายเออร์"; สิ้นสุดถ้า; สิ้นสุดรอบ;

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

//สำหรับคุณสมบัติ “ไคลเอนต์” ค่า = Source.Client; //สำหรับคุณสมบัติ “ClientType” ถ้า Source.Client = "ผู้ซื้อ" ดังนั้น Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "ซัพพลายเออร์" จากนั้น Expression = "Enumerations.ClientTypes.Supplier"; สิ้นสุดถ้า;

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

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

ภารกิจที่ 3 เทคนิคการใช้ชิ้นส่วนโต๊ะ

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

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

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

DataFetch = ตารางค่าใหม่ (); //จะมีส่วนของตารางอีกส่วนหนึ่งที่นี่ Data Selection.Columns.Add("Products"); //ที่นี่จะมีส่วนที่เป็นตาราง Data Selection.Columns.Add("Services"); SelectionData.Columns.Add("ลิงก์");

ภารกิจที่ 4 การถ่ายโอนข้อมูลไปยังการดำเนินการ

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

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

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

ภารกิจที่ 5 การซิงโครไนซ์ข้อมูลในหลายรายละเอียด

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

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

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

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

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

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

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

ถ้า SearchOptionNumber = 1 ดังนั้น SearchPropertyNameString = “TIN, KPP”; มิฉะนั้นIfSearchOptionNumber = 2 จากนั้นSearchPropertyNameString = “ชื่อ”; สิ้นสุดถ้า;

มีวิธีแก้ไขหลายประการอยู่เสมอ

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

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

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

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

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

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

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

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

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

การแนะนำ

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

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

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

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

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

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

  • ตัวเลือก
  • ตัวจัดการ "Conversion"
  • ตัวจัดการ "กฎการอัปโหลดข้อมูล"
  • ตัวจัดการ "กฎการแปลงวัตถุ"
  • ตัวจัดการ "กฎการแปลงกลุ่มพร็อพเพอร์ตี้"
  • ตัวจัดการ "กฎการแปลงทรัพย์สิน"

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

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

บทที่ 9อัลกอริทึมและการสืบค้น

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

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

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

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

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

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

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

การกำหนดค่านั้นสะดวกมากในการใช้งานกับ.

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

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

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

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

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

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

เอกสารตำราเรียน 1C Data Conversion 2.0

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

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

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

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

3. แยกกัน ฉันอยากจะเน้นหนังสือเรียน - (ผู้แต่ง - Olga Kuznetsova)