ธุรกิจของฉันคือแฟรนไชส์ การให้คะแนน เรื่องราวความสำเร็จ ไอเดีย การทำงานและการศึกษา
ค้นหาไซต์

ผู้ออกแบบแบบฟอร์มสิ่งพิมพ์ 1C 8.3 เครื่องมือสร้างแบบฟอร์มการพิมพ์ภายนอก เบต้าใหม่ (แอปพลิเคชันปกติและแอปพลิเคชันที่มีการจัดการ!)

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

คุณสามารถดาวน์โหลดตัวอย่างผลลัพธ์ได้จากไฟล์ .

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

การสร้างเค้าโครงแบบฟอร์มที่พิมพ์

เพิ่มอันใหม่ เค้าโครงให้ปล่อยประเภทเค้าโครงไว้ เอกสารสเปรดชีต. เราสร้างพื้นที่สามส่วนบนเค้าโครง: ส่วนหัว, ข้อมูลและ ชั้นใต้ดิน. ซึ่งสามารถทำได้โดยเลือกจำนวนบรรทัดที่ต้องการแล้วคลิกเมนู ตาราง->ชื่อ->กำหนดชื่อ (Ctrl+Shift+N).

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

ในพื้นที่ ข้อมูลมาสร้างพารามิเตอร์สำหรับการแสดงแถวในส่วนตารางกันดีกว่า ( ศัพท์เฉพาะราคาฯลฯ) และในพื้นที่ ชั้นใต้ดินสำหรับผลรวมตามปริมาณและจำนวน

การเขียนโปรแกรม

ไปที่โมดูลวัตถุแบบฟอร์มการพิมพ์ การดำเนินการ -> เปิดโมดูลวัตถุ.

มาสร้างฟังก์ชันการส่งออกซึ่งจำเป็นสำหรับแบบฟอร์มที่พิมพ์ออกมา ผนึก().

ฟังก์ชั่นการพิมพ์ () ส่งออก EndFunction

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

TabDoc = TabularDocument ใหม่; เค้าโครง = GetLayout("เค้าโครง" ); HeaderArea = Layout.GetArea("ส่วนหัว" ); AreaData = Layout.GetArea("ข้อมูล" ); AreaFooter = Layout.GetArea("ส่วนท้าย" );

มากรอกพารามิเตอร์กัน หมวกและนำไปให้ เอกสารสเปรดชีต .

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(พื้นที่ส่วนหัว);

เพื่อให้ได้แถวของตาราง สินค้าเราใช้คำขอ

คำขอ = คำขอใหม่; Request.SetParameter("ลิงก์", ObjectLink); Query.Text = "เลือก | การขายสินค้าและบริการ สินค้า ระบบการตั้งชื่อ | การขายสินค้าและบริการ สินค้า จำนวน | การขายสินค้าและบริการ สินค้า ราคา | การขายสินค้าและบริการ สินค้า ปริมาณ|จาก | เอกสาร การขายสินค้าและบริการ สินค้า วิธีการขายสินค้าและบริการ|ที่ไหน | จำหน่ายสินค้าและบริการ Link = &Link";

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

เลือก = Query.Run().Select();

ต่อไปในวงเราจะกรอกพารามิเตอร์พื้นที่ ข้อมูลสำหรับแต่ละบรรทัดของตัวอย่างเอกสารและแสดงไว้ในนั้น เอกสารสเปรดชีต. เรายังคำนวณมูลค่ารวมในลูปด้วย ปริมาณและ จำนวนเงิน. เราจะไม่กรอกแต่ละพารามิเตอร์แยกกัน แต่ใช้ขั้นตอนนี้ กรอกค่าคุณสมบัติ((<Приемник>, <Источник>) จาก บริบทระดับโลกโดยจะคัดลอกค่าคุณสมบัติ <Источника> ถึงคุณสมบัติ <Приемника> . การจับคู่ทำได้โดยใช้ชื่อคุณสมบัติ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ใน ผู้ช่วยไวยากรณ์ 1C Enterprise 8.

ผลรวมทั้งหมด = 0 ; ปริมาณทั้งหมด = 0 ; ในขณะที่ Selection.Next() วนซ้ำ FillPropertyValues ​​(AreaData.Parameters, Selection); TotalSum = TotalSum + ตัวอย่างผลรวม; TotalQuantity = TotalQuantity + ตัวอย่าง.ปริมาณ; TabDoc.Output(AreaData); เอ็นด์ไซเคิล ;

เติมและแสดงพื้นที่ ชั้นใต้ดิน.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

การส่งคืนเอกสารสเปรดชีตที่เสร็จสมบูรณ์จากฟังก์ชัน ผนึก().

กลับ TabDoc;

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

5. การเชื่อมต่อแบบฟอร์มที่พิมพ์เข้ากับเอกสาร

ใน การกำหนดค่ามาตรฐาน 1C 8มีไดเร็กทอรีสำหรับลงทะเบียนแบบฟอร์มที่พิมพ์ภายนอก การประมวลผลภายนอก. หากต้องการเชื่อมต่อ ให้ไปที่เมนูในโหมดองค์กร บริการ -> รายงานและการประมวลผลเพิ่มเติม -> แบบฟอร์มที่พิมพ์ภายนอกเพิ่มเติม.

เพิ่ม องค์ประกอบใหม่ไดเรกทอรี โหลดแบบฟอร์มที่พิมพ์จากดิสก์และเลือกประเภทเอกสาร

ตอนนี้อยู่ในเอกสาร การขายสินค้าและบริการสิ่งพิมพ์ใหม่จะปรากฏขึ้น

การลงทะเบียนแบบฟอร์มการพิมพ์อัตโนมัติ

เพื่อให้แน่ใจว่าเมื่อเชื่อมต่อแบบฟอร์มการพิมพ์ คุณไม่จำเป็นต้องเลือกประเภทเอกสารด้วยตนเอง คุณสามารถกำหนดค่าได้ การลงทะเบียนอัตโนมัติ. เมื่อต้องการทำเช่นนี้ ให้เพิ่มเค้าโครงใหม่แล้วเรียกใช้ การตั้งค่า_การลงทะเบียนอัตโนมัติ(นี่เป็นวิธีเดียว) และเราจะเขียนในเซลล์แรก เอกสารประกอบ<Наименование документа> (หรือ ไดเรกทอรี<Наименование справочника> ).

ตอนนี้เมื่อเชื่อมต่อแบบฟอร์มการพิมพ์เราจะขอให้ใช้ พารามิเตอร์การลงทะเบียนอัตโนมัติ.

เพื่อนร่วมงาน!

เราสานต่อหัวข้อการสร้างรายงานใน 1C เมื่อเร็ว ๆ นี้ลูกค้าของเรามีปัญหาในการถ่ายโอนเอกสารจาก 1C 8.3

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

เราได้กล่าวถึงตัวอย่างที่คล้ายกันในการกำหนดค่า 8.2 ในรีลีสก่อนหน้านี้ ตอนนี้เราจะดูที่การตั้งค่าการพิมพ์ซึ่งทำให้เราสามารถทำทั้งหมดนี้ได้ในการกำหนดค่า 8.3

ยิ่งไปกว่านั้น ส่วนมากจะเป็นแบบอัตโนมัติใน 8.3

แล้วคุณจะรวมข้อมูลข้างต้นลงในงานพิมพ์ของคุณได้อย่างไร? ในกรณีนี้ควรทำอย่างไร?

เราเสนอการทบทวนตัวเลือกของเรา บางทีมันอาจจะมีประโยชน์สำหรับคุณเช่นกัน

ตัวเลือก 1. โดยตรงจากแบบฟอร์มที่พิมพ์ของรายงานหรือเอกสารที่สร้างขึ้น:

สร้างแบบฟอร์มใบแจ้งหนี้ที่พิมพ์ออกมาสำหรับการชำระเงินและเรียกผ่าน Ch. เมนู – ตาราง – การตั้งค่าการพิมพ์ – ส่วนหัวและส่วนท้าย และกำหนดค่าตามต้องการ
จะทำเพียงครั้งเดียวสำหรับแบบฟอร์มการพิมพ์ FORMED ใดๆ

การตั้งค่าฟิลด์ส่วนหัวและส่วนท้าย

ให้ความสนใจกับไอคอนที่มุมซ้ายบนของแบบฟอร์ม:

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

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

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

ดูเหมือนว่านี้:

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

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

เมื่อพิมพ์แบบฟอร์มที่พิมพ์แล้ว ข้อมูลที่ระบุทั้งหมดจะแสดงอยู่ในนั้น

ตัวเลือกที่ 3: แก้ไขเค้าโครงในโหมดกำหนดเอง

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

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

เค้าโครงสามารถเปลี่ยนแปลงได้ในส่วนการดูแลระบบ – แบบฟอร์มที่พิมพ์ รายงาน การประมวลผล – เค้าโครงแบบฟอร์มที่พิมพ์

นี่คือตัวอย่างการแก้ไขเค้าโครงของ Order Invoice (เอกสาร Invoice สำหรับการชำระเงินให้กับผู้ซื้อ):

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

ตัวอย่างเช่นเช่นนี้:

บันทึกการเปลี่ยนแปลงและสร้างแบบฟอร์มที่สามารถพิมพ์ได้

และเราพิมพ์พร้อมกับการเปลี่ยนแปลง
แต่ความเป็นไปได้ในการแก้ไขดังกล่าวมีจำกัด)

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

แต่บ่อยครั้งก็เพียงพอแล้ว 🙂

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

กระบวนการพิมพ์เอกสารอิเล็กทรอนิกส์ 1C เรียกว่าแบบฟอร์มการพิมพ์ 1C

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

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

ปัญหาในการเปลี่ยนแบบฟอร์มการพิมพ์ 1C มาตรฐานคือโดยปกติไม่แนะนำให้เปลี่ยนการกำหนดค่ามาตรฐาน ไม่เช่นนั้นการอัปเดตจะยากขึ้น ดังนั้นวิธีการต่าง ๆ ในการใช้แบบฟอร์มการพิมพ์ 1C ภายนอกจึงปรากฏขึ้นและเริ่มสร้างวงล้อขึ้นมาใหม่

แบบฟอร์มการพิมพ์ 1C ภายนอกเป็นเทมเพลตการพิมพ์ที่จัดเก็บแยกจากการกำหนดค่าเอง

อย่างไรก็ตาม ทั้งหมดนี้เป็นทฤษฎี จะสร้างแบบฟอร์มการพิมพ์ของคุณเองได้อย่างไร? หรือดีกว่านั้น จะทำการเปลี่ยนแปลงสิ่งที่มีอยู่ได้อย่างไร?

วิธีการพิมพ์เอกสาร 1C

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

ทางด้านซ้ายของปุ่มพิมพ์มักจะมีปุ่มเข้าถึงด่วนไปยังแบบฟอร์มการพิมพ์ 1C ที่เลือกล่าสุด

ผลการพิมพ์มีลักษณะเช่นนี้ หากต้องการพิมพ์ไปยังเครื่องพิมพ์ คุณต้องวางเคอร์เซอร์ในแบบฟอร์มการพิมพ์ 1C กด Ctrl+P หรือปุ่มเครื่องพิมพ์บนแผงปุ่มหรือในเมนูไฟล์/พิมพ์

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

แบบฟอร์มการพิมพ์นี้มาจากไหน?

แบบฟอร์มพิมพ์ 1C อยู่ที่ไหน?

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

อย่างไรก็ตาม ยังไม่เพียงพอ - เราเสนอให้เลือกตัวเลือกเพิ่มเติมมากมายเมื่อพิมพ์ ความจริงก็คือเค้าโครงแบบฟอร์มการพิมพ์ 1C จำนวนมากถูกซ่อนอยู่ในที่อื่น

กลับไปที่ด้านบนของหน้าต่างการกำหนดค่า 1C มาเปิดสาขา General จากนั้นจึงเปิดสาขา General Layouts นี่คือที่ที่เค้าโครงส่วนใหญ่ตั้งอยู่ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับแบบฟอร์มสิ่งพิมพ์ที่รัฐควบคุม 1C - TORG 12, ใบแจ้งหนี้ ฯลฯ

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

แต่นั่นไม่ใช่ทั้งหมด! นอกจากนี้ยังมีเค้าโครงภายนอก พวกเขาเก็บไว้ที่ไหน?

กลับไปที่โหมด 1C Enterprise กันเถอะ ผ่านเมนูผู้ใช้ด้วย สิทธิ์ในการบริหารการดำเนินการ/ไดเร็กทอรี เลือกไดเร็กทอรี การรักษาภายนอก.

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

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

เค้าโครงของแบบฟอร์มที่พิมพ์ 1C

เค้าโครงของแบบฟอร์มการพิมพ์ 1C มีลักษณะเช่นนี้

อย่างที่คุณเห็นมันถูกแบ่งออกเป็นบล็อก บล็อกอาจเป็นแนวนอน (ชื่อทางซ้าย) หรือแนวตั้ง (ชื่อทางด้านบน)

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

ในการกำหนดพื้นที่ ให้เลือกหลายแถว (หรือหลายคอลัมน์) และเลือกตาราง/ชื่อ/กำหนดชื่อจากเมนู หากต้องการลบออกก็จะมีคำสั่ง Remove name ด้วย

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

อย่างไรก็ตาม ตามค่าเริ่มต้น ชื่อเซลล์แบบกำหนดเองจะไม่แสดง หากต้องการดู ให้เลือกรายการเมนู ตาราง/ชื่อ/แสดงเซลล์ที่มีชื่อ

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

บล็อกทั่วไป (ใช้กันทั่วไป) สำหรับแผ่นพิมพ์:

  • Header – แสดงชื่อเอกสาร
  • แถว – แสดงหนึ่งแถวของตาราง บล็อกนี้จะถูกทำซ้ำหลาย ๆ ครั้งตามจำนวนแถวที่ต้องพิมพ์
  • Footer – แสดงส่วนท้ายของเอกสาร

ตอนนี้เราต้องจัดการกับ

ไม่ใช่เรื่องเป็นความลับ แม้ว่าในปัจจุบันบริษัทต่างๆ จะเปลี่ยนมาใช้มากขึ้นเรื่อยๆ เอกสารอิเล็กทรอนิกส์ในทางตรงกันข้าม สุภาษิตโบราณที่ว่า “ถ้าไม่มีกระดาษแผ่นหนึ่ง คุณ...” ก็ไม่ได้สูญเสียความเกี่ยวข้องไป มันเกิดขึ้นด้วยเหตุผลบางประการหน่วยงานตรวจสอบจึงสนใจเอกสารกระดาษเป็นหลัก ดังนั้นหากคุณใช้โปรแกรม 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.ชื่อของพารามิเตอร์การพิมพ์ = “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 และผ่านเครื่องมือสำหรับการสร้างแบบฟอร์มภายนอก เราหวังว่าทุกอย่างจะได้ผลสำหรับคุณ ฝากคำถามของคุณในความคิดเห็น

ชีวิตดำเนินต่อไป การเปลี่ยนแปลงกฎหมาย นักพัฒนาเผยแพร่การอัปเดตการกำหนดค่า และเรามีทางเลือกอีกครั้ง: ติดตั้งการอัปเดตด้วยตนเองหรือโทรหาโปรแกรมเมอร์อีกครั้งเพื่อ "ติดตั้งรุ่นใหม่"...

มาทำความรู้จักกับกลไกการเปลี่ยนแบบฟอร์มการพิมพ์โดยไม่ต้องเปลี่ยนการกำหนดค่ากันดีกว่า


ในทางปฏิบัติของนักบัญชีทุกคนที่ใช้ 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 ด้วยเหตุนี้ ข้อความต่อไปนี้ควรปรากฏขึ้น: "ไม่พบข้อผิดพลาดทางไวยากรณ์!"

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

สำคัญ!อย่างที่คุณเห็น เราไม่ได้ทำการเปลี่ยนแปลงใดๆ ภายในการกำหนดค่าของเรา สำหรับการดำเนินการทั้งหมดที่อธิบายไว้ข้างต้น คุณไม่จำเป็นต้องลบออกจากการสนับสนุนด้วยซ้ำ (นั่นคือ เปิดใช้งานความสามารถในการเปลี่ยนแปลง)

การเชื่อมต่อการประมวลผลภายนอกกับการกำหนดค่า

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



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



สำคัญ!การประมวลผลนั้นจะถูกจัดเก็บไว้ในฐานข้อมูลพร้อมกับข้อมูลอื่น ๆ นั่นคือหลังจากบันทึกการประมวลผลภายในฐานข้อมูลแล้ว เราจะไม่ต้องการไฟล์ภายนอก

เราจำเป็นต้องสร้างองค์ประกอบใหม่ในไดเร็กทอรี คลิก แทรก. ตอนนี้เรามาดูเนื้อหาขององค์ประกอบกัน เราเพิ่มความหมายให้กับชื่อ คำอธิบายสั้นสาระสำคัญของแบบฟอร์มนี้ เช่น "ใบแจ้งหนี้ของบริษัท". เช่นเดียวกับไดเร็กทอรีอื่นๆ ก็มีโค้ดเช่นกัน ปล่อยให้มันเป็นค่าเริ่มต้น แอตทริบิวต์ type จะถูกกรอกตามค่าเริ่มต้นและไม่สามารถแก้ไขได้ – “แบบพิมพ์”. และองค์ประกอบสุดท้ายของส่วนหัวคือความคิดเห็น ที่นี่ตามปกติจะมีรายละเอียดเพิ่มเติมเกี่ยวกับวัตถุประสงค์ของแบบฟอร์มการพิมพ์ นอกจากส่วนหัวแล้ว องค์ประกอบของไดเร็กทอรีนี้ยังมีบุ๊กมาร์กอีก 2 อัน ส่วนที่สองประกอบด้วยข้อมูลเกี่ยวกับการจำกัดสิทธิ์การเข้าถึงการประมวลผลนี้ หัวข้อนี้อยู่นอกเหนือขอบเขตของบทความนี้ (เราจะพูดถึงสิ่งนี้และการตั้งค่าสิทธิ์การเข้าถึงอื่น ๆ โดยไม่ต้องแก้ไขการกำหนดค่าในปัญหาที่กำลังจะเกิดขึ้น)

มาดูแท็บแรกกันดีกว่า

แท็บประกอบด้วยสี่คอลัมน์ การแสดงวัตถุ– ประเภทเอกสารที่เราต้องการใช้แบบฟอร์มการพิมพ์ของเรา

การคัดเลือก– เงื่อนไขที่ควรมีแบบพิมพ์นี้ ตัวอย่างเช่น เราได้ออกแบบแบบฟอร์มใบแจ้งหนี้ที่พิมพ์ออกมาใหม่และแปลเป็นภาษาอังกฤษ และเราต้องการให้ลูกค้าจากโฟลเดอร์ "ยุโรป"แทนการพิมพ์แบบมาตรฐาน “ใบกำกับการขาย”ถูกตีพิมพ์ แบบฟอร์มใหม่, บน ภาษาอังกฤษ. เมื่อต้องการทำเช่นนี้ คุณสามารถใช้คอลัมน์ได้ "การคัดเลือก". ตัวอย่างของการเลือกดังกล่าวแสดงในรูปที่ 13



แต่ในงานของเราไม่จำเป็นต้องเลือก

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

แผ่นพิมพ์แบบถอดเปลี่ยนได้– หากเราต้องการให้แบบฟอร์มที่พิมพ์ออกมาที่เราสร้างขึ้นมาแทนที่แบบฟอร์มมาตรฐานสำหรับเอกสารนี้ เราต้องระบุว่าจำเป็นต้องเปลี่ยนแบบฟอร์มใด หากไม่มีสิ่งใดให้เลือก แบบฟอร์มที่พิมพ์เพิ่มเติมจะปรากฏขึ้น

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

ตอนนี้เรามาบันทึกองค์ประกอบนี้กัน และเปิดใบแจ้งหนี้ใดๆ

ควรมีลักษณะดังแสดงในรูปที่ 14



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

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