พิมพ์ชื่อประเภท 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เขียนคำตอบของคำถามต่อไปนี้ในรูปแบบคอมพิวเตอร์ (โดยใช้ประเภทข้อมูลที่เหมาะสม)

  1. ดาวเทียมประดิษฐ์ดวงแรกเปิดตัวเมื่อใด
  2. นักบินอวกาศคนแรกชื่ออะไร?
  3. มีดาวเคราะห์กี่ดวงในระบบสุริยะ?

ตรวจสอบตัวเอง

จากผลลัพธ์ของภารกิจที่ 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”);

เพื่อแก้ไขปัญหาเราเลือกโครงร่างต่อไปนี้:

  1. หากบรรทัดมีช่องว่างนำหน้าหรือต่อท้ายในปริมาณเท่าใด เราจะกำจัดมันออกด้วยฟังก์ชันพิเศษ ต่อไปเราจะสนใจกลุ่มอักขระระหว่างช่องว่างภายใน ถ้ากลุ่มประกอบด้วยตัวเลขเท่านั้น ก็จะเป็นจำนวนเต็ม มีฟังก์ชั่นพิเศษที่สามารถใช้เพื่อกำหนดตำแหน่งของช่องว่างแรกได้
  2. เมื่อคุณได้ตำแหน่งของช่องว่างแรกแล้ว คุณสามารถใช้ฟังก์ชันอื่นเพื่อจัดกลุ่มอักขระ (สตริงย่อย) ทางด้านซ้ายของช่องว่างได้
  3. มาวิเคราะห์อักขระที่ประกอบกันเป็นกลุ่มแล้วพิจารณาว่าเป็นจำนวนเต็มหรือไม่ จำนวนเต็มที่ระบุจะถูกรวมไว้ในตัวแปรพิเศษ
  4. มาย่อบรรทัดเริ่มต้นให้สั้นลงโดยเลือกอักขระทั้งหมดทางด้านขวาของช่องว่างโดยใช้ฟังก์ชันอื่น พื้นที่นี้อาจไม่ใช่แค่ช่องว่างเดียว แต่เป็นช่องว่างทั้งชุดในแถว ดังนั้นในบรรทัดที่เหลือ ให้ใช้ฟังก์ชันพิเศษเพื่อกำจัดช่องว่างด้านซ้ายสุดทั้งหมด (ในแถว) แล้วกลับไปที่จุดที่ 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 เราขอแนะนำหลักสูตรฟรีของเรา (อย่าลืม