บ้าน - สำหรับผู้เริ่มต้น
คุณสมบัติแบบฟอร์มคำสั่ง 1c โดยใช้บรรทัดปัจจุบัน

วิธีติดตั้งสายใน 8.2 ( แบบฟอร์มที่ได้รับการจัดการ) อ่าน .

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

ในการเลือกแถวที่เราต้องการในฟิลด์ตาราง เราต้องมีสองขั้นตอน:

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


// บรรทัดที่สองมีดัชนีหนึ่ง
RequiredString = สินค้า;

หรือเรารู้ว่าในบรรทัดที่สองในคอลัมน์ Nomenclature องค์ประกอบ Code คือ "001" จากนั้นเราใช้โครงสร้าง:


// ขั้นแรกให้ค้นหาองค์ประกอบไดเร็กทอรีระบบการตั้งชื่อตามโค้ด
// จากนั้นค้นหาในส่วนตาราง "ผลิตภัณฑ์"
RequiredLine = Products.Find(Directories.Nomenclature.FindByCode("001"));

2. ตั้งค่าของบรรทัดปัจจุบันเป็นบรรทัดที่พบ
ตอนนี้เราจำเป็นต้องกำหนดค่าของตัวแปร RequiredRow ให้กับคุณสมบัติเขตข้อมูลตาราง CurrentRow:


// ถ้าฟิลด์ตารางของเราเรียกอีกอย่างว่าผลิตภัณฑ์
องค์ประกอบแบบฟอร์ม.Products.CurrentRow = RequiredRow;

// ถ้าฟิลด์ตารางเรียกว่า TableField1

ด้วยเหตุนี้ บรรทัดของโค้ดจึงอาจมีลักษณะดังนี้:

RequiredLine = Products.Find(Directories.Nomenclature.FindByCode("001"));
องค์ประกอบของฟอร์มTableField1.CurrentRow = RequiredRow;

มีชิ้นส่วนแบบตารางสำหรับวัตถุจำนวนมากใน 1C:

  • ไดเรกทอรี
  • เอกสาร
  • รายงานและการประมวลผล
  • ผังบัญชี
  • แผนประเภทลักษณะเฉพาะ
  • แผนประเภทการคำนวณ
  • กระบวนการทางธุรกิจและงาน

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

มาดูเทคนิคบางอย่างในการทำงานกับส่วนต่างๆ แบบตารางกัน

วิธีเลี่ยงส่วนที่เป็นตาราง

หากต้องการสำรวจส่วนของตาราง คุณสามารถใช้การวนซ้ำได้ สำหรับทุกคน

สำหรับแต่ละแถวจากส่วนตารางของวงจร

รายงาน (แอตทริบิวต์ String. TabularPart);

เอ็นด์ไซเคิล ;

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

วิธีรับและข้ามแถวที่เลือกของส่วนที่เป็นตาราง

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

หากต้องการดูรายการบรรทัดที่เลือก ให้ใช้รหัสต่อไปนี้:

หากต้องการวนซ้ำบรรทัดที่เลือก ให้ใช้การวนซ้ำ สำหรับทุกคน:

SelectedRows = FormElements ชื่อเขตข้อมูลตาราง แถวที่เลือก;

สำหรับแต่ละแถวจากแถวที่เลือก วนซ้ำ

//เนื้อหาวนซ้ำ

เอ็นด์ไซเคิล ;

วิธีเลือกแถวของส่วนตาราง (เขตข้อมูลตาราง) โดยทางโปรแกรมและยกเลิกการเลือก

หากต้องการยกเลิกการเลือกแถวของช่องตารางโดยทางโปรแกรม:

องค์ประกอบของแบบฟอร์ม ชื่อเขตข้อมูลตาราง แถวที่เลือก ชัดเจน() ;

หากต้องการเลือกแถวทั้งหมดของเขตข้อมูลตารางโดยทางโปรแกรม:

สำหรับแต่ละ CurrentRow จาก TabularPart Loop
องค์ประกอบของแบบฟอร์ม ชื่อเขตข้อมูลตาราง เส้นที่เลือก เพิ่ม(แถวปัจจุบัน);
เอ็นด์ไซเคิล ;

วิธีเคลียร์ส่วนของโต๊ะ

ตารางส่วนหนึ่ง ชัดเจน() ;

วิธีรับแถวปัจจุบันของส่วนของตาราง

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

สำหรับรูปแบบปกติ โค้ดจะมีลักษณะดังนี้:

องค์ประกอบของแบบฟอร์ม ชื่อเขตข้อมูลตาราง ข้อมูลปัจจุบัน;

สำหรับแบบฟอร์มที่ได้รับการจัดการ:

องค์ประกอบ ชื่อเขตข้อมูลตาราง ข้อมูลปัจจุบัน;

วิธีเพิ่มแถวใหม่ในส่วนของตาราง

เพิ่มบรรทัดใหม่ต่อท้ายส่วนของตาราง:

NewRow = ส่วนของตาราง เพิ่ม() ;

เพิ่มบรรทัดใหม่ในส่วนใดก็ได้ของตาราง (บรรทัดถัดไปจะถูกเลื่อน):

NewRow = ส่วนของตาราง แทรก(ดัชนี)
//ดัชนี - จำนวนบรรทัดที่เพิ่ม การกำหนดหมายเลขบรรทัดเริ่มต้นจากศูนย์

ใหม่แถว. อุปกรณ์ประกอบฉาก1 = "มูลค่า" ;

วิธีกรอกรายละเอียดของแถวตารางโดยทางโปรแกรม

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

ขั้นตอนที่สร้างโดยตัวจัดการมีพารามิเตอร์สามตัว:

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

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

ขั้นตอน TabularPartAtStartEditing (องค์ประกอบ, NewRow, คัดลอก)

//หากผู้ใช้แก้ไขบรรทัดที่มีอยู่ เราจะไม่ทำอะไรเลย
ถ้าไม่ใช่ NewRow แล้ว
กลับ;
สิ้นสุดถ้า ;

//หากเป็นบรรทัดใหม่ ให้ตั้งค่าบัญชีการบัญชี
TechString = รายการ ข้อมูลปัจจุบัน; // รับแถวปัจจุบันของส่วนตาราง
เทคสตริง การบัญชี = ผังบัญชี พึ่งตนเองได้. จำเป็นบัญชี;
สิ้นสุดขั้นตอน

ก่อนอื่นคุณต้องเข้าใจว่ามีออบเจ็กต์ที่มีข้อมูล เช่น Form DataCollection และมีออบเจ็กต์ที่แสดงข้อมูลด้วยภาพ - ตาราง

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

ลองดูตัวอย่างนี้:

แบบฟอร์มมีข้อกำหนดเฉพาะประเภท (ตารางค่า) - ในวงเล็บเนื่องจากประเภทจริงคือ FormDataCollection

รายละเอียดจะแสดงในรูปแบบตาราง

การกำหนดแถวของตารางค่าตามแถวของตารางปัจจุบัน

หากต้องการทราบว่าแถวใดของ TK ที่เป็นปัจจุบัน คุณต้องได้รับตัวระบุแถวในตารางก่อน จากนั้นใช้เพื่อค้นหาแถวใน TK

RowIdentifier = Elements.TZ.CurrentRow; // รับตัวระบุใน Table LineTZ = TZ.FindByIdentifier(StringIdentifier);

การตั้งค่าแถวปัจจุบันในตาราง

หากต้องการตั้งค่าแถวของตารางปัจจุบัน คุณต้องทำตรงกันข้าม ขั้นแรกให้รับตัวระบุ TK จากนั้นตั้งค่าแถวปัจจุบันของตารางที่อยู่นั้น

LineTZ = FormDataCollection; // ตัวอย่างเช่น ใช้บรรทัด 1String Identifier = LineTZ.GetIdentifier(); Elements.TK.CurrentRow = ตัวระบุแถว;

เพื่อความเข้าใจที่ง่ายขึ้น สามารถดาวน์โหลดได้



 


อ่าน:



ตัวเลือก "ทุกที่ที่บ้าน" และ "ทุกที่ที่บ้านในรัสเซีย" MTS - คำอธิบายต้นทุนวิธีเชื่อมต่อ

ตัวเลือก

รัสเซียครอบครองพื้นที่ขนาดใหญ่ในโลกของเรา ชาวรัสเซียจำนวนมากเผชิญกับการเดินทางบ่อยครั้งทั่วดินแดนบ้านเกิด: การเดินทางเพื่อธุรกิจ การเดินทาง...

วิธีการกู้คืนหรือรีเซ็ตรหัสผ่านผู้ใช้ Windows

วิธีการกู้คืนหรือรีเซ็ตรหัสผ่านผู้ใช้ Windows

หากคุณลืมรหัสผ่านสำหรับบัญชี Windows ของคุณกะทันหัน คุณจะไม่มีทางเลือกอื่นนอกจากต้องหาทางรีเซ็ตหรือตั้งค่า...

วิธีลบโปรแกรม Avast อย่างสมบูรณ์เพื่อลบ Avast

วิธีลบโปรแกรม Avast อย่างสมบูรณ์เพื่อลบ Avast

ยูทิลิตี้เฉพาะสำหรับการลบโปรแกรมป้องกันไวรัส Avast ออกจากระบบอย่างสมบูรณ์และถูกต้อง โปรแกรมนี้สร้างขึ้นโดยทีมพัฒนาอย่างเป็นทางการ...

แอปพลิเคชั่นมือถือ Aliexpress

แอปพลิเคชั่นมือถือ Aliexpress

ปัจจุบันความก้าวหน้ากำลังก้าวไปข้างหน้าและได้รับความนิยมอย่างมากหากร้านค้ามีแอปพลิเคชันบนมือถือ Aliexpress ก็ไม่มีข้อยกเว้น การนำทาง...

ฟีดรูปภาพ อาร์เอสเอส