บทความนี้จะบอกคุณโดยละเอียดว่าผู้เริ่มต้นที่มีความรู้เพียงเล็กน้อยเกี่ยวกับ 1C 8 สามารถสร้างได้อย่างไร แบบฟอร์มที่พิมพ์- ตัวอย่างเช่นลองใช้หนึ่งในการกำหนดค่า 1C 8 ที่พบบ่อยที่สุด - การบัญชี 2.0- การสร้างแบบฟอร์มการพิมพ์ขั้นตอนการเขียน 1C:
- การสร้างไฟล์แบบฟอร์มการพิมพ์ภายนอก
- การสร้างเค้าโครงแบบฟอร์มที่พิมพ์
- การเขียนโค้ดโปรแกรมเพื่อแสดงข้อมูลแบบฟอร์มที่พิมพ์บนหน้าจอ
- การสร้างพารามิเตอร์สำหรับการลงทะเบียนแบบฟอร์มที่พิมพ์โดยอัตโนมัติ
- การเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกเข้ากับฐาน 1C วิสาหกิจ.
การสร้างแบบฟอร์มการพิมพ์ 1C คำชี้แจงของปัญหา
เราจำเป็นต้องมีในการกำหนดค่า การบัญชี 2.0สร้างแบบฟอร์มการพิมพ์สำหรับเอกสาร การรับสินค้าและบริการ- ในส่วนหัวของแบบฟอร์มที่พิมพ์ แสดงข้อมูลต่อไปนี้:
- องค์กร;
- คู่สัญญา;
- ข้อตกลงคู่สัญญา
- วันที่ได้รับ.
แสดงข้อมูลในส่วนตารางเป็นตาราง สินค้าเอกสาร. ตารางควรมีคอลัมน์ต่อไปนี้:
- ศัพท์;
- ปริมาณ;
- ราคา;
- รวม;
- และราคาของสินค้าสำหรับวันที่ปัจจุบัน (ตามประเภทราคาจากเอกสาร)
ไฟล์ประมวลผลภายนอก
เรามาแก้ไขปัญหากันดีกว่า ก่อนอื่นเรามาเปิด 1C 8 ในโหมดกันก่อน ตัวกำหนดค่า- อยู่ในโหมดนี้ที่การพัฒนาทั้งหมดดำเนินการบนแพลตฟอร์ม 1C 8 ตอนนี้เราจำเป็นต้องสร้างไฟล์ประมวลผลภายนอก โดยคลิกที่เมนู ไฟล์ -> ใหม่...หรือตามไอคอนของไฟล์ใหม่
ในหน้าต่างที่เปิดขึ้น ให้เลือกรายการ การประมวลผลภายนอก.
ต่อไปในสนาม ชื่อคุณต้องป้อนชื่อของการประมวลผลภายนอก ในกรณีของเรา เราจะเรียกมันว่า "PrintForm" โดยช่องคำพ้องความหมายจะถูกกรอกโดยอัตโนมัติ โปรดทราบว่าในสนาม ชื่อ,การประมวลผลภายนอก ควรเขียนชื่อโดยไม่มีช่องว่างหรือเครื่องหมายวรรคตอน
มาเพิ่มคุณสมบัติการประมวลผลภายนอกกัน LinkToObject แล้วเลือกพิมพ์ให้เขา DocumentLink การรับสินค้าและบริการ- เมื่อต้องการทำเช่นนี้ ในแผนผังข้อมูลเมตาการประมวลผลภายนอก 1C ให้เลือกรายการ รายละเอียดและกดปุ่ม เพิ่ม(ปุ่มที่มีเครื่องหมายบวกสีเขียว) หน้าต่างคุณสมบัติแอตทริบิวต์จะเปิดขึ้นทางด้านขวาของหน้าจอในฟิลด์ ชื่อมาเขียนกันเถอะ - การอ้างอิงถึงObject. ในสนาม พิมพ์กดปุ่มที่มีจุดสามจุด
มาขยายสาขาในแผนผังประเภทกัน DocumentLinkและค้นหาองค์ประกอบ การรับสินค้าและบริการ ทำเครื่องหมายที่ช่องถัดจากองค์ประกอบนั้นแล้วคลิก ตกลง.
มาบันทึกไฟล์ประมวลผลภายนอกลงในฮาร์ดไดรฟ์โดยใช้เมนู ไฟล์ -> บันทึก, รูปสัญลักษณ์ บันทึก(ฟล็อปปี้ดิสก์สีน้ำเงิน) หรือแป้นพิมพ์ลัด Ctrl+S- ตั้งชื่อไฟล์ที่บันทึกไว้ว่า “PrintForm”
การสร้างเค้าโครงแบบฟอร์มที่พิมพ์
มาเริ่มสร้างเลย์เอาต์ของแบบฟอร์มการพิมพ์ 1C กัน เค้าโครงทำหน้าที่เป็นเทมเพลตสำหรับผลลัพธ์ของแบบฟอร์มการพิมพ์ ดังนั้นหากคุณต้องการให้แบบฟอร์มการพิมพ์ของคุณดูดี คุณควรให้ความสนใจ
มาเพิ่มโครงร่างใหม่ในแผนผังข้อมูลเมตาการประมวลผลภายนอก เราจะไม่เปลี่ยนแปลงอะไรในหน้าต่างตัวออกแบบโครงร่างแล้วคลิกปุ่ม พร้อม.
ในเค้าโครงใหม่ที่เปิดขึ้น เราจะสร้างพื้นที่ต่างๆ ที่จำเป็นสำหรับการแสดงแบบฟอร์มที่พิมพ์ พื้นที่เลย์เอาต์ทั้งหมดที่เราต้องการจะเป็นแนวนอน ดังนั้นเพื่อสร้าง พื้นที่ใหม่ควรเน้น ปริมาณที่ต้องการเค้าโครงเส้นและไปที่เมนู ตาราง -> ชื่อ -> กำหนดชื่อหรือใช้แป้นพิมพ์ลัด Ctrl + Shift + Nจากนั้นกรอกชื่อภูมิภาคลงในช่อง เมื่อสร้างพื้นที่เลย์เอาต์ อย่ากลัวที่จะทำผิดพลาดกับจำนวนบรรทัด คุณสามารถเพิ่มหรือลบออกได้ตลอดเวลา หากต้องการลบเส้นเค้าโครง 1C ให้เลือกบรรทัดที่ต้องการแล้วเลือกรายการในเมนูบริบท ลบ- หากต้องการเพิ่มบรรทัดใหม่ให้กับเค้าโครง ให้เลือกบรรทัดใดก็ได้ในเค้าโครง และเลือกรายการในเมนูบริบท ขยาย.
การเพิ่มส่วนหัวเค้าโครง
ก่อนอื่น เรามาสร้างพื้นที่กันก่อน หมวกจะแสดงข้อมูลสำหรับส่วนหัวของแบบฟอร์มการพิมพ์ สำหรับพื้นที่นี้ เราจะต้องมีเส้นเค้าโครงเจ็ดเส้น มาเลือกกันและตามที่ฉันเขียนไว้ข้างต้นให้กดคีย์ผสม Ctrl + Shift + Nในสนาม ชื่อเขียนว่า "หมวก" แล้วกดปุ่ม ตกลง.
มาเติมพื้นที่เลย์เอาต์ด้วยข้อมูลที่เราต้องการ โดยปกติแล้ว ไม่มีแบบฟอร์มที่พิมพ์ออกมาจะเสร็จสมบูรณ์หากไม่มีชื่อ ดังนั้นมาสร้างแบบฟอร์มในส่วนหัวของเค้าโครงของเราด้วย เนื่องจากในชื่อเรื่องนอกเหนือจากชื่อของแบบฟอร์มที่พิมพ์แล้วเราจะแสดงหมายเลขเอกสารที่พิมพ์ด้วยเราจะตั้งค่าข้อความของชื่อเรื่องในเลย์เอาต์เป็นพารามิเตอร์ พารามิเตอร์โครงร่างคือเซลล์โครงร่างที่กำหนดเป็นพิเศษซึ่งสามารถส่งออกข้อมูลต่าง ๆ ได้โดยใช้ภาษา 1C 8 ในตัว ควรแสดงชื่อให้ทั่วทั้งความกว้างของแบบฟอร์มที่พิมพ์ ดังนั้นเรามาตัดสินใจว่าจะมีเซลล์เค้าโครงจำนวนเท่าใดจึงจะเพียงพอสำหรับเราในการพิมพ์ในแนวนอนมาตรฐานของแผ่นงาน
โดยปกติแล้วเซลล์เลย์เอาต์สิบสามหรือสิบสี่เซลล์ก็เพียงพอแล้ว ให้เลือกเซลล์เหล่านั้นในแถวแรกของพื้นที่ หมวกและรวมเป็นเซลล์เดียว ( เมนูบริบท -> ผสาน- หลังจากนั้น ดับเบิลคลิกบนเซลล์ขนาดใหญ่ที่ได้ และเขียนชื่อของพารามิเตอร์ ในกรณีของเราคือ "TitleText" เพื่อให้ข้อความที่ป้อนกลายเป็นพารามิเตอร์แบบเต็มให้คลิกขวาที่เซลล์แล้วเลือกรายการในเมนูบริบท คุณสมบัติ- บนบุ๊กมาร์ก เค้าโครงมาหาสนามกันเถอะ การกรอกและเลือกค่า พารามิเตอร์- พารามิเตอร์ในรูปแบบ 1C ระบุด้วยวงเล็บปีกกา “<>».
ส่วนหัวของแบบฟอร์มที่พิมพ์ควรโดดเด่นเหนือข้อความอื่นๆ ดังนั้นให้เลือกเซลล์อีกครั้งและใช้ไอคอนบนแผงการจัดรูปแบบเค้าโครงเพื่อตั้งค่าการจัดแนวข้อความ อยู่ตรงกลางและขนาดตัวอักษร 14
หลังจากข้อความชื่อเรื่อง เราจะแสดงมันในพื้นที่ หมวกข้อมูลเกี่ยวกับองค์กร คู่สัญญา ข้อตกลงคู่สัญญา และวันที่รับสินค้า เนื่องจากข้อมูลทั้งหมดนี้นำมาจากเอกสารด้วย เราจึงทำให้เป็นทางการด้วยพารามิเตอร์ด้วย นอกจากนี้ ก่อนแต่ละพารามิเตอร์คุณควรเขียนข้อความอธิบายเพื่อให้ผู้ใช้สามารถเข้าใจได้ง่ายว่าองค์กรอยู่ที่ไหน คู่สัญญาอยู่ที่ไหน ฯลฯ การกระทำทั้งหมดนี้คล้ายกับการตั้งชื่อ ดังนั้นฉันจะไม่เจาะลึกรายละเอียด ฉันจะให้ภาพว่าจะเกิดอะไรขึ้นในท้ายที่สุด
รูปภาพนี้แสดงให้เห็นว่าพารามิเตอร์โครงร่างแตกต่างจากข้อความปกติอย่างไร
การเพิ่มส่วนหัวของตารางเค้าโครง
สิ่งสุดท้ายที่เราต้องสร้างในพื้นที่เลย์เอาต์นี้คือส่วนหัวของตารางซึ่งจะแสดงข้อมูลของส่วนที่เป็นตาราง สินค้า- คอลัมน์ที่จำเป็นสำหรับตารางได้อธิบายไว้ในส่วน "คำชี้แจงปัญหา" นอกจากนี้เรายังจะสร้างส่วนหัวของตารางโดยใช้การรวมกันของเซลล์และการเขียนข้อความ (ชื่อคอลัมน์) เลือกเส้นขอบของส่วนหัวของตารางโดยใช้เครื่องมือ กรอบซึ่งอยู่ในแผงการจัดรูปแบบเค้าโครง
การเพิ่มตารางลงในเค้าโครง
มาสร้างพื้นที่อื่นในเลย์เอาต์กัน - ข้อมูล- ตารางข้อมูลของส่วนตารางจะปรากฏขึ้น สินค้า.สำหรับพื้นที่นี้ เราต้องการเค้าโครงเพียงบรรทัดเดียวเท่านั้น ในการแสดงแถวทั้งหมดของส่วนที่เป็นตารางในรูปแบบที่พิมพ์ เราจะกรอกและแสดงพื้นที่นี้ตามจำนวนครั้งที่ต้องการ คอลัมน์ในพื้นที่ ข้อมูลควรตรงกับคอลัมน์ของส่วนหัวของตาราง ดังนั้น การกรอกข้อมูลจึงไม่ใช่เรื่องยาก ข้อแตกต่างเพียงอย่างเดียวคือในพื้นที่ ข้อมูลเราต้องการพารามิเตอร์ ไม่ใช่แค่ข้อความ โปรดทราบว่าตามค่าเริ่มต้น พารามิเตอร์ตัวเลขจะถูกจัดรูปแบบทางด้านขวา และพารามิเตอร์ข้อความจะถูกจัดรูปแบบไปทางซ้าย หากต้องการเลือกคอลัมน์ คุณต้องใช้เครื่องมือนี้ด้วย กรอบ.
การเพิ่มส่วนท้ายให้กับเค้าโครง
พื้นที่เค้าโครงสุดท้ายที่เราต้องการคือ ชั้นใต้ดิน- มันจะแสดงผลรวมตามปริมาณและจำนวน การสร้างก็เหมือนกับการสร้างพื้นที่ ข้อมูลแต่ควรเน้นผลลัพธ์ด้วยตัวหนาด้วย
ผลลัพธ์ที่ได้ควรเป็นเค้าโครงที่มีลักษณะดังนี้:
การสร้างแบบฟอร์มการพิมพ์ 1C การเขียนโปรแกรม
มาเริ่มเขียนโปรแกรมกัน - นี่เป็นขั้นตอนที่สำคัญที่สุดในการสร้างแบบฟอร์มที่พิมพ์ ก่อนอื่น มาดูโมดูลออบเจ็กต์แบบฟอร์มการพิมพ์ภายนอก นี่คือที่ที่เราจะเขียนโปรแกรม หากต้องการทำสิ่งนี้ ให้คลิกในหน้าต่างการประมวลผลภายนอกหลัก การดำเนินการ -> เปิดโมดูลวัตถุ
คุณต้องสร้างฟังก์ชันการส่งออกในโมดูลออบเจ็กต์แบบฟอร์มการพิมพ์ภายนอก ผนึก().
ฟังก์ชั่น Print() ส่งออก EndFunction
โปรดทราบว่าคุณสมบัตินี้จำเป็นสำหรับแบบฟอร์มการพิมพ์ภายนอกในการกำหนดค่าโดยใช้แอปพลิเคชันทั่วไป รหัสโปรแกรมถัดไปทั้งหมดที่จำเป็นในการแสดงแบบฟอร์มที่พิมพ์จะถูกเขียนไว้ภายในฟังก์ชันนี้
การเริ่มต้นตัวแปรพื้นฐาน
เรามาสร้างตัวแปรกัน แท็บด็อกซึ่งจะมีเอกสารสเปรดชีต - นี่คือแบบฟอร์มที่พิมพ์ซึ่งเราจะแสดงพื้นที่ที่กรอกของเค้าโครง
TabDoc = TabularDocument ใหม่;
ให้เป็นตัวแปร เค้าโครงเราจะได้เค้าโครงแบบฟอร์มการพิมพ์ที่เราสร้างขึ้น ในการทำเช่นนี้เราใช้ฟังก์ชันในตัว รับเค้าโครง(<ИмяМакета>).
เค้าโครง = GetLayout("เค้าโครง");
เราจะแปลงพื้นที่ทั้งหมดของเลย์เอาต์ให้เป็นตัวแปร เมื่อต้องการทำเช่นนี้ เราใช้วิธีการจัดวาง รับพื้นที่(<ИмяОбласти>) .
HeaderArea = Layout.GetArea("ส่วนหัว"); AreaData = Layout.GetArea("ข้อมูล"); AreaFooter = Layout.GetArea("ส่วนท้าย");
การแสดงผลส่วนหัวของแบบฟอร์มที่พิมพ์ลงในเอกสารสเปรดชีต
ตัวแปรที่จำเป็นทั้งหมดได้รับการเตรียมใช้งานแล้ว มาเริ่มกรอกและแสดงพื้นที่เค้าโครงในเอกสารสเปรดชีตกันดีกว่า ก่อนอื่น เรามากรอกชื่อเรื่องของแบบฟอร์มที่พิมพ์ได้ เพื่อสิ่งนี้ เราจำเป็นต้องส่งผ่านพารามิเตอร์ ข้อความชื่อเรื่องซึ่งเราสร้างขึ้นในเค้าโครง ข้อความที่เราต้องการ ในการกรอกค่าพารามิเตอร์สำหรับพื้นที่เลย์เอาต์จะมีคอลเลกชันพิเศษที่เรียกว่า - ตัวเลือกจากที่ผ่าน “” คุณสามารถรับพารามิเตอร์ใดก็ได้ ในข้อความส่วนหัว เราจะถ่ายโอนข้อความ: "แบบฟอร์มที่พิมพ์" รวมถึงหมายเลขเอกสาร
Header Area.Parameters.TitleText = "พิมพ์แบบฟอร์ม"+LinkToObject.Number;
เราจะกรอกพารามิเตอร์ที่เหลือของส่วนหัวในลักษณะเดียวกัน เราจะรับค่าที่จำเป็นทั้งหมดจากรายละเอียด การอ้างอิงวัตถุซึ่งมีลิงค์ไปยังเอกสารที่จะพิมพ์
HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Header Area.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;
กรอกพารามิเตอร์ทั้งหมดของส่วนหัวแล้วเราจะแสดงในเอกสารสเปรดชีตที่เราสร้างขึ้นซึ่งเราใช้วิธีการนี้ เอาท์พุต(<Область>) .
TabDoc.Output(พื้นที่ส่วนหัว);
การเขียนคำร้องขอความพิการแบบพิมพ์
มาเริ่มถมและวาดพื้นที่กัน ข้อมูล- การสร้างแบบฟอร์มที่พิมพ์ 1C ยังเกี่ยวข้องกับการเขียนแบบสอบถาม เราจำเป็นต้องใช้เพื่อรับข้อมูลแบบตาราง สินค้าและราคา ระบบการตั้งชื่อสำหรับวันที่ปัจจุบันเราจะใช้ ขอ- ภาษาคิวรี 1C 8 นั้นคล้ายกับ SQL หรือค่อนข้างจะคัดลอกความสามารถของตัวดำเนินการ SELECT แต่คิวรีทั้งหมดเขียนเป็นภาษารัสเซีย ดังนั้นหากคุณคุ้นเคยกับ SQL อย่างน้อยก็คลุมเครือคุณก็จะเข้าใจภาษาคิวรี 1C 8 ได้อย่างง่ายดาย
ในรูปแบบที่พิมพ์ออกมานี้ คำขอจะค่อนข้างง่ายและหลายคนบอกว่าจะสามารถทำได้หากไม่มี แต่ความรู้เกี่ยวกับภาษาคิวรีและความสามารถในการใช้อย่างถูกต้องเป็นหนึ่งในทักษะหลักของโปรแกรมเมอร์ 1C การสืบค้นช่วยให้คุณได้รับตัวอย่างข้อมูลที่ซับซ้อนโดยใช้ทรัพยากรน้อยลง และข้อความการสืบค้นนั้นเข้าใจได้ง่ายกว่าโค้ดโปรแกรมที่เขียนโดยไม่ต้องใช้การสืบค้น (หรือใช้งานเพียงเล็กน้อย) นอกจากนี้ 1C 8 ยังมีตัวออกแบบแบบสอบถามที่ดีมากซึ่งช่วยให้คุณสามารถรวบรวมแบบสอบถามจากตารางที่จำเป็นแบบโต้ตอบได้
มาสร้างตัวแปรที่จะมีการร้องขอกัน
คำขอ = คำขอใหม่;
เราจะเขียนข้อความแบบสอบถามโดยใช้ตัวสร้างแบบสอบถาม เริ่มต้นด้วยการเขียน:
คำขอข้อความ = "";
วางเคอร์เซอร์ของเมาส์ระหว่างเครื่องหมายคำพูดแล้วกดปุ่มเมาส์ขวา ในเมนูบริบทที่เปิดขึ้น ให้เลือกรายการ ขอตัวสร้างมันจะช่วยเราได้มากในการสร้างแบบฟอร์มการพิมพ์ 1C หลังจากนี้ หน้าต่างตัวออกแบบแบบสอบถามจะเปิดขึ้น โดยมีหลายแท็บ แต่สำหรับการสืบค้นของเรา เราจะต้องการเพียงสี่แท็บ: "ตารางและฟิลด์", "ความสัมพันธ์", "เงื่อนไข", "การรวม / นามแฝง"
สำหรับการสืบค้นของเรา เราจำเป็นต้องมีตารางสองตาราง: ส่วนของตาราง สินค้าเอกสาร การรับสินค้าและบริการและภาพรวมข้อมูลล่าสุด ณ วันที่ลงทะเบียนปัจจุบัน ราคาสินค้า.
ทางด้านซ้ายของหน้าต่างตัวออกแบบเราจะพบคอลัมน์ ฐานข้อมูล- มันมีแผนผังของออบเจ็กต์ข้อมูลเมตาทั้งหมด เรามาค้นหาสิ่งที่เราต้องการกันดีกว่า เมื่อต้องการทำเช่นนี้ เรามาเปิดเธรดกัน เอกสารและค้นหาเอกสาร การรับสินค้าและบริการมาเปิดดูส่วนที่เป็นตารางกันดีกว่า สินค้าให้ลากลงในคอลัมน์ของตัวออกแบบคิวรี ตาราง- คุณสามารถลากได้สามวิธี: โดยการลาก โดยการดับเบิลคลิกบนโต๊ะ หรือโดยการเลือกและคลิกปุ่ม ">" มาเปิดกระทู้กันเถอะ ทะเบียนข้อมูลและหาโต๊ะที่นั่น ราคาระบบการตั้งชื่อทางลัดล่าสุดแล้วลากไปไว้ในคอลัมน์ด้วย ตาราง- สองตารางนี้เพียงพอสำหรับการสืบค้นของเรา
เลือกฟิลด์ที่เราต้องการจากตารางผลลัพธ์ เมื่อต้องการทำเช่นนี้ในคอลัมน์ ตารางมาเปิดโต๊ะกันเถอะ และค้นหาฟิลด์: ระบบการตั้งชื่อ จำนวน ราคา ปริมาณและลากไปที่คอลัมน์ที่สามของตัวสร้าง - เขตข้อมูล- มาขยายตารางกันดีกว่า เรามาค้นหาสนามกันเถอะ ราคาและยังลากไปที่ เขตข้อมูล.
โครงสร้างของตารางและฟิลด์คำขอของเราพร้อมแล้ว ตอนนี้เรามาดูเงื่อนไขกันดีกว่า เราต้องการข้อมูลแบบตาราง สินค้าไม่ได้ถูกพรากไปจากใบเสร็จรับเงินทั้งหมด แต่มาจากใบเสร็จที่เราพิมพ์เท่านั้น เมื่อต้องการทำเช่นนี้ เราจะกำหนดเงื่อนไขไว้บนโต๊ะ การรับสินค้าบริการสินค้า- ไปที่แท็บ "เงื่อนไข" ของตัวออกแบบแบบสอบถาม ในคอลัมน์ เขตข้อมูลตารางที่เราเลือกไว้ก่อนหน้านี้ตั้งอยู่แล้ว สำหรับเงื่อนไขที่เราจะต้องมีฟิลด์ ลิงค์จากโต๊ะ การรับสินค้าและบริการลองลากมันไปไว้ในหน้าต่างเงื่อนไข
ในแบบสอบถาม 1C คุณสามารถใช้พารามิเตอร์ได้ ซึ่งจำเป็นสำหรับการถ่ายโอนข้อมูลไปยังคำขอ ตัวอย่างเช่น หากเราต้องการจำกัดการเลือกเอกสารให้อยู่ในเอกสารใดเอกสารหนึ่ง เราสามารถใช้พารามิเตอร์เพื่อส่งลิงก์ไปยังเอกสารนี้ไปยังคำขอ และใช้พารามิเตอร์นี้ในเงื่อนไข นี่คือสิ่งที่เราจะทำตามคำขอของเรา
หลังหน้าต่าง เงื่อนไขเราเพิ่มฟิลด์ ลิงค์ตัวออกแบบแบบสอบถามจะสร้างพารามิเตอร์ที่มีชื่อเดียวกันและวางไว้หลังเครื่องหมาย “=” พารามิเตอร์นี้สามารถเปลี่ยนชื่อได้หากต้องการ ในข้อความคำขอ พารามิเตอร์จะถูกทำเครื่องหมายด้วยเครื่องหมาย "&" แต่ในกรณีนี้ไม่จำเป็น เนื่องจากถือว่าส่วนที่สองของเงื่อนไขมีพารามิเตอร์ คุณเพียงแค่ต้องจำสิ่งนี้ไว้ วิธีส่งค่าไปยังพารามิเตอร์คำขอ 1C จะกล่าวถึงด้านล่าง
เนื่องจากในคำขอเราไม่ได้ใช้ตารางราคาผลิตภัณฑ์ที่สมบูรณ์ แต่เป็นตารางเสมือน (ส่วนหลังในกรณีนี้) เราจำเป็นต้องกำหนดเงื่อนไขสำหรับการก่อตัวของตารางเสมือนนี้ ในกรณีของเรา นี่คือ วันตัดยอดและเงื่อนไขประเภทราคา (ราคาที่มีประเภทราคากำหนดอย่างเคร่งครัดคือราคาที่ระบุไว้ในเอกสารใบเสร็จรับเงินที่เราพิมพ์)
หากต้องการกรอกพารามิเตอร์ของตารางเสมือน ให้ไปที่แท็บ ตารางและเขตข้อมูลตัวสร้างแบบสอบถามในคอลัมน์ ตารางเลือกตาราง ราคาระบบการตั้งชื่อการตัดล่าสุดและกดปุ่ม ตัวเลือกตารางเสมือนตั้งอยู่ที่ด้านบนสุด ในหน้าต่างที่เปิดขึ้นในสนาม ระยะเวลาคุณควรตั้งค่าพารามิเตอร์ที่จะผ่านวันที่ที่จะทำการลดราคา ในกรณีของเรา นี่จะเป็นวันที่ปัจจุบัน (นั่นคือ วันนี้) ดังนั้นเราจะเรียกพารามิเตอร์ “&CurrentDate” ในช่องเงื่อนไข เราจะเขียนเงื่อนไขสำหรับประเภทราคา เราจะส่งเงื่อนไขดังกล่าวในพารามิเตอร์ด้วย ซึ่งเราจะเรียกว่า "&ประเภทราคา" สภาพผลลัพธ์จะมีลักษณะเช่นนี้ (โดยที่ ประเภทราคา- ลงทะเบียนการวัด ราคาสินค้า):
ประเภทราคา = &ประเภทราคา
กรอกพารามิเตอร์ตารางเสมือนแล้วคลิกปุ่ม ตกลง.
ตอนนี้เราได้จำกัดการเลือกเฉพาะเอกสารที่เราต้องการแล้ว เรามาสร้างการเชื่อมต่อระหว่างตารางแบบสอบถามกันดีกว่า หากยังไม่เสร็จสิ้น ราคาจากตาราง PriceNomenclatureSliceLast จะไม่เชื่อมโยงกับสินค้าจากใบเสร็จรับเงิน ไปที่แท็บกันเถอะ การเชื่อมต่อผู้ออกแบบแบบสอบถาม มาสร้างการเชื่อมต่อข้ามสนามกันเถอะ ศัพท์ระหว่างโต๊ะทั้งสองของเรา โดยกดปุ่ม เพิ่มในสนาม ตารางที่ 1เลือกตาราง การรับสินค้าบริการสินค้าและในฟิลด์ ตารางที่ 2 - ราคาระบบการตั้งชื่อSliceLast. ในเงื่อนไขการสื่อสาร ให้เลือกฟิลด์ ศัพท์จากทั้งสองตาราง
ควรสังเกตด้วยว่าในการเลือกแบบสอบถามเราจำเป็นต้องได้รับแถวทั้งหมดจากส่วนของแท็บ สินค้าและราคาเฉพาะเมื่อมีในวันที่ปัจจุบันสำหรับประเภทราคาเอกสาร ดังนั้นข้อมูลแบบตาราง สินค้าจำเป็นต้องระบุ แต่ไม่มีข้อมูลรายละเอียดราคา ดังนั้นในความสัมพันธ์ระหว่างตารางเหล่านี้จึงจำเป็นต้องใช้สิ่งที่เรียกว่า LEFT JOIN และตารางด้านซ้าย (หรือจำเป็น) จะเป็น การรับสินค้าบริการสินค้าและด้านขวา (หรือทางเลือก) PriceNomenclatureSliceLast เพื่อให้การรวมด้านซ้ายของตารางคิวรีทำงานตามที่อธิบายไว้ข้างต้น คุณต้องทำเครื่องหมายในช่อง ทั้งหมดหลังสนาม ตารางที่ 1.
คำขอเกือบจะพร้อมแล้ว สิ่งที่เหลืออยู่คือการทำงานเล็กน้อยกับนามแฝงของฟิลด์ ไปที่บุ๊กมาร์กกันเถอะ สหภาพแรงงาน/นามแฝงและตั้งชื่อแทนให้กับฟิลด์ ราคาระบบการตั้งชื่อ Slice ล่าสุดราคา- ชื่อเล่นจะเป็น - ราคาวันนี้จำเป็นเพื่อให้ชื่อของฟิลด์การเลือกแบบสอบถามและชื่อของพารามิเตอร์ในเค้าโครงแบบฟอร์มที่พิมพ์ตรงกัน
ขณะนี้งานในตัวออกแบบแบบสอบถามเสร็จสมบูรณ์แล้ว คลิกตกลง หลังจากที่หน้าต่างตัวออกแบบปิดลง คุณจะเห็นว่ามีการกรอกบรรทัดพร้อมข้อความคำขอและมีลักษณะดังนี้:
Request.Text = "SELECT | Receipt of GoodsServicesProducts.Nomenclature, | Receipt of GoodsServicesProducts.Amount, | Receipt of GoodsServicesProducts.Price, | Receipt of GoodsServicesProducts.Quantity, | PriceNomenclature Slice of Last.Price AS PriceToday | FROM | เอกสาร ใบเสร็จรับเงินของ GoodsServices.Goods AS Receipt ProductsServices Products |. การเชื่อมต่อด้านซ้าย
ดำเนินการตามคำขอ
เราจะส่งพารามิเตอร์ที่จำเป็นไปยังคำขอ เพื่อสิ่งนี้เราจะใช้วิธีการร้องขอ ตั้งค่าพารามิเตอร์(<ИмяПараметра>,<Значение>).
หากต้องการรับวันที่ปัจจุบัน ให้ใช้ฟังก์ชันในตัว วันที่ปัจจุบัน()จะส่งกลับวันที่และเวลาของคอมพิวเตอร์
มาเรียกใช้แบบสอบถามเพื่อรับตัวอย่างพร้อมข้อมูลที่เราต้องการ เมื่อต้องการทำเช่นนี้ ขั้นแรกให้ใช้วิธีการร้องขอ วิ่ง()แล้วก็วิธีการ เลือก().
เลือก = Query.Run().Select();
กรอกตารางแบบฟอร์มที่พิมพ์
เป็นผลให้ในตัวแปร ตัวอย่างจะมีผลลัพธ์การสืบค้นให้เลือกมากมาย คุณสามารถนำทางผ่านมันได้โดยใช้วิธีการ ต่อไป()และเพื่อที่จะผ่านทุกสิ่ง คุณต้องมีการวนซ้ำ ลาก่อน- การออกแบบจะเป็นดังนี้:
ในขณะที่ Select.Next() วนรอบ EndLoop;
ในวงนี้เราจะเติมและแสดงพื้นที่เค้าโครง ข้อมูล- แต่ก่อนอื่น เรามาเริ่มต้นตัวแปรสองตัวที่เป็นตัวเลขกันก่อน ในนั้นเราจะรวบรวมผลรวมตามปริมาณและจำนวนที่เราต้องแสดงในพื้นที่ ชั้นใต้ดิน.
ผลรวมทั้งหมด = 0; ปริมาณทั้งหมด = 0;
ภายในวงเราจะเติมเต็มพื้นที่ ข้อมูลข้อมูลจากองค์ประกอบการเลือกปัจจุบันเป็นตัวแปร ยอดรวมและ ปริมาณทั้งหมดเพิ่มค่าผลรวมและปริมาณ และสุดท้ายแสดงพื้นที่ในเอกสารสเปรดชีตโดยใช้วิธีที่เราคุ้นเคยอยู่แล้ว เอาท์พุต()- เนื่องจากชื่อของฟิลด์คำขอของเราตรงกับชื่อของพารามิเตอร์พื้นที่อย่างสมบูรณ์ ข้อมูลจากนั้นในการกรอกข้อมูลเราจะใช้ขั้นตอนในตัว FillPropertyValues(<Приемник>, <Источник>) ซึ่งคัดลอกค่าคุณสมบัติ<Источника>ถึงคุณสมบัติ<Приемника>.
ในขณะที่ Selection.Next() วนซ้ำ FillPropertyValues (AreaData.Parameters, Selection);
TotalSum = TotalSum + ตัวอย่างผลรวม;
TotalQuantity = TotalQuantity + ตัวอย่าง.ปริมาณ; ชั้นใต้ดิน TabDoc.Output(AreaData); สิ้นสุดรอบ;
การส่งออกส่วนท้ายของแบบฟอร์มที่พิมพ์ออกมาลงในเอกสารสเปรดชีต
ยังคงเติมและแสดงพื้นที่สุดท้ายของเค้าโครง -- เราได้เตรียมข้อมูลสำหรับการกรอก กรอก และถอนเงินไว้แล้วตามแผนเดียวกัน AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);เอกสารสเปรดชีต
กรอกเรียบร้อยแล้ว เหลือเพียงการแสดงบนหน้าจอเพื่อให้ผู้ใช้สามารถดูแบบฟอร์มที่พิมพ์และพิมพ์ได้หากจำเป็น แต่ในการกำหนดค่า 1C 8 โดยทั่วไปขั้นตอนของโมดูลพิเศษมีหน้าที่รับผิดชอบในการส่งออกแบบฟอร์มที่พิมพ์ภายนอก ดังนั้นจึงเพียงพอแล้วที่จะกลับจากฟังก์ชัน
ผนึก() AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);เอกสารสเปรดชีตที่เสร็จสมบูรณ์
กลับ TabDoc;
ณ จุดนี้ ขั้นตอนการเขียนโปรแกรมเสร็จสมบูรณ์ และการสร้างแบบฟอร์มการพิมพ์ 1c ก็เกือบจะเสร็จสมบูรณ์แล้ว ข้อความเต็มของฟังก์ชัน
ฉันจะไม่ให้มันที่นี่ คุณสามารถดูได้ในไฟล์ที่พิมพ์ได้ ซึ่งคุณสามารถดาวน์โหลดได้ที่ด้านล่างของบทความ
- การสร้างแบบฟอร์มการพิมพ์ 1C ตัวเลือกการลงทะเบียนอัตโนมัติ
- เมื่อเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกเข้ากับฐานข้อมูล ระบบจะไม่กำหนดโดยอัตโนมัติว่าเอกสารหรือสมุดอ้างอิงใดที่จะใช้กับแบบฟอร์มการพิมพ์ คุณต้องเลือกด้วยตนเอง และหากมีบุคคลอื่นเขียนแบบฟอร์มที่พิมพ์ออกมา และคุณมีหน้าที่เชื่อมต่อแบบฟอร์มนั้นเท่านั้น ตัวเลือกนั้นอาจไม่ชัดเจน เพื่อหลีกเลี่ยงปัญหาดังกล่าว จำเป็นต้องสร้างเลย์เอาต์พร้อมพารามิเตอร์การลงทะเบียนอัตโนมัติในรูปแบบที่พิมพ์ภายนอกทั้งหมด หากมีการสร้างและจัดรูปแบบอย่างถูกต้อง ระบบจะกำหนดแบบฟอร์มที่พิมพ์ไว้สำหรับเอกสารหรือสมุดอ้างอิงใดโดยอัตโนมัติ มันทำได้ดังนี้:ในการประมวลผลภายนอก เราสร้างเค้าโครงใหม่ เราเรียกมันว่า "Settings_Auto-registration" (สิ่งสำคัญคืออย่าทำผิดพลาด!) ในเซลล์แรกของเค้าโครงที่เราเขียนเอกสาร.
(หรือ
- ไดเรกทอรี ) และชื่อของเอกสารที่คุณต้องการเชื่อมต่อกับแบบฟอร์มที่พิมพ์
- การเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกเข้ากับฐาน บริการ -> รายงานและการประมวลผลเพิ่มเติม -> แบบฟอร์มที่พิมพ์ภายนอกเพิ่มเติม;
- คลิกปุ่ม เพิ่ม;
- ในหน้าต่างที่เปิดขึ้น ให้คลิกไอคอน แทนที่ไฟล์ประมวลผลภายนอก;
- หากคุณได้สร้างพารามิเตอร์การลงทะเบียนอัตโนมัติ เราก็ตกลงที่จะใช้พารามิเตอร์เหล่านั้น
- หากคุณไม่ได้สร้างพารามิเตอร์การลงทะเบียนอัตโนมัติให้ในส่วนตาราง อุปกรณ์เสริมแผ่นพิมพ์เพิ่ม เอกสารที่จำเป็นหรือหนังสืออ้างอิง
- กดปุ่ม ตกลง.
หลังจากนี้ แบบฟอร์มการพิมพ์ภายนอกจะสามารถใช้ได้ในเมนู ผนึกเอกสาร การรับสินค้าและบริการการสร้างแบบฟอร์มการพิมพ์ 1C ถือว่าเสร็จสมบูรณ์แล้ว
ชีวิตดำเนินต่อไป การเปลี่ยนแปลงกฎหมาย นักพัฒนาเผยแพร่การอัปเดตการกำหนดค่า และเรามีทางเลือกอีกครั้ง: ติดตั้งการอัปเดตด้วยตนเองหรือโทรหาโปรแกรมเมอร์อีกครั้งเพื่อ "ติดตั้งรุ่นใหม่"...
มาทำความรู้จักกับกลไกการเปลี่ยนแบบฟอร์มการพิมพ์โดยไม่ต้องเปลี่ยนการกำหนดค่ากันดีกว่า
ในทางปฏิบัติของนักบัญชีทุกคนที่ใช้ 1C จำเป็นต้องแก้ไขการกำหนดค่าด้วยตนเอง: มีคนปรับความถูกต้องของราคาหรือจำนวนเงินในใบแจ้งหนี้ มีคนใส่โลโก้และปรับเปลี่ยน รูปร่างใบแจ้งหนี้. ทุกอย่างจะเรียบร้อยดี แต่เมื่อเวลาผ่านไปการเปลี่ยนแปลงจำนวนมากเหล่านี้ก็สะสมและเมื่อถึงเวลาที่ต้องอัปเดตรุ่น ก็เกิดภาวะที่กลืนไม่เข้าคายไม่ออก: สูญเสียการเปลี่ยนแปลงทั้งหมดที่ทำขึ้นหรือโทรหาโปรแกรมเมอร์เพื่อถ่ายโอนการเปลี่ยนแปลงทั้งหมดไปยังรุ่นใหม่ ( แน่นอนโดยมีค่าธรรมเนียมเพิ่มเติม) เป็นไปได้ยังไง? เพื่อให้การอัปเดตการกำหนดค่าง่ายขึ้น นักพัฒนาได้สร้างกลไกใหม่: "การประมวลผลภายนอก แบบฟอร์มที่พิมพ์ การประมวลผลสำหรับการกรอกส่วนตาราง" วันนี้เราจะดูเพียงส่วนหนึ่งของกลไกนี้ - แบบฟอร์มการพิมพ์
วิชาใดก็ตามจะเรียนรู้ได้ดีที่สุดโดยการเป็นตัวอย่าง มากำหนดงานต่อไปนี้: เพิ่มความสามารถในการพิมพ์ใบแจ้งหนี้ (document “การขายสินค้าและบริการ”) พร้อมโลโก้บริษัทของเรา นอกจากนี้จำเป็นต้องมีจารึกไว้ในส่วนหัวของเอกสาร "ผู้จัดหา"และ "ผู้ซื้อ"ถูกเน้นด้วยตัวหนา และสุดท้าย ที่ด้านล่างของเอกสารจำเป็นต้องมีที่สำหรับลายเซ็นของบริการรักษาความปลอดภัยที่อนุมัติการจัดส่ง
มาแนะนำสองกัน เงื่อนไขเพิ่มเติม:
- แบบฟอร์มที่พิมพ์ใหม่ควรแทนที่แบบฟอร์มเก่า "ใบแจ้งหนี้"
- ไม่สามารถเปลี่ยนแปลงการกำหนดค่าได้ เนื่องจากเราต้องการใช้การอัปเดตการกำหนดค่าอัตโนมัติในอนาคต
แล้วงานอะไรล่ะ? ดูเหมือนซับซ้อนเกินไป? ยิ่งมันซับซ้อนเท่าไหร่ก็ยิ่งน่าสนใจมากขึ้นเท่านั้น และยิ่งคุณอยากจะแก้ไขมันมากเท่าไร จากนั้นไปทำงาน
เราเปิดตัวฐานข้อมูลของเราในโหมด Configurator เปิดการกำหนดค่าโดยเลือกคำสั่งในเมนูหลัก "การกำหนดค่า > เปิดการกำหนดค่า"- เราจะไม่เปลี่ยนแปลงการกำหนดค่าไม่ว่าในกรณีใด ๆ เราจะใช้เป็นต้นแบบ เราจะทำงานหลักที่นี่ แต่เราจะแก้ไขการประมวลผลภายนอก เราสร้างการประมวลผลภายนอกด้วยคำสั่งในเมนูหลัก "ไฟล์ > ใหม่"- การเลือกประเภทของเอกสาร “การประมวลผลภายนอก”- สำหรับการประมวลผลครั้งแรก เรามาตั้งชื่อกันดีกว่า "ใบแจ้งหนี้ที่มีตราสินค้า"
สำคัญ! ชื่อการประมวลผลต้องไม่มีการเว้นวรรค เช่นเดียวกับชื่อตัวแปร
ตอนนี้เรามาทำกันสักหน่อย "การลอกเลียนแบบ"- มาคัดลอกเค้าโครงกัน "ใบแจ้งหนี้"จากเอกสาร "การขายสินค้าและบริการ"- เมื่อต้องการทำเช่นนี้เราจะพบมันในสาขา "เอกสาร"ต้นไม้การกำหนดค่า ขยายกระทู้นี้โดยคลิกที่ไอคอน «+» และค้นหาเค้าโครงที่เราต้องการ "ใบแจ้งหนี้"(มันอยู่ในกระทู้. "เค้าโครง"- ในการคัดลอกออบเจ็กต์นี้ คุณต้องเลือกเค้าโครงนี้ในแผนผังและรันคำสั่ง "แก้ไข > คัดลอก"(การกระทำเดียวกันนี้เกิดขึ้นกับการรวมกัน CTRL+ซี- ตอนนี้ไปที่การประมวลผลที่เราสร้างขึ้น เลือกป้ายกำกับในแผนผัง "เค้าโครง"และในเมนูหลักให้เลือกรายการ - "แก้ไข > วาง" (CTRL+V)- ผลลัพธ์ควรมีลักษณะเหมือนรูปที่ 1
ตอนนี้ดับเบิลคลิกเพื่อเปิดเค้าโครง
"เค้าโครง" คืออะไร
สมมติว่ามีคำสองสามคำเกี่ยวกับวัตถุประสงค์ของเลย์เอาต์
เค้าโครง– สถานที่จัดเก็บ "หน่วยการสร้าง"พื้นที่ที่มีการสร้างเอกสารแบบตารางซึ่งเราคุ้นเคยกับการเรียกแบบฟอร์มที่พิมพ์ออกมาเช่นเดียวกับอิฐ พื้นที่ถูกกำหนดโดยใช้ส่วนแนวนอนและแนวตั้งหรือทางแยก เค้าโครงของเรามีเพียงส่วนแนวนอนเท่านั้น: “ส่วนหัว” “ซัพพลายเออร์” “ผู้ซื้อ” “ส่วนหัวของตาราง” “แถว” (ดูรูปที่ 2)- พื้นที่คือชุดของเซลล์ เช่นเดียวกับใน MS Excel คุณสามารถผสานเซลล์ได้ สีข้อความและพื้นหลัง แบบอักษร และอื่นๆ สามารถเปลี่ยนแปลงได้ คุณสามารถดูและเปลี่ยนแปลงการตั้งค่าเซลล์ทั้งหมดได้ในหน้าต่างคุณสมบัติเซลล์ คุณสามารถเรียกหน้าต่างการตั้งค่าได้โดยคลิกขวาที่เซลล์แล้วเลือกรายการเมนูบริบท "คุณสมบัติ"(ผลลัพธ์เดียวกันนี้ทำได้โดยใช้แป้นพิมพ์ลัด Alt+ป้อน).
เซลล์สามารถมีค่าประเภทใดประเภทหนึ่งจากสามประเภท:
- ข้อความ– ค่าประเภทนี้จะพิมพ์ออกมาในรูปแบบเดียวกัน
- พารามิเตอร์– เซลล์ประเภทนี้ประกอบด้วยชื่อของตัวแปรที่จะพิมพ์ค่า
- ตัวอย่าง– เซลล์ประเภทนี้เป็นการผสมผสานระหว่างตัวเลือกแรกและตัวเลือกที่สอง เซลล์สามารถมีข้อความและตัวแปรได้ เพื่อให้โปรแกรมสามารถแยกแยะข้อความจากตัวแปรได้ ตัวแปรต้องอยู่ในวงเล็บเหลี่ยม: "วันนี้คือ [วันที่]".
สำคัญ!เครื่องมือแก้ไขตารางจะแสดงค่าของเซลล์ประเภทที่สองและสามในวงเล็บเหลี่ยม ในรูปที่ 2 มีเซลล์พร้อมข้อความ "ผู้ซื้อ"- ดูเหมือนข้อความและอยู่ทางด้านขวาของเซลล์ "การนำเสนอของผู้ซื้อ"- พารามิเตอร์
ทำไมฉันถึงเล่าเรื่องทั้งหมดนี้? ตอนนี้คุณรู้แล้วว่าเซลล์ใดที่คุณสามารถเปลี่ยนเนื้อหาได้อย่างง่ายดายและเซลล์ใดที่ไม่พึงประสงค์ในการเปลี่ยนแปลงสิ่งใดเนื่องจากคุณจะต้องทำการเปลี่ยนแปลงอัลกอริธึมการพิมพ์
ให้เรากลับมาที่งานของเราตอนนี้ เราสร้างการประมวลผล คัดลอกเค้าโครง และพร้อมที่จะแก้ไขให้เหมาะกับตัวเราเอง ก่อนอื่นเรามาดูกันดีกว่า
สิ่งที่รวมอยู่ในเค้าโครงที่สามารถพิมพ์ได้
โครงสร้างเค้าโครงของเอกสารทั้งหมดคล้ายกันมาก เมื่อตรวจสอบเอกสารฉบับหนึ่งอย่างละเอียดแล้ว เราก็สามารถเข้าใจเอกสารอื่นๆ ได้ ส่วนแรก "ชื่อ"- เมื่อแสดงส่วนนี้ ส่วนหัวของเอกสารจะถูกสร้างขึ้น ซึ่งประกอบด้วยประเภท วันที่ และหมายเลขเอกสาร ตามด้วยส่วนต่างๆ “ซัพพลายเออร์” และ “ผู้ซื้อ”โดยโปรแกรมจะแสดงข้อมูลเกี่ยวกับซัพพลายเออร์และผู้ซื้อตามลำดับ ถัดไปคือส่วนที่น่าสนใจยิ่งขึ้น "ข้อมูลเพิ่มเติม"ซึ่งนักพัฒนาใช้เพื่อแสดงข้อมูลอื่นๆ ในเอกสาร เช่น ข้อมูลเกี่ยวกับสัญญาพร้อมหมายเลขและวันที่ ลักษณะเฉพาะของส่วนนี้คือสามารถแสดงได้หลายครั้ง และในแต่ละครั้งสามารถมีข้อมูลที่แตกต่างกันได้ จะพิมพ์อะไรกันแน่และเมื่อใดจะอธิบายไว้ในอัลกอริธึมการพิมพ์
ซึ่งจะทำให้ส่วนหัวของเอกสารสมบูรณ์ ส่วนหัวมักจะตามด้วยส่วนตาราง สิ่งที่น่าสนใจคือเค้าโครงนี้อธิบายสองตัวเลือกสำหรับการแสดงส่วนที่เป็นตาราง: “หัวตาราง”, "สตริง" และ "ตำแหน่งตารางส่วนหัว"และ “สตริงเพลส”- ขึ้นอยู่กับว่าคอลัมน์ของคุณเต็มหรือไม่ “เมสท์”ในเอกสารจะใช้ตัวเลือกแรกหรือตัวที่สองสำหรับการแสดงส่วนตารางของเอกสาร ผู้อ่านที่อยากรู้อยากเห็นคงสงสัยอยู่แล้วว่า: ทำไมในส่วนเอาต์พุตส่วนหัว "ราคา"และ "ซำ"อยู่ในวงเล็บเหลี่ยมเหมือนเป็นตัวแปรใช่หรือไม่? ถูกต้อง - สิ่งเหล่านี้คือตัวแปรที่คำจารึกจะปรากฏขึ้นทั้งนี้ขึ้นอยู่กับการตั้งค่าเอกสาร "ราคา", "ราคาพร้อมภาษีมูลค่าเพิ่ม"หรือ "ราคาไม่รวมภาษีมูลค่าเพิ่ม"และในทำนองเดียวกันสำหรับจำนวนเงิน
ด้านล่างในโครงร่างมีส่วนต่างๆ ที่แสดงผลลัพธ์ของเอกสารและลายเซ็น
การแก้ไขเค้าโครง
เป็นการดีที่จะวางโลโก้ไว้เหนือข้อมูลเกี่ยวกับซัพพลายเออร์และผู้ซื้อ ฉันแนะนำให้แก้ไขพื้นที่เค้าโครง "ชื่อ"- จำเป็นต้องลดขนาดของเซลล์ที่มีเนื้อหา "ข้อความชื่อเรื่อง"- เซลล์นี้ประกอบด้วยเซลล์ที่ผสานหลายเซลล์ เราเปลี่ยนขนาดดังนี้:
- มาคัดลอกเนื้อหาของเซลล์ที่ผสานอย่างระมัดระวัง "ข้อความชื่อเรื่อง"(ในการดำเนินการนี้ คุณต้องเลือกเซลล์และใช้คำสั่ง “แก้ไข > คัดลอก” หรือแป้นพิมพ์ลัด CTRL+C)
- เมื่อเลือกเซลล์นี้แล้ว ให้เลือกรายการในเมนูหลัก "ตาราง - ผสาน"ซึ่งจะนำไปสู่ผลตรงกันข้าม - เซลล์ที่ผสานจะถูกแบ่งออกเป็นเซลล์ดั้งเดิมจำนวนมาก
- ตอนนี้เรามาเลือกเซลล์จำนวนน้อยลง - แทนที่จะเป็นเซลล์ 2 ของคอลัมน์ เราจะเริ่มผสานจากคอลัมน์ 6 และสิ้นสุดที่คอลัมน์ 32 - แล้วคลิกที่ปุ่มอีกครั้ง "ผสาน"
- ทีม "แก้ไข > วาง" (CTRL+V)แทรกเนื้อหาของเซลล์ที่ผสานก่อนหน้านี้ลงในเซลล์ที่ผสานใหม่
- เราเพียงแค่ล้างเซลล์ที่ว่างในคอลัมน์ 2 - 5 (เลือกเซลล์เหล่านั้นแล้วกดปุ่ม Delete)
ตอนนี้คุณสามารถแทรกรูปภาพพร้อมโลโก้ลงในพื้นที่ว่างได้ โดยเลือกรายการในเมนู “ตาราง > รูปภาพ > รูปภาพ...”- ค้นหาไฟล์ที่มีโลโก้ของเราบนดิสก์แล้วคลิก “ ตกลง- ตอนนี้ขอย้ายรูปภาพไปยังพื้นที่ว่าง ผลลัพธ์ควรมีลักษณะเหมือนในรูปที่ 3
ตอนนี้เรามาเน้นค่าในเซลล์ด้วยตัวหนา "ผู้จัดหา"และ "ผู้ซื้อ"(รูปที่ 4) เมื่อต้องการทำเช่นนี้ ให้ค้นหาพารามิเตอร์ในคุณสมบัติของเซลล์ "แบบอักษร"และกำหนดสไตล์ให้เป็นตัวหนา
และสุดท้ายก็ยังคงต้องเพิ่มลายเซ็นของบริการรักษาความปลอดภัย เราจะโพสต์ข้อมูลนี้ในส่วน "ลายเซ็น"- หากต้องการพื้นที่สำหรับลายเซ็น คุณต้องขยายส่วนนี้ เลือกบรรทัดที่ 37 คลิกขวาแล้วเลือก "ขยาย"และต่อๆ ไปสองครั้ง ในบรรทัดที่เพิ่มเข้ามาเราจะวางสถานที่สำหรับลายเซ็นของบริการรักษาความปลอดภัย ดังนั้นทุกอย่างควรมีลักษณะเหมือนในรูปที่ 5
สำคัญ!ในการกำหนดค่าทั่วไปจะใช้สองภาษา: รัสเซียและยูเครน เค้าโครงจัดเก็บการแสดงข้อความในทั้งสองภาษา (การออกแบบเซลล์เป็นแบบทั่วไป) ในการป้อนคำจารึกเวอร์ชันภาษายูเครนที่เราเพิ่มเข้าไป คุณต้องไปที่คุณสมบัติของเซลล์และไปที่ฟิลด์ "ข้อความ"กดปุ่ม "ค้นหา"- หน้าต่างจะเปิดขึ้นเพื่อป้อนการแสดงข้อความในภาษาต่างๆ (รูปที่ 6)
วิธีการมั่นใจในการพิมพ์
ดังนั้นเลย์เอาต์จึงพร้อม ตอนนี้เป็นเวลาที่จะทำงานกับอัลกอริธึมในการพิมพ์
เพื่อให้เราสามารถรวมโครงร่างนี้เข้ากับการกำหนดค่าและใช้งานได้อย่างไม่ลำบาก การประมวลผลที่เราสร้างขึ้นจะต้องตรงตามเงื่อนไขต่อไปนี้:
- คุณต้องสร้างอุปกรณ์ประกอบฉากในการประมวลผล "ลิงค์วัตถุ"มีประเภท "อันนี่ลิงค์"
- คุณต้องสร้างขั้นตอนในโมดูลการประมวลผล "พิมพ์() ส่งออก"ไม่มีพารามิเตอร์และต้องระบุ คำหลัก "ส่งออก"
จุดแรกเป็นสิ่งจำเป็นเพื่อให้อัลกอริธึมการพิมพ์รู้ว่าจะรับข้อมูลสำหรับการพิมพ์ได้ที่ไหน และจุดที่สองคืออัลกอริธึมการพิมพ์เอง มาทำตามเงื่อนไขเหล่านี้กัน
ในแผงหน้าต่าง ให้เลือกหน้าต่างสำหรับแก้ไขการประมวลผลของเรา (ในรูปที่ 7) หน้าต่างจะเปิดขึ้นพร้อมกับต้นไม้ของวัตถุสำหรับการประมวลผลของเรา การเลือกสาขา "รายละเอียด"และกดปุ่ม "เพิ่ม"- หน้าต่างคุณสมบัติแอตทริบิวต์จะเปิดขึ้น มาใส่ชื่อกันเถอะ - "ลิงค์วัตถุ"และระบุประเภท "อันนี่ลิงค์"- ตอนนี้เราสามารถไปยังข้อความของโมดูลการพิมพ์ได้แล้ว เราจะไม่เขียนตั้งแต่ต้น แต่จะคัดลอกจากเอกสารแทน "การขายสินค้าและบริการ".
เมื่อต้องการทำเช่นนี้ ให้ค้นหาแผนผังการกำหนดค่าในเอกสารต่างๆ "การขายสินค้าและบริการ"ให้คลิกขวาที่มันแล้วเลือก "เปิดโมดูลวัตถุ"(ดูรูปที่ 8)
นี่จะเป็นการเปิดโมดูลเอกสาร เราต้องการฟังก์ชันแรก “เอกสารการพิมพ์”- ต้องเลือกและคัดลอกข้อความ จะสะดวกมากในการเน้นข้อความของฟังก์ชันเมื่อยุบ แต่คุณต้องเน้นบรรทัดด้านล่างด้วย ไม่เช่นนั้นคุณอาจเสี่ยงต่อการคัดลอกเฉพาะชื่อเรื่องเท่านั้น
ดูในรูปที่ 9 เราได้เน้นชื่อและบรรทัดด้านล่างไว้ หลังจากนั้นให้คัดลอกไปที่คลิปบอร์ด เมนูหลัก "แก้ไข > คัดลอก" (หรือ CTRL+C).
เราได้จดจำข้อความบนคลิปบอร์ดแล้ว ตอนนี้เรามาดำเนินการประมวลผลกันอีกครั้ง "ใบแจ้งหนี้ที่มีตราสินค้า"- คลิกที่ปุ่ม "การกระทำ > เปิดโมดูลออบเจ็กต์"(รูปที่ 10)
วางข้อความที่คัดลอก: "แก้ไข > วาง" (หรือ CTRL+V).
ตอนนี้จำเป็นต้องแก้ไขข้อความที่คัดลอกเล็กน้อยเนื่องจากมันถูกเขียนขึ้นเพื่อพิมพ์เอกสารจากตัวเอกสารเองและเรากำลังรวบรวมจากการประมวลผลภายนอก ในการทำเช่นนี้คุณต้องมี:
- เปลี่ยนชื่อฟังก์ชันเป็น "พิมพ์"
- แทนที่ “วัตถุนี้”บน "ลิงค์วัตถุ"
- แทนที่ “วัตถุนี้”บน "ลิงค์วัตถุ"
- แทนที่ "บัญชีธนาคารขององค์กร"บน “เชื่อมโยงไปยัง Object.Organization บัญชีธนาคาร”
- แทนที่ “ผลิตภัณฑ์ สรุป”บน "LinkToObject.ผลิตภัณฑ์รวม"
สำหรับการดำเนินการเหล่านี้ คุณสามารถใช้รายการเมนูหลักได้ "แก้ไข > แทนที่".
หลังจากนี้ คุณต้องตรวจสอบไวยากรณ์ มีการผสมผสานที่มหัศจรรย์สำหรับสิ่งนี้: CTRL+F7 ด้วยเหตุนี้ ข้อความต่อไปนี้ควรปรากฏขึ้น: "ไม่พบข้อผิดพลาดทางไวยากรณ์!"
ด้วยเหตุนี้เราจึงได้ทำงานสกปรกทั้งหมดเสร็จสิ้นแล้ว ตอนนี้เราสามารถบันทึกผลงานของเราเป็นไฟล์ได้ "Invoice.epf ที่มีตราสินค้า"- ในการดำเนินการนี้คุณต้องเปิดใช้งานหน้าต่างสำหรับการประมวลผลนี้และบันทึกโดยใช้เมนูหลักของโปรแกรม "ไฟล์ > บันทึกเป็น..."- กำลังประมวลผลชื่อไฟล์ – "Invoice.epf ที่มีตราสินค้า"(จะมีการเสนอเป็นค่าเริ่มต้น) คุณสามารถบันทึกไว้บนเดสก์ท็อปของคุณได้ชั่วคราวเพื่อให้ค้นหาได้เร็วยิ่งขึ้นในภายหลัง
สำคัญ!อย่างที่คุณเห็น เราไม่ได้ทำการเปลี่ยนแปลงใดๆ ภายในการกำหนดค่าของเรา สำหรับการดำเนินการทั้งหมดที่อธิบายไว้ข้างต้น คุณไม่จำเป็นต้องลบออกจากการสนับสนุนด้วยซ้ำ (นั่นคือ เปิดใช้งานความสามารถในการเปลี่ยนแปลง)
การเชื่อมต่อการประมวลผลภายนอกกับการกำหนดค่า
ตอนนี้เราสามารถเชื่อมต่อการประมวลผลกับใบแจ้งหนี้ของเราได้แล้ว หากต้องการทำสิ่งนี้ ให้เปิดในโหมด ไปที่เมนู "บริการ"โดยมีจุดที่เกี่ยวข้องกับกลไกอยู่สามจุด “การประมวลผลภายนอก การพิมพ์แบบฟอร์ม การประมวลผลการกรอกชิ้นส่วนแบบตาราง”- ในกรณีของเรา เราต้องการเพียงรายการเท่านั้น “แบบฟอร์มการพิมพ์ภายนอก”(ดูรูปที่ 11)
นี่จะเป็นการเปิดไดเร็กทอรี “การประมวลผลภายนอก”โดยมีให้เลือกตามประเภท “แบบพิมพ์”- โดยจะจัดเก็บรายการแบบฟอร์มที่พิมพ์ภายนอกทั้งหมด โดยระบุว่าต้องใช้เอกสารใดและต้องแสดงในกรณีใดบ้าง
สำคัญ!การประมวลผลนั้นจะถูกจัดเก็บไว้ในฐานข้อมูลพร้อมกับข้อมูลอื่น ๆ นั่นคือหลังจากบันทึกการประมวลผลภายในฐานข้อมูลแล้ว เราจะไม่ต้องการไฟล์ภายนอก
เราจำเป็นต้องสร้างองค์ประกอบใหม่ในไดเร็กทอรี คลิก แทรก- ตอนนี้เรามาดูเนื้อหาขององค์ประกอบกัน เราเพิ่มความหมายให้กับชื่อ คำอธิบายสั้น ๆสาระสำคัญของแบบฟอร์มนี้ เช่น "ใบแจ้งหนี้ของบริษัท"- เช่นเดียวกับไดเร็กทอรีอื่นๆ ก็มีโค้ดเช่นกัน ปล่อยให้มันเป็นค่าเริ่มต้น แอตทริบิวต์ type จะถูกกรอกตามค่าเริ่มต้นและไม่สามารถแก้ไขได้ – “แบบพิมพ์”- และองค์ประกอบสุดท้ายของส่วนหัวคือความคิดเห็น ที่นี่ตามปกติจะมีรายละเอียดเพิ่มเติมเกี่ยวกับวัตถุประสงค์ของแบบฟอร์มการพิมพ์ นอกจากส่วนหัวแล้ว องค์ประกอบของไดเร็กทอรีนี้ยังมีบุ๊กมาร์กอีก 2 อัน ส่วนที่สองประกอบด้วยข้อมูลเกี่ยวกับการจำกัดสิทธิ์การเข้าถึงการประมวลผลนี้ หัวข้อนี้อยู่นอกเหนือขอบเขตของบทความนี้ (เราจะพูดถึงสิ่งนี้และการตั้งค่าสิทธิ์การเข้าถึงอื่น ๆ โดยไม่ต้องแก้ไขการกำหนดค่าในปัญหาที่กำลังจะเกิดขึ้น)
มาดูแท็บแรกกันดีกว่า
แท็บประกอบด้วยสี่คอลัมน์ การแสดงวัตถุ– ประเภทเอกสารที่เราต้องการใช้แบบฟอร์มการพิมพ์ของเรา
การคัดเลือก– เงื่อนไขที่ควรมีแบบพิมพ์นี้ ตัวอย่างเช่น เราได้ออกแบบแบบฟอร์มใบแจ้งหนี้ที่พิมพ์ออกมาใหม่และแปลเป็นภาษาอังกฤษ และเราต้องการให้ลูกค้าจากโฟลเดอร์ "ยุโรป"แทนการพิมพ์แบบมาตรฐาน "ใบแจ้งหนี้"ได้รับการตีพิมพ์ แบบฟอร์มใหม่, บน ภาษาอังกฤษ- เมื่อต้องการทำเช่นนี้ คุณสามารถใช้คอลัมน์ได้ "การคัดเลือก"- ตัวอย่างของการเลือกดังกล่าวแสดงในรูปที่ 13
แต่ในงานของเราไม่จำเป็นต้องเลือก
ไฟล์แบบฟอร์มที่สามารถพิมพ์ได้– ระบุไฟล์ที่จะใช้เค้าโครงและขั้นตอนการพิมพ์ ในเซลล์นี้ คุณต้องเลือกไฟล์ที่เราบันทึกไว้บนเดสก์ท็อป
แผ่นพิมพ์แบบถอดเปลี่ยนได้– หากเราต้องการให้แบบฟอร์มที่พิมพ์ออกมาที่เราสร้างขึ้นมาแทนที่แบบฟอร์มมาตรฐานสำหรับเอกสารนี้ เราต้องระบุว่าจำเป็นต้องเปลี่ยนแบบฟอร์มใด หากไม่มีสิ่งใดให้เลือก แบบฟอร์มที่พิมพ์เพิ่มเติมจะปรากฏขึ้น
ในกรณีของเรา เราจำเป็นต้อง "ใบแจ้งหนี้ที่มีตราสินค้า"ถูกพิมพ์แทนใบแจ้งหนี้ปกติ เมื่อต้องการทำเช่นนี้ ให้เลือกในฟิลด์นี้ "ใบแจ้งหนี้".
ตอนนี้เรามาบันทึกองค์ประกอบนี้กัน และเปิดใบแจ้งหนี้ใดๆ
ควรมีลักษณะดังแสดงในรูปที่ 14
นี่เป็นการสรุปงานที่เราตั้งไว้สำหรับตัวเราเองในตอนต้นของบทความ เราเชื่อว่าเราสามารถแสดงให้เห็นถึงความเป็นไปได้ที่การใช้กลไกนี้จะเปิดขึ้นสำหรับผู้ใช้ การรักษาภายนอก.
เพื่อเสริมสร้างทักษะของคุณคุณสามารถลองเพิ่มแบบฟอร์มที่พิมพ์เพิ่มเติม "ไปยังคลังสินค้า" ให้กับการกำหนดค่าได้อย่างอิสระสำหรับเอกสาร "การรับสินค้าและบริการ" ซึ่งจะทำซ้ำใบแจ้งหนี้ปกติ แต่ไม่มีราคาและจำนวนเงินและจะยัง มีช่องสำหรับป้อนปริมาณที่ยอมรับ
ไม่มีความลับแม้ว่าทุกอย่างในยุคของเราก็ตาม มากกว่าบริษัทต่างๆ กำลังเปลี่ยนไปใช้ เอกสารอิเล็กทรอนิกส์ในทางตรงกันข้าม สุภาษิตโบราณที่ว่า “ถ้าไม่มีกระดาษแผ่นหนึ่ง คุณ...” ก็ไม่ได้สูญเสียความเกี่ยวข้องไป มันเกิดขึ้นด้วยเหตุผลบางประการหน่วยงานตรวจสอบจึงสนใจเอกสารกระดาษเป็นหลัก ดังนั้นหากคุณกระตือรือร้นที่จะใช้งาน การควบคุมทางการเงินโปรแกรม 1C: การบัญชีหรือองค์กร สิ่งสำคัญคือต้องรู้วิธีพิมพ์เอกสารอิเล็กทรอนิกส์ที่สร้างโดยใช้โปรแกรม
แบบฟอร์มที่พิมพ์ใน 1C ช่วยให้คุณสามารถแปลงเอกสารอิเล็กทรอนิกส์เป็นฉบับพิมพ์ได้
ด้วยเหตุนี้ผู้พัฒนาจึงได้จัดเตรียมเครื่องมือที่ยอดเยี่ยม - Print Designer ด้วยความช่วยเหลือนี้ คุณสามารถสร้างเอกสารที่คุณสามารถระบุข้อมูลใด ๆ ที่คุณต้องการ ไม่ใช่แค่แบบฟอร์มมาตรฐานเพียงไม่กี่แบบเท่านั้น โดยเฉพาะอย่างยิ่งสำหรับเอกสารเหล่านั้นที่ไม่มีแบบฟอร์มควบคุมที่เข้มงวดซึ่งไม่สามารถเปลี่ยนแปลงได้ไม่ว่าในกรณีใด ๆ โดยเฉพาะอย่างยิ่งอาจรวมถึงการทำงานให้เสร็จสิ้น ใบแจ้งหนี้หรือการชำระเงินบางส่วน
ในคู่มือนี้ เราเสนอให้เข้าใจความสามารถของ Print Designer พิจารณาว่ามีแบบฟอร์มการพิมพ์ประเภทใดบ้าง และแตกต่างกันอย่างไร เราจะแสดงตัวอย่างวิธีพิมพ์แบบฟอร์มที่สร้างขึ้นด้วย
อันดับแรกควรทำความเข้าใจว่าโดยทั่วไปแล้วแบบฟอร์มที่พิมพ์อยู่ใน 1C 8 นี่คือเทมเพลตสเปรดชีต 1C (เช่น Excel) ซึ่งมีการระบุแถวตัวแปรบางแถวซึ่งเต็มไปด้วยข้อมูลจากโปรแกรมเมื่อวาดเอกสาร
แบบฟอร์มการพิมพ์มีสองประเภท:
- ภายใน (ในตัว) สิ่งเหล่านี้จะถูกเก็บไว้ในการกำหนดค่าโปรแกรม ดังนั้นจึงเป็นการดีกว่าที่จะไม่เปลี่ยนแปลง เนื่องจากปัญหาอาจเกิดขึ้นในภายหลังระหว่างการอัพเดต
- ภายนอก - จัดเก็บแยกต่างหากจากการตั้งค่าโปรแกรม และด้วยความช่วยเหลือเหล่านี้ คุณสามารถสร้างและเตรียมพร้อมสำหรับการพิมพ์เอกสารที่มีความซับซ้อนเกือบทุกชนิด โดยไม่กระทบต่อการกำหนดค่าของโปรแกรม 1C 8
จะเลือกเค้าโครงที่เตรียมไว้ได้อย่างไร? หลังจากที่คุณดำเนินการรายได้หรือค่าใช้จ่าย เช่น เขียนใบรับรองการทำงานให้คลิกปุ่ม "พิมพ์" เพื่อพิมพ์เอกสาร รายการนี้จะแสดงรายการแบบฟอร์มที่สามารถพิมพ์ได้ซึ่งเต็มไปด้วยข้อมูลที่ป้อนเกี่ยวกับธุรกรรมที่ดำเนินการและบริษัทของคุณ เมื่อคลิกประเภทเอกสารที่คุณต้องการ คุณจะเปิดหน้าต่าง ดูตัวอย่างเพื่อให้ท่านสามารถตรวจสอบได้ว่าข้อมูลที่กรอกนั้นถูกต้อง ปุ่มพิมพ์จะพิมพ์เอกสารไปยังเครื่องพิมพ์
ด้วยพื้นฐานเบื้องต้นแล้ว เรามาดูกันดีกว่าว่างานพิมพ์ทั้งหมดของคุณถูกจัดเก็บไว้ที่ไหน มาดูคำถามต่อไปกันดีกว่า
แบบฟอร์มที่พิมพ์เก็บไว้ที่ไหน?
คุณสามารถดูแบบฟอร์มที่พิมพ์ในตัวทั้งในโหมดตัวกำหนดค่าและในโหมดองค์กรปกติ ในกรณีแรกคุณต้องคลิกปุ่มที่เกี่ยวข้องในหน้าต่างเริ่มต้นเมื่อเริ่มโปรแกรม คุณจะเห็นเมนูโปรแกรมค้นหาสาขา "การขายสินค้าและบริการ" ซึ่งมีรายการ "เลย์เอาต์" มักจะมีเพียงสองรายการ - "ใบแจ้งหนี้" และ "พระราชบัญญัติ" คนอื่นๆ อยู่ที่ไหนแล้ว เนื่องจากรายการมีเนื้อหากว้างขวางกว่ามาก พวกเขาแค่ซ่อนตัวอยู่ที่อื่น คุณต้องเปิดสาขา "ทั่วไป" - " เค้าโครงทั่วไป" เค้าโครงเกือบทั้งหมดจะถูกเก็บไว้ในนั้น
ในกรณีที่สอง คุณต้องไปที่ส่วนเมนู "การดูแลระบบ" - "แบบฟอร์มการพิมพ์ รายงานและการประมวลผล" - "เค้าโครงของแบบฟอร์มที่พิมพ์" จะแสดงเค้าโครงเอกสารทั้งหมด เป็นที่น่าสังเกตว่าสามารถแก้ไขได้ในเมนูเดียวกัน
สำหรับแบบฟอร์มภายนอก ก่อนอื่นคุณต้องสร้างแบบฟอร์มผ่านโหมดตัวกำหนดค่าหรือโดยการดาวน์โหลดไฟล์สำเร็จรูป จากนั้นเชื่อมต่อเข้ากับเมนู "การดูแลระบบ" - "แบบฟอร์มที่พิมพ์ รายงานและการประมวลผล" - "รายงานเพิ่มเติมและ กำลังประมวลผล". เราจะพูดถึงเรื่องนี้ในภายหลัง
การสร้างแบบฟอร์มอย่างง่ายโดยใช้ Print Designer ในตัว
แบบฟอร์มที่พิมพ์ออกมาดังกล่าวไม่ได้หมายความถึงความเป็นไปได้ของการแก้ไขเชิงลึกเนื่องจากจะนำมาซึ่งการเปลี่ยนแปลงในการกำหนดค่าโปรแกรมรวมถึงปัญหาเพิ่มเติมเมื่ออัปเดต อย่างไรก็ตาม หากคุณพอใจกับรูปทรงมาตรฐานอย่างสมบูรณ์ หรือต้องการเจาะลึกถึงความซับซ้อนของการสร้างรูปทรงภายนอก วิธีนี้เหมาะสำหรับคุณอย่างยิ่ง
- ก่อนอื่น ให้เปิดในโหมด Configurator ค้นหาเอกสารที่คุณต้องการ เช่น การขายผลิตภัณฑ์และบริการ ในคุณสมบัติของเอกสาร ให้ไปที่ Actions - Designers - Print Designer
- เมื่อได้รับแจ้งให้ระบุตัวเลือกการทำงาน ให้เลือกแบบฟอร์มปกติ
- ตั้งชื่อเค้าโครงใหม่ เช่น "พิมพ์ใบแจ้งหนี้"
- เลือกรายละเอียดที่คุณต้องการดูในส่วนหัวของเอกสาร นอกจากนี้ จะต้องเลือกตามลำดับที่จะแสดง ในการเลือก คุณต้องใช้เคอร์เซอร์ไฮไลต์รายการในคอลัมน์ด้านซ้าย แล้วกดลูกศรตรงกลางหน้าจอเพื่อให้รายละเอียดปรากฏในคอลัมน์ด้านขวา
- ทำเครื่องหมายรายละเอียดที่จะแสดงในส่วนของตาราง การเลือกรายละเอียดเป็นไปตามหลักการเดียวกันกับย่อหน้าก่อนหน้า
- ในทำนองเดียวกัน ให้เลือกรายละเอียดส่วนล่างของเอกสาร
- ในขั้นตอนสุดท้ายของการสร้าง ให้เลือกว่าคุณต้องการพิมพ์ทันทีโดยไม่ต้องแสดงตัวอย่าง หรือไม่ว่าคุณต้องการปกป้องตารางหรือไม่ จากนั้นยืนยันการสร้างแบบฟอร์มด้วยปุ่มตกลง
การสร้างแบบฟอร์มการพิมพ์ภายนอก
แบบฟอร์มที่สร้างผ่าน Print Designer สามารถเปรียบเทียบได้กับโปรแกรมแก้ไขซอฟต์แวร์ภาพ เมื่อคุณไม่ได้ป้อนรหัสทั้งหมดด้วยตนเอง แต่เขียนจากองค์ประกอบที่เสนอเท่านั้น แบบฟอร์มภายนอกเป็นไฟล์ที่มีโค้ดโปรแกรมเขียนเองซึ่งอธิบายขั้นตอนในการแสดงข้อมูลบนหน้าจอ นี่คือสิ่งที่ทำให้คุณสามารถแก้ไขแบบฟอร์มที่พิมพ์ออกมาได้ตามที่คุณต้องการ โดยระบุข้อมูลใด ๆ ตามลำดับใดก็ได้
ข้อได้เปรียบเพิ่มเติมคือแม้ว่าคุณจะไม่เข้าใจหรือเพียงไม่ต้องการเข้าใจความซับซ้อนของการเขียนโปรแกรม 1C 8 คุณก็สามารถมอบความไว้วางใจให้กับมืออาชีพได้ พวกเขาจะสามารถเตรียมแบบฟอร์มที่จำเป็นสำหรับคุณและมอบให้คุณเป็นไฟล์สำเร็จรูป ซึ่งคุณสามารถเปิดใช้งานได้ด้วยการคลิกปุ่มเพียงไม่กี่ครั้งเท่านั้น
ตอนนี้เรามาพูดถึงขั้นตอนเพิ่มเติมกันดีกว่า ลองดูตัวอย่างการสร้างเค้าโครง "ใบแจ้งหนี้" สำหรับเอกสาร "การขาย (การกระทำ, ใบแจ้งหนี้)"
- เปิดโปรแกรม 1C 8 ในโหมด Configurator
- คลิก ไฟล์ - ใหม่ - การประมวลผลภายนอก ตั้งชื่อ (ไม่ควรมีช่องว่าง) จากนั้นคลิก การดำเนินการ - เปิดโมดูลวัตถุ
- ในช่องป้อนข้อมูลที่เปิดขึ้น ให้ป้อนรหัสต่อไปนี้ (ค่าที่สามารถเปลี่ยนเป็นค่าของคุณเองได้จะถูกเน้นด้วยสีเหลือง):
ฟังก์ชั่น InformationOnExternalProcessing() ส่งออก
พารามิเตอร์การลงทะเบียน = โครงสร้างใหม่;
ArrayDestinations = อาร์เรย์ใหม่;
Array of Assignments.Add("Document.Sales of Goods and Services"); //ระบุเอกสารที่เรากำลังพิมพ์ภายนอก รูปร่าง
พารามิเตอร์การลงทะเบียนInsert("View", "PrintForm"); //อาจจะ - PrintableForm, การเติมวัตถุ, รายงานเพิ่มเติม, การสร้างวัตถุที่เกี่ยวข้อง...
พารามิเตอร์การลงทะเบียนInsert("Destination", Array of Destination);
พารามิเตอร์การลงทะเบียนInsert("ชื่อ", "คำสั่งซื้อขายสินค้า"); //ชื่อที่การประมวลผลจะถูกลงทะเบียนในไดเร็กทอรีของการประมวลผลภายนอก
พารามิเตอร์การลงทะเบียนแทรก ("SafeMode", FALSE);
พารามิเตอร์การลงทะเบียนInsert("เวอร์ชัน", "1.0");
Registration Options.Insert("ข้อมูล", "แบบฟอร์มที่พิมพ์ได้นี้ถูกสร้างขึ้นเป็นตัวอย่าง");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "คำสั่งภายนอก", "ExternalOrder", "CallServerMethod", True, "พิมพ์ MXL");
พารามิเตอร์การลงทะเบียนInsert("Commands", CommandTable);
พารามิเตอร์การลงทะเบียนกลับ;
EndFunction // ข้อมูลเกี่ยวกับการประมวลผลภายนอก ()
ฟังก์ชัน GetTableCommand()
คำสั่ง = ตารางค่าใหม่;
Commands.Columns.Add("View", New TypeDescription("Row"));//คำอธิบายของแบบฟอร์มการพิมพ์สำหรับผู้ใช้จะเป็นอย่างไร
Commands.Columns.Add("ตัวระบุ", คำอธิบายประเภทใหม่ ("สตริง")); // พิมพ์ชื่อโครงร่างแบบฟอร์ม
Commands.Columns.Add("การใช้งาน", NewTypeDescription("แถว")); //เรียก ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("บูลีน"));
Commands.Columns.Add("ตัวแก้ไข", NewTypeDescription("แถว"));
ทีมกลับ;
EndFunction
ขั้นตอน AddCommand (CommandTable, View, Identifier, การใช้งาน, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = ดู;
NewCommand.Identifier = ตัวระบุ;
NewCommand.Use = การใช้งาน;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = ตัวดัดแปลง;
สิ้นสุดขั้นตอน
- บันทึกเค้าโครงสำหรับการพิมพ์เป็นไฟล์ในโฟลเดอร์ใดๆ บนฮาร์ดไดรฟ์ของคุณ ตั้งชื่อให้เหมาะสม
แทรกขั้นตอนการเริ่มพิมพ์จากเมนูโปรแกรมลงในเอกสารเดียวกัน (คำสั่งที่เน้นด้วยสีเหลืองจะต้องตรงกับบรรทัด):
เพิ่มคำสั่ง(ตารางคำสั่ง, “ลำดับภายนอก”, “ลำดับภายนอก”):
ขั้นตอนการพิมพ์ (อาร์เรย์ของวัตถุ, คอลเลกชันของแบบฟอร์มการพิมพ์, วัตถุพิมพ์, พารามิเตอร์เอาต์พุต) ส่งออก
การจัดการการพิมพ์.Output TabularDocumentIntoCollection(
การรวบรวมแบบฟอร์มการพิมพ์
“คำสั่งภายนอก”
“คำสั่งภายนอก”
สร้างPrintForm (ArrayofObjects, PrintObjects);
EndProcedure // พิมพ์()
- แทรกเลย์เอาต์สำหรับการกรอกแบบฟอร์มที่พิมพ์โดยคลิกที่ชื่อของแบบฟอร์มภายนอกที่มุมซ้ายล่างแล้วเลือก "เลย์เอาต์" - "เพิ่ม" - "เอกสารสเปรดชีต" ตั้งชื่อ หลังจากนั้นกรอกสเปรดชีตพร้อมข้อมูลที่จำเป็น ตัวอย่างเช่น:
- คำสั่งซื้อหมายเลขผลิตภัณฑ์ [หมายเลขการรับรู้] จาก [วันที่รับรู้] - คลิกขวา - คุณสมบัติ - เค้าโครง - การกรอก - เทมเพลต
- สร้างคอลัมน์ที่คุณต้องการให้ปรากฏในเอกสารของคุณ
- เลือกเซลล์ที่ป้อนคลิกตาราง - ชื่อ - กำหนดชื่อ - ป้อนชื่อ "ส่วนหัว"
- คัดลอกแถวที่มีส่วนหัวของตาราง เลือกแล้วคลิกขวา - คุณสมบัติ - เค้าโครง - เติม - ตัวเลือก
- เลือกบรรทัดและตั้งชื่อ เช่น “StringTCH”
- สร้างส่วนท้าย: เขียน Total ซึ่งเป็นเซลล์ที่ควรแสดงจำนวนรวม ตั้งชื่อเป็น TotalTotal เลือก "พารามิเตอร์" ในคุณสมบัติ
- ระบุผู้รับผิดชอบ และในคุณสมบัติเซลล์สำหรับการแสดงนามสกุล ให้ระบุ "พารามิเตอร์"
- เลือกแถวล่างและตั้งชื่อช่วง "ส่วนท้าย"
- ในหน้าต่างป้อนข้อมูล ให้ป้อนฟังก์ชันสำหรับสร้างแบบฟอร์มที่พิมพ์:
ฟังก์ชั่น GeneratePrintForm (LinkToDocument, PrintObjects)
TabularDocument = TabularDocument ใหม่;
TabularDocument.PrintParametersName = “PRINT_PARAMETERS_Invoice สำหรับการชำระเงินให้กับ VRTU”;
รูปแบบการประมวลผล = GetLayout("ใบแจ้งการชำระเงินภายนอก");
//กรอกส่วนหัว
AreaHeader = ProcessingLayout.GetArea("ส่วนหัว");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//ส่งออกส่วนหัวในเอกสารสเปรดชีต
TabularDocument.Output (พื้นที่ส่วนหัว);
//กรอกข้อมูลในบรรทัด PM
RowArea = ProcessingLayout.GetArea("ROW");
สำหรับแต่ละบรรทัดปัจจุบันจากลิงก์เอกสาร รอบผลิตภัณฑ์
FillPropertyValues (RowArea.Parameters, CurrentRow);
TabularDocument.Output (RowArea);
สิ้นสุดรอบ;
//ต่อเติมห้องใต้ดิน
AreaFooter = ProcessingLayout.GetArea("ส่วนท้าย");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("ปริมาณ");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("จำนวน");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
//ส่งออกส่วนท้ายไปยังเอกสารสเปรดชีต
TabularDocument.Output (AreaFooter);
TabularDocument.AutoScale = จริง;
กลับ TabularDocument;
EndFunction
- บันทึกการเปลี่ยนแปลงของคุณลงในเอกสาร
- ตอนนี้คุณต้องเปิดใช้งานแบบฟอร์มที่สร้างขึ้น เมื่อต้องการทำสิ่งนี้:
- ไปที่ "การบริหาร" - "แบบฟอร์มที่พิมพ์ รายงานและการประมวลผล" - "รายงานและการประมวลผลเพิ่มเติม"
- คลิกปุ่ม "สร้าง" เลือกไฟล์ฟอร์มภายนอกใน Explorer ยืนยันรายการของคุณด้วยปุ่ม "บันทึกและปิด"
- หากต้องการตรวจสอบไปที่การขาย - การขาย (การกระทำ, ใบแจ้งหนี้) คลิกปุ่ม "พิมพ์" เลือกแบบฟอร์มของคุณและตรวจสอบว่ากรอกอย่างถูกต้อง
- พิมพ์เอกสารหากจำเป็น
บทสรุป
เราดูตัวอย่างการสร้างแบบฟอร์มที่สามารถพิมพ์ได้ผ่าน Print Designer และผ่านเครื่องมือสำหรับการสร้างแบบฟอร์มภายนอก เราหวังว่าทุกอย่างจะได้ผลสำหรับคุณ ฝากคำถามของคุณในความคิดเห็น
2016-12-01T12:56:42+00:00โอกาสที่ยอดเยี่ยมปรากฏใน 1C: การบัญชี 8.3 (รุ่น 3.0) ขณะนี้ผู้ใช้ในโหมด 1C: Enterprise สามารถแก้ไขเค้าโครงแบบฟอร์มที่พิมพ์ได้อย่างง่ายดาย
สิ่งนี้จะมีประโยชน์เมื่อใด ตัวอย่างเช่น มีแบบฟอร์มที่พิมพ์ออกมา เช่น "Demand-invoice" ซึ่งคุณทำการเปลี่ยนแปลงทุกครั้งที่คุณพิมพ์ เปลี่ยนแบบอักษร พิมพ์ฟิลด์ใหม่ ลบสิ่งที่ไม่จำเป็นออก
แล้วทำไมทำแบบนี้ทุกครั้ง! หากเราสามารถเปลี่ยนแปลงเค้าโครงของแบบฟอร์มที่พิมพ์ออกมาได้เพียงครั้งเดียว โปรแกรมก็จะส่งออกแบบฟอร์มที่พิมพ์ออกมาตามที่เราต้องการเสมอ
ด้านล่างนี้ ฉันจะแสดงวิธีเปลี่ยนเค้าโครงของแบบฟอร์มที่พิมพ์ "ใบแจ้งหนี้ความต้องการ" ทีละขั้นตอน เราจะเพิ่มฟิลด์ใหม่ที่นั่น: "รับผิดชอบ"
1. สร้างแบบฟอร์มที่พิมพ์ได้ (คลิกที่ปุ่ม "พิมพ์") และคลิกปุ่ม "เพิ่มเติม" -> "เปลี่ยนเค้าโครง" ในแบบฟอร์มที่เปิดขึ้น (ทางด้านขวา):
2. เค้าโครงที่สามารถพิมพ์ได้จะเปิดขึ้น ทำการเปลี่ยนแปลงที่จำเป็น แต่ระวังอย่าให้เป็นเช่นนั้น ฉันจะบอกทันทีว่าแบบอักษรและขนาดฟิลด์สามารถเปลี่ยนแปลงได้อย่างแน่นอน แต่การลบฟิลด์ที่มีอยู่ (โดยเฉพาะใน<угловых скобках>) ไม่คุ้มเลย หากคุณต้องการซ่อนฟิลด์<угловых скобках>เพียงทำให้มองไม่เห็น (สีหรือขนาด) แต่ควรคงอยู่ในแบบฟอร์มเนื่องจากโค้ดโปรแกรม 1C กำหนดไว้
3. เราจะเพิ่มช่อง "รับผิดชอบ" และคลิกปุ่ม "บันทึกและปิด"
4. แบบฟอร์มการพิมพ์ถูกปรับรูปทรงใหม่ตามที่เราต้องการ
หากหลังจากเปลี่ยนแบบฟอร์มการพิมพ์แล้วหยุดทำงานแสดงว่าคุณ
ขอแสดงความนับถือ, วลาดิมีร์ มิลกิน(ครูและนักพัฒนา)
บทความนี้อธิบายวิธีเชื่อมต่อแบบฟอร์มที่พิมพ์ภายนอกกับฐานข้อมูล 1C โดยใช้ตัวอย่างการกำหนดค่า "Trade Management 11.2"
การกำหนดค่า “Trade Management 11.2” เป็นการกำหนดค่าในแบบฟอร์ม “MANAGED”!
คำแนะนำของเรา “แสดง” วิธีการเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกเข้ากับ ฐานข้อมูล 1C พร้อมการกำหนดค่าในแบบฟอร์ม "จัดการ" ได้แก่:
- "การบัญชี 3.0"
- "การจัดการการค้า 11.2"
- “การบริหารเงินเดือนและบุคลากร 3.1”
- "ระบบอัตโนมัติที่ครอบคลุม 2.0"
- "ควบคุม บริษัทขนาดเล็ก 1.6"
- "ค้าปลีก 2.2"
- และการกำหนดค่าอื่นที่คล้ายคลึงกัน
ในการเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกใน 1C เราจะต้องดำเนินการ 11 ขั้นตอน
1 — เมนู “ข้อมูลหลักและการดูแลระบบ” (ในการกำหนดค่าอื่น เช่น ใน Enterprise Accounting 3.0 อาจเรียกง่ายๆ ว่า “การดูแลระบบ”) 2 — เลือก “แบบฟอร์มที่พิมพ์ รายงาน และการประมวลผล” (ดูรูปด้านล่าง ↓)
3 — ขยายเมนูย่อย "รายงานและการประมวลผล" (ในการกำหนดค่าอื่น ๆ เช่น Enterprise Accounting 3.0 อาจไม่มีเมนูย่อยดังกล่าว ดังนั้นเราจึงไปยังขั้นตอนถัดไปทันที) 4 — ทำเครื่องหมายที่ช่อง “การใช้รายงานและการประมวลผลเพิ่มเติม” 5 — ไปที่ส่วน: รายงานและการประมวลผลเพิ่มเติม (ดูรูปด้านล่าง ↓) ()
6 — คลิกปุ่ม “สร้าง” (ดูรูปด้านล่าง ↓)
ใน 1C เวอร์ชันใหม่ (เริ่มตั้งแต่เดือนสิงหาคม 2559) โปรแกรมมีกลไกคำเตือนในตัวเกี่ยวกับอันตรายจากการใช้การประมวลผลภายนอกที่ไม่รู้จักซึ่งอาจมี "ไวรัส" ในโปรแกรมเวอร์ชันก่อนหน้า คำเตือนจะไม่ปรากฏขึ้น! หากสิ่งนี้เกิดขึ้น จำเป็นต้องเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอก - 7 — คลิกปุ่ม “ดำเนินการต่อ” (ดูรูปด้านล่าง ↓)
8 — เลือกไดเร็กทอรีที่มีการประมวลผลอยู่ 9 — เลือกมัน (การประมวลผลที่เราต้องการ) 10 — คลิกปุ่ม “เปิด” หรือแทนที่จะทำตามขั้นตอนที่ 9 และ 10 คุณสามารถดับเบิลคลิกบนแบบฟอร์มภายนอกที่พิมพ์ออกมาที่เราต้องการในหน้าต่างการเลือกได้ (ดูรูปด้านล่าง ↓)
หากเราจำเป็นต้องเพิ่มตำแหน่งสำหรับการประมวลผลที่เพิ่ม (เช่น นี่คือแบบฟอร์มสัญญาสากลจากเว็บไซต์ของเรา และเราจำเป็นต้องมีคำสั่งให้พิมพ์แบบฟอร์มนี้เพื่อแสดงในบางวัตถุที่ไม่ได้แสดงในตอนแรก) - 11 — คลิกที่บรรทัดตำแหน่ง (“วางใน:” หรืออาจเป็น “ตำแหน่ง:”) และเลือกไดเร็กทอรีและเอกสารที่จำเป็น 12 — เราทำตามขั้นตอนในการเชื่อมต่อแบบฟอร์มการพิมพ์ภายนอกโดยคลิกปุ่ม "บันทึกและปิด" (ดูรูปด้านล่าง ↓)
แค่นั้นแหละ! ยินดีด้วย! เชื่อมต่อแผ่นพิมพ์ภายนอกแล้ว!เราทำทุกอย่างถูกต้องแล้วหรือยัง? มาตรวจสอบกัน...
ก่อนที่จะบันทึกและปิด เราสังเกตเห็นว่าแบบฟอร์มที่พิมพ์ภายนอกนี้อยู่ในเอกสารการขายสินค้าและบริการ ซึ่งหมายความว่าเราสามารถเปิดตัวเลือกการพิมพ์สำหรับเอกสารประเภทใดก็ได้: “การขายสินค้าและบริการ” กดปุ่ม "พิมพ์" และดูว่ามีหน้าต่างสำหรับเลือกแบบฟอร์มที่พิมพ์ปรากฏขึ้นในหมู่นั้นมี - 13 — แบบฟอร์มการพิมพ์ภายนอกที่เราเชื่อมต่อ (ดูรูปด้านล่าง ↓)
ตอนนี้มันแน่นอนแล้ว เราหวังว่าบทความนี้จะเป็นประโยชน์กับคุณ