บทความนี้จะบอกคุณโดยละเอียดว่าผู้เริ่มต้นที่มีความรู้เพียงเล็กน้อยเกี่ยวกับ 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+ป้อน).


เซลล์สามารถมีค่าประเภทใดประเภทหนึ่งจากสามประเภท:

  1. ข้อความ– ค่าประเภทนี้จะพิมพ์ออกมาในรูปแบบเดียวกัน
  2. พารามิเตอร์– เซลล์ประเภทนี้ประกอบด้วยชื่อของตัวแปรที่จะพิมพ์ค่า
  3. ตัวอย่าง– เซลล์ประเภทนี้เป็นการผสมผสานระหว่างตัวเลือกแรกและตัวเลือกที่สอง เซลล์สามารถมีข้อความและตัวแปรได้ เพื่อให้โปรแกรมสามารถแยกแยะข้อความจากตัวแปรได้ ตัวแปรต้องอยู่ในวงเล็บเหลี่ยม: "วันนี้คือ [วันที่]".

สำคัญ!เครื่องมือแก้ไขตารางจะแสดงค่าของเซลล์ประเภทที่สองและสามในวงเล็บเหลี่ยม ในรูปที่ 2 มีเซลล์พร้อมข้อความ "ผู้ซื้อ"- ดูเหมือนข้อความและอยู่ทางด้านขวาของเซลล์ "การนำเสนอของผู้ซื้อ"- พารามิเตอร์

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

ให้เรากลับมาที่งานของเราตอนนี้ เราสร้างการประมวลผล คัดลอกเค้าโครง และพร้อมที่จะแก้ไขให้เหมาะกับตัวเราเอง ก่อนอื่นเรามาดูกันดีกว่า

สิ่งที่รวมอยู่ในเค้าโครงที่สามารถพิมพ์ได้

โครงสร้างเค้าโครงของเอกสารทั้งหมดคล้ายกันมาก เมื่อตรวจสอบเอกสารฉบับหนึ่งอย่างละเอียดแล้ว เราก็สามารถเข้าใจเอกสารอื่นๆ ได้ ส่วนแรก "ชื่อ"- เมื่อแสดงส่วนนี้ ส่วนหัวของเอกสารจะถูกสร้างขึ้น ซึ่งประกอบด้วยประเภท วันที่ และหมายเลขเอกสาร ตามด้วยส่วนต่างๆ “ซัพพลายเออร์” และ “ผู้ซื้อ”โดยโปรแกรมจะแสดงข้อมูลเกี่ยวกับซัพพลายเออร์และผู้ซื้อตามลำดับ ถัดไปคือส่วนที่น่าสนใจยิ่งขึ้น "ข้อมูลเพิ่มเติม"ซึ่งนักพัฒนาใช้เพื่อแสดงข้อมูลอื่นๆ ในเอกสาร เช่น ข้อมูลเกี่ยวกับสัญญาพร้อมหมายเลขและวันที่ ลักษณะเฉพาะของส่วนนี้คือสามารถแสดงได้หลายครั้ง และในแต่ละครั้งสามารถมีข้อมูลที่แตกต่างกันได้ จะพิมพ์อะไรกันแน่และเมื่อใดจะอธิบายไว้ในอัลกอริธึมการพิมพ์

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

ด้านล่างในโครงร่างมีส่วนต่างๆ ที่แสดงผลลัพธ์ของเอกสารและลายเซ็น

การแก้ไขเค้าโครง

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

  1. มาคัดลอกเนื้อหาของเซลล์ที่ผสานอย่างระมัดระวัง "ข้อความชื่อเรื่อง"(ในการดำเนินการนี้ คุณต้องเลือกเซลล์และใช้คำสั่ง “แก้ไข > คัดลอก” หรือแป้นพิมพ์ลัด CTRL+C)
  2. เมื่อเลือกเซลล์นี้แล้ว ให้เลือกรายการในเมนูหลัก "ตาราง - ผสาน"ซึ่งจะนำไปสู่ผลตรงกันข้าม - เซลล์ที่ผสานจะถูกแบ่งออกเป็นเซลล์ดั้งเดิมจำนวนมาก
  3. ตอนนี้เรามาเลือกเซลล์จำนวนน้อยลง - แทนที่จะเป็นเซลล์ 2 ของคอลัมน์ เราจะเริ่มผสานจากคอลัมน์ 6 และสิ้นสุดที่คอลัมน์ 32 - แล้วคลิกที่ปุ่มอีกครั้ง "ผสาน"
  4. ทีม "แก้ไข > วาง" (CTRL+V)แทรกเนื้อหาของเซลล์ที่ผสานก่อนหน้านี้ลงในเซลล์ที่ผสานใหม่
  5. เราเพียงแค่ล้างเซลล์ที่ว่างในคอลัมน์ 2 - 5 (เลือกเซลล์เหล่านั้นแล้วกดปุ่ม Delete)

ตอนนี้คุณสามารถแทรกรูปภาพพร้อมโลโก้ลงในพื้นที่ว่างได้ โดยเลือกรายการในเมนู “ตาราง > รูปภาพ > รูปภาพ...”- ค้นหาไฟล์ที่มีโลโก้ของเราบนดิสก์แล้วคลิก “ ตกลง- ตอนนี้ขอย้ายรูปภาพไปยังพื้นที่ว่าง ผลลัพธ์ควรมีลักษณะเหมือนในรูปที่ 3


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



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



สำคัญ!ในการกำหนดค่าทั่วไปจะใช้สองภาษา: รัสเซียและยูเครน เค้าโครงจัดเก็บการแสดงข้อความในทั้งสองภาษา (การออกแบบเซลล์เป็นแบบทั่วไป) ในการป้อนคำจารึกเวอร์ชันภาษายูเครนที่เราเพิ่มเข้าไป คุณต้องไปที่คุณสมบัติของเซลล์และไปที่ฟิลด์ "ข้อความ"กดปุ่ม "ค้นหา"- หน้าต่างจะเปิดขึ้นเพื่อป้อนการแสดงข้อความในภาษาต่างๆ (รูปที่ 6)

วิธีการมั่นใจในการพิมพ์

ดังนั้นเลย์เอาต์จึงพร้อม ตอนนี้เป็นเวลาที่จะทำงานกับอัลกอริธึมในการพิมพ์

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

  1. คุณต้องสร้างอุปกรณ์ประกอบฉากในการประมวลผล "ลิงค์วัตถุ"มีประเภท "อันนี่ลิงค์"
  2. คุณต้องสร้างขั้นตอนในโมดูลการประมวลผล "พิมพ์() ส่งออก"ไม่มีพารามิเตอร์และต้องระบุ คำหลัก "ส่งออก"

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

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



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



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

ดูในรูปที่ 9 เราได้เน้นชื่อและบรรทัดด้านล่างไว้ หลังจากนั้นให้คัดลอกไปที่คลิปบอร์ด เมนูหลัก "แก้ไข > คัดลอก" (หรือ CTRL+C).



เราได้จดจำข้อความบนคลิปบอร์ดแล้ว ตอนนี้เรามาดำเนินการประมวลผลกันอีกครั้ง "ใบแจ้งหนี้ที่มีตราสินค้า"- คลิกที่ปุ่ม "การกระทำ > เปิดโมดูลออบเจ็กต์"(รูปที่ 10)



วางข้อความที่คัดลอก: "แก้ไข > วาง" (หรือ CTRL+V).

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

  1. เปลี่ยนชื่อฟังก์ชันเป็น "พิมพ์"
  2. แทนที่ “วัตถุนี้”บน "ลิงค์วัตถุ"
  3. แทนที่ “วัตถุนี้”บน "ลิงค์วัตถุ"
  4. แทนที่ "บัญชีธนาคารขององค์กร"บน “เชื่อมโยงไปยัง Object.Organization บัญชีธนาคาร”
  5. แทนที่ “ผลิตภัณฑ์ สรุป”บน "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 ในตัว

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

  1. ก่อนอื่น ให้เปิดในโหมด Configurator ค้นหาเอกสารที่คุณต้องการ เช่น การขายผลิตภัณฑ์และบริการ ในคุณสมบัติของเอกสาร ให้ไปที่ Actions - Designers - Print Designer
  2. เมื่อได้รับแจ้งให้ระบุตัวเลือกการทำงาน ให้เลือกแบบฟอร์มปกติ
  3. ตั้งชื่อเค้าโครงใหม่ เช่น "พิมพ์ใบแจ้งหนี้"
  4. เลือกรายละเอียดที่คุณต้องการดูในส่วนหัวของเอกสาร นอกจากนี้ จะต้องเลือกตามลำดับที่จะแสดง ในการเลือก คุณต้องใช้เคอร์เซอร์ไฮไลต์รายการในคอลัมน์ด้านซ้าย แล้วกดลูกศรตรงกลางหน้าจอเพื่อให้รายละเอียดปรากฏในคอลัมน์ด้านขวา
  5. ทำเครื่องหมายรายละเอียดที่จะแสดงในส่วนของตาราง การเลือกรายละเอียดเป็นไปตามหลักการเดียวกันกับย่อหน้าก่อนหน้า
  6. ในทำนองเดียวกัน ให้เลือกรายละเอียดส่วนล่างของเอกสาร
  7. ในขั้นตอนสุดท้ายของการสร้าง ให้เลือกว่าคุณต้องการพิมพ์ทันทีโดยไม่ต้องแสดงตัวอย่าง หรือไม่ว่าคุณต้องการปกป้องตารางหรือไม่ จากนั้นยืนยันการสร้างแบบฟอร์มด้วยปุ่มตกลง

การสร้างแบบฟอร์มการพิมพ์ภายนอก

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

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

ตอนนี้เรามาพูดถึงขั้นตอนเพิ่มเติมกันดีกว่า ลองดูตัวอย่างการสร้างเค้าโครง "ใบแจ้งหนี้" สำหรับเอกสาร "การขาย (การกระทำ, ใบแจ้งหนี้)"

  1. เปิดโปรแกรม 1C 8 ในโหมด Configurator
  2. คลิก ไฟล์ - ใหม่ - การประมวลผลภายนอก ตั้งชื่อ (ไม่ควรมีช่องว่าง) จากนั้นคลิก การดำเนินการ - เปิดโมดูลวัตถุ
  3. ในช่องป้อนข้อมูลที่เปิดขึ้น ให้ป้อนรหัสต่อไปนี้ (ค่าที่สามารถเปลี่ยนเป็นค่าของคุณเองได้จะถูกเน้นด้วยสีเหลือง):

ฟังก์ชั่น 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 = ตัวดัดแปลง;
สิ้นสุดขั้นตอน

  1. บันทึกเค้าโครงสำหรับการพิมพ์เป็นไฟล์ในโฟลเดอร์ใดๆ บนฮาร์ดไดรฟ์ของคุณ ตั้งชื่อให้เหมาะสม

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

เพิ่มคำสั่ง(ตารางคำสั่ง, “ลำดับภายนอก”, “ลำดับภายนอก”):
ขั้นตอนการพิมพ์ (อาร์เรย์ของวัตถุ, คอลเลกชันของแบบฟอร์มการพิมพ์, วัตถุพิมพ์, พารามิเตอร์เอาต์พุต) ส่งออก
การจัดการการพิมพ์.Output TabularDocumentIntoCollection(
การรวบรวมแบบฟอร์มการพิมพ์
“คำสั่งภายนอก”
“คำสั่งภายนอก”
สร้างPrintForm (ArrayofObjects, PrintObjects);
EndProcedure // พิมพ์()

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

ฟังก์ชั่น 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

  1. บันทึกการเปลี่ยนแปลงของคุณลงในเอกสาร
  2. ตอนนี้คุณต้องเปิดใช้งานแบบฟอร์มที่สร้างขึ้น เมื่อต้องการทำสิ่งนี้:
    • ไปที่ "การบริหาร" - "แบบฟอร์มที่พิมพ์ รายงานและการประมวลผล" - "รายงานและการประมวลผลเพิ่มเติม"
    • คลิกปุ่ม "สร้าง" เลือกไฟล์ฟอร์มภายนอกใน Explorer ยืนยันรายการของคุณด้วยปุ่ม "บันทึกและปิด"
  3. หากต้องการตรวจสอบไปที่การขาย - การขาย (การกระทำ, ใบแจ้งหนี้) คลิกปุ่ม "พิมพ์" เลือกแบบฟอร์มของคุณและตรวจสอบว่ากรอกอย่างถูกต้อง
  4. พิมพ์เอกสารหากจำเป็น

บทสรุป

เราดูตัวอย่างการสร้างแบบฟอร์มที่สามารถพิมพ์ได้ผ่าน 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 — แบบฟอร์มการพิมพ์ภายนอกที่เราเชื่อมต่อ (ดูรูปด้านล่าง ↓)

ตอนนี้มันแน่นอนแล้ว เราหวังว่าบทความนี้จะเป็นประโยชน์กับคุณ