พิมพ์ชื่อประเภท 1s การใช้ประเภทที่กำหนด
ประเภทระบบเป็นระบบพิเศษที่ใช้จัดระเบียบข้อมูลที่ใช้โดยโซลูชันแอปพลิเคชัน ระบบประเภทช่วยให้คุณนำเสนอข้อมูลในโลกแห่งความเป็นจริงในรูปแบบที่ "เข้าใจได้" สำหรับ 1C:Enterprise 8
ระบบประเภทให้โอกาสมากมายสำหรับการอธิบายตรรกะทางธุรกิจของโซลูชันแอปพลิเคชันโดยตรง และสำหรับการดำเนินงานการประมวลผลข้อมูลระดับกลาง
คำอธิบายของระบบประเภทมีอยู่ในตัวช่วยไวยากรณ์ ในวิธีใช้ในตัว และในเอกสารคู่มือ
คุณลักษณะหลักของระบบประเภทคือมีประเภทที่มีอยู่ในโซลูชันแอปพลิเคชันใดๆ ประเภทเหล่านี้ถูกกำหนดไว้ที่ระดับแพลตฟอร์มและปรากฏอยู่เสมอ ไม่ว่านักพัฒนาจะดำเนินการอย่างไร ในโซลูชันแอปพลิเคชันเฉพาะ อาจมีข้อมูลประเภทต่างๆ ที่มีอยู่ในโซลูชันแอปพลิเคชันนี้โดยเฉพาะ สำหรับข้อมูลประเภทดังกล่าว จะมีการกำหนดกฎทั่วไปสำหรับการสร้างและเทมเพลตในระดับแพลตฟอร์มเท่านั้น และข้อมูลประเภทเฉพาะจะถูกสร้างขึ้นโดยแพลตฟอร์มโดยอิงจากวิธีที่นักพัฒนาสร้างและแก้ไขโครงสร้างของโซลูชันแอปพลิเคชัน
ประเภทข้อมูลที่กำหนดในระดับแพลตฟอร์ม
ชุดประเภทที่โซลูชันแอปพลิเคชันสามารถทำงานได้นั้นค่อนข้างหลากหลาย ช่วยให้คุณสามารถแก้ปัญหาทั้งการประมวลผลข้อมูลและงานในการนำเสนอข้อมูลนี้แก่ผู้ใช้และทำงานร่วมกับข้อมูลแบบโต้ตอบได้ ประเภทข้อมูลมีหลายประเภทหลักๆ
ประเภทดั้งเดิม
ชนิดข้อมูลเบื้องต้นได้แก่ เส้น, ตัวเลข, วันที่, บูลีนและคนอื่น ๆ. ประเภทเหล่านี้ไม่ใช่สิ่งพิเศษสำหรับ 1C:Enterprise 8 ตามกฎแล้ว ประเภทข้อมูลดังกล่าวมีอยู่ในระบบซอฟต์แวร์อื่น
ค่าของประเภทดั้งเดิมเป็นค่าที่แบ่งแยกไม่ได้อย่างง่ายซึ่งไม่สามารถแยกแยะแต่ละองค์ประกอบได้ ยกตัวอย่างค่านิยมเช่น ตัวเลขสามารถเป็น 1, 8, 15 เป็นต้น หากต้องการสร้างค่าประเภทดั้งเดิมคุณต้องระบุค่าดังกล่าวในข้อความโปรแกรม ตัวอักษร- ตัวระบุเชิงสัญลักษณ์ของค่า
คอลเลกชันมูลค่าทั่วไป
นอกจากนี้ยังมีประเภทข้อมูลที่ซับซ้อนมากขึ้นอีกด้วย ตัวอย่างเช่น แพลตฟอร์มรองรับหลายประเภท ซึ่งเป็นคอลเลกชันค่าทั่วไป: อาร์เรย์, โครงสร้าง, รายการค่าและคนอื่น ๆ.
ประเภททั่วไป
นอกจากนี้ แพลตฟอร์มยังใช้ประเภทข้อมูลเฉพาะที่ใช้ฟังก์ชันการทำงานอย่างใดอย่างหนึ่งของโซลูชันแอปพลิเคชัน: เอกสารข้อความ, เอกสารแบบตาราง, ค่าการจัดเก็บข้อมูล, ตัวสร้างแบบสอบถามและคนอื่น ๆ.
ประเภททั่วไปก็เรียกว่า วัตถุทั่วไป- ค่าของประเภทเหล่านี้ไม่เหมือนกับค่าของประเภทดั้งเดิมคือชุดของค่าของคุณสมบัติแต่ละรายการของวัตถุ นั่นเป็นเหตุผลที่พวกเขาถูกเรียก ตัวอย่างของวัตถุ.
อินสแตนซ์ของวัตถุถูกสร้างขึ้นโดยใช้ตัวดำเนินการภาษาพิเศษในตัว - ใหม่.
ประเภทอินเทอร์เฟซ
ประเภทอินเทอร์เฟซช่วยให้คุณสามารถจัดระเบียบการโต้ตอบด้วยภาพของโซลูชันแอปพลิเคชันกับผู้ใช้ได้ ส่วนใหญ่เป็นประเภทที่เกี่ยวข้องกับการทำงานของแบบฟอร์มและองค์ประกอบต่างๆ
ประเภทของข้อมูลที่สร้างขึ้นในโซลูชันแอปพลิเคชัน
อย่างไรก็ตาม นอกเหนือจากประเภทข้อมูลที่กำหนดไว้ในระดับแพลตฟอร์มแล้ว โซลูชันแอปพลิเคชันเฉพาะอาจใช้ประเภทข้อมูลเฉพาะที่มีอยู่ในโซลูชันแอปพลิเคชันเฉพาะนั้นเท่านั้น นอกจากนี้ แพลตฟอร์มจะสนับสนุนการทำงานกับประเภทข้อมูลเหล่านี้อย่างเต็มที่ในลักษณะเดียวกับประเภทที่กำหนดไว้ที่ระดับของแพลตฟอร์มเอง
ตามกฎแล้ว การเกิดขึ้นของชนิดข้อมูลใหม่ในโซลูชันแอปพลิเคชันเกี่ยวข้องกับการใช้ออบเจ็กต์การกำหนดค่าแอปพลิเคชัน ดังนั้นจึงเรียกประเภทนี้ว่า ประเภทแอปพลิเคชันหรือ วัตถุที่ใช้.
ในระดับแพลตฟอร์ม รองรับคลาส (เทมเพลต) ของออบเจ็กต์แอปพลิเคชันหลายคลาส ซึ่งไม่สามารถใช้ในโซลูชันแอปพลิเคชันเฉพาะได้ ตัวอย่างเช่น คุณสามารถแสดงรายการคลาสอ็อบเจ็กต์ของแอปพลิเคชันได้ เช่น ไดเรกทอรี, เอกสารประกอบ, การลงทะเบียนข้อมูล, แผนประเภทลักษณะเฉพาะฯลฯ
สำหรับออบเจ็กต์แอปพลิเคชันแต่ละคลาสจะมีการกำหนดฟังก์ชันพื้นฐานที่สอดคล้องกัน: ประเภทของตารางฐานข้อมูลที่ต้องสร้างขึ้นเพื่อจัดเก็บข้อมูล แบบฟอร์มมาตรฐาน วัตถุภาษามาตรฐาน ชุดของสิทธิ์ ฯลฯ
เมื่อสร้างโซลูชันแอปพลิเคชัน นักพัฒนาจะไม่มีโอกาสใช้คลาสเหล่านี้โดยตรง แต่สามารถเพิ่มออบเจ็กต์การกำหนดค่าใหม่ที่สืบทอดฟังก์ชันการทำงานทั้งหมดของคลาสเฉพาะลงในโซลูชันแอปพลิเคชันของเขา:
ตัวอย่างเช่น นักพัฒนาสามารถเพิ่มหนังสืออ้างอิงใหม่ให้กับโซลูชันแอปพลิเคชันของเขาได้ ศัพท์ ไดเรกทอรีหรือเอกสารใหม่ รายงานเงินสดซึ่งจะสืบทอดการทำงานของคลาส เอกสารประกอบ.
ทันทีหลังจากการเพิ่มดังกล่าว ชนิดข้อมูลใหม่จะพร้อมใช้งานสำหรับนักพัฒนา ซึ่งองค์ประกอบจะถูกกำหนดโดยออบเจ็กต์การกำหนดค่าที่อยู่ในคลาสของออบเจ็กต์แอปพลิเคชันเฉพาะ
เช่น หลังจากสร้างไดเร็กทอรีใหม่แล้ว ศัพท์ประเภทข้อมูลต่อไปนี้จะพร้อมใช้งาน:
- DirectoryManager.ระบบการตั้งชื่อ,
- DirectoryLink.ระบบการตั้งชื่อ,
- DirectoryObject.ระบบการตั้งชื่อ,
- DirectorySelection.ระบบการตั้งชื่อ,
- DirectoryList.ระบบการตั้งชื่อ.
ระบบประเภทอธิบายเฉพาะ "โครงสร้าง" ทั่วไปของประเภทนี้ ซึ่งเป็นกฎเกณฑ์ที่วัตถุประเภทนี้จะถูกสร้างขึ้น ชื่อเฉพาะของประเภท องค์ประกอบของคุณสมบัติและวิธีการของออบเจ็กต์จะขึ้นอยู่กับวิธีที่นักพัฒนาตั้งชื่อออบเจ็กต์การกำหนดค่าและอะไร เช่น รายละเอียดและส่วนของตารางที่เขาจะเพิ่มเข้าไป
ขณะเดียวกันหลังจากสร้างทะเบียนสะสมใหม่แล้ว บริษัทขายองค์ประกอบของประเภทข้อมูลใหม่จะแตกต่างออกไป:
- ทะเบียนสะสมบริษัท Sales Manager,
- ลงทะเบียนAccumulationSelection.SalesCompany,
- ลงทะเบียนAccumulationList.SalesCompany,
- ลงทะเบียนAccumulationSetRecords.SalesCompany
- บันทึกการลงทะเบียนสะสมยอดขายของบริษัท
- คีย์บันทึกการลงทะเบียนสะสมยอดขายของบริษัท
ควรสังเกตอีกครั้งว่าประเภทข้อมูลเหล่านี้ไม่ได้รับการสนับสนุนโดยแพลตฟอร์มและมีอยู่ในโซลูชันแอปพลิเคชันเฉพาะเท่านั้น
อีกประเด็นที่ควรเน้นคือง่ายที่สุดในการสาธิตพร้อมยกตัวอย่าง
สมมติว่ามีการสร้างไดเร็กทอรีใหม่สองไดเร็กทอรีในโซลูชันแอปพลิเคชัน: ศัพท์และ ราคา- แม้ว่าวัตถุทั้งสองนี้จะสืบทอดการทำงานของคลาสที่เกี่ยวข้องก็ตาม ไดเรกทอรีและสำหรับพวกเขาในโซลูชันแอปพลิเคชัน มีการสร้างองค์ประกอบของประเภทข้อมูลเดียวกัน ประเภทข้อมูล "เดียวกัน" จะเป็นประเภทข้อมูลที่แตกต่างกัน ตัวอย่างเช่น, DirectoryObject.Nomenclature ชนิดข้อมูล
เข้าสู่เว็บไซต์ในฐานะนักเรียน
เข้าสู่ระบบในฐานะนักเรียนเพื่อเข้าถึงสื่อการสอนของโรงเรียน
ภาษาการเขียนโปรแกรมภายใน 1C 8.3 สำหรับโปรแกรมเมอร์เริ่มต้น: ประเภทข้อมูลใน 1C
ตอนนี้เรารู้วิธีบังคับให้คอมพิวเตอร์ดำเนินการคำสั่งของเรา (โดยใช้คำสั่ง "รายงาน" เป็นตัวอย่าง) และวิธีส่งพารามิเตอร์บางอย่างไปยังคำสั่ง (ข้อความของข้อความที่ตามหลังในวงเล็บหลัง "รายงาน") นอกจากนี้เรายังตระหนักว่าคำสั่งทั้งหมดถูกคั่นด้วยเครื่องหมายอัฒภาค
ประเภทข้อมูล
งานการเขียนโปรแกรมหลักอย่างหนึ่งคือการประมวลผลข้อมูล ดังนั้นเรามาดูกันว่าประเภทข้อมูลหลักคืออะไรในภาษา 1C:
- เส้น- ตัวอย่างที่ดีของข้อมูลดังกล่าวคือข้อความจากบทกวี “พายุปกคลุมท้องฟ้าด้วยความมืด”- โปรดทราบว่าข้อมูลประเภท String จะถูกล้อมรอบอยู่เสมอ เครื่องหมายคำพูดคู่.
- ตัวเลข- เราทุกคนคุ้นเคยกับประเภทข้อมูล เรามักจะจัดการกับมันในชีวิตจริง: ที่ทำงานในวันจ่ายเงินเดือน และในร้านค้า ตัวเลขอย่างที่คุณทราบแน่นอนว่าสามารถเป็นได้ ทั้งหมดและ เศษส่วน- ตัวอย่างของจำนวนเต็ม: 1000000 และเศษส่วน: 3.14 ส่วนที่เป็นเศษส่วนจะถูกแยกออกจากส่วนทั้งหมด จุด- ตัวเลขก็มีเครื่องหมายเช่นกัน: บวกหรือ ลบ.
- วันที่- วันเกิดของคุณเป็นตัวอย่างของข้อมูลประเภทนี้ ประกอบด้วยปีเดือนและวัน ตัวอย่างเช่น การบินอวกาศโดยมีมนุษย์บินครั้งแรกเกิดขึ้นเมื่อวันที่ 12 เมษายน พ.ศ. 2504 ในภาษาคอมพิวเตอร์ ข้อมูลนี้จะมีลักษณะดังนี้: " 19610412 " ลองคิดดูว่าทำไมถึงเป็นเช่นนั้น วันที่อยู่เสมอ คำพูดเดียว ().
ภารกิจที่ 6เขียนคำตอบของคำถามต่อไปนี้ในรูปแบบคอมพิวเตอร์ (โดยใช้ประเภทข้อมูลที่เหมาะสม)
- ดาวเทียมประดิษฐ์ดวงแรกเปิดตัวเมื่อใด
- นักบินอวกาศคนแรกชื่ออะไร?
- มีดาวเคราะห์กี่ดวงในระบบสุริยะ?
ตรวจสอบตัวเอง
จากผลลัพธ์ของภารกิจที่ 7 สามารถสรุปข้อสรุปที่น่าสนใจได้: ไม่เพียงแต่สตริงเท่านั้น แต่ยังสามารถส่งผ่านข้อมูลประเภทอื่น ๆ เป็นพารามิเตอร์ไปยังคำสั่งรายงานได้
การประมวลผลข้อมูล
ในที่สุดก็มาประมวลผลข้อมูลนี้กัน! เราดำเนินการใดกับข้อมูลได้บ้าง ขึ้นอยู่กับประเภทของพวกเขา
ตัวอย่างเช่น เราสามารถเชื่อมต่อสตริงเข้าด้วยกันโดยใช้เครื่องหมายบวก:
สำหรับนิพจน์ทางคณิตศาสตร์ที่ซับซ้อนมากขึ้น ให้ใช้วงเล็บ:
ภารกิจที่ 8เรียกใช้ตัวอย่างต่อไปนี้บนคอมพิวเตอร์ของคุณ
บทความนี้ยังคงกล่าวถึงชุดบทความ "ขั้นตอนแรกในการพัฒนา 1C" โดยจะพูดถึงประเภทข้อมูลดั้งเดิมและฟังก์ชันที่พบบ่อยที่สุดเมื่อทำงานกับข้อมูลเหล่านั้น หลังจากอ่านเนื้อหาแล้ว คุณจะได้เรียนรู้:
- ข้อมูลประเภทใดที่เป็นข้อมูลพื้นฐาน?
- คุณจะทำงานกับสตริงได้อย่างไรและควรคำนึงถึงฟีเจอร์ใดบ้าง
- รายละเอียดปลีกย่อยของการทำงานกับนิพจน์ตัวเลขคืออะไร?
- จะอธิบายวันที่ด้วยค่าเฉพาะได้อย่างไร? จะกำหนดวันที่ว่างเปล่าได้อย่างไร?
- การแปลงประเภททำงานอย่างไร
- Null และ Undefault - คืออะไรและมีความแตกต่างกันอย่างไร?
- จะทราบได้อย่างไรว่าวัตถุ/ตัวแปรเป็นประเภทใด
การบังคับใช้
บทความนี้เขียนขึ้นสำหรับแพลตฟอร์ม 1C เวอร์ชัน 8.3.4.496 ดังนั้นข้อมูลจึงเกี่ยวข้องกับแพลตฟอร์มเวอร์ชันปัจจุบันด้วย อย่างไรก็ตาม ควรสังเกตว่าในเวอร์ชัน 8.3.6.1977 มีการเพิ่มฟังก์ชันใหม่สำหรับการทำงานกับสตริง ดังนั้นเมื่อคุณทำซ้ำขั้นตอนจากบทความอย่าแปลกใจหากในส่วนที่เกี่ยวข้องของ Syntax Assistant คุณเห็นฟังก์ชันบางอย่างที่ไม่แสดงในภาพหน้าจอของเรา เราขอแนะนำให้คุณทำความคุ้นเคยกับเมธอด StringWithNumber() ใหม่ที่เพิ่มในแพลตฟอร์ม 8.3.10
ชนิดข้อมูลดั้งเดิมและฟังก์ชันบางอย่าง
ประเภทข้อมูลดั้งเดิมต่อไปนี้มีความโดดเด่น:
ค่าคงที่สตริง
ชนิดข้อมูลดั้งเดิม เส้น(ค่าคงที่สตริง) ประกอบด้วยอักขระต่างๆ เส้นจะถูกล้อมรอบด้วยเครื่องหมายคำพูดเสมอ ตัวอย่างของค่าคงที่สตริง:
Message.Text = “มีข้อมูลว่าง”;
เหล่านั้น. บรรทัด "มีข้อมูลว่าง" ถูกกำหนดให้กับแอตทริบิวต์ ข้อความวัตถุ ข้อความ- สิ่งใดก็ตามที่ล้อมรอบด้วยเครื่องหมายคำพูดจะถือเป็นสตริง
สตริงสามารถประกอบด้วยอักขระใดก็ได้ สตริงสามารถเป็นแบบหลายบรรทัดได้ ในกรณีนี้ จะต้องกำหนดบรรทัดใหม่แต่ละบรรทัดในเครื่องหมายคำพูด ตัวอย่างเช่น:
ข้อความ = “กรอกรายละเอียดไม่ถูกต้อง”
“ เป็นไปไม่ได้ที่จะโพสต์เอกสาร”;
อัฒภาคจะวางไว้ที่ท้ายบรรทัดสุดท้ายเท่านั้น
มีวิธีอื่นคือ - ในการวางกรอบข้อความทั้งหมดด้วยเครื่องหมายคำพูดเพียงอันเดียว แต่แต่ละบรรทัดใหม่จะต้องเริ่มต้นด้วยแถบแนวตั้ง
ไวยากรณ์นี้มักใช้ในการกำหนดค่าทั่วไป โดยเฉพาะในภาษาคิวรี ตัวอย่างเช่น:
คำขอข้อความ =
"เลือก
- พนักงาน.ชื่อ AS พนักงาน,
- พนักงานวันเดือนปีเกิด AS วันเดือนปีเกิด
|จาก
- Directory.พนักงาน วิธีการ พนักงาน
|ที่ไหน
- ไม่ใช่พนักงาน นี่คือกลุ่ม”;
ควรสังเกตว่าการดำเนินการเพิ่มเติมถูกกำหนดไว้สำหรับสตริง นี่ไม่ใช่การดำเนินการทางคณิตศาสตร์ แต่เรียกว่าการดำเนินการต่อข้อมูล
เหล่านั้น. คุณต้องรวมสองบรรทัดเข้าด้วยกันโดยมีเครื่องหมายบวก "+" ระหว่างบรรทัด:
ข้อความ = “กรอกรายละเอียดไม่ถูกต้อง” + “ไม่สามารถโพสต์เอกสารได้”;
จึงมีการรวมเส้นเข้าด้วยกัน แน่นอนว่าการดำเนินการต่อข้อมูลสามารถนำไปใช้กับสตริงที่มากขึ้นได้ การดำเนินการอื่นๆ (การลบ การคูณ การหาร) จะไม่ได้รับอนุญาตสำหรับสตริง
หากคำภายในสตริงจำเป็นต้องใส่เครื่องหมายคำพูด จะต้องกำหนดเครื่องหมายคำพูดภายในสตริงด้วยเครื่องหมายคำพูดคู่ ตัวอย่างเช่น:
ข้อความ = “ข้อผิดพลาดในโมดูล “โมดูลทั่วไป1””;
ในตัวอย่างนี้ เครื่องหมายคำพูดแรกเริ่มต้นสตริง เครื่องหมายคำพูดที่สองและสามที่อยู่ติดกันหมายถึงเครื่องหมายคำพูด
และที่ส่วนท้ายจะมีเครื่องหมายคำพูดสามอัน: เครื่องหมายคำพูดสุดท้ายปิดบรรทัด เครื่องหมายคำพูดสองอันก่อนหน้าระบุเครื่องหมายคำพูด
การดำเนินการแปลงสตริงต่างๆ สามารถทำได้บนสตริง ระบุอักขระที่เหลือสองสามตัวแรก ระบุอักขระขวาสุดหลายตัว ค้นหาสตริงย่อยภายในสตริง ฯลฯ
ฟังก์ชันทั้งหมดนี้ใช้ได้ทุกที่ในการกำหนดค่า
ในตัวช่วยไวยากรณ์จะอยู่ในส่วนนี้ คำอธิบายทั่วไปของภาษาบิวท์อิน – ฟังก์ชั่นในตัว – ฟังก์ชั่นสำหรับการทำงานกับค่าประเภท String.
มีฟังก์ชันค่อนข้างมาก และมักจะเพียงพอที่จะทำงานกับค่าคงที่สตริง
ลองดูตัวอย่างการแก้ปัญหาโดยใช้ฟังก์ชันสตริง
งาน:
จำเป็นต้องพัฒนาฟังก์ชั่น สตริงที่กำหนดเองจะถูกส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชัน อักขระในบรรทัดอาจเป็นตัวเลขได้เช่นกัน
ลำดับของตัวเลข (ตั้งแต่หนึ่งตัวขึ้นไป) แยกจากอักขระอื่นด้วยช่องว่าง ถือเป็นจำนวนเต็มบวก
ตัวอย่างเช่น สตริง “72 ABC 6AP 31 54f -22” มีจำนวนเต็มบวกสองตัว: 72 และ 31 นอกเหนือจากช่องว่างแล้ว อักขระที่ไม่มีนัยสำคัญอื่นๆ (เช่น แท็บ การขึ้นบรรทัดใหม่) จะไม่ถูกนำมาใช้ ฟังก์ชันจะต้องส่งคืนจำนวนเต็มบวก
จะต้องอยู่ในโมดูลแอปพลิเคชันที่ได้รับการจัดการ จำเป็นต้องตรวจสอบให้แน่ใจว่ามีการเรียกใช้เมื่อเริ่มต้นระบบ กำหนดสตริงโดยใช้ตัวแปร
ดังนั้น เรามาเปิดโมดูลแอปพลิเคชันที่ได้รับการจัดการและเลือกจากรายการในช่องการเลือกในแผงตัวกำหนดค่า โมดูลตัวจัดการมาตรฐาน ที่ SystemStart().
ภายในตัวจัดการเรากำหนดตัวแปร เส้น, ตัวอย่างเช่น:
แถว = “72 ABC 6AP 31 54f -22”;
ปริมาณ = จำนวนจำนวนเต็ม (สตริง);
ส่งข้อความเกี่ยวกับจำนวนเต็ม:
รายงาน("บรรทัดประกอบด้วย " + Number + " integers");
ในกรณีนี้คือตัวแปร ปริมาณจะถูกแปลงเป็นประเภทโดยปริยาย ค่าคงที่สตริง- จากนั้นการดำเนินการต่อข้อมูลจะดำเนินการกับสายทั้งสามและข้อความจะถูกส่ง
เรามากำหนดจุดเริ่มต้นและจุดสิ้นสุด (เช่น เทมเพลต) ของฟังก์ชันกันดีกว่า จำนวนเต็ม(สตริง).
ตอนนี้เรามาดูตัวเลือกที่เป็นไปได้สำหรับการพัฒนาฟังก์ชันกัน จำนวนเต็ม(สตริง)- ในเวลาเดียวกัน เราจะทำความคุ้นเคยกับฟังก์ชันในตัวที่ออกแบบมาเพื่อทำงานกับสตริง
ก่อนอื่นคุณควรทำความคุ้นเคยกับฟังก์ชันนี้ก่อน รหัสสัญลักษณ์- ฟังก์ชันนี้รับโค้ดของอักขระที่อยู่ในสตริงที่ส่งผ่านในตำแหน่งที่มีหมายเลขที่ระบุ
ไวยากรณ์:
รหัสอักขระ(,)
ตัวเลือก:
(ที่จำเป็น)
(ไม่บังคับ) – นี่คือจำนวนอักขระในบรรทัดที่คุณต้องการรับโค้ด การนับจำนวนอักขระในบรรทัดเริ่มต้นจาก 1
ค่าส่งคืน:
รหัสของตัวละครที่ส่ง รหัสจะถูกส่งกลับตามการเข้ารหัส Unicode
โปรดทราบว่าพารามิเตอร์ มีค่าเริ่มต้นเป็น 1
สตริงยังสามารถประกอบด้วยอักขระหนึ่งตัวได้ ดังนั้นจึงเป็นไปได้ที่จะกำหนดรหัส 0 และรหัส 9 และรหัสของตัวเลขอื่น ๆ ทั้งหมดจะอยู่ในช่วงเวลาระหว่างพวกเขา
มากำหนดตัวแปรที่เกี่ยวข้องและค่าของมันกัน:
Code0 = รหัสอักขระ (“0”);
Code9 = รหัสอักขระ (“9”);
เพื่อแก้ไขปัญหาเราเลือกโครงร่างต่อไปนี้:
- หากบรรทัดมีช่องว่างนำหน้าหรือต่อท้ายในปริมาณเท่าใด เราจะกำจัดมันออกด้วยฟังก์ชันพิเศษ ต่อไปเราจะสนใจกลุ่มอักขระระหว่างช่องว่างภายใน ถ้ากลุ่มประกอบด้วยตัวเลขเท่านั้น ก็จะเป็นจำนวนเต็ม มีฟังก์ชั่นพิเศษที่สามารถใช้เพื่อกำหนดตำแหน่งของช่องว่างแรกได้
- เมื่อคุณได้ตำแหน่งของช่องว่างแรกแล้ว คุณสามารถใช้ฟังก์ชันอื่นเพื่อจัดกลุ่มอักขระ (สตริงย่อย) ทางด้านซ้ายของช่องว่างได้
- มาวิเคราะห์อักขระที่ประกอบกันเป็นกลุ่มแล้วพิจารณาว่าเป็นจำนวนเต็มหรือไม่ จำนวนเต็มที่ระบุจะถูกรวมไว้ในตัวแปรพิเศษ
- มาย่อบรรทัดเริ่มต้นให้สั้นลงโดยเลือกอักขระทั้งหมดทางด้านขวาของช่องว่างโดยใช้ฟังก์ชันอื่น พื้นที่นี้อาจไม่ใช่แค่ช่องว่างเดียว แต่เป็นช่องว่างทั้งชุดในแถว ดังนั้นในบรรทัดที่เหลือ ให้ใช้ฟังก์ชันพิเศษเพื่อกำจัดช่องว่างด้านซ้ายสุดทั้งหมด (ในแถว) แล้วกลับไปที่จุดที่ 2 เราจะทำซ้ำ ขั้นจากจุดที่ 2 ถึงจุดที่ 4 จนกระทั่งถึงเงื่อนไขว่าไม่มีที่ว่างในบรรทัด ในกรณีนี้ สตริงที่สั้นลงจะถือเป็นกลุ่มอักขระสุดท้ายที่แยกวิเคราะห์
ทีนี้มาดูฟังก์ชันที่เราต้องใช้ในการแก้ปัญหากัน
ชื่อย่อLP
ไวยากรณ์: AbbrLP()
ตัวเลือก:
(ที่จำเป็น).
ตัดช่องว่าง (อักขระที่ไม่มีนัยสำคัญ) ทางด้านซ้ายของอักขระสำคัญตัวแรกในสตริงและทางด้านขวาของอักขระสำคัญตัวสุดท้ายในสตริง
หา
ไวยากรณ์: ค้นหา(,)
ตัวเลือก:
(ที่จำเป็น),
(ที่จำเป็น).
ส่งกลับตำแหน่งของอักขระตัวแรกของสตริงย่อยที่พบ
การกำหนดหมายเลขอักขระในสตริงเริ่มต้นจาก 1 หากสตริงไม่มีสตริงย่อยที่ระบุ 0 จะถูกส่งกลับ ในกรณีของเรา เราจะใช้ช่องว่าง (“ ”) เป็นสตริงย่อย
สิงโต
ไวยากรณ์: Lev(,)
ตัวเลือก:
(ที่จำเป็น),
(ที่จำเป็น).
เลือกอักขระตัวแรกทางซ้ายของสตริง การใช้ฟังก์ชันนี้เราจะกำหนดกลุ่มอักขระเพื่อการวิเคราะห์ (จากซ้ายไปช่องว่างแรก)
StrLength
ไวยากรณ์: StrLength()
ตัวเลือก:
(ที่จำเป็น).
รับจำนวนอักขระในสตริง เราจะใช้มันเพื่อกำหนดความยาวของสตริง
การทำงาน รหัสสัญลักษณ์ซึ่งเราจะใช้ในการระบุกลุ่มของอักขระที่เป็นจำนวนเต็มได้อธิบายไว้ก่อนหน้านี้
ขวา
ไวยากรณ์: ขวา(,)
ตัวเลือก:
(ที่จำเป็น),
(ที่จำเป็น).
เลือกอักขระขวาสุดในสตริง เมื่อใช้ฟังก์ชันนี้ เราจะเลือกส่วนที่ยังไม่ได้ประมวลผลของสตริง
อักษรย่อL
ไวยากรณ์: คำย่อ ()
ตัวเลือก:
(ที่จำเป็น).
ตัดช่องว่าง (อักขระที่ไม่มีนัยสำคัญ) ทางด้านซ้ายของอักขระสำคัญตัวแรกในสตริง เราใช้ฟังก์ชันนี้เพื่อลบช่องว่างที่เป็นไปได้ทางด้านซ้ายของส่วนที่เหลือของสตริง
ด้านล่างนี้เป็นอัลกอริธึมที่เป็นไปได้สำหรับฟังก์ชันที่มีความคิดเห็น
นิพจน์ตัวเลข
ตัวแปรของโมดูลและรายละเอียดของออบเจ็กต์ฐานข้อมูลสามารถเป็นตัวเลขได้
มีการจำกัดจำนวนสำหรับตัวเลข สำหรับรายละเอียดที่เป็นตัวเลข ความยาวของส่วนจำนวนเต็มต้องไม่เกิน 32 อักขระ
ความแม่นยำของเศษส่วนต้องไม่เกิน 10 หลัก เมื่อมีการอธิบายตัวแปรและกำหนดค่าตัวเลขให้กับตัวแปรนั้น ความลึกบิตของตัวแปรจะไม่ถูกบันทึกไว้ที่ใดเลย อย่างไรก็ตาม ยังมีข้อจำกัดสำหรับตัวแปรด้วย
ตัวช่วยไวยากรณ์บอกว่าความลึกบิตสูงสุดที่อนุญาตสำหรับตัวเลขคือ 38 อักขระ ข้อจำกัดดังกล่าวไม่ได้ขัดขวางการแก้ปัญหาเศรษฐกิจใดๆ เช่น มูลค่าทางการเงินใดๆ สามารถอธิบายได้โดยใช้ตัวเลขเหล่านี้
อย่างไรก็ตาม หากคุณยังจำเป็นต้องอธิบายจำนวนมากเพื่อแก้ปัญหาทางคณิตศาสตร์ ในทฤษฎีการเขียนโปรแกรมก็มีอัลกอริธึมที่ให้คุณอธิบายตัวเลขในมิติใดก็ได้ตามข้อจำกัดที่มีอยู่
การดำเนินการที่ใช้กับตัวเลข:
- การดำเนินการทางคณิตศาสตร์สามัญ (-, +, *, /) การคูณและการหารมีลำดับความสำคัญมากกว่าการบวกและการลบ วงเล็บมีลำดับความสำคัญสูงสุด นอกจากนี้ยังมีตัวดำเนินการเอกภาค + และ - ซึ่งอยู่หลังวงเล็บทันที
- การดำเนินการ "ส่วนที่เหลือของการแบ่ง" (%) ตัวอย่างเช่น 12%5=2;
- ฟังก์ชันทางคณิตศาสตร์ที่สามารถใช้กับตัวเลขได้ (ฟังก์ชันตรีโกณมิติ การยกกำลัง รากที่สอง การปัดเศษตามค่าตำแหน่งที่ระบุ การเลือกส่วนจำนวนเต็มของตัวเลข)
หากเราพูดถึงความถูกต้องของค่าตัวเลขในส่วนของรายละเอียดฐานข้อมูล ก็ย่อมมีข้อจำกัดตามธรรมชาติ
แต่เท่าที่เกี่ยวกับตัวแปรก็มีลักษณะเฉพาะที่นี่ ในความเป็นจริงคุณสามารถดำเนินการกับตัวแปรจำนวนมากได้ แต่ค่าที่มีความยาวส่วนจำนวนเต็มไม่เกิน 32 อักขระจะถูกเก็บไว้ในฐานข้อมูล
ค่าบูลีน
สำหรับชนิดข้อมูล Boolean มีเพียงสองค่าเท่านั้น คือ True และ False ซึ่งสามารถรับได้หลายวิธี
ตัวอย่างเช่น คุณสามารถใช้การดำเนินการเปรียบเทียบระหว่างตัวเลขหรือวันที่ได้ เป็นผลให้ได้รับค่าบูลีนที่แน่นอนซึ่งในอนาคตมักใช้ในคำสั่งแบบมีเงื่อนไขและตัวดำเนินการลูป
ตัวอักษรประเภทวันที่
มีสองวิธีในการอธิบายวันที่ หนึ่งในนั้นคือการใช้ตัวอักษร ตัวอักษรเขียนด้วยเครื่องหมายคำพูดเดี่ยว
ให้เขียนปีก่อน จากนั้นจึงเขียนเดือนและตามด้วยวัน
หากจำเป็นคุณสามารถระบุเวลาได้เช่นกันเพราะว่า ในระบบ 1C:Enterprise 8 วันที่ใดก็ได้มีทั้งวันที่และเวลา ตัวอย่างเช่น:
วันที่เอกสาร = '20140315121020';
หากไม่ระบุเวลา ระบบจะใช้ค่าเริ่มต้นเป็นศูนย์ คุณสามารถใช้ตัวคั่นใดก็ได้ในคำอธิบายวันที่ ตัวอย่างเช่น:
วันที่เอกสาร = '2014.03.15';
วิธีที่สองในการกำหนดวันที่คือการใช้ฟังก์ชันบริบทส่วนกลาง วันที่()- ในกรณีนี้ เราจะส่งสิ่งเดียวกันกับพารามิเตอร์ไปยังฟังก์ชันนี้: ปี, เดือน, วันที่คั่นด้วยเครื่องหมายจุลภาค
คุณยังสามารถระบุเวลาได้ หากคุณไม่ระบุ ระบบจะใช้ค่าเริ่มต้นเป็นจุดเริ่มต้นของวัน
ในระบบ 1C:Enterprise 8 วันที่ว่างเปล่าคือจุดเริ่มต้นของปฏิทิน ตัวเลือกการบันทึก:
วันที่ว่าง = '00010101';
EmptyDate = วันที่ (1,1,1);
ทั้งสองรายการจะส่งกลับผลลัพธ์เดียวกัน และวันที่นี้จะถือว่าว่างเปล่า
ความสะดวกสบายของฟังก์ชั่น วันที่()ประเด็นก็คือเราสามารถส่งผ่านเข้าไปได้ ไม่ใช่ค่าเฉพาะเจาะจง แต่เป็นตัวแปรบางตัว นั่นคือบางครั้งเราสร้างวันที่โดยการรวบรวมตัวแปรต่างๆ
การดำเนินการเพิ่มเติมมีผลกับวันที่ การดำเนินการเพิ่มเติมจะเพิ่มจำนวนวินาทีที่ระบุให้กับวันที่
การแปลงชนิดข้อมูลดั้งเดิม
ในคำสั่งการกำหนดที่มีการบวกตัวแปรหลายตัว (เช่น ตัวแปร = A + B + C) จึงสามารถแปลงประเภทข้อมูลดั้งเดิมได้ การแปลงชนิดข้อมูลจะดำเนินการตามค่าของชนิดข้อมูลแรก
ดังนั้น หากชนิดข้อมูลแรกเป็นสตริง ระบบจะพยายามทำให้นิพจน์ทั้งหมดเป็นสตริง หากประเภทข้อมูลแรกเป็นตัวเลข ระบบจะพยายามรับประเภทข้อมูลที่เป็นตัวเลข
ดังนั้น สตริง + ตัวเลข = สตริง บางครั้งคุณสามารถเพิ่มตัวเลขลงในสตริงได้ หากสามารถแยกค่าตัวเลขบางส่วนออกจากสตริงได้ (เช่น 123 + “456”)
สำหรับชนิดข้อมูลแบบลอจิคัล จะใช้นิพจน์ต่อไปนี้:
จริงและ 1 = จริง;
จริงและ 0 = เท็จ
จำนวนใดๆ ที่มากกว่าศูนย์จะถูกแปลงเป็น True ส่วน 0 จะถูกแปลงเป็น False
สามารถเพิ่มวันที่ตามที่ระบุไว้ก่อนหน้านี้ลงในตัวเลขได้ คุณสามารถเพิ่มวันที่ลงในชนิดข้อมูลบูลีนได้
ในกรณีนี้ True จะถูกแปลงเป็น 1 และ False เป็น 0
นอกจากการแปลงประเภทในตัวดำเนินการแล้ว การแปลงประเภทที่ชัดเจนยังสามารถทำได้โดยใช้ฟังก์ชันที่เหมาะสม: สตริง(), ตัวเลข(), วันที่(), บูลีน().
ถึง เส้นชนิดข้อมูลใด ๆ จะถูกแปลง
สามารถรับหมายเลขได้จากสตริงหรือจากบูลีน การแปลงบูลีน: จริงเป็น 1, เท็จเป็น 0
คุณสามารถส่งสตริงเป็น Date ได้ถ้ามันมีค่าวันที่ ตัวอย่างเช่น วันที่("20140315") ตามที่ระบุไว้ก่อนหน้านี้ เป็นไปได้ที่จะแปลงตามตำแหน่ง:
วันที่(,)
คุณสามารถแปลงตัวเลขและค่าบูลีนเป็นบูลีนได้
ฟังก์ชันเหล่านี้สามารถใช้ในโค้ดโปรแกรมเพื่อทำการแปลงประเภทอย่างชัดเจน
ชนิดข้อมูลดั้งเดิม Number, String, Date และ Boolean สามารถทำหน้าที่เป็นฟิลด์ฐานข้อมูลได้
ค่า Null และค่าที่ไม่ได้กำหนด
NULL เป็นตัวอักษร โดยปกติจะใช้ในการสืบค้นฐานข้อมูลเมื่อมีการรวมตารางตั้งแต่สองตารางขึ้นไป
เป็นระเบียนที่หายไปในตารางที่สองซึ่งเต็มไปด้วยค่า NULL เหล่านั้น. มันเป็นคุณค่าที่ขาดหายไป
ในอนาคตเมื่อประมวลผลผลลัพธ์จะต้องนำมาพิจารณาเนื่องจาก NULL ไม่ใช่ศูนย์ แต่เป็นประเภทข้อมูลที่เกี่ยวข้อง
ในการประมวลผลค่า NULL จะต้องแปลงเป็นข้อมูลปกติบางประเภทที่สามารถส่งออกหรือใช้ในการดำเนินการทางคณิตศาสตร์ได้
สามารถรับค่าประเภท NULL ได้ในภาษาในตัว คุณสามารถกำหนดตัวแปรและกำหนดค่า NULL ให้เหมือนกันได้ อย่างไรก็ตาม การมอบหมายดังกล่าวแทบไม่เคยถูกนำมาใช้ในโค้ดโปรแกรมเลย
เหล่านั้น. NULL เป็นประเภทข้อมูลที่ได้รับเมื่อทำงานกับแบบสอบถาม ค่า NULL ในภาษาคิวรีต้องได้รับการจัดการในลักษณะพิเศษ
กล่าวคือ การเปรียบเทียบ A=NULL จะไม่ทำงานในระดับคิวรี โดยจะต้องใช้ฟังก์ชันพิเศษ อย่างไรก็ตาม ในภาษาบิวท์อิน การเปรียบเทียบกับค่า NULL จะได้รับการจัดการอย่างถูกต้อง
ชนิดข้อมูลไม่ได้กำหนดเป็นค่าที่ไม่ว่างเปล่าของแอตทริบิวต์บางอย่าง
ตัวอย่างเช่น หากแอตทริบิวต์ไดเรกทอรีมีลิงก์ไปยังไดเรกทอรีอื่นเป็นประเภทข้อมูล ค่าว่างของแอตทริบิวต์นี้จะไม่เท่ากับไม่ได้กำหนด
ประเภทนี้ (ไม่ได้กำหนด) จะปรากฏขึ้น ประการแรก หากเรามีตัวแปรบางตัวและไม่ได้เตรียมใช้งาน (ไม่ได้กำหนดประเภทข้อมูล)
ตัวอย่างที่สอง: ชนิดข้อมูลที่ไม่ได้กำหนดจะถูกส่งกลับโดยฟังก์ชันภาษาในตัวจำนวนมาก หากไม่สามารถดำเนินการได้
ตัวอย่างเช่น การค้นหาองค์ประกอบไดเร็กทอรีตามชื่อ หากบางไดเร็กทอรีไม่มีชื่อองค์ประกอบดังกล่าว วิธี ค้นหาตามชื่อจะส่งกลับค่า ไม่ได้กำหนด.
โดยที่ ไม่ได้กำหนดคือคีย์เวิร์ด โดยจะเน้นด้วยสีแดง นี่เป็นตัวอักษรสำหรับการเขียนด้วย ไม่ได้กำหนดไม่จำเป็นต้องใช้เครื่องหมายคำพูด จุลภาค วงเล็บ ฯลฯ
หากมีรายการเอกสารและรายการนี้ว่างเปล่า (ดังนั้นจึงไม่มีบรรทัดอยู่ในรายการ) จากนั้นบรรทัดปัจจุบันจะใช้ค่า ไม่ได้กำหนด.
หากฐานข้อมูลมีแอตทริบิวต์ที่มีประเภทข้อมูลคอมโพสิต ค่าว่างของแอตทริบิวต์นี้จะเท่ากับ ไม่ได้กำหนด.
แต่หากประเภทข้อมูลไม่ได้ประกอบกัน ค่าว่างจะสอดคล้องกับค่าว่างประเภทนี้ (สำหรับวันที่ นี่คือวินาทีแรกของชั่วโมงแรกของวันแรกของเดือนแรกของปีแรก)
NULL และ Unknown เป็นทั้งประเภทข้อมูลและค่าในประเภทเหล่านี้และเป็นหนึ่งเดียวเท่านั้น สำหรับ NULL จะเป็นค่า NULL สำหรับ Undefinition จะเป็น Undefinition
ประเภทข้อมูล ประเภท
การใช้งานหลักของประเภทข้อมูลนี้คือการเปรียบเทียบค่าของตัวแปรหรือคุณลักษณะฐานข้อมูลกับประเภทเฉพาะ
เหล่านั้น. ในอัลกอริทึม คุณต้องเข้าใจว่าออบเจ็กต์ที่กำหนดคืออะไร
โดยเฉพาะอย่างยิ่ง ชนิดข้อมูลนี้ไม่มีตัวอักษร เราไม่สามารถเขียนเป็น NULL หรือ Undefinition ได้ แต่เราสามารถรับค่าประเภทนี้ได้โดยใช้สองฟังก์ชัน พิมพ์และ ประเภทค่า.
เพื่อให้ได้ประเภทของอ็อบเจ็กต์บางตัว (อาจเป็นตัวแปร หรือแอ็ตทริบิวต์ฐานข้อมูล หรือแอ็ตทริบิวต์ของฟอร์ม) ฟังก์ชันจะถูกใช้ ประเภทค่า.
วัตถุที่คุณต้องการรับชนิดข้อมูลจะถูกส่งผ่านไปยังฟังก์ชันนี้
ฟังก์ชันนี้ส่งคืนประเภทของประเภทเป็นค่าที่ส่งคืน
ในอนาคตควรเปรียบเทียบกับดอกเบี้ยประเภทใด ตัวอย่างเช่น:
ถ้า TypeValue(Element) = Type (“DirectoryLink.Nomenclature”) แล้ว
รายงาน ("นี่คือผลิตภัณฑ์");
สิ้นสุดถ้า;
โดยสรุปเราจะสรุปเนื้อหาทั้งหมดที่ครอบคลุม
เราดูโครงสร้างพื้นฐานของภาษา 1C ในตัว เรียนรู้วิธีใช้ตัวแปรและตัวดำเนินการ และค้นหาสาเหตุและวิธีการใช้ขั้นตอนและฟังก์ชันต่างๆ โปรดทราบว่าโดยพื้นฐานแล้วโค้ดโปรแกรมทั้งหมดของเราจนถึงจุดนี้เป็นแบบพอเพียง - เราเขียนทุกอย่างเองตั้งแต่เริ่มต้น และใช้ออบเจ็กต์การกำหนดค่าบางอย่างหรือภาษาในตัวให้เหลือน้อยที่สุด
เราจะสำรวจวัตถุเหล่านี้โดยละเอียดในบทความถัดไป ดังนั้นโปรดคอยติดตาม! -
เรายังคงทำความคุ้นเคยกับฟังก์ชันใหม่ของ 1C:Enterprise ซึ่งเริ่มต้นในบทความชุดที่แล้ว หลังจากศึกษาเนื้อหาในบทความนี้แล้ว คุณจะได้เรียนรู้:
- ประเภทที่กำหนดคืออะไรและใช้งานอย่างไร?
- คุณสมบัติการกำหนดค่า “บทบาทหลัก” ใช้ทำอะไร
- จะใช้ตัวช่วยเพื่อสร้างตัวจัดการเหตุการณ์ไคลเอนต์สำหรับแบบฟอร์มได้อย่างไร?
- การอัพโหลดการกำหนดค่าไปยังไฟล์ XML ถูกใช้อย่างไรและเพราะเหตุใด
การบังคับใช้
บทความนี้กล่าวถึงแพลตฟอร์ม 1C:Enterprise เวอร์ชัน 8.3.4.437 แต่เนื้อหาอาจเป็นประโยชน์สำหรับผู้ที่ทำงานกับเวอร์ชันเก่ากว่า
วิธีทำให้การพัฒนาง่ายขึ้นใน 1C:Enterprise 8.3.1
เรายังคงพิจารณานวัตกรรมในแพลตฟอร์ม 1C:Enterprise 8 ต่อไปโดยมีวัตถุประสงค์เพื่ออำนวยความสะดวกในการกำหนดค่า
ประเภทที่กำหนด
ในแพลตฟอร์ม 8.3 มีการเพิ่มออบเจ็กต์ใหม่ในสาขาการกำหนดค่า "ทั่วไป" - ประเภทที่กำหนด
นี่คือออบเจ็กต์การกำหนดค่าพิเศษที่ออกแบบมาเพื่อกำหนดชนิดข้อมูลที่อธิบายเอนทิตีที่ใช้บ่อยหรือมีแนวโน้มที่จะเปลี่ยนแปลงเมื่อมีการใช้โซลูชันแอปพลิเคชัน
ตัวอย่างเช่น พิจารณาประเภทคอมโพสิตที่มีลิงก์ไปยังไดเร็กทอรี "คู่สัญญา" และ "บุคคลธรรมดา"
และประเภทนี้ในการกำหนดค่าที่พัฒนาแล้วบางส่วนมักใช้เป็นมิติในการลงทะเบียนข้อมูลที่อธิบายข้อมูลการติดต่อตามรายละเอียดในเอกสาร "ใบสั่งรับเงินสด" เป็นต้น
ในระหว่างการใช้งานการกำหนดค่าดังกล่าวองค์ประกอบของประเภทนี้สามารถเปลี่ยนแปลงได้ - สามารถเพิ่มออบเจ็กต์ใหม่เข้าไปได้และในทางกลับกัน - สามารถยกเว้นประเภทที่ไม่จำเป็นได้
หากแทนที่จะใช้ "ประเภทที่กำหนด" ใหม่ของเรา เราใช้ประเภทคอมโพสิตในทุกที่ที่มีการใช้งานเอนทิตีดังกล่าว เราจะต้องเปลี่ยนองค์ประกอบของประเภททุกที่ มันยาว ยาก ต้องใช้แรงงานมาก และมีความเป็นไปได้ที่จะลืมอุปกรณ์ประกอบฉากบางอย่างไป
หากคุณใช้ประเภทที่กำหนด ในระหว่างกระบวนการสรุปโซลูชันแอปพลิเคชัน จะต้องเปลี่ยนเฉพาะคำจำกัดความของประเภทนี้ (และโค้ดโปรแกรมที่ประมวลผลฟิลด์ดังกล่าว)
รายละเอียดทั้งหมดที่ระบุประเภทที่กำหนดไว้เป็นประเภทจะถูกเปลี่ยนแปลงโดยอัตโนมัติ
นี่เป็นอีกตัวอย่างหนึ่งของการใช้ประเภทที่กำหนด
สำหรับรายละเอียดบางอย่าง จะมีมาตรฐานการพิมพ์อยู่ภายในการกำหนดค่า ตัวอย่างเช่น เรากำหนดปริมาณเป็นตัวเลขความยาว 15 โดยมีความแม่นยำ 3 และผลรวมเป็นตัวเลขความยาว 15 ที่มีความแม่นยำ 2
สมมติว่าองค์กรจำเป็นต้องเก็บบันทึกสินค้าราคาแพงโดยมีน้ำหนักที่แม่นยำสูง
ดังนั้นเราจึงจำเป็นต้องเพิ่มความแม่นยำของรายละเอียดในการบัญชีปริมาณให้เป็นทศนิยม 4 ตำแหน่ง การเปลี่ยนแปลงเหล่านี้ต้องทำพร้อมกันกับรายละเอียดเอกสารทั้งหมดและทรัพยากรการลงทะเบียน
นี่ไม่ใช่งานที่ยาก แต่ต้องใช้แรงงานมากและต้องได้รับการดูแลเอาใจใส่และความอุตสาหะของนักพัฒนาเป็นอย่างดี
เมื่อคุณสร้างประเภทที่กำหนดใหม่ คุณจะต้องระบุประเภทเท่านั้น จากนั้น เมื่อสร้างรายละเอียดเอกสารและลงทะเบียนทรัพยากร คุณสามารถเลือกลิงก์ไปยังประเภทที่กำหนดไว้ที่สร้างขึ้นได้
วิธีการนี้ช่วยให้เรารับประกันประเภทข้อมูลเดียวกัน (ความยาว ความแม่นยำเท่ากัน องค์ประกอบเดียวกันสำหรับช่องประเภทคอมโพสิต ฯลฯ) ในทุกที่ที่มีการใช้งาน
จากนั้น หากคุณต้องการเปลี่ยนประเภทข้อมูลของรายละเอียดทั้งหมด คุณไม่จำเป็นต้องแก้ไขแต่ละแอตทริบิวต์แยกกันด้วยตนเอง เพียงทำการเปลี่ยนแปลงประเภทที่กำหนดไว้ที่เกี่ยวข้องก็เพียงพอแล้ว
สามารถสร้างประเภทที่กำหนดเป็นประเภทคอมโพสิตได้ อย่างไรก็ตาม มีข้อจำกัดในการใช้ออบเจ็กต์การกำหนดค่านี้ ดังนั้นประเภทที่ถูกกำหนดไม่สามารถเป็นส่วนหนึ่งของประเภทค่าของแผนประเภทลักษณะเฉพาะได้ และไม่สามารถเป็นส่วนหนึ่งของประเภทข้อมูลคอมโพสิตของคุณลักษณะอื่นได้
โปรดทราบว่าในแพลตฟอร์มเวอร์ชัน 8.3.5 ความเป็นไปได้ในการใช้ประเภทที่กำหนดเพิ่มขึ้นโดยการขยายชุดประเภทที่สามารถเป็นส่วนหนึ่งของประเภทที่กำหนดได้
ไม่มีการเปลี่ยนแปลงเพิ่มเติมในการทำงานกับประเภทที่กำหนดจนกระทั่งเวอร์ชันปัจจุบันของแพลตฟอร์ม 8.3.10/8.3.11
คุณสมบัติการกำหนดค่า "บทบาทหลัก"
ในแพลตฟอร์ม 8.2 องค์ประกอบการกำหนดค่ารูทมีคุณสมบัติ "บทบาทหลัก" ซึ่งนักพัฒนาได้กำหนดบทบาทที่จะใช้หากไม่มีผู้ใช้ในฐานข้อมูล
ในแพลตฟอร์ม 8.3 มีความเป็นไปได้ที่จะระบุหลายบทบาทที่จะใช้เพื่อกำหนดสิทธิ์การเข้าถึงเมื่อรายชื่อผู้ใช้ว่างเปล่า ดังนั้นทรัพย์สินจึงถูกเปลี่ยนชื่อเป็น "บทบาทหลัก"
หากต้องการขยายให้คลิกที่ภาพ
การสร้างตัวจัดการเหตุการณ์ไคลเอ็นต์ฟอร์ม
เมื่อกำหนดค่าแอปพลิเคชันที่ได้รับการจัดการ นักพัฒนาจะต้องตรวจสอบบริบทการเรียกใช้โค้ดอย่างระมัดระวังโดยใช้คำสั่งตัวประมวลผลล่วงหน้าที่เหมาะสม
เนื่องจากชุดข้อมูลและวิธีการมีจำกัดบนไคลเอ็นต์ นักพัฒนาจึงมักจำเป็นต้องสร้างขั้นตอนไคลเอ็นต์เพื่อถ่ายโอนการควบคุมไปยังเซิร์ฟเวอร์
ในแพลตฟอร์ม 8.3 ผู้ช่วยสำหรับการสร้างตัวจัดการสำหรับเหตุการณ์ในแบบฟอร์มไคลเอนต์ปรากฏขึ้น
หากต้องการขยายให้คลิกที่ภาพ
ตอนนี้นักพัฒนาไม่จำเป็นต้องสร้างวิธีการเซิร์ฟเวอร์ด้วยตนเองและระบุการเรียกภายในขั้นตอนไคลเอนต์ แต่สามารถมุ่งความสนใจไปที่การนำตรรกะแอปพลิเคชันของระบบไปใช้โดยสิ้นเชิง
กำลังอัปโหลดการกำหนดค่าไปยังไฟล์
นวัตกรรมอีกประการหนึ่งของแพลตฟอร์ม 8.3 คือความสามารถในการอัปโหลดการกำหนดค่าทั้งหมดไปยังดิสก์ในรูปแบบของชุดไฟล์ที่มีโครงสร้างบางอย่าง
การกำหนดค่าจะถูกอัปโหลดอย่างครบถ้วนเสมอ โดยไม่สามารถกรองออบเจ็กต์ที่อัปโหลดได้
หากต้องการอัปโหลดการกำหนดค่าไปยังไฟล์ คุณต้องเลือกการกำหนดค่า – อัปโหลดการกำหนดค่าไปยังไฟล์ในเมนู และในกล่องโต้ตอบที่เปิดขึ้น ให้เลือกไดเร็กทอรีที่จะบันทึกไฟล์
ออบเจ็กต์การกำหนดค่าจะถูกอัปโหลดเป็นชุดของไฟล์ XML โมดูลและเค้าโครงข้อความจะถูกบันทึกเป็นไฟล์ TXT รูปภาพจากการกำหนดค่าจะถูกบันทึกเป็นไฟล์รูปภาพ (BMP, PNG ฯลฯ) ข้อมูลวิธีใช้ถูกอัปโหลดไปยังไฟล์ HTML
หากต้องการขยายให้คลิกที่ภาพ
อย่างที่คุณเห็น ไฟล์ผลลัพธ์ที่ได้มีรูปแบบสากลที่ใช้กันทั่วไป มีผลิตภัณฑ์ซอฟต์แวร์ที่แตกต่างกันจำนวนมากสำหรับการแก้ไข
คุณยังสามารถใช้ระบบควบคุมเวอร์ชันของบุคคลที่สามได้ ช่วยให้คุณสามารถจัดเก็บเอกสารเดียวกันหลายเวอร์ชัน กลับไปยังเวอร์ชันก่อนหน้าได้หากจำเป็น และกำหนดว่าใครเป็นผู้ทำการเปลี่ยนแปลงใดและเมื่อใด
ไฟล์ที่แก้ไขสามารถโหลดกลับเข้าไปในการกำหนดค่าได้โดยใช้รายการเมนู การกำหนดค่า – โหลดการกำหนดค่าจากไฟล์
การทำงานกับฟังก์ชันการโหลด/ยกเลิกการโหลดใหม่ยังใช้งานได้โดยใช้พารามิเตอร์บรรทัดคำสั่ง LoadConfigFromFiles และ DumpConfigToFiles ตัวอย่างเช่นเช่นนี้:
“c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe” ผู้ออกแบบ /F “X:\Platform8Demo” /N “ผู้ดูแลระบบ” /DumpConfigToFiles “X:\1\”
ก่อนหน้านี้ ในแพลตฟอร์ม 8.2 มีกลไกในการอัพโหลด/ดาวน์โหลดไฟล์การกำหนดค่า ซึ่งอนุญาตให้เลือกอัพโหลด/ดาวน์โหลดไฟล์คุณสมบัติบางอย่างของออบเจ็กต์การกำหนดค่า (โมดูล โครงร่าง และข้อมูลอ้างอิง)
สังเกตว่าตามค่าเริ่มต้นแล้ว คำสั่ง "อัปโหลดไฟล์การกำหนดค่า" และ "โหลดไฟล์การกำหนดค่า" จะไม่รวมอยู่ในตัวกำหนดค่าในแพลตฟอร์ม 8.3
อย่างไรก็ตาม ด้วยการปรับแต่งเมนูหลัก คุณสามารถแสดงคำสั่งเหล่านี้ในเมนูและใช้งานได้
กลไกใหม่สำหรับการอัปโหลดการกำหนดค่าไปยังไฟล์จะอัปโหลดข้อมูลการกำหนดค่าทั้งหมดเสมอ ดังนั้นจึงไม่มีความสามารถในการกำหนดค่าออบเจ็กต์สำหรับการอัปโหลด ดังนั้นจึงรับประกันความสมบูรณ์ของการกำหนดค่า
แบบฟอร์มและอินเทอร์เฟซปกติจะถูกอัปโหลดในรูปแบบไบนารี (ภายใน) และไม่สามารถแก้ไขได้ การกำหนดค่าของผู้ให้บริการไม่ได้ตั้งใจที่จะแก้ไขเช่นกัน
วัตถุที่เหลือจะถูกอัปโหลดไปยังไฟล์ในรูปแบบสากล โดยพื้นฐานแล้ว กลไกจะเน้นไปที่แอปพลิเคชันที่ได้รับการจัดการ
กลไกใหม่ช่วยให้นักพัฒนาสามารถประมวลผลการกำหนดค่าได้โดยอัตโนมัติโดยการเรียกใช้ตัวกำหนดค่าในโหมดแบตช์
นอกจากนี้ ในตอนนี้ การกำหนดค่ายังสามารถแก้ไขได้ด้วยซอฟต์แวร์ภายนอกโดยใช้ เช่น รูปแบบ XML
เมื่อยกเลิกการโหลด จะมีการประมวลผลการกำหนดค่าเพิ่มเติม: ลิงก์ที่ตรึงไว้จะถูกลบออก ข้อมูลที่ไม่ได้ใช้จะไม่ถูกยกเลิกการโหลดด้วย (เช่น ความช่วยเหลือสำหรับภาษาที่ไม่มีอยู่จริง)
และเมื่อโหลดการกำหนดค่า จะมีการตรวจสอบความสมบูรณ์ของการกำหนดค่า ไม่อนุญาตให้โหลดไฟล์ที่มีตัวระบุที่ไม่ซ้ำ วัตถุเมตาดาต้า ชื่อประเภทข้อมูลที่ไม่ถูกต้อง ฯลฯ
โปรดทราบว่าตั้งแต่เวอร์ชัน 8.3.7 เป็นต้นมา รูปแบบการอัปโหลดใหม่ได้ปรากฏขึ้น ซึ่งเรียกว่า "ลำดับชั้น" รูปแบบเก่ากลายเป็นที่รู้จักในชื่อ "เชิงเส้น" การเลือกรูปแบบมีอยู่ในหน้าต่างอัพโหลดไฟล์:
ตั้งแต่เวอร์ชัน 8.3.11 เป็นต้นไป รูปแบบ "ลำดับชั้น" กลายเป็นรูปแบบเดียวที่มีให้เลือกระหว่างการอัปโหลดเชิงโต้ตอบ:
หากคุณใช้ฟังก์ชันนี้ เราขอแนะนำ:
- ประการแรก ให้ใช้รูปแบบการอัปโหลดแบบ "ลำดับชั้น"
- ประการที่สอง ใช้แพลตฟอร์มไม่ต่ำกว่าเวอร์ชัน 8.3.8+ เพราะ ความเร็วในการโหลด/อัพโหลดไฟล์ XML เพิ่มขึ้นอย่างมาก
ในเวอร์ชัน 8.3.10 เริ่มรองรับการอัพโหลดการกำหนดค่าบางส่วนไปยังไฟล์ XML ด้วยเหตุนี้ จึงเป็นไปได้ที่จะใช้การอัปโหลดการกำหนดค่าใน XML ร่วมกับ Git
ประเภทที่กำหนดคือออบเจ็กต์ข้อมูลเมตา 1C ใหม่ที่ปรากฏในแพลตฟอร์มเวอร์ชัน 8.3 วัตถุมีลักษณะเป็นส่วนประกอบ ลองพิจารณาว่าประเภทที่กำหนดไว้คืออะไรและงานที่วัตถุนี้สามารถแก้ไขได้
กำหนดเป็นชนิดข้อมูลใหม่ ชุดที่กำหนดโดยผู้พัฒนาโซลูชันแอปพลิเคชัน ประกอบด้วยหลายประเภทที่ถูกต้อง ชนิดข้อมูลนี้สามารถเป็นประเภทของแอ็ตทริบิวต์การกำหนดค่าใดๆ ยกเว้นชนิดที่กำหนดและอ็อบเจ็กต์ " "
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
การตั้งค่า
มีการตั้งค่าไม่มากนักสำหรับวัตถุนี้:
เหล่านั้น. นอกเหนือจากชื่อและคำพ้องความหมายใน 1C แล้ว ประเภทที่กำหนดจะมีประเภทวัตถุเพียงชุดเดียวเท่านั้น
ตัวอย่างการใช้ประเภทที่กำหนดใน 1C 8.3
สามารถพบแอปพลิเคชันที่หลากหลายสำหรับวัตถุนี้
ตัวอย่างการใช้:
- คุณสามารถอธิบายในรายละเอียดการกำหนดค่าที่อ้างถึงข้อมูลที่จะกำหนดเมื่อแฟรกเมนต์ถูกฝังอยู่ในการกำหนดค่าเฉพาะ
- กำหนดข้อมูลที่กำหนดประเภทหนึ่งให้กับชุดการสมัครสมาชิกกิจกรรมบางชุด เมื่อชุดประเภทเปลี่ยนแปลง แหล่งที่มาจะเปลี่ยนแบบไดนามิกสำหรับการสมัครสมาชิกทั้งหมด
- ใช้เป็นทางเลือกแทนแผนประเภทลักษณะ
และอีกมากมาย
หากคุณกำลังเริ่มเรียนรู้การเขียนโปรแกรม 1C เราขอแนะนำหลักสูตรฟรีของเรา (อย่าลืม