การสร้างรายงานอย่างง่ายเกี่ยวกับระบบจัดเก็บข้อมูล การสร้างรายงานอย่างง่ายเกี่ยวกับองค์ประกอบข้อมูล SCD 1

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

    ในแพลตฟอร์ม 1C:Enterprise กลไกที่เรียกว่า "ระบบการจัดองค์ประกอบข้อมูล" (เรียกย่อว่า DCS) มีหน้าที่ในการสร้างรายงาน ในบทความนี้เราจะพยายามให้คำอธิบายสั้น ๆ เกี่ยวกับแนวคิดและสถาปัตยกรรมของกลไก ACS และความสามารถของมัน


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

    ประวัติเล็กน้อย

    ในเวอร์ชันแรกของแพลตฟอร์ม 1C:Enterprise 8 เวอร์ชัน 8.0 มีการสร้างรายงานดังนี้:
    1. แบบสอบถามอย่างน้อยหนึ่งรายการเขียนด้วยภาษาแบบสอบถาม 1C (ภาษาคล้าย SQL อ่านเพิ่มเติมด้านล่าง)
    2. มีการเขียนโค้ดที่ถ่ายโอนผลลัพธ์ของการสืบค้นที่ดำเนินการไปยังเอกสารสเปรดชีตหรือแผนภูมิ โค้ดยังสามารถทำงานที่ไม่สามารถทำได้ในการสืบค้น - ตัวอย่างเช่น คำนวณค่าโดยใช้ภาษา 1C ในตัว
    วิธีการนี้ตรงไปตรงมา แต่ไม่สะดวกที่สุด - มีการตั้งค่าภาพเพียงเล็กน้อย ทุกอย่างจะต้องตั้งโปรแกรมไว้แบบ "จับมือกัน" และหนึ่งในไพ่เด็ดในเวลานั้นของแพลตฟอร์มใหม่ “1C:Enterprise 8” คือการลดจำนวนโค้ดที่ต้องเขียนด้วยตนเองในโซลูชันแอปพลิเคชันให้เหลือน้อยที่สุด โดยเฉพาะอย่างยิ่งผ่านการออกแบบภาพ จะเป็นตรรกะที่จะปฏิบัติตามเส้นทางเดียวกันในกลไกการรายงาน ทำได้โดยการพัฒนากลไกใหม่ - ระบบการจัดองค์ประกอบข้อมูล

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

    คำชี้แจงของปัญหา

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

    สองภาษา

    มีสองภาษาที่เกี่ยวข้องในการสร้างรายงาน หนึ่งคือภาษาแบบสอบถามที่ใช้ในการดึงข้อมูล ภาษาที่สองคือภาษานิพจน์การจัดองค์ประกอบข้อมูล ซึ่งออกแบบมาเพื่อเขียนนิพจน์ที่ใช้ในส่วนต่างๆ ของระบบ เช่น ในการตั้งค่าการจัดองค์ประกอบข้อมูล เพื่ออธิบายนิพจน์ของฟิลด์ผู้ใช้

    ภาษาแบบสอบถาม

    ภาษาคิวรีอิงจาก SQL และง่ายต่อการเรียนรู้สำหรับผู้ที่มีความรู้ใน SQL คำขอตัวอย่าง:

    เป็นเรื่องง่ายที่จะเห็นความคล้ายคลึงของส่วนมาตรฐานสำหรับการสืบค้น SQL - SELECT, FROM, GROUP BY, ORDER BY

    ในเวลาเดียวกัน ภาษาคิวรีมีส่วนขยายจำนวนมากที่มุ่งสะท้อนถึงปัญหาทางการเงินและเศรษฐกิจโดยเฉพาะ และลดความพยายามที่จำเป็นในการพัฒนาโซลูชันแอปพลิเคชัน:

    • การเข้าถึงฟิลด์โดยใช้จุด หากฟิลด์ของตารางเป็นประเภทการอ้างอิง (จัดเก็บลิงก์ไปยังออบเจ็กต์ของตารางอื่น) นักพัฒนาสามารถอ้างอิงถึงฟิลด์เหล่านั้นในข้อความคำขอผ่าน "." และระบบจะไม่จำกัดจำนวนระดับการซ้อน ของลิงก์ดังกล่าว (เช่น คำสั่งซื้อของลูกค้า ข้อตกลง องค์กร โทรศัพท์)
    • การสร้างผลลัพธ์หลายมิติและหลายระดับ ผลรวมและผลรวมย่อยถูกสร้างขึ้นโดยคำนึงถึงการจัดกลุ่มและลำดับชั้น ระดับสามารถสำรวจในลำดับใดก็ได้ด้วยการสรุป และรับประกันการสร้างผลรวมที่ถูกต้องตามมิติเวลา
    • รองรับตารางเสมือน ตารางเสมือนที่ระบบจัดเตรียมไว้ช่วยให้คุณสามารถรับข้อมูลเกือบสำเร็จรูปสำหรับงานแอปพลิเคชันส่วนใหญ่โดยไม่จำเป็นต้องสร้างการสืบค้นที่ซับซ้อน ดังนั้น ตารางเสมือนจึงสามารถให้ข้อมูลเกี่ยวกับยอดคงเหลือผลิตภัณฑ์ตามงวด ณ เวลาใดเวลาหนึ่งได้ ในเวลาเดียวกัน ตารางเสมือนจะใช้ประโยชน์จากข้อมูลที่เก็บไว้ให้เกิดประโยชน์สูงสุด เช่น ผลรวมที่คำนวณไว้ก่อนหน้านี้ เป็นต้น
    • ตารางชั่วคราว. ภาษาคิวรีช่วยให้คุณใช้ตารางชั่วคราวในคิวรีได้ ด้วยความช่วยเหลือเหล่านี้ คุณสามารถปรับปรุงประสิทธิภาพการสืบค้นได้ ในบางกรณีจะลดจำนวนการบล็อกและทำให้ข้อความการสืบค้นอ่านง่ายขึ้น
    • คำขอเป็นกลุ่ม เพื่อให้การทำงานกับตารางชั่วคราวสะดวกยิ่งขึ้น ภาษาคิวรีรองรับการทำงานกับคิวรีแบบแบตช์ ดังนั้น การสร้างตารางชั่วคราวและการใช้งานจึงรวมอยู่ในคิวรีเดียว คำขอแบบแบตช์คือลำดับคำขอที่คั่นด้วยเครื่องหมายอัฒภาค (";") คำขอในชุดได้รับการดำเนินการทีละรายการ ผลลัพธ์ของการดำเนินการคำขอแบทช์ ขึ้นอยู่กับวิธีการที่ใช้ จะเป็นผลลัพธ์ที่ส่งคืนโดยคำขอสุดท้ายในชุด หรืออาร์เรย์ของผลลัพธ์จากการสืบค้นทั้งหมดในชุดตามลำดับที่การสืบค้นในชุดตามมา .
    • การดึงข้อมูลการแสดงฟิลด์อ้างอิง แต่ละตารางอ็อบเจ็กต์ (ซึ่งจัดเก็บไดเร็กทอรีหรือเอกสาร) มีฟิลด์เสมือน - "มุมมอง" ฟิลด์นี้ประกอบด้วยการแสดงข้อความของออบเจ็กต์ และทำให้งานของผู้สร้างรายงานง่ายขึ้น ดังนั้นสำหรับเอกสาร ฟิลด์นี้ประกอบด้วยข้อมูลสำคัญทั้งหมด - ชื่อของประเภทเอกสาร หมายเลข และวันที่ (เช่น "ลดราคา 000000003 ตั้งแต่ 07/06/2017 17:49:14") ซึ่งช่วยให้นักพัฒนาประหยัดจาก การเขียนเขตข้อมูลจากการคำนวณ
    • ฯลฯ
    กลไกการร้องขอจะแก้ไขคำขอโดยอัตโนมัติโดยคำนึงถึงบทบาทที่ผู้ใช้ดำเนินการตามคำขอในนามของผู้ใช้ (เช่น ผู้ใช้จะเห็นเฉพาะข้อมูลที่เขามีสิทธิ์ดู) และตัวเลือกการทำงาน (เช่น ตาม ด้วยการกำหนดค่าในฟังก์ชันการทำงานของโซลูชันแอปพลิเคชัน)

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

    ตัวอย่างเช่น:

    • เลือก. ประโยคนี้อธิบายฟิลด์ที่ผู้ใช้จะสามารถเลือกสำหรับเอาต์พุตได้ หลังจากคีย์เวิร์ดนี้ นามแฝงของฟิลด์จากรายการการเลือกแบบสอบถามหลักที่จะพร้อมใช้งานสำหรับการกำหนดค่าจะแสดงรายการ โดยคั่นด้วยเครื่องหมายจุลภาค ตัวอย่าง: (เลือกรายการ คลังสินค้า)
    • ที่ไหน. มีการอธิบายฟิลด์ที่ผู้ใช้สามารถใช้การเลือกได้ ข้อเสนอนี้ใช้ช่องตาราง ไม่อนุญาตให้ใช้นามแฝงของฟิลด์รายการตัวเลือก แต่ละส่วนของสหภาพสามารถมีองค์ประกอบ WHERE ของตัวเองได้ ตัวอย่าง: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
    • ฯลฯ
    ตัวอย่างการใช้ส่วนขยาย:

    ภาษานิพจน์องค์ประกอบข้อมูล

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

    ตัวอย่าง:

    กระบวนการสร้างรายงานเกี่ยวกับระบบควบคุมการเข้าออก

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

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

    ผลลัพธ์ของการเปิดตัวออกแบบคิวรีจะเป็นข้อความคิวรี (ในภาษาคิวรี 1C:Enterprise) ข้อความนี้สามารถปรับได้ด้วยตนเองหากจำเป็น:

    สามารถมีชุดข้อมูลได้หลายชุดในโครงร่างข้อมูล สามารถเชื่อมโยงชุดข้อมูลในโครงร่างด้วยวิธีใดก็ได้ สามารถเพิ่มฟิลด์ที่คำนวณได้ สามารถระบุพารามิเตอร์รายงานได้ ฯลฯ เป็นมูลค่าการกล่าวขวัญถึงคุณลักษณะที่น่าสนใจของกลไกการสืบค้นใน 1C:Enterprise ในที่สุดข้อความค้นหาจะถูกแปลเป็นภาษาถิ่นของ SQL เฉพาะสำหรับ DBMS ที่แอปพลิเคชันทำงานโดยตรง โดยทั่วไปเราพยายามใช้ความสามารถของเซิร์ฟเวอร์ DBMS ให้สูงสุด (เราถูกจำกัดด้วยความจริงที่ว่าเราใช้เฉพาะความสามารถเหล่านั้นที่มีอยู่พร้อมกันใน DBMS ทั้งหมดที่รองรับโดยแพลตฟอร์ม 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL) ดังนั้น ในระดับแบบสอบถามในเขตข้อมูลจากการคำนวณ เราสามารถใช้ได้เฉพาะฟังก์ชันที่แปลเป็น SQL เท่านั้น

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


    การเพิ่มฟิลด์ที่กำหนดเอง

    คุณสามารถเพิ่มตารางและแผนภูมิลงในรายงานได้ตามต้องการ:


    ผู้ออกแบบรายงาน


    รายงานรันไทม์

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

    กระบวนการสร้างและสร้างรายงานสามารถอธิบายโดยย่อได้ดังนี้:

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


    กระบวนการสร้างรายงานโดยใช้กลไก ACS

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

    การตั้งค่าแบบกำหนดเอง

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


    การตั้งค่าโหมดการแสดงผลในเวลาการออกแบบ


    แสดงการตั้งค่าในโหมดการเข้าถึงด่วนขณะรันไทม์ (ใต้ปุ่มสร้าง)

    แผนการพัฒนา

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

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

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

    มีสองวิธีในการส่งออกพารามิเตอร์ ACS เป็นรูปแบบปกติ:

    • เอาต์พุตของตารางการตั้งค่าพารามิเตอร์ทั้งหมด
    • เอาต์พุตของพารามิเตอร์แต่ละตัวในรูปแบบของฟิลด์อินพุต

    ตารางการตั้งค่าพารามิเตอร์ที่แสดงบนแบบฟอร์มจะคล้ายกับตารางการตั้งค่าพารามิเตอร์ที่สร้างโดยเครื่องมือ ACS หากต้องการแสดงบนแบบฟอร์ม คุณต้องสร้างองค์ประกอบควบคุม ตารางฟิลด์ซึ่งมีทรัพย์สิน ข้อมูลระบุ การตั้งค่า Composer.Settings.Data ตัวเลือก

    ในกรณีนี้ ผู้ใช้จะเห็นพารามิเตอร์ ACS ทั้งหมดที่ไม่มีข้อจำกัดด้านความพร้อมใช้งาน

    อย่างไรก็ตาม ในบางกรณี วิธีการนี้อาจดูไม่สวยงามนักและใช้งานไม่ค่อยสะดวกนัก มาดูวิธีแสดงพารามิเตอร์ ACS บนแบบฟอร์มแยกกันในรูปแบบของช่องป้อนข้อมูลปกติ

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

      ขั้นตอน ParametersOnChange (องค์ประกอบ)

      ParameterStartDate = SettingsLinker การตั้งค่า. พารามิเตอร์ข้อมูล องค์ประกอบ ค้นหา ("เริ่มต้นรอบระยะเวลา"); //การค้นหาดำเนินการโดยใช้ชื่อของพารามิเตอร์ ACS
      พารามิเตอร์StartDate การใช้งาน = จริง ; //พารามิเตอร์จะถูกใช้ในระหว่างการเลือก
      พารามิเตอร์StartDate ค่า = วันที่เริ่มต้น; //พารามิเตอร์ถูกกำหนดให้เป็นค่าของแอตทริบิวต์รายงาน

      ParameterDataCon = การตั้งค่าตัวเชื่อมโยง การตั้งค่า. พารามิเตอร์ข้อมูล องค์ประกอบ ค้นหา("สิ้นสุดระยะเวลา");
      พารามิเตอร์DateCon การใช้งาน = จริง ;
      พารามิเตอร์DateCon ค่า = วันสิ้นสุด(วันที่สิ้นสุด);

      ParameterOrg = การตั้งค่าตัวสร้าง การตั้งค่า. พารามิเตอร์ข้อมูล องค์ประกอบ ค้นหา("องค์กร");
      พารามิเตอร์องค์กร การใช้งาน = จริง ;
      พารามิเตอร์องค์กร ค่า = องค์กร;

      สิ้นสุดขั้นตอน

    ในตัวอย่างของเรา รายงานจะแสดงผลลัพธ์ของผลิตภัณฑ์และบริการตามแผนก กลุ่มผลิตภัณฑ์ และตามเดือน

    นี่คือหน้าหลักของรายงาน:

    หน้านี้ถูกเรียกจากตัวกำหนดค่าในเมนู ไฟล์ – ใหม่ – รายงานภายนอก

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

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

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

    บนแท็บทรัพยากร ให้เลือกทรัพยากรและกำหนดค่าการแสดงผลลัพธ์สำหรับทรัพยากรเหล่านั้น:

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

    รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:

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

    ให้ความสนใจกับคอลัมน์ Period.PartsDate.NameMonth จะแสดงชื่อเดือนในส่วนหัวของคอลัมน์ได้อย่างไร? นี่คือที่ที่มันออกมา

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

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

    จริงๆ แล้ว นั่นคือทั้งหมดที่คุณต้องการจากขั้นต่ำที่ต้องการ ด้วยเหตุนี้ เราก็จะได้รายงานที่มีลักษณะดังนี้:

    ระบบองค์ประกอบข้อมูล (DCS) เป็นกลไกอันทรงพลังของแพลตฟอร์ม 1C (8.2 ขึ้นไป) สำหรับการพัฒนารายงาน ไม่ใช่ระบบควบคุมการเข้าถึงเลย

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

    วิดีโอสอนเกี่ยวกับการสร้างรายงาน "Document Journal" ใน 1C SKD:

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

    รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:

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

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

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

    พื้นฐานของอินเทอร์เฟซที่ได้รับการจัดการ 1C - SKD

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

    จะเชี่ยวชาญและเรียนรู้วิธีจัดทำรายงานเกี่ยวกับระบบควบคุมการเข้าออกได้อย่างไร

    SKD 1C ย่อมาจาก Data Composition System SKD 1C เป็นวิธีใหม่ในการเขียนรายงานใน 1C ซึ่งช่วยให้ผู้ใช้ปรับแต่งรายงานได้ด้วยตนเอง

    ข้อเสียของ SKD 1C คือการตั้งค่าค่อนข้างซับซ้อน และไม่ใช่ผู้ใช้ทุกคนจะเรียนรู้ได้อย่างรวดเร็ว

    การเขียนรายงาน ACS ต้องใช้ความสามารถในการทำงานกับแบบสอบถามใน 1C ซึ่งเราได้กล่าวถึงแล้ว

    เทคโนโลยีสำหรับการสร้างรายงาน SKD 1C คืออะไร:

    • เขียนคำขอ 1C ไปยัง 1C SKD ซึ่งจัดเตรียมการรับข้อมูล
    • ระบุบทบาทของฟิลด์ใน SKD 1C (ฟิลด์ที่คำนวณ ทรัพยากร)
    • ป้อนการตั้งค่าเริ่มต้น 1C SKD

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

    เทคโนโลยีในการสร้างรายงานเกี่ยวกับเทคโนโลยีก่อนหน้าคืออะไร:

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

    อย่างที่คุณเห็น SKD 1C มีข้อได้เปรียบที่สำคัญสำหรับทั้งผู้ใช้และโปรแกรมเมอร์:

    • โปรแกรมเมอร์ – ไม่จำเป็นต้องเขียนโปรแกรมเพื่อรันรายงานและการตั้งค่า
    • ผู้ใช้ – เข้าถึงการตั้งค่ารายงานได้อย่างมาก

    ในการกำหนดค่า 1C ใหม่ทั้งหมด รายงานทั้งหมดจะใช้เฉพาะใน 1C SKD เท่านั้น

    มาดูวิธีสร้างรายงานเกี่ยวกับ SKD 1C ด้วยตัวเองตั้งแต่เริ่มต้น

    การสร้างรายงาน SKD 1C

    ในตัวกำหนดค่า ให้คลิกปุ่มไฟล์ใหม่ (เมนูไฟล์/ใหม่)

    เลือกประเภทไฟล์รายงานใหม่

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

    มาสร้างโครงร่างพื้นฐานของ SKD 1C กันดีกว่า

    เราสร้างคำขอสำหรับรายงาน SKD 1C

    อาจมีแหล่งข้อมูลมากมายสำหรับ SKD 1C ตัวอย่างเช่น หากต้องการใช้คำค้นหาสองคำแยกกัน ให้เพิ่ม "ชุดข้อมูล - สหภาพ" ตัวแรก จากนั้นจึงตามด้วยคำค้นหาหลายคำ

    ในตัวอย่างของเรา เราจะใช้แบบสอบถามง่ายๆ

    เรามาร่างคำขอเพื่อรับข้อมูลกัน

    การทำงานกับตัวสร้างแบบสอบถามก็ไม่แตกต่างไปจากปกติ

    จากการสร้างคำขอ SKD 1C จะสร้างรายการฟิลด์ที่พร้อมใช้งานและกรอกชื่อเริ่มต้น

    หากไม่สะดวกสามารถเปลี่ยนชื่อได้ที่นี่

    โปรดทราบว่าเราใช้พารามิเตอร์ &StartDate ในคำขอ ใน SKD 1C มีพารามิเตอร์เริ่มต้น (วันที่) ที่เรียกว่า &Period และคุณสามารถใช้งานได้

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

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

    การตั้งค่า SKD 1C

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

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

    การตั้งค่าพื้นฐานทำได้บนแท็บการตั้งค่า:


    มาเปิดในโหมดองค์กรกันดีกว่า โปรดทราบว่าเราไม่ได้ทำการเขียนโปรแกรม วาดภาพรูปร่าง ฯลฯ หากต้องการตั้งค่าพารามิเตอร์ ให้คลิกปุ่มการตั้งค่า

    ผู้ใช้เห็นการตั้งค่ารูปแบบเกือบจะเหมือนกับโปรแกรมเมอร์

    เอาล่ะ รายงานกำลังทำงาน

    การตั้งค่า SKD 1C

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

    ลองลากคลังสินค้าจากคอลัมน์ไปยังแถว

    ลองลากรายการไปที่คลังสินค้า

    คลิกตกลงและสร้างรายงาน ไชโย - เราเพิ่งเปลี่ยนวิธีการทำงานของรายงานในโหมดการเขียนโปรแกรมโดยไม่ต้องเขียนโปรแกรม

    คลิกขวาที่ Rows (หรือฟิลด์ใดๆ ก็ตาม) แล้วเลือก New Grouping

    ขยายฟิลด์คลังสินค้าและเลือกหนึ่งในฟิลด์ ตัวอย่างเช่น ประเภทคลังสินค้า

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

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

    คลิกซ้ายการจัดกลุ่มของเรา (คลังสินค้า/รายการ) แล้วลากไปยังการจัดกลุ่มใหม่ (ประเภทคลังสินค้า)

    ผลลัพธ์ของการตั้งค่าของเรา

    นอกจากการตั้งค่าแล้ว เอฟเฟกต์ที่ง่ายต่อการเดาด้วยชื่อ (การเลือก การเรียงลำดับ ฯลฯ) ยังมีแท็บ "การตั้งค่าอื่นๆ" ช่วยให้คุณสามารถเปิดหรือปิดใช้งานสิ่งต่างๆ เช่น การแสดงผลรวม การจัดกลุ่มในคอลัมน์ ฯลฯ

    โปรดทราบว่าสามารถตั้งค่าการตั้งค่าสำหรับทั้งรายงาน (รายงานที่เลือก) หรือสำหรับแถวของฟิลด์ที่ระบุ (เลือกแถว เช่น ระบบการตั้งชื่อ และเลือก การตั้งค่า: ไม่มีระบบการตั้งชื่อ)