คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

โอน 1 วินาที 8.3 การโอน ค่าไดเร็กทอรีที่กำหนดไว้ล่วงหน้า

สานต่อการฝึกอบรมที่น่าตื่นเต้นของเราในโปรแกรม 1c Enterprise 8.2 เรามาพูดถึงการถ่ายโอนกัน ออบเจ็กต์การกำหนดค่านี้คล้ายกับ Directories มาก แต่มีความแตกต่างบางประการและใช้เพื่อวัตถุประสงค์ที่แตกต่างกันเล็กน้อย เมื่อสร้างรายการผลิตภัณฑ์ของ บริษัท ของเราในการกำหนดค่า 1c การใช้ไดเร็กทอรีค่อนข้างสมเหตุสมผลเนื่องจากผู้ใช้สามารถเพิ่มรายการใหม่ได้อย่างง่ายดายหากจำเป็น
โปรแกรมเมอร์สามารถสร้างการแจกแจงใน 1C 8.2 เท่านั้นและผู้ใช้สามารถเลือกตัวเลือกที่มีอยู่เท่านั้น นอกจากนี้ การแจงนับยังค่อนข้างสมเหตุสมผลในกรณีที่ไม่สามารถเพิ่มองค์ประกอบอื่นได้ในอนาคต ตัวอย่างเช่น สำหรับแอตทริบิวต์ "เพศ" มีเพียง 2 ตัวเลือกการโอนเท่านั้นที่เพียงพอ: ชายและหญิง และเพื่อป้องกันไม่ให้ผู้ใช้ที่ไม่มีประสบการณ์สร้างองค์ประกอบอื่นๆ โดยไม่ได้ตั้งใจโดยที่พวกเขาไม่สามารถมีอยู่ได้อย่างแน่นอน ควรใช้การแจงนับ 1c ในกรณีดังกล่าว อีกตัวอย่างที่ดีของออบเจ็กต์การกำหนดค่านี้คือวันในสัปดาห์
ตัวเลือกที่นี่ค่อนข้างสมเหตุสมผลและจำกัด: วันจันทร์ วันอังคาร... และต่อไปจนถึงวันอาทิตย์
มาดูการแจงนับ 1s 8.2 ในตัวปรับแต่ง ทำความคุ้นเคยกับและเรียนรู้วิธีสร้าง

ตอนนี้โดยใช้ปุ่มเมาส์ขวา เราจะสร้างการแจงนับแรกของเรา

เรียกมันว่า "เพศ" และเสนอสองตัวเลือก: "ชาย" และ "หญิง" ข้อมูลนี้ถูกกรอกลงในแท็บข้อมูล

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

มีการเพิ่มรายละเอียดอื่นลงในเอกสารด้วยการโอนที่เราเลือก

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

ดังนั้น, ความหมายของการถ่ายโอนใน 1 วินาที 8.2ค่อนข้างใหญ่และชัดเจน ก่อนที่จะสร้างไดเร็กทอรีหรือการแจกแจง โปรแกรมเมอร์จะต้องตอบคำถามสองข้อ: 1) ผู้ใช้จำเป็นต้องสร้างองค์ประกอบใหม่ด้วยตนเองหรือไม่; 2) ในกรณีเฉพาะสามารถมีองค์ประกอบดังกล่าวได้กี่องค์ประกอบ: มากมายหรือ
น้อย? หากมีตัวเลือกคำตอบน้อยและผู้ใช้ไม่จำเป็นต้องสร้างอย่างอื่น ให้ใช้การแจงนับ 1c มิฉะนั้นหนังสืออ้างอิงจะทำ

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

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

ไดเรกทอรีเป็นการแจงนับ

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

ค่าไดเร็กทอรีที่กำหนดไว้ล่วงหน้า

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

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

ในหน้าต่างนี้คุณสามารถเพิ่มค่า 1C ที่กำหนดไว้ล่วงหน้าใหม่สองค่าได้อย่างง่ายดาย โปรดทราบว่าเมื่อเพิ่มเราต้องระบุชื่อสองชื่อ:

1. ซึ่งจะแสดงในโค้ด
2.ซึ่งผู้ใช้จะมองเห็น

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

และที่นี่มีปัญหาอื่นเกิดขึ้น: จะเกิดอะไรขึ้นหากผู้ใช้ไปที่ไดเร็กทอรีของเรา, ป้อนตัวเลือกที่สามที่นั่นและเลือกตัวเลือกนั้น?

การแจงนับวัตถุ

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

1. ผู้ใช้ไม่สามารถเปลี่ยนแปลงได้
2. สามารถนำไปใช้ในข้อความของโปรแกรมได้

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

ตามคำขอ ค่าแจงนับถูกระบุผ่านฟังก์ชัน Value()

บันทึกในการร้องขอ ชื่อของวัตถุข้อมูลเมตาจะถูกใช้ในเอกพจน์: “การแจงนับ «

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

เลือกค่า (การแจงนับ GenderIndividuals.Male) AS ฟิลด์

ค่าว่าง (ไม่ได้เลือก):

เลือกค่า(การแจงนับ.GenderIndividuals.EmptyLink) AS ฟิลด์

การแจงนับระบบได้มาในลักษณะที่คล้ายกัน แต่ไม่ได้ระบุ "การแจงนับ":

เลือกค่า (MovementTypeAccumulation.Receipt) AS ฟิลด์

ผ่านอย่างรวดเร็ว

และไม่ได้อยู่ในคำขอ?

ในโค้ดโมดูล คุณสามารถรับค่าได้สองวิธี:

ค่า = Transfers.GenderIndividuals.Male; //หรือ Value = PredefedValue("Enumeration.Gender of Individuals.Male");

อันที่สองนั้นเป็นสากลมากกว่าเพราะ ถูกดำเนินการ &OnClient ด้วย การเรียกค่าครั้งแรกจะดำเนินการช้าลง จากนั้นระบบจะแคชไว้

ใน 8.1 มีเพียงตัวเลือกแรกเท่านั้นที่ใช้งานได้

ลักษณะการทำงานของ Maximum() ในแบบสอบถามแจงนับ

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

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

งาน

มีการแจกแจงด้วยค่า

จำเป็นต้องได้รับมูลค่าสูงสุดหรือต่ำสุดในคำขอตามลำดับ

สารละลาย

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

เลือกมูลค่า(การแจงนับประเภทผลิตภัณฑ์ประกันภัย.Casco) AS สนาม การโอน สถานที่ รวมมูลค่าที่เลือกทั้งหมด(การแจงนับ ประเภทของผลิตภัณฑ์ประกันภัย.OSAGO) รวมมูลค่าที่เลือกทั้งหมด(การแจงนับ ประเภทของผลิตภัณฑ์ประกันภัย.VZR) รวมมูลค่าที่เลือกทั้งหมด(จดทะเบียน i.ประเภทผลิตภัณฑ์ประกันภัยGO) รวมมูลค่าที่เลือกทั้งหมด (การแจงนับประเภทผลิตภัณฑ์ประกันภัยOPO) ; SELECT ScoreMin.Ref เป็น MinByOrder, Int.MinStandard, ScoreMax.Ref เป็น MaxByOrder, Int.MaxStandard FROM (SELECT // กำหนดค่าสูงสุดสำหรับค่าตัวอย่าง MIN(enumerations.Order) AS Min, MAX(enumerations.Order) AS Max, MIN( enumerations.Field) AS MinStandard, MAXIMUM(enumerations.Field) AS MaxStandard FROM (SELECT //กำหนดลำดับสำหรับแต่ละค่าของการแจงนับ AS Field, Types of Insurance Products.Order AS Order FROM Enumeration AS Enumerations LEFT เข้าร่วมการแจงนับประเภทผลิตภัณฑ์ประกันภัย AS ประเภทของผลิตภัณฑ์ประกันภัย การโอน PO ฟิลด์ = ประเภทของผลิตภัณฑ์ประกันภัย ลิงก์) AS การแจงนับ) AS สิ่งที่ส่งมาด้วย // ใช้ค่าสูงสุดที่กำหนด เราจะกำหนดค่าที่ต้องการ LEFT JOIN การแจงนับ ประเภทของผลิตภัณฑ์ประกันภัย AS การประมาณค่า การแทรก PO สูงสุด Max = การประมาณการ คำสั่งซื้อสูงสุด LEFT JOIN การแจงนับ ประเภทของผลิตภัณฑ์ประกันภัย AS การประมาณการ ขั้นต่ำ การแทรก PO Min = การประมาณการ คำสั่งซื้อขั้นต่ำ

การถ่ายโอนในระบบ 1C: Enterprise

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

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

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

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

หากสถานะของผู้ซื้อถูกป้อนในกระบวนการตั้งค่าการกำหนดค่างานเป็นการโอน ผู้เชี่ยวชาญที่กำหนดค่าระบบ 1C:Enterprise สามารถป้อนตัวเลือกล่วงหน้าสำหรับการคำนวณราคาขายโดยขึ้นอยู่กับสถานะที่ระบุ

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

ประการแรก ไม่สามารถเติมการแจงนับได้ในขณะที่ใช้งาน: รายการค่าจะถูกระบุเมื่อตั้งค่าการแจงนับใน Configurator

การแจงนับไม่ได้ซ้อนกัน - ค่าทั้งหมดอยู่ในระดับเดียวกัน

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

จากมุมมองด้านการใช้งาน การแจงนับจะกำหนดค่าและใช้งานได้ง่ายกว่า

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

รายการการจัดการการโอน

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

การแก้ไขการแจงนับ

การแก้ไขการแจงนับเกี่ยวข้องกับการสร้างรายการค่าการแจงนับ หากต้องการแก้ไขการแจงนับ ให้ใช้หน้าต่างแก้ไข "การแจงนับ"

วัตถุประสงค์ของการควบคุมกล่องโต้ตอบอธิบายไว้ด้านล่าง

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

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

การจัดการค่าแจงนับ

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

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

การแก้ไขคุณสมบัติค่าการแจงนับ

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

ไม่เหมือนกับออบเจ็กต์ข้อมูลเมตาอื่นๆ ค่าการแจงนับไม่มีคุณสมบัติคำพ้องความหมาย นี่คือคุณสมบัติมูลค่าของการแจงนับ "มุมมอง"

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

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

ตัวอย่างเช่น หนึ่งในค่าของการแจงนับ "การศึกษา" อาจมีตัวระบุ "Unfinished Higher" ความคิดเห็นส่วนใหญ่มักจะเป็น "Unfinished Higher" และสตริง "H. สูงสุด"

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