แบบฟอร์มการเลือกพารามิเตอร์การแก้ไข SKD 1 วินาที คุณสมบัติของการสร้างรายงาน (1Cv8) วิธีเพิ่มพารามิเตอร์ที่ไม่สามารถแก้ไขได้โดยผู้ใช้

คุณสมบัติของการสร้างรายงานใน 1C v8 ในโหมดไคลเอนต์แบบหนา

จะเลือกตัวเลือกอย่างไร?

  • วางปุ่ม "เลือกตัวเลือก" บนแผงรายงาน
  • วางฟิลด์ "OnDate" บนแบบฟอร์ม

รหัสตัวอย่าง: โครงร่าง ProcedureFormActionSelectOption (ปุ่ม) = GetLayout ("MainDataLayoutScheme"); spOptions = รายการค่าใหม่; สำหรับแต่ละตัวเลือกจากเค้าโครงOptionsSettings Loop spOptions.Add(option.Settings, option.View); สิ้นสุดรอบ;

การเลือก = cnOptions.SelectItem(); หากตัวเลือก = ไม่ได้กำหนดไว้ ให้ส่งคืน; สิ้นสุดถ้า;

SettingsComposer.LoadSettings (selection.Value);

สร้าง(); สิ้นสุดขั้นตอน

ขั้นตอน OnDateOnChange (องค์ประกอบ) สร้าง (); สิ้นสุดขั้นตอน

ขั้นตอนการสร้าง()FormElements.Result.Clear(); การตั้งค่า Composer.Settings.DataParameters.SetParameterValue ("ระยะเวลา", ToDate); ComposeResult (FormElements ผล); สิ้นสุดขั้นตอน

ขั้นตอนในการเปิด() OnDate = CurrentDate(); สร้าง(); สิ้นสุดขั้นตอน

คุณสมบัติการสร้างรายงานผ่านระบบควบคุมการเข้าออก

การสร้างรายงานทีละขั้นตอน

  1. สร้างรายงานในโหนดรายงาน
  2. สร้างเค้าโครงในรายงานประเภทเป็น Data Layout Scheme
  3. ในคุณสมบัติรายงาน ให้ตั้งค่า: รูปแบบโครงร่างข้อมูลพื้นฐาน = โครงร่างที่สร้างขึ้น
  4. ในคุณสมบัติรายงาน ให้ตั้งค่าระบบย่อยที่เป็นของมัน (รายงานใน Enterprise จะแสดงในแผงการนำทางด้านบน)
  5. สร้างแบบสอบถามในเค้าโครง (รายการ: เพิ่มชุดข้อมูล - แบบสอบถาม)
  6. ในแท็บตัวเลือกสำหรับเค้าโครง คุณต้องยกเลิกการเลือกบรรทัดทั้งหมดในคอลัมน์ Availability Restriction - เช่น พารามิเตอร์ทั้งหมดจะพร้อมสำหรับการแก้ไขโดยผู้ใช้
  7. ในแท็บการตั้งค่าของเค้าโครงในหน้าต่างที่แสดงโหนดรายงานคุณจะต้องสร้างการจัดกลุ่มใหม่โดยไม่ต้องระบุฟิลด์การจัดกลุ่ม - เส้นรายละเอียดจะถูกสร้างขึ้น
  8. ในแท็บการตั้งค่าของเค้าโครง ในหน้าต่างที่แสดงชุดบุ๊กมาร์กเพิ่มเติม ให้เลือกเพิ่มเติม แท็บพารามิเตอร์ - ทำเครื่องหมายพารามิเตอร์ทั้งหมดด้วยเครื่องหมายถูกและในแต่ละพารามิเตอร์ให้คลิกองค์ประกอบคุณสมบัติขององค์ประกอบการตั้งค่าผู้ใช้ หน้าต่างการตั้งค่าพารามิเตอร์จะเปิดขึ้นโดยที่คุณต้องทำเครื่องหมายในช่อง - รวมพารามิเตอร์ในการตั้งค่าผู้ใช้
  9. ในแท็บการตั้งค่าของเค้าโครง ในหน้าต่างที่แสดงชุดบุ๊กมาร์กเพิ่มเติม ให้เลือกเพิ่มเติม แท็บ SelectedFields - คุณต้องเพิ่มคอลัมน์ที่จะแสดงในรายงาน
  10. เปิดใช้ Enterprise เปิดรายงาน ตั้งค่าพารามิเตอร์ สร้าง (ตรวจสอบว่าได้เลือกตัวเลือกการสร้างรายงานหลักแล้ว)

จะเพิ่มพารามิเตอร์ที่ไม่สามารถแก้ไขได้โดยผู้ใช้ได้อย่างไร?

ตัวอย่างเช่น เราต้องตั้งค่าพารามิเตอร์การสืบค้น "Infobase"

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


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

&ขั้นตอนบนเซิร์ฟเวอร์เมื่อโหลดตัวเลือกบนเซิร์ฟเวอร์ (การตั้งค่า)

//การตั้งค่าพารามิเตอร์การตั้งค่า = Report.Settings Composer.Settings; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase); สิ้นสุดขั้นตอน

จะตั้งค่าตัวเลือกรายงานได้อย่างไร?

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

จะตั้งค่าการจัดกลุ่มได้อย่างไร?

  • ในแบบฟอร์มโครงร่างเค้าโครงบนแท็บการตั้งค่าในช่องด้านบนขวา คุณสามารถสร้างการจัดกลุ่มที่จำเป็นได้

จะแสดงรายงานโดยทางโปรแกรมได้อย่างไร?

ในโมดูลแบบฟอร์ม:

&ในขั้นตอนไคลเอ็นต์ GenerateReportExecute()

ThisForm.ComposeResult();

สิ้นสุดขั้นตอน

จะทดสอบรายงานได้อย่างไร?

คุณต้องทำ:

  • วิธีที่สะดวกที่สุดในการสร้างสถานการณ์ในการทดสอบไคลเอนต์คือผ่านตารางสถานการณ์
  • รับแบบฟอร์มรายงาน - form = GetForm("Report.Process Movement.Form.ReportForm");
  • โหลดชุดตัวเลือกรายงานที่ต้องการ - ตั้งค่าพารามิเตอร์ส่วนขยายแบบฟอร์มรายงาน "Variant Key" (ชื่อของการตั้งค่าในเค้าโครงองค์ประกอบข้อมูล)
  • โหลดการตั้งค่ารายงานที่จำเป็น - ? การกรอกพารามิเตอร์ส่วนขยายแบบฟอร์มรายงาน "UserSettings" (ประเภท "UserDataCompositionSettings") ไม่ได้ผลทุกอย่างซับซ้อนดูด้านล่าง
  • แบบฟอร์มเปิด - form.Open()
  • ดำเนินการสร้าง - form.ArrangeResult();
  • ตรวจสอบเนื้อหาของแบบฟอร์มเอกสารสเปรดชีต ผลลัพธ์ - คงจะดีถ้ามีฟังก์ชันเปรียบเทียบกับ mxl อ้างอิง
  • แบบฟอร์มปิด - form.Close(); - หรือบางทีคุณไม่จำเป็นต้องเปิดมันคุณต้องตรวจสอบ

ดูสิ่งนี้ด้วย

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

จะโหลดการตั้งค่ารายงานที่จำเป็นได้อย่างไร?

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

รูปแบบการทำงานจริง:

1. สร้างพารามิเตอร์ในรายงาน

  • ประเภทรอบระยะเวลา StandardPeriod
  • การเลือกประเภท ValueList (โครงสร้างจะดีกว่า แต่ไม่อยู่ในรายการประเภทพารามิเตอร์ รวมถึงประเภทที่กำหนดเอง)

2. เราส่งพารามิเตอร์ที่จำเป็นไปยังขั้นตอน GetForm:

ระยะเวลา = NewStandardPeriod; ระยะเวลา.Option = StandardPeriodOption.CustomPeriod; period.StartDate = currentDate; period.EndDate = พรุ่งนี้วันที่;

การเลือก = รายการค่าใหม่; Selection.Add(Testing.GetObject(stSituation, "BP1"), "BusinessProcess");

stParameters = โครงสร้างใหม่ ("คีย์ตัวแปร, ระยะเวลา, การเลือก", "หลัก", ระยะเวลา, การเลือก); // OpenFormModal("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm("Report.Process Movement.Form.ReportForm", stParameters);

3. ตั้งค่าพารามิเตอร์ในตัวจัดการเหตุการณ์แบบฟอร์ม

ฟังก์ชั่น &OnServer spGet(spList, view) ส่งออกสำหรับแต่ละองค์ประกอบจาก spList Loop ถ้า element.View = view จากนั้นส่งคืน element.Value; สิ้นสุดถ้า; สิ้นสุดรอบ; กลับไม่ได้กำหนด; EndFunction

&ในขั้นตอนเซิร์ฟเวอร์ SetCustomSettingsValue(การตั้งค่า ชื่อ ค่า) สำหรับแต่ละองค์ประกอบจากการตั้งค่าองค์ประกอบวนซ้ำ ถ้า TypeValue(องค์ประกอบ) = Type("DataCompositionSettingsParameterValue") จากนั้น ถ้า String(element.Parameter) = ชื่อ จากนั้น element.Value = Value; element.Use = จริง; สิ้นสุดถ้า; สิ้นสุดถ้า; สิ้นสุดรอบ; สิ้นสุดขั้นตอน

&ในขั้นตอนเซิร์ฟเวอร์ SetCustomSelectionValue(การตั้งค่า ชื่อ ค่า) สำหรับแต่ละองค์ประกอบจากการตั้งค่าองค์ประกอบ วนซ้ำ ถ้า TypeValue(องค์ประกอบ) = ประเภท("การเลือกองค์ประกอบข้อมูล") จากนั้น สำหรับการเลือกแต่ละรายการจากองค์ประกอบ องค์ประกอบวนซ้ำ ถ้าแถว(selection.LeftValue) = ชื่อ จากนั้นเลือก .RightValue = Value; Selection.Use = จริง; สิ้นสุดถ้า; สิ้นสุดรอบ; สิ้นสุดถ้า; สิ้นสุดรอบ; สิ้นสุดขั้นตอน

&ขั้นตอนบนเซิร์ฟเวอร์เมื่อโหลดตัวเลือกบนเซิร์ฟเวอร์ (การตั้งค่า)

ชื่อของ CurrentVariant = มุมมองของ CurrentVariant;

การตั้งค่า = รายงานการตั้งค่าผู้แต่งการตั้งค่า; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

สิ้นสุดขั้นตอน

&ขั้นตอนบนเซิร์ฟเวอร์เมื่อโหลดการตั้งค่า UserSettingsOnServer (การตั้งค่า) = Report.Settings Linker.UserSettings;

<>"00010101" จากนั้น การตั้งค่า = Report.Settings Composer.UserSettings; SetCustomSettingValue (การตั้งค่า "ระยะเวลา" พารามิเตอร์ ระยะเวลา); สิ้นสุดถ้า;

ssBusinessProcess = spGet (พารามิเตอร์ การเลือก "กระบวนการทางธุรกิจ"); ถ้า ssBusinessProcess<>ไม่ได้กำหนด จากนั้น SetCustomSelectionValue (การตั้งค่า "BusinessProcess", ssBusinessProcess); สิ้นสุดถ้า;

สิ้นสุดขั้นตอน

หมายเหตุ:

  • มีพารามิเตอร์ข้อมูล ซึ่งก็คือสิ่งที่ตั้งค่าไว้ในพารามิเตอร์คำขอ ACS
  • บางส่วนถูกกำหนดไว้ในการตั้งค่าตัวเลือกใน UserSettings (ในคุณสมบัติพารามิเตอร์จะมีการตั้งค่าสถานะ "รวมในการตั้งค่าผู้ใช้"
  • แม้ว่าคุณจะโหลดค่าที่จำเป็นลงในพารามิเตอร์ข้อมูลเมื่อโหลดบนเซิร์ฟเวอร์ จากนั้นแบบฟอร์มจะเปิดขึ้นซึ่งการตั้งค่าที่บันทึกไว้ครั้งล่าสุดจะถูกโหลดโดยอัตโนมัติ การตั้งค่าเหล่านี้ "ขัดจังหวะ" การตั้งค่าข้อมูลเมื่อสร้างรายงาน
  • ในตัวจัดการ WhenLoadingUserSettingsOnServer วัตถุการตั้งค่าที่ส่งผ่านคือ คัดลอกการตั้งค่าจริง ดังนั้นหากต้องการเปลี่ยนการตั้งค่าที่ปรากฏบนแบบฟอร์มคุณต้องกรอกออบเจ็กต์ Report.Settings Composer.UserSettings

จะสร้างพารามิเตอร์การสืบค้น (รายการ) หลายรายการใน ACS ได้อย่างไร

แบบสอบถามต้องใช้นิพจน์ "ใน (&ชื่อพารามิเตอร์)"(ดูนิพจน์บูลีนในภาษาคิวรี 1Cv8)

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

จะทำให้พารามิเตอร์การสืบค้นปิดการใช้งานในระบบควบคุมการเข้าใช้งานได้อย่างไร?

ในแบบสอบถาม SKD คุณต้องใช้โครงสร้างที่ล้อมรอบด้วยเครื่องหมายปีกกา "{}" .

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

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

จะสร้างรายงานแบบกระจายคอลัมน์ได้อย่างไร?

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

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

จะกำหนดรูปแบบเอาต์พุตของฟิลด์ได้อย่างไร?

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

มีความเป็นไปได้สองประการ:

  1. ตั้งค่าคอลัมน์ "View Expression"
    • ที่นี่คุณสามารถป้อนนิพจน์ภาษาที่สร้างสตริงที่ต้องการได้
    • มันใช้ไม่ได้กับเขตข้อมูลทรัพยากร
  2. ตั้งค่าของคอลัมน์ "การออกแบบ"
    • ในการออกแบบมีคุณสมบัติ "รูปแบบ" - ค่านี้คล้ายกับพารามิเตอร์ของฟังก์ชันภาษา "รูปแบบ" คุณสามารถตั้งค่าลักษณะที่ต้องการได้
    • ไม่สามารถแปลงประเภทได้ที่นี่

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

จำนวน(เวลา)/3600.0

เพื่อแปลงจากวินาทีเป็นชั่วโมง

คุณสามารถตั้งค่าความแม่นยำที่ต้องการได้ผ่านช่อง "การออกแบบ" บนแท็บ "ชุดข้อมูล"

คุณสมบัติของการตั้งค่าพารามิเตอร์สำหรับระบบการจัดองค์ประกอบข้อมูล

มีพารามิเตอร์อย่างน้อยสามประเภทและต้องมีการประมวลผลที่แตกต่างกัน:

ตัวเลือกข้อมูล

พารามิเตอร์ข้อมูลถูกกำหนดไว้ในคำขอ (แหล่งข้อมูล) ของระบบควบคุมการเข้าออก

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

ออบเจ็กต์ Settings Composer มีคุณสมบัติพิเศษสำหรับการทำงานกับพารามิเตอร์ข้อมูล การตั้งค่า Composer.Settings.Data ตัวเลือก

คุณสามารถตั้งค่าได้ด้วยการโทรเช่น

การตั้งค่า = รายงานการตั้งค่าผู้แต่งการตั้งค่า; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

การคัดเลือก

การเลือกจะถูกซ้อนทับกับข้อมูลที่ได้รับ หลังจากแยกจากแหล่งข้อมูล

วัตถุการตั้งค่านักแต่งเพลงมีคุณสมบัติพิเศษสำหรับการทำงานกับการเลือก ComposerSettings.Settings.Selection.

ตัวอย่างเช่น: การตั้งค่า = รายงานการตั้งค่าผู้แต่งการตั้งค่า; Settings.DataParameters.SetParameterValue("InformationBase", Report.InformationBase);

สำหรับแต่ละองค์ประกอบ จากพารามิเตอร์ องค์ประกอบการเลือกรอบการเลือก = Settings.Selection.Elements.Add(Type("องค์ประกอบการเลือกองค์ประกอบของข้อมูล")); Selection Element.Comparison Type = DataComposition Comparition Type.Equal; SelectionElement.LeftValue = NewDataCompositionField(element.View); SelectionElement.RightValue = องค์ประกอบค่า; สิ้นสุดรอบ;

การตั้งค่าที่กำหนดเอง

การกำหนดค่าตามความชอบของผู้ใช้จะกำหนดข้อมูลที่ผู้ใช้สามารถปรับแต่งบนแบบฟอร์มได้

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

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

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

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

ตำแหน่งที่สะดวกในการตั้งค่าที่ต้องการคือตัวจัดการเหตุการณ์ "เมื่อ LoadingUserSettingsOnServer" ของส่วนขยายแบบฟอร์มรายงาน

&ขั้นตอนบนเซิร์ฟเวอร์เมื่อโหลดการตั้งค่าผู้ใช้บนเซิร์ฟเวอร์ (การตั้งค่า)

ถ้าพารามิเตอร์.ระยะเวลา.วันที่สิ้นสุด<>"00010101" จากนั้น การตั้งค่า = Report.Settings Composer.UserSettings; Settings.Elements.Value = Options.Period; สิ้นสุดถ้า;

สิ้นสุดขั้นตอน

การใช้แหล่งข้อมูลเป็นวัตถุ

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

DecryptionData = ไม่ได้กำหนด;

LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLinker.Execute(DataCompositionScheme, SettingsLinker.Settings, DecryptionData);

CompositionProcessor = ใหม่ DataCompositionProcessor; LayoutProcessor.Initialize (LayoutLayout, โครงสร้างใหม่ ("ข้อมูล", GetDataExternalSource ()), DecryptionData);

มีการแนบตัวอย่างง่ายๆ (เพื่อให้ตัวอย่างใช้งานได้ คุณต้องมีไดเร็กทอรี "คู่สัญญา" และ "ข้อตกลงคู่สัญญา")

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

ในตัวออกแบบแบบสอบถาม เมื่อถูกเรียกจากแบบฟอร์มการตั้งค่าแหล่งข้อมูล สำหรับเค้าร่างองค์ประกอบข้อมูล มีแท็บ "ลักษณะ" ซึ่งการใช้งานไม่ได้อธิบายไว้อย่างชัดเจนในเอกสารประกอบ ในบทความนี้ ฉันจะพยายามอธิบายว่า ACS ใช้คุณลักษณะอย่างไรและทำไม การกำหนดค่าทั่วไปใช้กลไกของคุณสมบัติและค่าคุณสมบัติอย่างจริงจัง ซึ่งพร้อมใช้งานสำหรับวัตถุเกือบทุกชนิด ในหนังสืออ้างอิงเบื้องต้น กลไกนี้ถูกนำมาใช้ในการกำหนดค่า 7.7 ขณะนี้กลไกนี้ถูกนำไปใช้โดยใช้แผนประเภทลักษณะเฉพาะและการลงทะเบียนข้อมูล แต่แนวคิดยังคงเหมือนเดิม เมื่อฉันพบความต้องการใช้กลไกนี้เป็นครั้งแรกในโครงการควบคุมการเข้าถึง ฉันต้องดิ้นรนเป็นเวลานานโดยจัดระเบียบคำสั่งที่ซ้อนกัน รวมเข้ากับตัวเลือกหลัก และทำให้สมองของฉันสับสนเกี่ยวกับวิธีการคำนึงถึงความเป็นไปได้ที่จะเกิดขึ้น คุณสมบัติประเภทใหม่ที่ไม่มีอยู่ในเวลาของการพัฒนารายงาน กลไกคุณสมบัติทั้งหมดนั้นเรียบง่ายและสมเหตุสมผลจากมุมมองของผู้ใช้ ไม่ได้ให้ความสำคัญกับการประมวลผลปกติใดๆ จนกว่าฉันจะเข้าใจแท็บ "คุณลักษณะ" ตารางบนแท็บไม่แน่นอนมากไม่ว่าคุณจะป้อนทั้งบรรทัดอย่างถูกต้องหรือปฏิเสธที่จะเข้าสู่บรรทัดเลย ระบบจะไม่อนุญาตให้คุณออกจากบรรทัดที่เติมไม่สมบูรณ์ "ไว้ใช้ภายหลัง" เรามาดูรายละเอียดเฉพาะกันดีกว่า คอลัมน์แรก: ประเภท – ที่นี่เราเลือกประเภทของออบเจ็กต์ที่จะแนบคุณลักษณะ เช่น “DirectoryLink.Nomenclature” ซึ่งหมายความว่าตอนนี้สำหรับออบเจ็กต์ทั้งหมดตามประเภทที่ระบุ จะสามารถรับค่าคุณสมบัติได้ ถัดไป ในคอลัมน์ถัดไป แหล่งที่มาของมุมมอง เราต้องตั้งค่าพารามิเตอร์ของแหล่งที่มาของมุมมองคุณสมบัติ ตัวเลือกตารางและแบบสอบถามเป็นไปได้ ฉันจะบอกคุณว่าทำไมจึงจำเป็นต้องใช้ตัวเลือกแบบสอบถามในภายหลัง ตอนนี้เรามาเลือกรายการในตารางกันดีกว่า ในคอลัมน์ประเภทของลักษณะ เราต้องเลือกตารางฐานข้อมูลที่เก็บประเภทลักษณะที่ต้องการไว้ ในตัวอย่างของเราจะเป็น "แผนประเภทของลักษณะคุณสมบัติของวัตถุ" นอกจากนี้ค่าที่เราสามารถเลือกได้ในคอลัมน์คีย์ฟิลด์ ฟิลด์ชื่อ และฟิลด์ประเภทค่าจะขึ้นอยู่กับฟิลด์ของตารางที่เราเลือกโดยตรง ในฟิลด์คีย์ เราเลือกลิงก์ ในฟิลด์ชื่อ – มุมมอง (นี่คือสิ่งที่ผู้ใช้จะเห็นเป็นชื่อของคุณลักษณะ) และในฟิลด์ประเภท ตามลำดับ คือ ValueType ตอนนี้เรามาดูแหล่งที่มาของค่านิยมกันดีกว่า แหล่งที่มาของค่าของเราจะเป็นการลงทะเบียนข้อมูล “ObjectPropertyValues” ดังนั้นเราจึงเลือกตารางในคอลัมน์แหล่งที่มาของค่าและ “InformationRegister.ObjectPropertyValues” ในคอลัมน์ค่าลักษณะเฉพาะ ในคอลัมน์ Object, Property, Value ให้เลือกฟิลด์ที่สอดคล้องกันของการลงทะเบียน Object, Property, Value ดูเหมือนว่านั่นคือทั้งหมดที่ เราไปที่การตั้งค่าสคีมา เพิ่มการจัดกลุ่มตามผลิตภัณฑ์ และเพิ่มการจัดกลุ่มรอง เช่น ตามแบรนด์ เราก็มีคุณสมบัติดังกล่าว เราขยายรายการรายละเอียดของการจัดกลุ่มระบบการตั้งชื่อ และ... เราไม่เห็นคุณสมบัติใดๆ ที่นั่น: ความจริงก็คือเราอยู่ในตัวกำหนดค่า ซึ่งไม่มีการเข้าถึงข้อมูล จะทำการตั้งค่าที่จำเป็นได้อย่างไร? วิธีที่สะดวกที่สุดในการทำเช่นนี้คือการใช้คอนโซลการจัดองค์ประกอบข้อมูล คอนโซลบนดิสก์ ITS หรือคอนโซลที่รวมอยู่ในระบบย่อย "เครื่องมือสำหรับนักพัฒนา" แต่คุณสามารถเปิดการตั้งค่ารายงานในโหมดองค์กรได้ เรามาเปิดการตั้งค่าเดียวกัน แต่ในโหมดองค์กร: อย่างที่คุณเห็น เราได้เพิ่ม "รายละเอียด" ใหม่ และ...

คำถาม: SKD ฉันจะเปิดแบบฟอร์มการเลือกที่จำเป็นสำหรับพารามิเตอร์ได้อย่างไร


สวัสดีตอนบ่าย มีรายงานเกี่ยวกับระบบควบคุมการเข้าใช้งานประกอบด้วยพารามิเตอร์ Brand - type Directory.Nomenclature ฉันจะเรียกแบบฟอร์มการเลือกเฉพาะสำหรับพารามิเตอร์นี้ได้อย่างไร ฉันลองใช้ SKD บนแท็บ "พารามิเตอร์" เลือกพารามิเตอร์ที่ต้องการ - ดับเบิลคลิกที่คอลัมน์ "ตัวเลือกการแก้ไข" - ทำเครื่องหมายที่ช่อง "แบบฟอร์มการเลือก" และป้อนค่า Directory.Nomenclature.Form.SelectionFormRequired เมื่อเรียกใช้รายงาน แบบฟอร์มการเลือกจะยังคงใช้ตามค่าเริ่มต้น ไม่ใช่แบบฟอร์มที่ระบุไว้ใน "แบบฟอร์มการคัดเลือก" การกำหนดค่า UT รูปแบบปกติ โปรดบอกฉันทีว่ามีอะไรผิดปกติที่ไหน?

คำตอบ:วลีสำคัญ แบบฟอร์มปกติ เปลี่ยนไปใช้รูปแบบที่ได้รับการจัดการ

คำถาม: เลือกค่าในแบบฟอร์มการเลือก


สวัสดีตอนบ่าย

การสมัครปกติ

มีเอกสาร. มีรายละเอียดหลายประการของประเภทการอ้างอิง เช่น “DirectoryLink.Banks” ที่มีค่า “Bank1”

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

จนถึงตอนนี้ฉันได้ทำสิ่งต่อไปนี้แล้ว:
ขั้นตอนการดำเนินการ SelectionInSelectionForm (ลิงก์)
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,ลิงก์); //ฉันได้รับแบบฟอร์มสำหรับเลือกไดเร็กทอรี Banks โดยใช้พารามิเตอร์ที่ส่งผ่าน Link
//ตั้งค่าการเลือกในแบบฟอร์มการเลือกนี้ตามลิงก์ของฉันในรายละเอียด
DirectorySelectionForm.Selection.Link.Use = True;
DirectorySelectionForm.Selection.Link.Value = ลิงก์;
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = เท็จ;
DirectorySelectionForm.Open();
//นี่คือโค้ดจำลองการคลิกปุ่ม Select ยังไง????
สิ้นสุดขั้นตอน

ช่วยด้วยถ้าใครเคยเจอแบบนี้หรือมีไอเดียอะไร

ขอบคุณ

คำตอบ:

ฉันทำแบบนี้:

ขั้นตอน ExecuteSelectionInSelectionForm(Link, rec) //พารามิเตอร์ “link” คือลิงค์ค่าบนแบบฟอร์มเอกสาร "rek" - องค์ประกอบแบบฟอร์มปัจจุบัน เช่น สนามคัดเลือก
DirectorySelectionForm = Directories.Banks.GetSelectionForm(,Rec,Link);
DirectorySelectionForm.FormElements.DirectoryList.HierarchicalView = เท็จ;
OpenForm(DirectorySelectionForm, แม่น้ำ,);

ถ้าเป็น Directory Selection Form.Open() แล้ว
DirectorySelectionForm.เปิดใช้งาน ();
สิ้นสุดถ้า;

DirectorySelectionForm.CurrentElement.CurrentRow = ลิงก์;
SelectionEl = DirectorySelectionForm.CurrentElement.CurrentRow;

ถ้า SelectEl = ไม่ได้กำหนด หรือ ไม่ได้เติมค่า (SelectEl) แล้ว
รายงาน ("ไม่พบค่า "+ลิงก์+" ในแบบฟอร์มการเลือกไดเร็กทอรี");
มิฉะนั้น
DirectorySelectionForm.NotifyOfSelection (SelectEl);
สิ้นสุดถ้า;

สิ้นสุดขั้นตอน

คำถาม: ปุ่ม "เลือก" บนแบบฟอร์มการเลือกหรือวิธีคลิกปุ่ม "เลือก"


สวัสดีตอนบ่าย

การสมัครปกติ

คุณคิดอย่างไรกับการคลิกปุ่ม "เลือก" บนแบบฟอร์มการเลือกเอกสาร/ไดเร็กทอรี

การคลิกเมาส์และ COM ไม่มีระบบอัตโนมัติ

Wishlist: ในแบบฟอร์มการเลือก จำลองการกดปุ่ม “เลือก”

คำตอบ:ดูเหมือนว่าฉันได้แก้ไขปัญหาแล้ว...ทำการทดสอบสองสามครั้ง

เพิ่มหลังจาก 17 นาที
จนถึงตอนนี้มันใช้งานได้ดังนี้:

1ซี
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ขั้นตอนการดำเนินการคัดเลือกแบบฟอร์มการคัดเลือก(Link, rec) //parameter "link" คือลิงค์ค่าบนแบบฟอร์มเอกสาร "rek" - องค์ประกอบแบบฟอร์มปัจจุบัน เช่น สนามคัดเลือก DirectorySelectionForm = ไดเรกทอรี ธนาคาร. GetFormSelection(, Rec, ลิงก์); แบบฟอร์มการเลือกไดเรกทอรี องค์ประกอบของแบบฟอร์ม DirectoryList. มุมมองแบบลำดับชั้น = เท็จ ; OpenForm(DirectorySelectionForm, แม่น้ำ, ) ; หากแบบฟอร์มการเลือกไดเรกทอรี เปิด () จากนั้นเลือก DirectorySelectionForm เปิดใช้งาน() ; สิ้นสุดถ้า ; แบบฟอร์มการเลือกไดเรกทอรี รายการปัจจุบัน CurrentRow = ลิงค์ ; SelectionEl = แบบฟอร์มการเลือกไดเรกทอรี รายการปัจจุบัน แถวปัจจุบัน ; ถ้า SelectEl = ไม่ได้กำหนด หรือไม่เติมค่า (SelectEl) ให้รายงาน ("ค่า" + ลิงก์ + "ไม่พบในแบบฟอร์มการเลือกไดเร็กทอรี") ; มิฉะนั้น DirectorySelectionForm แจ้ง AboutChoice(ChoiceEl); สิ้นสุดถ้า ; สิ้นสุดขั้นตอน

คำถาม: เหตุใดจึงไม่เลือกค่าจากแบบฟอร์มการเลือกอีกต่อไป


มีฟิลด์ในแบบฟอร์มเอกสารประเภทอ้างอิง DocumentLink.PaymentOrderOutgoing เมื่อเลือกแล้ว แบบฟอร์มสำหรับเลือกใบสั่งชำระเงินขาออกจะเปิดขึ้น เมื่อเลือกค่าแล้ว จะไม่แทรกลงในแบบฟอร์มตามที่เลือก ตอนแรกฉันคิดว่าการประมวลผลการเลือกเป็นการประมวลผลมาตรฐานและโปรแกรมเมอร์ลืมลงทะเบียนการประมวลผลการเลือก แต่ทุกอย่างเป็นเรื่องปกติที่นั่น การเปิดแบบฟอร์มโดยไม่ใช้โปรแกรมในสาขาที่ฉันเลือกที่จะไม่จัดกิจกรรมใดๆ มันจะเป็นอะไร?
--- การรวมข้อความ 2 มกราคม 2018 ---

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

คำตอบ:

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

คำถาม: โปรดช่วยฉันตั้งค่าการเลือกในแบบฟอร์มการเลือกไดเรกทอรี


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

คำตอบ:

อิเล็คตรอนกล่าวว่า:

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

คลิกเพื่อขยาย...

มันตัดสินใจแล้ว ฉันสร้างแป้นพิมพ์เสมือนจริงในแบบฟอร์มการเลือกไดเรกทอรี "คู่สัญญา"
เมื่อคุณกดปุ่มใดๆ รหัสจะถูกเรียกใช้
SearchResultByDetails = TechRef.FindByName(N, เท็จ);
Form Elements.DirectoryList.CurrentLine=SearchResultByAttributes;
โดยที่ H คือตัวแปรที่มีค่าของคีย์

คำถาม: เลือกแบบฟอร์มพร้อมตัวเลือกสำหรับรายการค่า


สวัสดีตอนบ่าย. ฉันต้องการความช่วยเหลือจากคุณในการแก้ปัญหาง่ายๆ

Confa ZUP 2 .5 .113 .1 มีรายงานภายนอก รายงานมีแอตทริบิวต์ "รายการฐาน" ประเภทรายการค่า
มีแบบรายงาน. ในแบบฟอร์มรายงาน ฟิลด์ "รายการอินพุตของฐาน", ValueType = "รายการของค่า" และ ListValue type = "DirectoryLink.ObjectPropertiesValue"

จะเปิดแบบฟอร์มการคัดเลือกโดยเจ้าของทรัพย์สินได้อย่างไร?

ขอบคุณล่วงหน้า!

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

คำถาม: เปิดแบบฟอร์มการเลือกเอกสาร 1s 8.3 โดยทางโปรแกรม


จะเปิดแบบฟอร์มการเลือกเอกสาร 1s 8.3 โดยทางโปรแกรมและบันทึกค่าที่เลือกลงในตัวแปรได้อย่างไร

Google ให้วิธีแก้ปัญหาไม้ค้ำ ฉันต้องการทราบวิธีทำอย่างถูกต้อง

คำตอบ:+ () PM ยังมีวิธีการมหัศจรรย์ - ดาวน์โหลด

ส่วนตาราง
โหลด
ไวยากรณ์:

ดาวน์โหลด(<Таблица>)
ตัวเลือก:

<Таблица>(จำเป็น) ประเภท: ValueTable
ตารางค่าที่ใช้โหลดส่วนของตาราง คอลัมน์ของตารางจะรวมกันตามชื่อ
คำอธิบาย:

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

มีจำหน่าย:

เซิร์ฟเวอร์ ไคลเอ็นต์แบบหนา การเชื่อมต่อภายนอก
บันทึก:

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

องค์ประกอบ. โหลด (ตารางองค์ประกอบ);

คำถาม: การส่งผ่านพารามิเตอร์ไปยังแบบฟอร์มการเลือก


โปรดช่วยฉันด้วย
จากเอกสาร "การขายสินค้าและบริการ" จะมีการเรียกแบบฟอร์มการเลือกสัญญา (ERP) Conf ได้รับการแก้ไขแล้ว ฉันเปรียบเทียบกับมาตรฐาน ใน ProcessingCreationOnServer ของแบบฟอร์มการเลือก ฉันจะดูในพารามิเตอร์ดีบักเกอร์การเลือก ฉันไม่เข้าใจว่ารายการตัวเลือกเกิดขึ้นได้อย่างไร - ไม่มีการเรียกแบบฟอร์มนี้พร้อมพารามิเตอร์อย่างชัดเจน มีองค์ประกอบการเลือกเพียงรายการเดียวในคุณสมบัติ "SelectionParametersLink" และมีหลายรายการในพารามิเตอร์การเลือก อาจจะมีคนบอกฉันได้ว่าจะดูที่ไหน

ความสนใจ! บทเรียนนี้เป็นเวอร์ชันเบื้องต้น เนื้อหาอาจไม่สมบูรณ์

เข้าสู่เว็บไซต์ในฐานะนักเรียน

เข้าสู่ระบบในฐานะนักเรียนเพื่อเข้าถึงสื่อการสอนของโรงเรียน

ระบบการจัดองค์ประกอบข้อมูล 1C 8.3 สำหรับผู้เริ่มต้น: การเชื่อมต่อชุดข้อมูล

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

สร้างรายงานใหม่

เปิดฐานข้อมูล "Gastronom" ในตัวปรับแต่งและสร้างรายงานใหม่ผ่านเมนูหลัก:

ประเภทเอกสาร - "รายงานภายนอก":

ในรูปแบบของรายงานใหม่ ระบุชื่อ "บทที่ 6" และคลิกปุ่ม "เปิดแผนภาพองค์ประกอบข้อมูล":

ปล่อยให้ชื่อสคีมาเริ่มต้น:

การเพิ่มชุดข้อมูลชุดแรก

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

เรียกตัวสร้างคำขอ:

เราระบุตาราง "ลูกค้า" และฟิลด์ที่ต้องได้รับจากคำขอ:

การเพิ่มชุดข้อมูลที่สอง

เพิ่มข้อมูลชุดที่สอง:

เลือก (DataSet2) และเรียกตัวสร้างแบบสอบถามอีกครั้ง:

เราระบุตารางไดเรกทอรี "อาหาร" และฟิลด์ที่ต้องได้รับจากคำขอ:

ข้อความคำขอผลลัพธ์คือ:

โปรดทราบว่าขณะนี้เรามีชุดข้อมูล 2 ชุดในรายงาน ได้แก่ ชุดข้อมูล 1 และชุดข้อมูล 2 แต่ละคนมีข้อความและข้อมูลคำขอของตัวเอง

ทำให้ชื่อมีคำอธิบายมากขึ้น

เพื่อความชัดเจน เราจะเปลี่ยนชื่อ DataSet1 เป็น Customers และ DataSet2 เป็น Food

ทำได้โดยดับเบิลคลิกที่แต่ละชุด:

เราสามารถใช้ข้อมูลจากแต่ละชุดในรายงานของเราได้ เราจะเข้าถึงข้อมูลนี้ผ่านช่องต่างๆ

ปัจจุบัน ชุด "ลูกค้า" มีฟิลด์ต่อไปนี้: "ชื่อ" และ "สีโปรด" และชุด "อาหาร" มี: "ชื่อ" และ "สี"

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

เลือกชุด "ไคลเอนต์" และเปลี่ยนชื่อฟิลด์ดังนี้:

จากนั้นเลือกชุด "อาหาร" และเปลี่ยนชื่อฟิลด์ดังนี้:

การเรียกตัวสร้างการตั้งค่า

สุดท้าย ไปที่แท็บ "การตั้งค่า" แล้วคลิกไม้กายสิทธิ์เพื่อเรียกใช้ตัวออกแบบการตั้งค่า:

ประเภทรายงาน - "รายการ...":

เลือกฟิลด์สำหรับรายงานจากทั้งสองชุด:

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

การตรวจสอบรายงาน

เราบันทึกรายงานและสร้างมันในโหมดผู้ใช้:

ใช่. โอเค แต่ไม่ใช่จริงๆ มีสิ่งที่เรียกว่าการรวมข้ามของสองชุดเกิดขึ้น (คุณควรจะคุ้นเคยกับสิ่งนี้มากจากการรวมในแบบสอบถามที่เราศึกษาในโมดูลก่อนหน้า) แต่ละบันทึกจากตารางลูกค้าจะมีบันทึกที่สอดคล้องกันจากตารางอาหาร

แต่จากบันทึกทั้งหมดนี้เราต้องเหลือเฉพาะผู้ที่มีฟิลด์ "สีโปรดของลูกค้า" เท่ากับฟิลด์ "สีอาหาร":

เราเชื่อมต่อข้อมูลสองชุด

ในการดำเนินการนี้ เราจะเชื่อมต่อชุดข้อมูลสองชุด (ลูกค้าและอาหาร) โดยใช้ฟิลด์ Customer's FavoriteColor และ FoodColor

ไปที่แท็บ "ลิงก์ชุดข้อมูล" แล้วคลิกปุ่มบวกเพื่อเพิ่มลิงก์ใหม่:

เรากำหนดค่าพารามิเตอร์ตามภาพด้านล่าง:

ฉันจะอธิบาย

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

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

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

ดังนั้น การเชื่อมต่อนี้จะออกจากรายการก่อนหน้านี้เฉพาะแถวที่ฟิลด์ FavoriteColor ของลูกค้าเท่ากับฟิลด์ FoodColor

มาบันทึกรายงานและรันในโหมดผู้ใช้:

ยอดเยี่ยม!

ฉันจะอธิบายเกี่ยวกับสนาม” สภาพการสื่อสาร" ซึ่งโปรแกรมเมอร์มือใหม่คนไหนมักจะตีหอก

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

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

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

การตั้งค่าเพิ่มเติมสำหรับฟิลด์ ACS

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

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

คอลัมน์ "การตกแต่ง"ช่วยให้คุณสามารถระบุการออกแบบฟิลด์เค้าโครงโดยไม่ต้องใช้เค้าโครง คุณสามารถระบุสีแบบอักษร สีกรอบ การวางแนวข้อความ ฯลฯ

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

เขตข้อมูลจากการคำนวณ

บนแท็บ "ช่องจากการคำนวณ" ขององค์ประกอบข้อมูล คุณสามารถสร้างช่องจากการคำนวณของคุณเองได้

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

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