ความสามารถเชิงโต้ตอบของเอกสารสเปรดชีต แบบฟอร์มที่ได้รับการจัดการ: การอ่านเค้าโครงที่มีเซลล์ที่ผสาน (โดยเฉพาะจาก Excel) ส่งออกข้อมูลลงในเอกสารสเปรดชีต 1C 8.3

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

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

วิธีสร้างเอกสารสเปรดชีตใน 1C

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

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


คุณสามารถทำซ้ำขั้นตอนทั้งหมดในฐานข้อมูลของคุณอย่างปลอดภัยหรือสร้างเอกสารสเปรดชีตใน 1C: โซลูชันสำเร็จรูป - โปรแกรมลิขสิทธิ์ 1C เวอร์ชันคลาวด์ ทดสอบบริการฟรี 14 วันใน 1C Online

วิธีเปลี่ยนความสูงของแถวและความกว้างของคอลัมน์ใน 1C

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

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

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

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

มีวิธีอื่นในการเปลี่ยนแปลงด้วยตนเอง กดปุ่ม "Ctrl" แล้วเลื่อนเมาส์ไปเหนือขอบเซลล์ที่ต้องการ หลังจากที่รูปร่างเคอร์เซอร์เปลี่ยน ให้ตั้งค่าขนาดที่ต้องการ

ใน 1C ความกว้างคอลัมน์ของเอกสารสเปรดชีตจะเปลี่ยนไป โดยอัตโนมัติหากคุณเลือกคอลัมน์ที่ต้องการและเลือกส่วน "ตาราง" - "เซลล์" - "ความกว้างของคอลัมน์" ในหน้าต่างที่ปรากฏขึ้น ให้ระบุความกว้างแล้วคลิก "ตกลง"

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

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

ในการตั้งค่าความกว้างของคอลัมน์ที่แตกต่างกันสำหรับบรรทัดต่างๆ คุณต้องเลือกบรรทัดของเอกสารอย่างน้อยหนึ่งบรรทัด

เลื่อนเมาส์ไปที่ตัวคั่นคอลัมน์แล้วกดปุ่มซ้ายของเมาส์ โดยไม่ต้องปล่อยปุ่ม ให้ดึงคอลัมน์ไปในทิศทางที่ต้องการ (เช่น ไปทางซ้าย) แล้วปล่อยปุ่ม ในหน้าต่างที่ปรากฏขึ้นให้คลิกที่ "ตกลง"

คุณยังสามารถควบคุมสีของข้อความ พื้นหลัง และกรอบได้อีกด้วย


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


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

การจัดกลุ่มแถวในเอกสารสเปรดชีต

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

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


การถอดรหัสเอกสารสเปรดชีต 1C

เราจะใช้กลไกการถอดรหัสเพื่อรับรายงานโดยละเอียดหรือเพิ่มเติม โดยคลิกที่บรรทัดหรือเซลล์ในเอกสาร

มีสองการดำเนินการเมื่อถอดรหัสเอกสาร:

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

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

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

วิธีบันทึกเอกสารสเปรดชีตใน 1C

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

ตามกฎแล้ว เอกสารจะถูกบันทึกในรูปแบบที่ใช้โดยระบบ 1C:Enterprise (*.mxl) อย่างไรก็ตาม เอกสารสเปรดชีตสามารถส่งออกไปยังรูปแบบการจัดเก็บข้อมูลอื่นได้ รวมถึงรูปแบบสเปรดชีต ODF (*.ods), เอกสาร Word (*.docx), เอกสาร HTML (*.htm) หรือไฟล์ข้อความ UNICODE (* . ข้อความ) นอกจากนี้ยังสามารถบันทึกเอกสารสเปรดชีตใน 1C ใน Excel หรือ pdf ได้

การพิมพ์เอกสารสเปรดชีตใน 1C

หากต้องการดูเอกสารก่อนพิมพ์ ให้เลือกส่วน "ไฟล์ - ดูตัวอย่าง" หากต้องการออกจากการแสดงตัวอย่าง ให้คลิกปุ่ม "ปิด"

ในการตั้งค่าหน้า เราจะตั้งค่าพารามิเตอร์สำหรับการพิมพ์เอกสารสเปรดชีตในรูปแบบ 1C - ขนาด ขนาด เส้นขอบ ฯลฯ ในตัวแก้ไขตาราง ให้ตั้งค่าพารามิเตอร์สำหรับการวางแถวและคอลัมน์ “ตำแหน่งหน้า” บังคับให้มีการแบ่งหน้า การทำซ้ำแถวและคอลัมน์ ฯลฯ

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

คุณมีคำถามใดๆ? ถามพวกเขาในความคิดเห็นแล้วเราจะทำ
เราจะตอบพวกเขาอย่างแน่นอน

ในการบัญชีเงินและสินค้ามีการใช้ตารางต่าง ๆ กันอย่างแพร่หลายในธุรกิจ เอกสารเกือบทุกฉบับจะเป็นตาราง

ตารางหนึ่งแสดงรายการสินค้าที่จะจัดส่งจากคลังสินค้า ตารางอื่นแสดงภาระผูกพันในการชำระค่าสินค้าเหล่านี้

ดังนั้นใน 1C การทำงานกับตารางจึงถือเป็นจุดเด่น

ตารางใน 1C เรียกอีกอย่างว่า "ส่วนตาราง" ไดเร็กทอรี เอกสาร และอื่นๆ มีสิ่งเหล่านี้

เมื่อดำเนินการแบบสอบถาม จะส่งกลับตารางที่สามารถเข้าถึงได้ในสองวิธีที่แตกต่างกัน

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

//ตัวเลือกที่ 1 – การเข้าถึงผลลัพธ์การสืบค้นตามลำดับ

//ไปเอาโต๊ะมา
เลือก = Query.Run().Select();
// เราดูทุกบรรทัดของผลลัพธ์การสืบค้นตามลำดับ
ในขณะที่ Select.Next() วนซ้ำ
รายงาน(ชื่อที่เลือก);
สิ้นสุดรอบ;

//ตัวเลือก 2 – การอัปโหลดไปยังตารางค่า
คำขอ = คำขอใหม่ ("เลือกชื่อจาก Directory.Nomenclature");
//ไปเอาโต๊ะมา
ตาราง = Query.Run().Unload()
//นอกจากนี้เรายังข้ามทุกบรรทัดได้ด้วย
สำหรับแต่ละแถวจากรอบตาราง
รายงาน (String.Name);
สิ้นสุดรอบ;
//หรือเข้าถึงสตริงโดยพลการ
Row = Table.Find("พลั่ว", "ชื่อ");

คุณลักษณะที่สำคัญคือในตารางที่ได้รับจากผลลัพธ์แบบสอบถาม คอลัมน์ทั้งหมดจะถูกพิมพ์อย่างเคร่งครัด ซึ่งหมายความว่าโดยการร้องขอฟิลด์ Name จากไดเร็กทอรี Nomenclature คุณจะได้รับคอลัมน์ของแบบฟอร์ม String ที่มีความยาวที่อนุญาตได้ไม่เกิน N ตัวอักษร

ตารางบนแบบฟอร์ม (ไคลเอ็นต์แบบหนา)

ผู้ใช้ทำงานกับตารางเมื่อวางบนแบบฟอร์ม

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

เรามาวางตารางบนแบบฟอร์มกันดีกว่า เมื่อต้องการทำเช่นนี้ คุณสามารถลากตารางจากแผงควบคุมได้ ในทำนองเดียวกัน คุณสามารถเลือกการควบคุมแบบฟอร์ม/การแทรกจากเมนูได้

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

คลิกปุ่ม "..." ในคุณสมบัติข้อมูล หากต้องการดูรายการส่วนต่างๆ แบบตาราง คุณต้องขยายสาขา Object

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

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

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

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

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

ในการจัดการตาราง คุณต้องแสดงแผงคำสั่งในแบบฟอร์ม เลือกรายการเมนู แบบฟอร์ม/แทรกการควบคุม/แถบคำสั่ง

ในคุณสมบัติของแถบคำสั่ง ให้เลือกกล่องกาเครื่องหมายป้อนอัตโนมัติเพื่อให้ปุ่มบนแผงปรากฏขึ้นโดยอัตโนมัติ

ตารางบนฟอร์ม (ไคลเอ็นต์แบบบาง/ที่มีการจัดการ)

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

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

หากต้องการเพิ่มคอลัมน์ ให้ใช้เมนูคลิกขวาบนแอตทริบิวต์แบบฟอร์มนี้ เลือกเพิ่มคอลัมน์แอตทริบิวต์

จากนั้นลากตารางไปทางซ้ายด้วย

เพื่อให้ตารางมีแถบคำสั่ง ในคุณสมบัติของตาราง ให้เลือกค่าในส่วน การใช้งาน – ตำแหน่งแถบคำสั่ง

การอัพโหลดตารางไปยัง Excel

ตาราง 1C ใดๆ ที่อยู่บนแบบฟอร์มสามารถพิมพ์หรืออัปโหลดไปยัง Excel ได้

โดยคลิกขวาที่พื้นที่ว่างในตารางแล้วเลือกรายการ

ในไคลเอนต์ที่ได้รับการจัดการ (ธิน) การดำเนินการที่คล้ายกันสามารถทำได้โดยใช้รายการเมนู การกระทำทั้งหมด/แสดงรายการ

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

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

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

คุณสมบัติ “ชื่อเครื่องพิมพ์”ช่วยให้คุณสามารถระบุเครื่องพิมพ์อื่นนอกเหนือจากค่าเริ่มต้นสำหรับการพิมพ์ ชื่อจะต้องตรงกับชื่อเครื่องพิมพ์ที่กำหนดค่าไว้ในระบบ:

แท็บด็อก. ชื่อเครื่องพิมพ์ = "เอชพี LaserJet 3050 ซีรีส์ PCL 6";

เมื่อพิมพ์เอกสารเป็นชุด คุณสามารถประหยัดเวลาได้โดยการตั้งค่าตัวเลือกการจัดเรียง:

แท็บด็อก. ParseByCopies = จริง;

สามารถระบุจำนวนสำเนาได้ดังนี้:

แท็บด็อก. จำนวนอินสแตนซ์= 5 ;

แน่นอน คุณสามารถตั้งค่าฟิลด์ได้:

แท็บด็อก. ช่องซ้าย = 20 ; // ขอบซ้ายคือ 20 มม. ขอบอื่น ๆ คือ 10 มม. (ค่าเริ่มต้น)

คุณสมบัติหน้าเพิ่มเติมเล็กน้อย:

แท็บด็อก. OrientationPage= OrientationPage- ภูมิประเทศ;
แท็บด็อก. อินสแตนซ์OnPage= 2 ; //จะมี 2 หน้าในแผ่นงาน
แท็บด็อก. ปรับขนาดอัตโนมัติ = จริง; //คล้ายกับการตั้งค่าขนาด "ความกว้างของหน้า"

หากจำเป็น คุณสามารถระบุค่ามาตราส่วนเฉพาะเป็นเปอร์เซ็นต์ (property “มาตราส่วนการพิมพ์”).

คุณสมบัติ "ขนาดหน้า"อนุญาตให้คุณตั้งค่ารูปแบบหน้ามาตรฐาน - “เอ 3”, “A4”, “ก 5” (รายการตัวเลือกทั้งหมดมีอยู่ในวิธีใช้ 1C)

แท็บด็อก. ขนาดหน้า = "A3" ; // ตัวอักษร A ต้องเป็นภาษาอังกฤษ

สำหรับขนาดกระดาษที่ไม่เป็นมาตรฐาน (กำหนดเอง) คุณสามารถระบุความสูงและความกว้างของหน้า (เป็นมม.):

แท็บด็อก. ขนาดหน้า = "กำหนดเอง" ; //ขนาดไม่มาตรฐาน
แท็บด็อก. ความสูงหน้า = 350 ;
แท็บด็อก. ความกว้างหน้า = 350 ;

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

แท็บด็อก. ส่วนหัว- เอาท์พุต = จริง; //ส่วนหัวจะถูกพิมพ์
แท็บด็อก. HeaderSizeTop= 7 ; // ส่วนท้ายขนาด 7 มม. (ค่าเริ่มต้น 10 มม.)
แท็บด็อก. ส่วนหัว. ตำแหน่งแนวตั้ง= ตำแหน่งแนวตั้ง- สูงสุด ;
แท็บด็อก. ส่วนหัว. หน้าแรก= 2 ; //ส่วนท้ายจะแสดงจากหน้าที่ 2
FontFooter=แบบอักษรใหม่("Courier New", 8,True);
แท็บด็อก. ส่วนหัว- แบบอักษร = FontFooter; //แบบอักษรเฉียง
แท็บด็อก. ส่วนหัว- ข้อความในศูนย์ = "ส่วนหัว";
แท็บด็อก. ส่วนหัว- ข้อความขวา = "หน้า[&PageNumber] จาก [&PagesTotal]"; //การแบ่งหน้า
แท็บด็อก. ส่วนหัว- TextLeft = "[&วันที่]" ; //วันที่ปัจจุบัน

เอกสารที่สร้างขึ้นจะถูกส่งไปพิมพ์โดยใช้วิธีการ "พิมพ์()".มีสองตัวเลือกการโทรที่เป็นไปได้

1) โดยตรงไปยังเครื่องพิมพ์:

แท็บด็อก. พิมพ์(.ไม่ใช้);
แท็บด็อก. พิมพ์(จริง);

2) ก่อนการพิมพ์ กล่องโต้ตอบการพิมพ์จะปรากฏขึ้น:

แท็บด็อก. พิมพ์ ( DialogUsageModePrint- ใช้ );
แท็บด็อก. พิมพ์(เท็จ);

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

แท็บด็อก. จำนวนหน้า();

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

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

วิธีการช่วยให้คุณสามารถบังคับให้แทรกตัวแบ่งหน้าได้"OutputVerticalPageSeparator()"และ "เอาท์พุตHorizontalPageSeparator()".

ดังนั้น คุณสามารถควบคุมการพิมพ์ทีละหน้าและควบคุมการเติมหน้าได้:

ถ้าไม่ใช่ TabDoc ตรวจสอบเอาท์พุต ( อาร์เรย์ของ OutputAreas) แล้ว
แท็บด็อก. ตัวแยกหน้าเอาท์พุตแนวนอน();
สิ้นสุดถ้า;

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

ขอให้มีความสุขนะทุกคน!

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

การอ่านเอกสารตาราง

หากต้องการอ่านเอกสารสเปรดชีตใน 1C คุณสามารถใช้วัตถุ "TabularDocument" ได้ ตั้งแต่เวอร์ชัน 8.3.7 (หากใช้หน่วยความจำ) อ็อบเจ็กต์นี้ไม่เพียงแต่สามารถอ่านไฟล์ MXL เท่านั้น แต่ยังรวมถึง XLS/XLSX/ODT และตัวเลือกตารางอื่นๆ ด้วย (และยังสามารถเขียนได้อีกด้วย)

แต่เช่นเคย มีปัญหาเล็กๆ น้อยๆ อย่างหนึ่ง - ออบเจ็กต์ถูกสร้างขึ้นบนเซิร์ฟเวอร์เท่านั้น แต่ 1C พยายามแก้ไขปัญหานี้ด้วยการสร้างสตรีมในหน่วยความจำและให้โอกาสโปรแกรมเมอร์ใช้มันแทนเส้นทางไปยังไฟล์ในตัวสร้างวัตถุ แต่จำเป็นต้องระบุประเภทของไฟล์ที่กำลังอ่าน จริงบนแพลตฟอร์ม Windows 7 pro x64 พร้อม 1C 8.3.10.2466 ฉันไม่สามารถอ่าน Excel ด้วยวิธีนี้ได้ แต่ MXL อ่านได้อย่างสมบูรณ์แบบดังนั้นฉันจึงยังต้องสร้างไฟล์ชั่วคราวสำหรับไฟล์ Excel

ดังนั้นโค้ดการอ่านไฟล์:

&ขั้นตอน OnServer LoadFileOnServer(DD, Extension) ถ้า Extension = "xml" ดังนั้น BH = New DataRead(DD);

Tab.Read(BH, TabularDocumentValueReadingMethod.Value, TabularDocumentFileType.MXL);

มิฉะนั้น FileName = GetTemporaryFileName(Extension);

DD.เขียน(ชื่อไฟล์);

Tab.Read(ชื่อไฟล์);

ลบไฟล์(ชื่อไฟล์);

สิ้นสุดถ้า; สิ้นสุดขั้นตอน &ในขั้นตอนไคลเอนต์ LoadFile(คำสั่ง) Dlg = ใหม่ FileSelectionDialog(FileSelectionDialogMode.Open);

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

เซลล์รวม

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

สำหรับแต่ละพื้นที่จาก Elements.Tab.GetSelectedAreas() วนรอบสำหรับ X = Area.Left By Area.Right Loop สำหรับ Y = Area.Top By Area.Bottom Loop Report(Tab.Area(Y,X).Text);

X = X + Tab.Area(Y,X).Right - Tab.Area(Y,X).ซ้าย;

สิ้นสุดรอบ;

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

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

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

คุณสมบัติ “ชื่อเครื่องพิมพ์”ช่วยให้คุณสามารถระบุเครื่องพิมพ์อื่นนอกเหนือจากค่าเริ่มต้นสำหรับการพิมพ์ ชื่อจะต้องตรงกับชื่อเครื่องพิมพ์ที่กำหนดค่าไว้ในระบบ:

แท็บด็อก. ชื่อเครื่องพิมพ์ = "เอชพี LaserJet 3050 ซีรีส์ PCL 6";

เมื่อพิมพ์เอกสารเป็นชุด คุณสามารถประหยัดเวลาได้โดยการตั้งค่าตัวเลือกการจัดเรียง:

แท็บด็อก. ParseByCopies = จริง;

สามารถระบุจำนวนสำเนาได้ดังนี้:

แท็บด็อก. จำนวนอินสแตนซ์= 5 ;

แน่นอน คุณสามารถตั้งค่าฟิลด์ได้:

แท็บด็อก. ช่องซ้าย = 20 ; // ขอบซ้ายคือ 20 มม. ขอบอื่น ๆ คือ 10 มม. (ค่าเริ่มต้น)

คุณสมบัติหน้าเพิ่มเติมเล็กน้อย:

แท็บด็อก. OrientationPage= OrientationPage- ภูมิประเทศ;
แท็บด็อก. อินสแตนซ์OnPage= 2 ; //จะมี 2 หน้าในแผ่นงาน
แท็บด็อก. ปรับขนาดอัตโนมัติ = จริง; //คล้ายกับการตั้งค่าขนาด "ความกว้างของหน้า"

หากจำเป็น คุณสามารถระบุค่ามาตราส่วนเฉพาะเป็นเปอร์เซ็นต์ (property “มาตราส่วนการพิมพ์”).

คุณสมบัติ "ขนาดหน้า"อนุญาตให้คุณตั้งค่ารูปแบบหน้ามาตรฐาน - “เอ 3”, “A4”, “ก 5” (รายการตัวเลือกทั้งหมดมีอยู่ในวิธีใช้ 1C)

แท็บด็อก. ขนาดหน้า = "A3" ; // ตัวอักษร A ต้องเป็นภาษาอังกฤษ

สำหรับขนาดกระดาษที่ไม่เป็นมาตรฐาน (กำหนดเอง) คุณสามารถระบุความสูงและความกว้างของหน้า (เป็นมม.):

แท็บด็อก. ขนาดหน้า = "กำหนดเอง" ; //ขนาดไม่มาตรฐาน
แท็บด็อก. ความสูงหน้า = 350 ;
แท็บด็อก. ความกว้างหน้า = 350 ;

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

แท็บด็อก. ส่วนหัว- เอาท์พุต = จริง; //ส่วนหัวจะถูกพิมพ์
แท็บด็อก. HeaderSizeTop= 7 ; // ส่วนท้ายขนาด 7 มม. (ค่าเริ่มต้น 10 มม.)
แท็บด็อก. ส่วนหัว. ตำแหน่งแนวตั้ง= ตำแหน่งแนวตั้ง- สูงสุด ;
แท็บด็อก. ส่วนหัว. หน้าแรก= 2 ; //ส่วนท้ายจะแสดงจากหน้าที่ 2
FontFooter=แบบอักษรใหม่("Courier New", 8,True);
แท็บด็อก. ส่วนหัว- แบบอักษร = FontFooter; //แบบอักษรเฉียง
แท็บด็อก. ส่วนหัว- ข้อความในศูนย์ = "ส่วนหัว";
แท็บด็อก. ส่วนหัว- ข้อความขวา = "หน้า[&PageNumber] จาก [&PagesTotal]"; //การแบ่งหน้า
แท็บด็อก. ส่วนหัว- TextLeft = "[&วันที่]" ; //วันที่ปัจจุบัน

เอกสารที่สร้างขึ้นจะถูกส่งไปพิมพ์โดยใช้วิธีการ "พิมพ์()".มีสองตัวเลือกการโทรที่เป็นไปได้

1) โดยตรงไปยังเครื่องพิมพ์:

แท็บด็อก. พิมพ์(.ไม่ใช้);
แท็บด็อก. พิมพ์(จริง);

2) ก่อนการพิมพ์ กล่องโต้ตอบการพิมพ์จะปรากฏขึ้น:

แท็บด็อก. พิมพ์ ( DialogUsageModePrint- ใช้ );
แท็บด็อก. พิมพ์(เท็จ);

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

แท็บด็อก. จำนวนหน้า();

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

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

วิธีการช่วยให้คุณสามารถบังคับให้แทรกตัวแบ่งหน้าได้"OutputVerticalPageSeparator()"และ "เอาท์พุตHorizontalPageSeparator()".

ดังนั้น คุณสามารถควบคุมการพิมพ์ทีละหน้าและควบคุมการเติมหน้าได้:

ถ้าไม่ใช่ TabDoc ตรวจสอบเอาท์พุต ( อาร์เรย์ของ OutputAreas) แล้ว
แท็บด็อก. ตัวแยกหน้าเอาท์พุตแนวนอน();
สิ้นสุดถ้า;

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