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

บ่อยครั้งมีความจำเป็นต้องทำงานกับตัวแปรประเภท "วันที่" ในบทความนี้ เราจะดูเทคนิคพื้นฐาน - การผ่านวันที่ปัจจุบัน การตรวจสอบค่าว่าง วันที่ที่กำหนดเอง

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

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

ExampleRequest = คำขอใหม่;
ตัวอย่าง Request.Text = "
|เลือก
- AdvanceReportAttachedFiles.Link
|จาก
- Directory.AdvanceReportAttachedFilesAS AdvanceReportAttachedFiles
|ที่ไหน
- AdvanceReportAttachedFiles.Date< &ТекДата»;
ตัวอย่าง Request.SetParameter("CurrentDate", CurrentDate());

วันที่กำหนดเอง

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

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

ตัวอย่างนี้จะดึงไฟล์ทั้งหมดที่แนบมากับรายงานค่าใช้จ่ายจนถึงสิ้นปี 2016 ปีที่แล้ว โดยเราจะระบุชั่วโมง นาที และวินาที เพื่อเปรียบเทียบช่วงเวลา “วันที่ 31 ธันวาคม 2559 23:59:59 น.”

เลือก
AdvanceReportAttachedFiles.Link
จาก
Directory.AdvanceReportAttachedFiles AS AdvanceReportAttachedFiles
ที่ไหน
AdvanceReportAttachedFiles.Date< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

วันที่ว่างเปล่า

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

SKD 1C ย่อมาจาก Data Composition System SKD 1C เป็นวิธีใหม่ในการเขียนรายงานใน 1C ซึ่งช่วยให้ผู้ใช้ปรับแต่งรายงานได้ด้วยตนเอง

ข้อเสียของ SKD 1C คือการตั้งค่าค่อนข้างซับซ้อน และไม่ใช่ผู้ใช้ทุกคนจะเรียนรู้ได้อย่างรวดเร็ว

การเขียนรายงาน ACS ต้องใช้ความสามารถในการทำงานกับแบบสอบถามใน 1C ซึ่งเราได้กล่าวถึงแล้ว

เทคโนโลยีสำหรับการสร้างรายงาน SKD 1C คืออะไร:

  • เขียนคำขอ 1C ไปยัง 1C SKD ซึ่งจัดเตรียมการรับข้อมูล
  • ระบุบทบาทของฟิลด์ใน SKD 1C (ฟิลด์ที่คำนวณ ทรัพยากร)
  • ป้อนการตั้งค่าเริ่มต้น 1C SKD

ผู้ใช้มีโอกาสที่จะเปลี่ยนการตั้งค่าต่างๆได้ตามต้องการ

เทคโนโลยีในการสร้างรายงานเกี่ยวกับเทคโนโลยีก่อนหน้าคืออะไร:

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

อย่างที่คุณเห็น SKD 1C มีข้อได้เปรียบที่สำคัญสำหรับทั้งผู้ใช้และโปรแกรมเมอร์:

  • โปรแกรมเมอร์ – ไม่จำเป็นต้องเขียนโปรแกรมเพื่อรันรายงานและการตั้งค่า
  • ผู้ใช้ – เข้าถึงการตั้งค่ารายงานได้อย่างมาก

ในการกำหนดค่า 1C ใหม่ทั้งหมด รายงานทั้งหมดจะใช้เฉพาะใน 1C SKD เท่านั้น

มาดูวิธีสร้างรายงานเกี่ยวกับ SKD 1C ด้วยตัวเองตั้งแต่เริ่มต้น

การสร้างรายงาน SKD 1C

ในตัวกำหนดค่า ให้คลิกปุ่มไฟล์ใหม่ (เมนูไฟล์/ใหม่)

เลือกประเภทไฟล์รายงานใหม่

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

มาสร้างโครงร่างพื้นฐานของ SKD 1C กันดีกว่า

เราสร้างคำขอสำหรับรายงาน SKD 1C

อาจมีแหล่งข้อมูลมากมายสำหรับ SKD 1C ตัวอย่างเช่น หากต้องการใช้คำค้นหาสองคำแยกกัน ให้เพิ่ม "ชุดข้อมูล - สหภาพ" ตัวแรก จากนั้นจึงตามด้วยคำค้นหาหลายคำ

ในตัวอย่างของเรา เราจะใช้แบบสอบถามง่ายๆ

เรามาร่างคำขอเพื่อรับข้อมูลกัน

การทำงานกับตัวสร้างแบบสอบถามก็ไม่แตกต่างไปจากปกติ

จากการสร้างคำขอ SKD 1C จะสร้างรายการฟิลด์ที่พร้อมใช้งานและกรอกชื่อเริ่มต้น

หากไม่สะดวกสามารถเปลี่ยนชื่อได้ที่นี่

โปรดทราบว่าเราใช้พารามิเตอร์ &StartDate ในคำขอ ใน SKD 1C มีพารามิเตอร์เริ่มต้น (วันที่) ที่เรียกว่า &Period และคุณสามารถใช้งานได้

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

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

การตั้งค่า SKD 1C

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

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

การตั้งค่าพื้นฐานทำได้บนแท็บการตั้งค่า:


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

ผู้ใช้เห็นการตั้งค่ารูปแบบเกือบจะเหมือนกับโปรแกรมเมอร์

เอาล่ะ รายงานกำลังทำงาน

การตั้งค่า SKD 1C

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

ลองลากคลังสินค้าจากคอลัมน์ไปยังแถว

ลองลากรายการไปที่คลังสินค้า

คลิกตกลงและสร้างรายงาน ไชโย - เราเพิ่งเปลี่ยนวิธีการทำงานของรายงานในโหมดการเขียนโปรแกรมโดยไม่ต้องเขียนโปรแกรม

คลิกขวาที่ Rows (หรือฟิลด์ใดๆ ก็ตาม) แล้วเลือก New Grouping

ขยายฟิลด์คลังสินค้าและเลือกหนึ่งในฟิลด์ ตัวอย่างเช่น ประเภทคลังสินค้า

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

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

คลิกซ้ายการจัดกลุ่มของเรา (คลังสินค้า/รายการ) แล้วลากไปยังการจัดกลุ่มใหม่ (ประเภทคลังสินค้า)

ผลลัพธ์ของการตั้งค่าของเรา

นอกจากการตั้งค่าแล้ว เอฟเฟกต์ที่ง่ายต่อการเดาด้วยชื่อ (การเลือก การเรียงลำดับ ฯลฯ) ยังมีแท็บ "การตั้งค่าอื่นๆ" ช่วยให้คุณสามารถเปิดหรือปิดใช้งานสิ่งต่างๆ เช่น การแสดงผลรวม การจัดกลุ่มในคอลัมน์ ฯลฯ

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

สมมติว่าเราได้รับงานที่ลูกค้าต้องการรับรายงานเกี่ยวกับเอกสาร "การขายสินค้าและบริการ" ที่ป้อนลงในฐานข้อมูลและสำหรับแต่ละเอกสารจำเป็นต้องได้รับราคาจากการลงทะเบียนข้อมูล "ราคาสินค้า" ” ณ วันที่ออกเอกสาร รายงานนี้เขียนขึ้นสำหรับการกำหนดค่า "Manufacturing Enterprise Management" เวอร์ชัน 1.3

บันทึกจากตารางเอกสารจะถูกรวมเข้าด้วยกันโดยบันทึกจากตารางเสมือน "ราคาตามระบบการตั้งชื่อ SliceLast" ตามเงื่อนไขที่สอดคล้องกันของช่วงเวลา ประเภทราคา และรายการ ประเภทราคาได้มาจากรายละเอียดเอกสารชื่อเดียวกัน

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

การใช้เอซีเอส

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

ชุดข้อมูลชุดแรกประกอบด้วยแบบสอบถามต่อไปนี้:

แบบสอบถามเลือกฟิลด์ต่อไปนี้จากตารางเอกสารและส่วนตาราง "ผลิตภัณฑ์": "ลิงก์", "วันที่", "ประเภทราคา", "ระบบการตั้งชื่อ" ตอนนี้เรามาดูชุดข้อมูลที่สอง:

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

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

เมื่อกำหนดค่าโครงสร้างรายงานและสร้างแล้ว เราจะได้ผลลัพธ์ดังต่อไปนี้:

รายงานกำลังทำงาน พิจารณาตัวเลือกในการรับราคาสำหรับวันที่เอกสารในคำขอเดียว

ในคำขอเดียว

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

"SELECT | DocumentNomenclaturePeriod.Document, | DocumentNomenclaturePeriod.Document.Date AS Date, | DocumentNomenclaturePeriod.Document.PriceType AS TypePrice, | DocumentNomenclaturePeriod.Nomenclature, | PriceNomenclature.Price | FROM | (SELECT | Sales of GoodsServicesProducts. Link AS Document, | ovServicesProducts .Nomenclature AS Nomenclatures |. Documents.Sale of GoodsServices.Goods Products |. LEFT CONNECTION Register of Information.PricesNomenclatures |. Clatura. และการขายสินค้าและบริการ >= ระบบการตั้งชื่อราคา |. และการขายสินค้าบริการ.Link.PriceType = ระบบการตั้งชื่อราคา | และ DocumentNomenclaturePeriod.Document.PriceType = PriceNomenclature.PriceType | และ DocumentNomenclaturePeriod.Period = PriceNomenclature.Period"

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

ผลการดำเนินการคล้ายกับผลลัพธ์ของรายงานก่อนหน้า (ดูภาพหน้าจอด้านบน)

วาดข้อสรุป

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

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

ภาษานิพจน์ระบบการจัดองค์ประกอบข้อมูล

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

นิพจน์ถูกใช้ในระบบย่อยต่อไปนี้:

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

ตัวอักษร

นิพจน์อาจมีตัวอักษร ประเภทของตัวอักษรต่อไปนี้เป็นไปได้:

  • เส้น;
  • ตัวเลข;
  • วันที่;
  • บูลีน

เส้น

ตัวอักษรสตริงจะเขียนด้วยอักขระ “” ตัวอย่างเช่น:

“ตัวอักษรสตริง”

หากคุณต้องการใช้อักขระ “” ภายในสตริงลิเทอรัล คุณควรใช้อักขระดังกล่าวสองตัว

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

“ตัวอักษร”“ในเครื่องหมายคำพูด”““

ตัวเลข

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

10.5 200

วันที่

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

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

DATETIME(1975, 1, 06) – 6 มกราคม 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2 ธันวาคม 2549, 23 ชั่วโมง 56 นาที 57 วินาที, 23 ชั่วโมง 56 นาที 57 วินาที

บูลีน

ค่าบูลีนสามารถเขียนได้โดยใช้ตัวอักษร True (True), False (False)

ความหมาย

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

ค่า(AccountType. Active)

การดำเนินการเกี่ยวกับตัวเลข

อูนารี –

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

ยอดขาย.ปริมาณ

อูนารี +

การดำเนินการนี้ไม่ได้ดำเนินการใดๆ กับหมายเลข ตัวอย่างเช่น:

ยอดขาย.ปริมาณ

ไบนารี -

การดำเนินการนี้มีวัตถุประสงค์เพื่อคำนวณผลต่างของตัวเลขสองตัว ตัวอย่างเช่น:

ResidualsAndTurnovers.InitialRemaining – คงเหลือและ Turnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

ไบนารี +

การดำเนินการนี้ออกแบบมาเพื่อคำนวณผลรวมของตัวเลขสองตัว ตัวอย่างเช่น:

ยอดคงเหลือและมูลค่าการซื้อขายเริ่มต้นคงเหลือ + ยอดคงเหลือและมูลค่าการซื้อขาย ยอดคงเหลือมูลค่าการซื้อขายและมูลค่าการซื้อขายเริ่มต้นคงเหลือ + 100 400 + 357

งาน

การดำเนินการนี้ออกแบบมาเพื่อคำนวณผลคูณของตัวเลขสองตัว ตัวอย่างเช่น:

ระบบการตั้งชื่อราคา * 1.2 2 * 3.14

แผนก

การดำเนินการนี้ได้รับการออกแบบเพื่อให้ได้ผลลัพธ์ของการหารตัวถูกดำเนินการหนึ่งตัวด้วยอีกตัวหนึ่ง ตัวอย่างเช่น:

ระบบการตั้งชื่อราคา / 1.2 2 / 3.14

ส่วนที่เหลือของการแบ่ง

การดำเนินการนี้ได้รับการออกแบบเพื่อให้ได้ส่วนที่เหลือเมื่อตัวถูกดำเนินการตัวหนึ่งถูกหารด้วยตัวถูกดำเนินการอื่น ตัวอย่างเช่น:

ศัพท์เฉพาะ ราคา % 1.2 2 % 3.14

การดำเนินการสตริง

การต่อข้อมูล (ไบนารี +)

การดำเนินการนี้ออกแบบมาเพื่อเชื่อมสองสายเข้าด้วยกัน ตัวอย่างเช่น:

ระบบการตั้งชื่อบทความ + “: ”+ ระบบการตั้งชื่อบทความ

ชอบ

การดำเนินการนี้จะตรวจสอบว่าสตริงตรงกับรูปแบบที่ส่งผ่านหรือไม่

ค่าของตัวดำเนินการ LIKE จะเป็น TRUE หากค่าดังกล่าว<Выражения>เป็นไปตามรูปแบบและเป็น FALSE เป็นอย่างอื่น

ตัวละครต่อไปนี้ใน<Строке_шаблона>มีความหมายแตกต่างจากอักขระอื่นในบรรทัด:

  • % - เปอร์เซ็นต์: ลำดับที่มีอักขระตั้งแต่ศูนย์ขึ้นไป
  • _ - ขีดล่าง: อักขระหนึ่งตัว;
  • […] - อักขระตั้งแต่หนึ่งตัวขึ้นไปในวงเล็บเหลี่ยม: อักขระหนึ่งตัว หรืออักขระใด ๆ ที่อยู่ในวงเล็บเหลี่ยม การแจงนับอาจมีช่วง เช่น a-z ซึ่งหมายถึงอักขระใดๆ ที่รวมอยู่ในช่วง รวมถึงจุดสิ้นสุดของช่วงด้วย
  • [^...] - ในวงเล็บเหลี่ยม ไอคอนการปฏิเสธตามด้วยอักขระหนึ่งตัวขึ้นไป: อักขระใดๆ ยกเว้นที่อยู่ในรายการหลังไอคอนการปฏิเสธ

สัญลักษณ์อื่นใดหมายถึงตัวมันเองและไม่มีภาระเพิ่มเติมใดๆ หากจำเป็นต้องเขียนอักขระตัวใดตัวหนึ่งในรายการด้วยตัวมันเอง จะต้องนำหน้าด้วย<Спецсимвол>ระบุหลังคีย์เวิร์ด SPECIAL CHARACTER (ESCAPE)

ตัวอย่างเช่น เทมเพลต

“%ABV[abvg]\_abv%” ตัวละครพิเศษ “\”

หมายถึงสตริงย่อยที่ประกอบด้วยลำดับอักขระ: ตัวอักษร A; ตัวอักษร B; ตัวอักษร B; หนึ่งหลัก; หนึ่งในตัวอักษร a, b, c หรือ d; ขีดเส้นใต้; ตัวอักษรก; ตัวอักษรข; ตัวอักษรโวลต์ นอกจากนี้ ลำดับนี้สามารถระบุตำแหน่งโดยเริ่มจากตำแหน่งใดก็ได้ในบรรทัด

การดำเนินการเปรียบเทียบ

เท่ากับ

การดำเนินการนี้มีวัตถุประสงค์เพื่อเปรียบเทียบตัวถูกดำเนินการสองตัวเพื่อความเท่าเทียมกัน ตัวอย่างเช่น:

Sales.Counterparty = Sales.NomenclatureMainSupplier

ไม่เท่ากัน

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

ฝ่ายขายคู่สัญญา<>ฝ่ายขาย ระบบการตั้งชื่อ MainSupplier

น้อย

การดำเนินการนี้ออกแบบมาเพื่อตรวจสอบว่าตัวถูกดำเนินการตัวแรกน้อยกว่าตัวที่สอง ตัวอย่างเช่น:

ยอดขายปัจจุบันจำนวนเงิน< ПродажиПрошлые.Сумма

มากกว่า

การดำเนินการนี้ออกแบบมาเพื่อตรวจสอบว่าตัวถูกดำเนินการตัวแรกมากกว่าตัวที่สอง ตัวอย่างเช่น:

SalesCurrent.Sum > SalesPast.Sum

น้อยกว่าหรือเท่ากับ

การดำเนินการนี้ออกแบบมาเพื่อตรวจสอบว่าตัวถูกดำเนินการตัวแรกน้อยกว่าหรือเท่ากับตัวที่สอง ตัวอย่างเช่น:

ยอดขายปัจจุบันจำนวนเงิน<= ПродажиПрошлые.Сумма

มากกว่าหรือเท่ากับ

การดำเนินการนี้ออกแบบมาเพื่อตรวจสอบว่าตัวถูกดำเนินการตัวแรกมากกว่าหรือเท่ากับตัวที่สอง ตัวอย่างเช่น:

SalesCurrent.Amount >= SalesPast.Amount

ปฏิบัติการบี

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

รายการ B (&Product1, &Product2)

การดำเนินการตรวจสอบการมีอยู่ของค่าในชุดข้อมูล

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

การขาย คู่สัญญากับคู่สัญญา

การดำเนินการตรวจสอบค่าสำหรับ NULL

การดำเนินการนี้จะคืนค่า True ถ้าค่าเป็น NULL ตัวอย่างเช่น:

ฝ่ายขายคู่สัญญาเป็นโมฆะ

การดำเนินการตรวจสอบค่าความไม่เท่าเทียมกันของ NULL

การดำเนินการนี้จะคืนค่าเป็น True ถ้าค่าไม่ใช่ NULL ตัวอย่างเช่น:

Sales.Counterparty ไม่เป็นโมฆะ

การดำเนินการเชิงตรรกะ

การดำเนินการทางลอจิคัลยอมรับนิพจน์ประเภทบูลีนเป็นตัวถูกดำเนินการ

การดำเนินการไม่

การดำเนินการ NOT จะคืนค่าเป็น True หากตัวถูกดำเนินการเป็นเท็จ และจะเป็นเท็จหากตัวถูกดำเนินการเป็น True ตัวอย่างเช่น:

ไม่ใช่ Document.Consignee = Document.Consignor

ปฏิบัติการ I

การดำเนินการ AND จะคืนค่าเป็น True หากตัวถูกดำเนินการทั้งสองตัวถูกดำเนินการเป็น True และจะส่งคืนค่าเป็นเท็จหากตัวถูกดำเนินการตัวใดตัวหนึ่งเป็นเท็จ ตัวอย่างเช่น:

Document.Consignee = Document.Consignor และ Document.Consignee = &Counterparty

หรือการดำเนินงาน

การดำเนินการ OR จะคืนค่าเป็น True หากตัวถูกดำเนินการตัวใดตัวหนึ่งเป็น True และจะส่งคืนค่าเป็นเท็จหากตัวถูกดำเนินการทั้งสองตัวเป็นเท็จ ตัวอย่างเช่น:

Document.Consignee = Document.Consignor หรือ Document.Consignee = &Counterparty

ฟังก์ชันรวม

ฟังก์ชันรวมดำเนินการบางอย่างกับชุดข้อมูล

ผลรวม

ฟังก์ชันรวม Sum จะคำนวณผลรวมของค่าของนิพจน์ที่ส่งให้เป็นอาร์กิวเมนต์สำหรับบันทึกรายละเอียดทั้งหมด ตัวอย่างเช่น:

จำนวนเงิน(ยอดขายจำนวนการหมุนเวียน)

ปริมาณ

ฟังก์ชัน Count จะคำนวณจำนวนค่าอื่นที่ไม่ใช่ NULL ตัวอย่างเช่น:

ปริมาณ(ฝ่ายขายคู่สัญญา)

จำนวนที่แตกต่างกัน

ฟังก์ชันนี้จะคำนวณจำนวนค่าที่แตกต่างกัน ตัวอย่างเช่น:

ปริมาณ(การขายต่างๆ.Counterparty)

สูงสุด

ฟังก์ชันรับค่าสูงสุด ตัวอย่างเช่น:

สูงสุด(คงเหลือ.ปริมาณ)

ขั้นต่ำ

ฟังก์ชันรับค่าต่ำสุด ตัวอย่างเช่น:

ขั้นต่ำ(คงเหลือ.ปริมาณ)

เฉลี่ย

ฟังก์ชันรับค่าเฉลี่ยของค่าที่ไม่ใช่ NULL ตัวอย่างเช่น:

เฉลี่ย(คงเหลือ.ปริมาณ)

การดำเนินงานอื่น ๆ

การดำเนินการเลือก

การดำเนินการเลือกมีจุดมุ่งหมายเพื่อเลือกค่าใดค่าหนึ่งจากหลายค่าเมื่อตรงตามเงื่อนไขบางประการ ตัวอย่างเช่น:

เลือกเมื่อจำนวนเงิน > 1,000 จากนั้นจำนวนเงิน มิฉะนั้นจะเป็น 0 สิ้นสุด

กฎสำหรับการเปรียบเทียบสองค่า

หากประเภทของค่าที่เปรียบเทียบแตกต่างกัน ความสัมพันธ์ระหว่างค่าจะถูกกำหนดตามลำดับความสำคัญของประเภท:

  • โมฆะ (ต่ำสุด);
  • บูลีน;
  • ตัวเลข;
  • วันที่;
  • เส้น;
  • ประเภทการอ้างอิง

ความสัมพันธ์ระหว่างประเภทการอ้างอิงที่แตกต่างกันจะพิจารณาจากหมายเลขอ้างอิงของตารางที่สอดคล้องกับประเภทใดประเภทหนึ่ง

หากประเภทข้อมูลเหมือนกันค่าจะถูกเปรียบเทียบตามกฎต่อไปนี้:

  • สำหรับประเภทบูลีน ค่า TRUE มากกว่าค่า FALSE
  • ประเภทตัวเลขมีกฎการเปรียบเทียบตัวเลขตามปกติ
  • สำหรับประเภทวันที่ วันที่ก่อนหน้าจะน้อยกว่าวันที่หลัง
  • สำหรับประเภทสตริง - การเปรียบเทียบสตริงตามลักษณะประจำชาติที่กำหนดไว้ของฐานข้อมูล
  • ประเภทการอ้างอิงจะถูกเปรียบเทียบตามค่า (หมายเลขบันทึก ฯลฯ )

การทำงานกับค่า NULL

การดำเนินการใดๆ ที่ตัวถูกดำเนินการตัวใดตัวหนึ่งเป็น NULL จะให้ผลลัพธ์เป็น NULL

มีข้อยกเว้น:

  • การดำเนินการ AND จะส่งคืนค่า NULL ก็ต่อเมื่อไม่มีตัวถูกดำเนินการใดที่เป็นเท็จ
  • การดำเนินการ OR จะส่งคืนค่า NULL หากไม่มีตัวถูกดำเนินการใดที่เป็นจริง

ลำดับความสำคัญของการดำเนินงาน

การดำเนินการมีลำดับความสำคัญดังต่อไปนี้ (บรรทัดแรกมีลำดับความสำคัญต่ำสุด):

  • B เป็นโมฆะ ไม่เป็นโมฆะ
  • =, <>, <=, <, >=, >;
  • ไบนารี +, ไบนารี – ;
  • *, /, %;
  • อูนารี +, อูนารี -

ฟังก์ชันภาษานิพจน์ของระบบการจัดองค์ประกอบข้อมูล

คำนวณ

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

  • การแสดงออก. ประเภทสตริง ประกอบด้วยนิพจน์จากการคำนวณ
  • การจัดกลุ่ม ประเภทสตริง ประกอบด้วยชื่อของการจัดกลุ่มในบริบทที่จะประเมินนิพจน์ ถ้าใช้สตริงว่างเป็นชื่อการจัดกลุ่ม การคำนวณจะดำเนินการในบริบทของการจัดกลุ่มปัจจุบัน ถ้าใช้สตริง GrandTotal เป็นชื่อกลุ่ม การคำนวณจะดำเนินการในบริบทของผลรวมทั้งหมด มิฉะนั้น การคำนวณจะดำเนินการในบริบทของการจัดกลุ่มหลักที่มีชื่อเดียวกัน ตัวอย่างเช่น:
ผลรวม(Sales.SumTurnover) / คำนวณ("Sum(Sales.SumTurnover)", "Total")

ในตัวอย่างนี้ ผลลัพธ์จะเป็นอัตราส่วนของจำนวนเงินสำหรับฟิลด์ "Sales.AmountTurnover" ของเรกคอร์ดการจัดกลุ่มต่อจำนวนของฟิลด์เดียวกันในโครงร่างทั้งหมด

ระดับ

ฟังก์ชันนี้ได้รับการออกแบบเพื่อให้ได้ระดับการบันทึกปัจจุบัน

ระดับ()

หมายเลขในการสั่งซื้อ

รับหมายเลขลำดับถัดไป

NumberByOrder()

NumberInOrderInGrouping

ส่งกลับเลขลำดับถัดไปในกลุ่มปัจจุบัน

NumberByOrderInGroup()

รูปแบบ

รับสตริงที่จัดรูปแบบของค่าที่ส่งผ่าน

สตริงรูปแบบถูกตั้งค่าตามสตริงรูปแบบ 1C:Enterprise

พารามิเตอร์:

  • ความหมาย;
  • จัดรูปแบบสตริง

รูปแบบ (ใบแจ้งหนี้วัสดุสิ้นเปลือง จำนวนเงินเอกสาร "NPV=2")

จุดเริ่มต้นของช่วงเวลา

พารามิเตอร์:

    • นาที;
    • วัน;
    • สัปดาห์;
    • เดือน;
    • หนึ่งในสี่;
    • ทศวรรษ;
    • ครึ่งปี.

StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), "เดือน")

ผลลัพธ์:

01.10.2002 0:00:00

สิ้นสุดระยะเวลา

ฟังก์ชันนี้ออกแบบมาเพื่อแยกวันที่ที่ระบุจากวันที่ที่กำหนด

พารามิเตอร์:

  • วันที่. พิมพ์วันที่ วันที่ระบุ;
  • ประเภทระยะเวลา ประเภทสตริง ประกอบด้วยค่าใดค่าหนึ่งต่อไปนี้:
    • นาที;
    • วัน;
    • สัปดาห์;
    • เดือน;
    • หนึ่งในสี่;
    • ทศวรรษ;
    • ครึ่งปี.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "สัปดาห์")

ผลลัพธ์:

13.10.2002 23:59:59

เพิ่มไปยังวันที่

ฟังก์ชันนี้ได้รับการออกแบบเพื่อเพิ่มค่าบางอย่างให้กับวันที่

พารามิเตอร์:

  • ประเภทการขยาย ประเภทสตริง ประกอบด้วยค่าใดค่าหนึ่งต่อไปนี้:
    • นาที;
    • วัน;
    • สัปดาห์;
    • เดือน;
    • หนึ่งในสี่;
    • ทศวรรษ;
    • ครึ่งปี.
  • จำนวนเงิน – โดยจำนวนเงินที่คุณต้องเพิ่มวันที่ ประเภทหมายเลข ส่วนที่เป็นเศษส่วนจะถูกละเว้น

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "เดือน", 1)

ผลลัพธ์:

12.11.2002 10:15:34

ความแตกต่างวันที่

ฟังก์ชันนี้ได้รับการออกแบบมาให้รับความแตกต่างระหว่างวันที่สองวัน

พารามิเตอร์:

  • การแสดงออก. พิมพ์วันที่ วันที่เดิม
  • การแสดงออก. พิมพ์วันที่ วันที่หักออก;
  • ประเภทความแตกต่าง ประเภทสตริง ประกอบด้วยค่าใดค่าหนึ่งต่อไปนี้:
    • ที่สอง;
    • นาที;
    • วัน;
    • เดือน;
    • หนึ่งในสี่;

วันที่ความแตกต่าง(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "DAY")

ผลลัพธ์:

สตริงย่อย

ฟังก์ชันนี้ออกแบบมาเพื่อแยกสตริงย่อยออกจากสตริง

พารามิเตอร์:

  • เส้น. ประเภทสตริง สตริงที่แยกสตริงย่อย
  • ตำแหน่ง. ประเภทหมายเลข ตำแหน่งของอักขระที่สตริงย่อยที่จะแยกออกจากสตริงเริ่มต้น
  • ความยาว. ประเภทหมายเลข ความยาวของสตริงย่อยที่จัดสรร

SUBSTRING(บัญชี ที่อยู่ 1, 4)

ความยาวสาย

ฟังก์ชันนี้ออกแบบมาเพื่อกำหนดความยาวของสตริง

พารามิเตอร์:

  • เส้น. ประเภทสตริง สตริงที่มีการระบุความยาว

ไลน์(คู่สัญญาที่อยู่)

ปี

ฟังก์ชันนี้ออกแบบมาเพื่อแยกปีจากค่าชนิดวันที่

พารามิเตอร์:

  • วันที่. พิมพ์วันที่ วันที่ซึ่งปีถูกกำหนด

ปี(ค่าใช้จ่าย.วันที่)

หนึ่งในสี่

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

พารามิเตอร์

  • วันที่. พิมพ์วันที่ วันที่กำหนดไตรมาส
ไตรมาส (ค่าใช้จ่ายวันที่)

เดือน

ฟังก์ชันนี้ออกแบบมาเพื่อแยกหมายเลขเดือนออกจากค่าประเภทวันที่ โดยปกติหมายเลขเดือนจะอยู่ในช่วงตั้งแต่ 1 ถึง 12

  • วันที่. พิมพ์วันที่ วันที่กำหนดเดือน
เดือน(ค่าใช้จ่าย.วันที่)

วันแห่งปี

ฟังก์ชันนี้ได้รับการออกแบบมาเพื่อให้ได้วันของปีจากค่าชนิดวันที่ โดยปกติวันของปีจะอยู่ในช่วงตั้งแต่ 1 ถึง 365 (366)

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดวันของปี
DAYYEAR(บัญชีค่าใช้จ่าย วันที่)

วัน

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

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดวันของเดือน
วัน(ค่าใช้จ่ายวันที่)

สัปดาห์

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

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดหมายเลขสัปดาห์
สัปดาห์(ค่าใช้จ่าย.วันที่)

วันของสัปดาห์

ฟังก์ชันนี้ออกแบบมาเพื่อรับวันในสัปดาห์จากค่าประเภทวันที่ วันปกติของสัปดาห์มีตั้งแต่ 1 (วันจันทร์) ถึง 7 (วันอาทิตย์)

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดวันในสัปดาห์
วันในสัปดาห์(ค่าใช้จ่าย.วันที่)

ชั่วโมง

ฟังก์ชันนี้ได้รับการออกแบบมาให้รับชั่วโมงของวันจากค่าประเภทวันที่ ชั่วโมงของวันอยู่ระหว่าง 0 ถึง 23

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดชั่วโมงของวัน
ชั่วโมง(ค่าใช้จ่าย.วันที่)

นาที

ฟังก์ชันนี้ได้รับการออกแบบเพื่อรับนาทีของชั่วโมงจากค่าชนิดวันที่ นาทีของชั่วโมงอยู่ระหว่าง 0 ถึง 59

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดนาทีของชั่วโมง
นาที(ค่าใช้จ่าย.วันที่)

ที่สอง

ฟังก์ชันนี้ได้รับการออกแบบเพื่อให้ได้วินาทีของนาทีจากค่าชนิดวันที่ วินาทีของนาทีมีค่าตั้งแต่ 0 ถึง 59

  • วันที่. พิมพ์วันที่ วันที่ซึ่งกำหนดวินาทีของนาที
ที่สอง(ค่าใช้จ่าย.วันที่)

ด่วน

ฟังก์ชันนี้ออกแบบมาเพื่อแยกประเภทออกจากนิพจน์ที่อาจมีประเภทประสม หากนิพจน์มีประเภทอื่นนอกเหนือจากประเภทที่ต้องการ จะส่งคืนค่า NULL

พารามิเตอร์:

  • นิพจน์ที่จะแปลง
  • ตัวบ่งชี้ประเภท ประเภทสตริง ประกอบด้วยสตริงประเภท ตัวอย่างเช่น "หมายเลข", "สตริง" ฯลฯ นอกจากประเภทดั้งเดิมแล้ว บรรทัดนี้อาจมีชื่อของตารางด้วย ในกรณีนี้ จะพยายามแสดงการอ้างอิงไปยังตารางที่ระบุ

Express(Data.Props1, "หมายเลข (10,3)")

เป็นค่าว่าง

ฟังก์ชันนี้ส่งคืนค่าของพารามิเตอร์ตัวที่สองหากค่าของพารามิเตอร์ตัวแรกเป็น NULL

มิฉะนั้น ค่าของพารามิเตอร์แรกจะถูกส่งกลับ

ใช่NULL(จำนวน(ยอดขายจำนวนการหมุนเวียน), 0)

ฟังก์ชั่นของโมดูลทั่วไป

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

ในตัวอย่างนี้ ฟังก์ชัน "AbbreviatedName" จะถูกเรียกจากโมดูลการกำหนดค่าทั่วไป

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

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

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

เปิดไดอะแกรมเค้าโครงข้อมูล โดยเฉพาะอย่างยิ่งในรายงานภายนอก เพื่อให้การแก้ไขง่ายขึ้น

เราเพิ่มชุดข้อมูลของประเภทแบบสอบถามและเขียนแบบสอบถามแบบง่าย ๆ ด้วยตนเองหรือใช้ตัวออกแบบแบบสอบถาม:

1. ตั้งค่าคำขอในระบบควบคุมการเข้าออก

2. ตั้งค่าฟิลด์ที่คำนวณได้ในระบบควบคุมการเข้าออก

3. กำหนดโครงร่างข้อมูลบนแท็บการตั้งค่า

4. เปิดตัว 1C Enterprise 8.2.14 เปิดรายงาน เราสร้างเราได้รับ

คำอธิบายของฟังก์ชั่นใหม่:

1. วันที่ปัจจุบัน()

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

2. การแสดงออกทางคอมพิวเตอร์()

ไวยากรณ์:

คำนวณนิพจน์(,)

คำอธิบาย:

ฟังก์ชันนี้ออกแบบมาเพื่อประเมินนิพจน์ในบริบทของการจัดกลุ่มบางกลุ่ม

ฟังก์ชันจะคำนึงถึงการเลือกการจัดกลุ่ม แต่ไม่คำนึงถึงการเลือกแบบลำดับชั้น

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

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

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

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

ตัวเลือก

พิมพ์: เส้น- นิพจน์ที่จะประเมิน

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

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

ผลรวม(Sales.SumTurnover)/คำนวณ("Sum(Sales.SumTurnover)", "ทั้งหมด")

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

พิมพ์: เส้น- พารามิเตอร์สามารถรับค่าต่อไปนี้:

· รวมทั้งหมด— นิพจน์จะถูกคำนวณสำหรับบันทึกการจัดกลุ่มทั้งหมด

· ลำดับชั้น— นิพจน์จะถูกประเมินสำหรับเรกคอร์ดลำดับชั้นพาเรนต์ ถ้ามี และสำหรับทั้งกลุ่ม หากไม่มีเรกคอร์ดลำดับชั้นพาเรนต์

· การจัดกลุ่ม— นิพจน์จะได้รับการประเมินสำหรับบันทึกการจัดกลุ่มกลุ่มปัจจุบัน

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

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

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

พิมพ์: เส้น- ระบุว่าควรเริ่มต้นการบันทึกส่วนใด ควรคำนวณฟังก์ชันนิพจน์รวมใด และบันทึกใดที่จะได้รับค่าฟิลด์นอกฟังก์ชันรวม ค่าอาจเป็นค่าใดค่าหนึ่งต่อไปนี้:

· อันดับแรก

· สุดท้าย (สุดท้าย)

· ก่อนหน้า

· ถัดไป (ถัดไป)

· ปัจจุบัน

· การจำกัดมูลค่า(ค่าขอบเขต) การจำกัดมูลค่า

พิมพ์: เส้น- บ่งชี้ว่าบันทึกส่วนใดที่ควรดำเนินการต่อ ซึ่งฟังก์ชันรวมของนิพจน์ควรถูกคำนวณ ค่าอาจเป็นค่าใดค่าหนึ่งต่อไปนี้:

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

หากเรกคอร์ดแรกอยู่นอกกลุ่ม จะถือว่าไม่มีเรกคอร์ด ตัวอย่างเช่น หากมี 3 เรคคอร์ด และคุณต้องการได้รับ First(4) ก็ถือว่าไม่มีเรคคอร์ด

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

หากบันทึกสุดท้ายอยู่นอกกลุ่มจะถือว่าไม่มีบันทึก ตัวอย่างเช่น หากมี 3 เรคคอร์ด และคุณต้องการรับ Last(4) ก็ถือว่าไม่มีเรคคอร์ด

· ก่อนหน้า- คุณต้องได้รับบันทึกการจัดกลุ่มก่อนหน้า หลังคำในวงเล็บ คุณสามารถระบุนิพจน์ได้ ซึ่งผลลัพธ์จะถูกใช้เป็นค่าชดเชยกลับจากบันทึกการจัดกลุ่มปัจจุบัน ตัวอย่างเช่น Previous(2) - รับข้อมูลก่อนหน้าจากบันทึกก่อนหน้า

หากเรกคอร์ดก่อนหน้านี้ไปไกลกว่าการจัดกลุ่ม (เช่น สำหรับเรกคอร์ดการจัดกลุ่มที่สอง คุณต้องได้รับ Previous(3)) จากนั้นจะได้รับเรกคอร์ดการจัดกลุ่มแรก

เมื่อเรียกข้อมูลบันทึกก่อนหน้าสำหรับผลรวมการจัดกลุ่มจะถือว่าได้รับบันทึกแรก

· ถัดไป (ถัดไป)- คุณต้องได้รับเรกคอร์ดการจัดกลุ่มถัดไป หลังคำในวงเล็บ คุณสามารถระบุนิพจน์ได้ ซึ่งผลลัพธ์จะถูกใช้เป็นค่าชดเชยจากการส่งต่อจากรายการการจัดกลุ่มปัจจุบัน ตัวอย่างเช่น Next(2) - รับรายการถัดไปจากบันทึกถัดไป

หากบันทึกถัดไปไปนอกเหนือการจัดกลุ่มจะถือว่าไม่มีบันทึก ตัวอย่างเช่น หากมี 3 รายการและรายการที่สามได้รับ Next() จะถือว่าไม่มีรายการ

เมื่อได้รับบันทึกถัดไปสำหรับยอดรวมกลุ่มถือว่าไม่มีบันทึก

· ปัจจุบัน- คุณต้องได้รับบันทึกปัจจุบัน

เมื่อดึงข้อมูลผลรวมการจัดกลุ่ม จะได้รับบันทึกแรก

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

เรกคอร์ดแรกที่มีค่าฟิลด์การเรียงลำดับมากกว่าหรือเท่ากับค่าที่ระบุจะถูกส่งกลับเป็นเรกคอร์ด ตัวอย่างเช่น หากใช้ฟิลด์ระยะเวลาเป็นฟิลด์การสั่งซื้อ และมีค่า 01/01/2010, 02/01/2010, 03/01/2010 และคุณต้องการได้รับ การจำกัดมูลค่า(DateTime(2010, 1, 15))จากนั้นจะได้รับบันทึกวันที่ 02/01/2010

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

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

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

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

· ด้วยกันบ่งชี้ว่าบันทึกก่อนหน้าและถัดไปถูกกำหนดตามค่าของนิพจน์การเรียงลำดับ

ตัวอย่างเช่น หากลำดับผลลัพธ์เรียงลำดับตามวันที่:

วันที่ ชื่อเต็ม ความหมาย
1 01 มกราคม 2544

อีวานอฟ เอ็ม.

10
2 02 มกราคม 2544 เปตรอฟ เอส. 20
3 03 มกราคม 2544 ซิโดรอฟ อาร์. 30
4 04 มกราคม 2544 เปตรอฟ เอส. 40

แยกกัน, ที่:

§ รายการก่อนหน้าของรายการ 3 จะเป็นรายการ 2

ปัจจุบันปัจจุบัน(ตามพารามิเตอร์ เริ่มและ จบ) จากนั้นสำหรับบันทึก 2 ส่วนนี้จะประกอบด้วยหนึ่งระเบียน 2 นิพจน์จะเท่ากับ 20

หากค่าพารามิเตอร์เป็น ด้วยกัน, ที่:

§ รายการก่อนหน้าของรายการ 3 จะเป็นรายการ 1

§ ถ้าส่วนการคำนวณถูกกำหนดเป็น ปัจจุบันปัจจุบัน(ตามพารามิเตอร์ เริ่มและ จบ) จากนั้นสำหรับบันทึก 2 ส่วนนี้จะประกอบด้วยบันทึก 2 และ 3 นิพจน์ CalculateExpression("ผลรวม(มูลค่า)", ปัจจุบัน, ปัจจุบัน)จะเท่ากับ 50

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

CalculateExpression("Sum(SumTurnover)", "First", "ปัจจุบัน")

หากคุณต้องการรับค่าการจัดกลุ่มในบรรทัดก่อนหน้า คุณสามารถใช้นิพจน์ต่อไปนี้:

CalculateExpression("อัตรา", "ก่อนหน้า")

รายการ ใหม่ฟังก์ชั่น:

คำนวณ ExpressionWithGroupArray(,) -

ฟังก์ชันส่งคืนอาร์เรย์ ซึ่งแต่ละองค์ประกอบจะมีผลลัพธ์ของการประเมินนิพจน์สำหรับการจัดกลุ่มตามฟิลด์ที่ระบุ

คำนวณ ExpressionWithGroupValueTable(,) -

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

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

รูปแบบ(, ) - รับสตริงที่จัดรูปแบบของค่าที่ส่งผ่าน สตริงรูปแบบถูกตั้งค่าตามสตริงรูปแบบของระบบ 1C:Enterprise

สตริงย่อย(, , ) - ฟังก์ชั่นนี้ออกแบบมาเพื่อแยกสตริงย่อยออกจากสตริง

ความยาวสาย() - ฟังก์ชันนี้ออกแบบมาเพื่อกำหนดความยาวของสตริง พารามิเตอร์คือนิพจน์สตริง

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



 


อ่าน:



ตำแหน่งของหัวบนเสาอากาศ

ตำแหน่งของหัวบนเสาอากาศ

บทความนี้เปิดเผยวิธีการหลักในการกำหนดราบโดยใช้เข็มทิศแม่เหล็กและสถานที่ที่เป็นไปได้ การใช้งาน...

วิธีดาวน์โหลดและกำหนดค่าผู้ช่วยอัจฉริยะสำหรับอุปกรณ์ Android

วิธีดาวน์โหลดและกำหนดค่าผู้ช่วยอัจฉริยะสำหรับอุปกรณ์ Android

วันที่อัปเดต: 2017-08-05 09:22:20 เวอร์ชันล่าสุด: ความเข้ากันได้: จาก android 4.0.3-4.0.4 - ถึง android 6.0 สิทธิ์ของแอปพลิเคชัน: การเปลี่ยนโหมด...

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

ตัวเลือก

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

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

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

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

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