ข้อมูลการบัญชี ข้อมูลการบัญชี BP 3.0 การควบคุมยอดดุลติดลบ
บทความนี้มีไว้สำหรับผู้ใช้ 1C - และโดยเฉพาะอย่างยิ่งสำหรับผู้ที่กำลังเตรียมตัวสำหรับการรับรอง 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม
วันนี้เราจะมาดูกัน 2 วิธีในการควบคุมยอดคงเหลือ - ไม่เพียงแต่ยอดคงเหลือในคลังสินค้าเท่านั้น แต่ยังรวมไปถึงการชำระหนี้ร่วมกันด้วย (“หนี้ปัจจุบันของลูกค้าคือเท่าไร และเป็นไปได้หรือไม่ที่จะจัดส่งสินค้าให้เขา?”)
ทั้งสองวิธีใช้ในการกำหนดค่ามาตรฐานและในงานการรับรอง และเนื่องจากมีสองคน - คุณต้องเข้าใจให้ชัดเจนว่าเมื่อใดจึงจะใช้เทคนิค "ใหม่" และเมื่อใดจะใช้เฉพาะเทคนิค "เก่า" เท่านั้น.
นี่เป็นความรู้พื้นฐานสำหรับโปรแกรมเมอร์ 1C เราขอแนะนำไม่ทิ้งช่องว่างในพื้นที่ดังกล่าว ควรพาไปศึกษา 15 นาที :)
การกำหนดปัญหา
เรามากำหนดค่าง่ายๆ ด้วยเอกสาร "การรับสินค้า" และ "การขายสินค้า":
ในการบัญชีสำหรับยอดคงเหลือ จะใช้การลงทะเบียนการสะสม "ยอดคงเหลือฟรี":
เมื่อผ่านรายการเอกสาร "การรับสินค้า" จะมีการดำเนินการดังต่อไปนี้:
ขั้นตอนการประมวลผล (ความล้มเหลว โหมด)
สำหรับแต่ละ TechStringProducts จากรอบผลิตภัณฑ์
การเคลื่อนไหว = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
Movement.Period = วันที่;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
สิ้นสุดรอบ;
สิ้นสุดขั้นตอน
การประมวลผลการผ่านรายการเอกสาร "การรับสินค้า" ดำเนินการโดยใช้ผู้ออกแบบการเคลื่อนไหวและไม่สนใจเนื่องจากเมื่อมาถึงคลังสินค้าจึงไม่จำเป็นต้องควบคุมยอดคงเหลือ
บางครั้งการควบคุมยอดคงเหลือยังถูกนำมาใช้สำหรับเอกสาร "การรับสินค้า" ด้วย ดังนั้นเมื่อเอกสารถูกยกเลิกหรือผ่านรายการใหม่ ยอดคงเหลือติดลบจะไม่เกิดขึ้น
ตัวอย่างเช่น ทีวี LG ใหม่ 10 เครื่องมาถึงโกดัง โดยขายไปแล้ว 6 เครื่อง หากเอกสารใบเสร็จรับเงินมี 10 ชิ้น แก้ไขโดย 5 ชิ้น – ยอดคงเหลือติดลบ “ลบ 1 ชิ้น” เกิดขึ้น
ในมาตรฐาน UT 11 การควบคุมดังกล่าวเปิดใช้งานโดยใช้ตัวเลือกการทำงาน "ควบคุมสินค้าขององค์กรเมื่อยกเลิกใบเสร็จรับเงิน"
เมื่อลงเอกสาร “ขายสินค้า” มีความจำเป็นต้องจัดระเบียบการควบคุมสารตกค้าง. หากมีผลิตภัณฑ์เหลือไม่เพียงพอ เอกสารจะไม่ผ่านรายการและมีการออกข้อความวินิจฉัย นี่คือปัญหาที่ได้รับการแก้ไข
เรากำลังตั้งใจแก้ไขปัญหาง่ายๆ ที่ไม่มีการคำนวณต้นทุนการตัดจำหน่าย สิ่งนี้จะช่วยให้เรามุ่งความสนใจไปที่ความแตกต่างของการควบคุมสารตกค้างโดยเฉพาะ
บันทึก– อัลกอริธึมที่นำเสนอด้านล่างได้รับการออกแบบมาเพื่อการฝึกอบรมและควรมีความชัดเจนมากที่สุด
สามารถปรับให้เหมาะสมได้ แต่แล้ว "ค่าสัมประสิทธิ์ความเข้าใจ" จะลดลง ดังนั้นเราจึงไม่พูดถึงเรื่องนี้ในบทความนี้
โดยธรรมชาติแล้วคุณสามารถปรับให้เหมาะสมได้ด้วยตัวเองหรือเรียนหลักสูตรการเร่งความเร็วและการเพิ่มประสิทธิภาพของ 1C :)
ดังที่คุณเข้าใจแล้ว การแก้ปัญหาสามารถทำได้สองวิธี เริ่มจากเทคนิคที่ใช้มาตั้งแต่สมัย 1C:Enterprise 8.0
วิธีการควบคุมสารตกค้างแบบเก่า
หลักเทคนิคการควบคุมสารตกค้างแบบเก่ามีดังนี้ เราตรวจสอบว่ามีสินค้าคงเหลือตามปริมาณที่ต้องการหรือไม่ หากมีเราจะตัดทิ้ง ถ้าไม่มีเราจะรายงานข้อผิดพลาด.
อัลกอริทึมในวิธีเก่าประกอบด้วยหลายบล็อก:
- คำขอดึงข้อมูลยอดคงเหลือของผลิตภัณฑ์และข้อมูลเอกสาร
- วงจรจะตรวจสอบความเพียงพอของสินค้า
- ถ้าสินค้ามีไม่เพียงพอก็จะไม่ผ่านรายการเอกสาร
- หากมีสินค้าเพียงพอ จะดำเนินการเคลื่อนไหวการบริโภค
นี่คือลักษณะของโค้ดโปรแกรม:
// 1. การล้างความเคลื่อนไหวการลงทะเบียนเก่า
Movements.FreeRemainders.Write = จริง;
การเคลื่อนไหวบันทึก();
// 2. การรับข้อมูลเอกสารและลงทะเบียนยอดคงเหลือตามคำขอ
คำขอ = คำขอใหม่;
คำขอข้อความ =
"เลือก
|ผลิตภัณฑ์เพลส
|จาก
|ที่ไหน
| Products.Link = &ลิงก์
|จัดกลุ่มตาม
| ผลิตภัณฑ์ระบบการตั้งชื่อ
|จัดทำดัชนีโดย
| ศัพท์
|;
|เลือก
,
| REPRESENTATIONLINK(Products.Nomenclature) AS NomenclatureRepresentation,
| สินค้า.ปริมาณตามปริมาณ,
| ISNULL(Remaining.NumberRemaining, 0) เป็นส่วนที่เหลือ
|จาก
| สินค้า AS สินค้า
| เข้าร่วมซ้าย ลงทะเบียนAccumulations.FreeRemains.Remains(
| &ช่วงเวลา,
| ระบบการตั้งชื่อ B
| (เลือก
| ผลิตภัณฑ์ระบบการตั้งชื่อ AS Nomenclature
| จาก
| ซอฟต์แวร์ Products.Nomenclature = Remaining.Nomenclature";
Request.SetParameter("TimePoint", TimePoint());
// 3. สำรวจผลการสืบค้น
// 4. การตรวจสอบความเพียงพอของสินค้า
การขาดดุล = SampleProducts.Quantity - SampleProducts.Remaining;
หากขาดดุล>0 แล้ว
ปฏิเสธ = จริง;
Message.Text = "Product "+SelectionProducts.NomenclaturePresentation+" มีจำนวนไม่เพียงพอ "+ขาดแคลน+" ชิ้น";
ข้อความ.ข้อความ();
สิ้นสุดถ้า;
// 5. ไปที่จุดเริ่มต้นของลูปหากมีข้อผิดพลาด
ถ้าล้มเหลวแล้ว
ดำเนินการต่อ;
สิ้นสุดถ้า;
// 6. ทำการเคลื่อนไหวในรีจิสเตอร์
Movement.Period = วันที่;
สิ้นสุดรอบ;
// 7. การตั้งค่าสถานะสำหรับบันทึกการเคลื่อนไหวเมื่อสิ้นสุดธุรกรรม
Movements.FreeRemainders.Write = จริง;
สิ้นสุดขั้นตอน
ให้เราแสดงความคิดเห็นเกี่ยวกับประเด็นสำคัญของอัลกอริทึม
1. เคลียร์ความเคลื่อนไหวทะเบียนเก่า
ด้านล่างในอัลกอริทึมจะมีการร้องขอไปยังส่วนที่เหลือของการลงทะเบียน
หากเอกสารปัจจุบันเคยผ่านรายการไปแล้ว แสดงว่ามีการผ่านรายการแล้ว ความน่าจะเป็นที่จะได้รับการเคลื่อนไหวเอกสารเก่าในคำขอ– นี่เป็นปัญหาร้ายแรง
สถานการณ์เช่นนี้จะเป็นไปได้เมื่อใด? เอกสารถึงวันไหน. ก้าวไปข้างหน้า.
มาดูตัวอย่างกันว่าสิ่งนี้จะนำไปสู่อะไร:
- โคมไฟตั้งโต๊ะที่เหลืออยู่ 10 ชิ้น
- กำลังดำเนินการเอกสารลงวันที่ 02/16/60 เรากำลังตัดไฟ 6 ดวง
- วันที่ในเอกสารเปลี่ยนเป็น 02/17/60 (สามารถเลื่อนวันที่ไปข้างหน้าได้อย่างน้อย 1 วินาที) ให้โพสต์เอกสารอีกครั้ง
หากไม่เคลียร์ความเคลื่อนไหวระบบจะแจ้งสินค้าขาด 2 ชิ้น ทำไม ใช่ เพราะการเคลื่อนย้ายเอกสารแบบเก่าได้ตัดหลอดไฟที่มีอยู่ไปแล้ว 6 หลอดจาก 10 หลอด ต่อไประบบจะพยายามตัดออกอีก 6 ชิ้น แต่เหลือเพียง 4 ชิ้นเท่านั้น
ปัญหาได้รับการแก้ไขด้วยโค้ด 3 บรรทัด:
- ชุดระเบียนกำลังถูกล้าง (อาจถูกอ่านในแบบฟอร์มหรือในตัวจัดการก่อนหน้านี้)
- ชุดบันทึกมีชุดธง "เขียน"
- ชุดทั้งหมดที่มีชุดธง "บันทึก" จะถูกบันทึกไว้
พูดอย่างเคร่งครัด เราสามารถควบคุมการล้างข้อมูลการเคลื่อนไหวเมื่อโพสต์เอกสาร:
แนะนำให้ใช้ตัวเลือกในการลบการเคลื่อนไหวเมื่อยกเลิกการดำเนินการ - เราเองเป็นผู้ควบคุมเมื่อจำเป็นต้องลบการเคลื่อนไหวจริง
2. รับข้อมูลเอกสารและลงทะเบียนยอดตามคำขอ
คำขอประกอบด้วยสองแพ็คเกจ:
- ในตอนแรกจะได้รับข้อมูลที่จัดกลุ่มจากส่วนที่เป็นตาราง - สร้างตารางชั่วคราว
- ในคำขอที่สอง ส่วนที่เหลือจากการลงทะเบียนจะถูกผนวกเข้ากับข้อมูลเอกสาร
สิ่งที่คุณควรใส่ใจในคำขอนี้:
- เมื่อสร้างตารางชั่วคราว ฟิลด์ที่จะทำการรวมจะถูกจัดทำดัชนี - ซึ่งทำเพื่อประสิทธิภาพสูงสุด
- ช่วงเวลาที่ได้รับยอดคงเหลือ – สอดคล้องกับตำแหน่งของเอกสารบนแกนเวลา
- อาจไม่เหลือในการลงทะเบียน - ดังนั้นจึงดำเนินการรวมด้านซ้ายและใช้ฟังก์ชัน "ECTNULL" สำหรับทรัพยากร "ปริมาณ" - ค่า NULL จะลดลงเหลือศูนย์
3. ข้ามผลลัพธ์การสืบค้น
คำขอที่พัฒนาแล้วประกอบด้วยข้อมูลเอกสารที่จัดกลุ่มและยอดคงเหลือตามรายการสินค้า
ในการวนซ้ำเราจะดำเนินการตามผลลัพธ์ของคำขอนี้
4.ตรวจสอบความเพียงพอของสินค้า
เราพิจารณาการขาดแคลนสินค้า
หากการขาดดุลมากกว่าศูนย์ แสดงว่ามีการขาดแคลนสินค้า:
- เราออกข้อความวินิจฉัย
- ตั้งค่าพารามิเตอร์ "ปฏิเสธ" สำหรับการโพสต์การประมวลผลเป็น "จริง"
หาก “ปฏิเสธ” เท่ากับ “จริง” ผลลัพธ์ของรายการผ่านรายการเอกสารจะไม่ถูกบันทึก พูดง่ายๆ ก็คือนี่เป็นคำสั่งของระบบไม่ให้ประมวลผลเอกสารนี้
5. ไปที่จุดเริ่มต้นของวงจรหากมีข้อผิดพลาด
หากมีข้อผิดพลาดในขั้นตอนนี้หรือขั้นตอนก่อนหน้าของวงจร (ความล้มเหลว = จริง) ก็ไม่มีประโยชน์ในการสร้างการเคลื่อนไหว เช่นเดียวกันพวกเขาจะไม่ถูกบันทึกลงในฐานข้อมูล
6. ดำเนินการเคลื่อนไหวในทะเบียน
หากการตรวจสอบยอดดุลสำเร็จ เราจะสร้างการเคลื่อนย้ายค่าใช้จ่าย
7. การตั้งค่าสถานะการบันทึกการเคลื่อนไหวเมื่อสิ้นสุดการทำธุรกรรม
หากไม่ได้ตั้งค่าสถานะนี้ การเคลื่อนไหวจะไม่ถูกบันทึก
เมื่อสิ้นสุดธุรกรรมการผ่านรายการเอกสาร จะมีการเขียนเฉพาะชุดเรกคอร์ดที่มีชุดแฟล็ก "เขียน" เท่านั้น
เพื่อความเป็นธรรม เราทราบว่าการตั้งค่าคุณสมบัติ "บันทึก" ของชุดบันทึกนั้นสมเหตุสมผลภายใต้เงื่อนไขเดียว - ในคุณสมบัติของเอกสาร "บันทึกการเคลื่อนไหวระหว่างการดำเนินการ" จะต้องระบุค่า "บันทึกที่เลือก":
อย่างไรก็ตาม ค่า "บันทึกที่เลือก" ถือเป็นมาตรฐานโดยพฤตินัย:
- มันถูกใช้ในโซลูชันมาตรฐาน
- ตั้งค่าเป็นค่าเริ่มต้นเมื่อสร้างเอกสารใหม่
ค่าอื่นของคุณสมบัติ - "เขียนแก้ไข" - ล้าสมัยและในทางปฏิบัติไม่เคยเกิดขึ้นในการกำหนดค่าสมัยใหม่
วิธีการใหม่ในการควบคุมสารตกค้าง
วิธีการใหม่ใช้หลักการ: เราตัดสินค้าที่จำเป็นออก จากนั้นตรวจสอบว่ามีการสร้างยอดคงเหลือติดลบสำหรับสินค้าในเอกสารหรือไม่ ถ้าใช่ คุณจะต้องย้อนกลับเอกสาร
อย่างที่คุณเห็น มีความแตกต่างพื้นฐานในช่วงเวลาของการควบคุมยอดคงเหลือ:
- วิธีเก่าคือตรวจสอบยอดเงินคงเหลือก่อน แล้วค่อยตัดออก
- เทคนิคใหม่ - ก่อนอื่นเราตัดออก จากนั้นจึงตรวจสอบยอดคงเหลือ
ดังนั้นโค้ดโปรแกรมจะมีลักษณะดังนี้:
ขั้นตอนการประมวลผล (ความล้มเหลว โหมด)
// 1. รับข้อมูลเอกสารตามคำขอ
คำขอ = คำขอใหม่;
Query.TemporaryTableManager = ใหม่ TemporaryTableManager;
คำขอข้อความ =
"เลือก
| ผลิตภัณฑ์.ระบบการตั้งชื่อ AS Nomenclature,
| SUM(รายการ.ปริมาณ) AS ปริมาณ
|ผลิตภัณฑ์เพลส
|จาก
| เอกสาร การขายสินค้าและบริการ สินค้า AS สินค้า
|ที่ไหน
| Products.Link = &ลิงก์
|จัดกลุ่มตาม
| ผลิตภัณฑ์ระบบการตั้งชื่อ
|จัดทำดัชนีโดย
| ศัพท์
|;
|////////////////////////////////////////////////////////////////////////////////
|เลือก
| ผลิตภัณฑ์.ระบบการตั้งชื่อ AS Nomenclature,
| สินค้า.ปริมาณตามปริมาณ
|จาก
| ผลิตภัณฑ์ AS ผลิตภัณฑ์";
Request.SetParameter("ลิงก์", ลิงก์);
RequestResult = คำขอดำเนินการ ();
// 2. การก่อตัวของการเคลื่อนไหว - ลงทะเบียนการบริโภค
การเคลื่อนไหว FreeRemains.Clear();
SelectionProducts = Query Result.Select();
ในขณะที่ SelectProducts.Next() วนซ้ำ
การเคลื่อนไหว = การเคลื่อนไหวส่วนที่เหลือฟรี AddExpense ();
Movement.Period = วันที่;
Movement.Nomenclature = SelectionProducts.Nomenclature;
Movement.Quantity = SampleProducts.Quantity;
สิ้นสุดรอบ;
// 3. บันทึกความเคลื่อนไหวในฐานข้อมูล
Movements.FreeRemainders.Write = จริง;
การเคลื่อนไหวบันทึก();
// 4. ข้อความค้นหาที่ได้รับเศษลบจากการลงทะเบียน
คำขอข้อความ =
"เลือก
| ยังคงอยู่ ระบบการตั้งชื่อ AS ระบบการตั้งชื่อ
| REPRESENTATIONLINK(Remains.Nomenclature) AS NomenclatureRepresentation,
| -Remaining.QuantityRemaining AS Deficit
|จาก
| ลงทะเบียนAccumulations.FreeRemains.Remains(
| &ช่วงเวลา,
| ระบบการตั้งชื่อ B
| (เลือก
| ผลิตภัณฑ์ระบบการตั้งชื่อ AS Nomenclature
| จาก
| สินค้า AS สินค้า)) AS ของเหลือ
|ที่ไหน
| เหลือ.ปริมาณคงเหลือ< 0";
Control Border = ขอบเขตใหม่ (TimePoint(), BorderView.Including);
Request.SetParameter("TimePoint", ขอบเขตการควบคุม);
RequestResult = คำขอดำเนินการ ();
// 5. การแสดงข้อความเกี่ยวกับการขาดแคลนสินค้า
ถ้าไม่ใช่ QueryResult.Empty() แล้ว
ปฏิเสธ = จริง;
ErrorSelect = QueryResult.Select();
ในขณะที่ SelectErrors.Next() วนซ้ำ
ข้อความ = MessageToUser ใหม่;
Message.Text = "สินค้า "+SampleErrors.NomenclaturePresentation+" มีจำนวนไม่เพียงพอ "+SampleErrors.Deficiency+" ชิ้น";
ข้อความ.ข้อความ();
สิ้นสุดรอบ;
สิ้นสุดถ้า;
สิ้นสุดขั้นตอน
มาดูประเด็นสำคัญของอัลกอริทึมกัน
1. รับข้อมูลเอกสารตามคำร้องขอ
จำเป็นต้องใช้แบบสอบถามนี้เพื่อจัดกลุ่มข้อมูลในส่วนตารางของเอกสาร
โปรดทราบว่าแบบสอบถามแรกในชุดจะสร้างตารางชั่วคราว - ซึ่งจะใช้ในการสืบค้นครั้งต่อไป สิ่งนี้เป็นไปได้ด้วยตัวจัดการตารางชั่วคราวที่สร้างขึ้นสำหรับการสืบค้นนี้
2. การก่อตัวของการเคลื่อนไหว - การลงทะเบียนการบริโภค
ในรอบนี้ข้อมูลจากเอกสารจะถูกเขียนลงในทะเบียน - นั่นคือมีการดำเนินการตัดสินค้าโดยไม่มีเงื่อนไข (ไม่มีการตรวจสอบ)
3.บันทึกความเคลื่อนไหวในฐานข้อมูล
เพื่อให้ยอดคงเหลือในทะเบียนเปลี่ยนแปลง จะต้องบันทึกการเคลื่อนไหว
4. สอบถามการรับเศษลบจากการลงทะเบียน
ขณะนี้ ด้วยคำของ่ายๆ เราจะเลือกยอดดุลติดลบสำหรับสินค้าที่เป็นเอกสาร
นี่คือที่ที่ใช้ตารางชั่วคราวที่สร้างขึ้นในขั้นตอนแรก - มีการกำหนดเงื่อนไขกับรายการ (สำหรับสิ่งนี้ เราจะไม่สร้างวัตถุใหม่ประเภท "คำขอ" แต่ใช้วัตถุที่สร้างขึ้นก่อนหน้านี้)
ให้ความสนใจกับวิธีการถ่ายทอดช่วงเวลา - ใช้ประเภทข้อมูล "ขอบเขต" ยอดคงเหลือจะต้องได้รับ ณ จุดเวลาทันทีหลังจากเอกสารปัจจุบัน
เป็นไปได้ไหมที่จะได้รับยอดคงเหลือโดยไม่มีขอบเขต เช่น เพิ่ม 1 วินาทีในวันที่ของเอกสาร
เลขที่! ท้ายที่สุดแล้ว ในหนึ่งวินาที ก็สามารถมีเอกสารจำนวนมากได้ ดังนั้น ตัวเลือกเดียวที่ถูกต้องคือใช้ประเภทเส้นขอบ "รวม"
5. แสดงข้อความเกี่ยวกับการขาดแคลนสินค้า
หากผลลัพธ์การสืบค้นไม่ว่างเปล่า แสดงว่ายังมีเศษลบ - ในกรณีนี้ เอกสารจะไม่ได้รับการประมวลผลและจะแสดงข้อความเกี่ยวกับข้อผิดพลาดทั้งหมด
ประโยชน์ของการควบคุมสารตกค้างด้วยวิธีใหม่
ดังนั้นอัลกอริธึมทั้งสองจึงแก้ปัญหาเดียวกันได้
ความแตกต่างระหว่างอัลกอริธึมสามารถมองเห็นได้ แต่ข้อดีไม่ชัดเจน
เรามาเน้นกัน:
- ไม่ต้องเคลียร์การเคลื่อนย้ายเอกสารเก่า. โดยพื้นฐานแล้ว นี่คือการดำเนินการในการเขียนชุดการเคลื่อนไหวที่ว่างเปล่าไปยังฐานข้อมูลและการลบการเคลื่อนไหวที่มีอยู่ ซึ่งเป็นการดำเนินการที่ค่อนข้างใช้ทรัพยากรมาก
- แบบสอบถามที่ดึงข้อมูลยอดดุลติดลบเข้าถึงได้เพียงตารางเดียว - ไม่จำเป็นต้องรวมข้อมูลเอกสารด้านซ้ายและใช้ฟังก์ชัน "ISNULL()"
นอกจากนี้ ในระหว่างกระบวนการทางธุรกิจตามปกติ ผู้ใช้จะระบุปริมาณที่ไม่เกินยอดคงเหลือในคลังสินค้า
ในกรณีนี้ คำขอที่สองจะไม่ส่งคืนข้อมูลใดๆ และการประมวลผลเอกสารจะเร็วที่สุดเท่าที่จะเป็นไปได้
มิลลิวินาทีเหล่านี้สำคัญขนาดนั้นจริงหรือ?
บนฐานข้อมูลที่มีข้อมูลและผู้ใช้จำนวนน้อย ความแตกต่างจะไม่สังเกตเห็นได้ชัดเจน แต่ในระบบที่ไม่ว่างซึ่งมีผู้ใช้หลายสิบคน ค่าใช้จ่ายทุกมิลลิวินาทีจะสูง
นอกจากนี้ ในระหว่างการสอบ 1C:Platform Specialist คุณจะต้องใช้วิธีการใหม่ในการควบคุมยอดคงเหลืออย่างแน่นอน หากมีงานเฉพาะเจาะจงอนุญาต
โอเค คุณควรใช้เทคนิคใหม่เสมอใช่ไหม?
ไม่ นั่นไม่เป็นความจริง!
เทคนิคใหม่นี้สามารถใช้ได้ก็ต่อเมื่อข้อมูลที่จำเป็นทั้งหมดสำหรับการประมวลผลเอกสารอยู่ในตัวเอกสารเท่านั้น
นั่นคือ ในการรับข้อมูล คุณไม่จำเป็นต้องเข้าถึงเครื่องบันทึกที่ควบคุมยอดคงเหลือ
ตัวอย่างเช่น หากจำนวนเงินถูกนำมาพิจารณาในการลงทะเบียน "ยอดคงเหลือฟรี" ก็จะต้องใช้วิธีการควบคุมแบบเก่า
อย่างไรก็ตามในมาตรฐาน "1C: การจัดการการค้า 11" มีการใช้วิธีการใหม่และใน "1C: การบัญชี 8" - ตามวิธีการเก่า
แต่นั่นไม่ใช่ทั้งหมด!
อัลกอริธึมที่นำเสนอข้างต้นสามารถใช้เพื่อวัตถุประสงค์ทางการศึกษาเท่านั้น ประเด็นก็คือพวกเขาไม่ได้คำนึงถึง ล็อคควบคุมซึ่งต้องใช้หากมีผู้ใช้มากกว่าหนึ่งรายบนระบบ
มีการกล่าวถึงบล็อกสำหรับการควบคุมสารตกค้างทั้งสองวิธี นอกจากนี้ในบทความนี้เรายังแก้ไขปัญหาที่ซับซ้อนมากขึ้น - นอกเหนือจากการควบคุมยอดคงเหลือแล้ว เรายังคำนวณต้นทุนของรายการตัดจำหน่ายอีกด้วย เราขอแนะนำให้คุณศึกษาอย่างรอบคอบ
และสำหรับผู้เริ่มต้น สมมุติว่าอย่างนั้น การติดตั้งล็อคด้วยวิธีใหม่นั้นง่ายมาก– และนี่คือข้อดีอีกประการหนึ่งของวิธีการควบคุมสารตกค้างแบบใหม่
ผลลัพธ์
มาสรุปสั้นๆ กัน
เราพิจารณาเทคนิคการควบคุมสารตกค้างสองเทคนิค ซึ่งแต่ละเทคนิคใช้ในการกำหนดค่าทั่วไปสมัยใหม่
ความแตกต่างที่สำคัญระหว่างเทคนิคในขณะที่ควบคุมยอดคงเหลือ:
- เทคนิคเก่า - ควบคุมก่อนบันทึกการเคลื่อนไหวในรีจิสเตอร์
- เทคนิคใหม่ - ควบคุมหลังจากบันทึกการเคลื่อนไหวในรีจิสเตอร์
โดยทั่วไปเทคนิคใหม่จะมีประสิทธิภาพมากกว่า แต่ก็ใช้ไม่ได้เสมอไป
เกณฑ์การบังคับใช้– หากไม่จำเป็นต้องเข้าถึงข้อมูลจากรีจิสเตอร์ที่ได้รับการควบคุมเพื่อสร้างการเคลื่อนไหว ก็สามารถใช้เทคนิคใหม่ได้
หากเราพูดถึงการควบคุมยอดดุลผลิตภัณฑ์ การใช้เทคนิคใหม่ก็เป็นไปได้เมื่อข้อมูลเกี่ยวกับต้นทุนและยอดดุลคลังสินค้าถูกเก็บไว้ในทะเบียนที่แตกต่างกัน
และสุดท้ายก็มีตัวอย่างจาก การกำหนดค่าทั่วไป:
- ใน ยูทาห์ 11มีการลงทะเบียนหลัก 2 รายการสำหรับการบัญชีสำหรับรายการ: ยอดคงเหลือฟรี (ปริมาณ) และต้นทุนสินค้า (ข้อมูลต้นทุน) - ใช้วิธีการใหม่
- ใน บีพี 3.0ข้อมูลเกี่ยวกับต้นทุนและยอดคงเหลือจะถูกเก็บไว้ในทะเบียนการบัญชีเดียว - ใช้วิธีการควบคุมยอดคงเหลือแบบเก่า
องค์กรใด ๆ จะต้องตรวจสอบยอดคงเหลือในสต๊อก และบ่อยครั้งที่สถานการณ์เกิดขึ้นเมื่อสินค้ามีจำหน่ายจริงแต่ไม่ได้อยู่ในโปรแกรม จากนั้นนักบัญชีก็ถูกบังคับให้ตัดสินใจ:
- อนุญาตให้ขายได้
- เลื่อนออกไปจนกว่าจะชัดเจนว่าเหตุใดจึงเกิดเหตุการณ์เช่นนี้
ตามกฎแล้วการตัดสินใจจะขึ้นอยู่กับนโยบายที่ปฏิบัติตามในองค์กรที่เกี่ยวข้องกับการบัญชียอดคงเหลือ บางครั้งคุณสามารถวางผลิตภัณฑ์ไว้ข้างๆ และบอกผู้ซื้อว่าตอนนี้ไม่สามารถขายได้ บางครั้งก็เป็นไปไม่ได้ที่จะทำ เช่น เมื่อผู้ซื้อเห็นสินค้าชิ้นนี้หรือถืออยู่ในมือแล้ว
แน่นอนว่าคุณสามารถสร้างเอกสารการขายโดยไม่ต้องโพสต์เอกสารได้ แต่ไม่ใช่ทุกองค์กรจะอนุญาต ดังนั้นในโปรแกรม 1C 8.3 (เช่นเดียวกับใน 8.2) จึงเป็นไปได้ที่จะปิดการใช้งานการควบคุมยอดคงเหลือติดลบ
หากเปิดใช้งานการควบคุมยอดคงเหลือ เมื่อขายสินค้าที่ไม่มีในสต็อก (หรือในบัญชีที่ต้องการ) โปรแกรมจะออกคำเตือนต่อไปนี้:
คอลัมน์ "ปริมาณ" ในบรรทัดที่ 1 ของรายการ "ผลิตภัณฑ์" กรอกไม่ถูกต้อง
ปริมาณที่ระบุเกินยอดคงเหลือ ที่เหลืออยู่: 18; สูญหาย: 111,093
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
ปิดการใช้งานการควบคุมยอดคงเหลือติดลบใน 1C 8.3
หากต้องการปิดใช้งานหรือเปิดใช้งานการควบคุมความสมดุลใน 1C คุณต้องไปที่เมนู "หลัก" จากนั้นในส่วน "การตั้งค่า" เลือก " "
ในการบัญชี 1C บางเวอร์ชันการตั้งค่าเหล่านี้จะอยู่ในเมนู "การดูแลระบบ - การตั้งค่าการโพสต์เอกสาร"
ใน "พารามิเตอร์การบัญชี" คุณต้องไปที่แท็บ 1C "สินค้าคงคลัง" และทำเครื่องหมายที่ช่อง "อนุญาตให้มีการตัดสินค้าคงเหลือหากไม่มียอดคงเหลือตามข้อมูลการบัญชี":
จากนั้นสิ่งที่คุณต้องทำคือคลิกปุ่ม "บันทึกและปิด" ตอนนี้ เมื่อตัดออก ยอดคงเหลือจะไม่ได้รับการควบคุม
แต่วิธีการดังกล่าวจะนำไปสู่การปรากฏตัวของยอดคงเหลือติดลบในคลังสินค้าอย่างหลีกเลี่ยงไม่ได้ (หมายถึงในโปรแกรม) ลองดูวิธีจัดการกับเรื่องนี้
รายงาน “การควบคุมยอดคงเหลือติดลบ”
ในกรณีที่ง่ายที่สุด คุณเพียงแค่ต้องเลือกช่วงเวลาและคลิกปุ่ม "สร้าง" และที่นี่เองที่ความประหลาดใจแรกรอฉันอยู่
ฉันจำลองสถานการณ์ที่ฉันขายสินค้ามากกว่าที่มีอยู่ในสต็อกในโปรแกรมทดสอบโดยเฉพาะ ยิ่งกว่านั้นเขาขายสิ่งนี้ในปี 2556 ตามเหตุผลแล้ว ฉันยังมีผลิตภัณฑ์สีแดงเหมือนเดิมในปี 2559 ดังนั้นฉันจึงไม่ได้แตะช่วงเวลาเลย แต่คลิก "สร้าง" ทันที มันไม่ได้ผลสำหรับฉัน ปรากฎว่ารายงานสามารถแสดงข้อมูลเกี่ยวกับยอดดุลติดลบเฉพาะช่วงเวลาที่เลือกเท่านั้น
ในวิดีโอบทช่วยสอนของฉัน ฉันมักจะพูดถึงความจริงที่ว่าฐานข้อมูล 1C ต้องเตรียมพร้อมสำหรับการปิดงวดและการรายงาน และจุดสำคัญประการหนึ่งของการเตรียมการดังกล่าวคือการควบคุมยอดคงเหลือติดลบของสินค้า วัสดุ และผลิตภัณฑ์สำเร็จรูป คุณควรใช้รายงานใดเพื่อตรวจสอบสถานะของบัญชีสินค้าคงคลังใน 1C: การบัญชี ลองดูบางส่วนของพวกเขา
1. รายงาน “งบดุลบัญชี”
นักบัญชีหลายคนคุ้นเคยกับการทำงานกับงบดุลทางบัญชี รายงานนี้สามารถใช้เพื่อควบคุมยอดคงเหลือสินค้าคงคลังได้ คุณเพียงแค่ต้องตรวจสอบให้แน่ใจว่าการตั้งค่าได้รับการตั้งค่าให้แสดงตัวบ่งชี้เชิงปริมาณคลิกปุ่ม "แสดงการตั้งค่า" และไปที่แท็บ "ตัวบ่งชี้"
จากนั้นเราจะตรวจสอบรายงานอย่างรอบคอบและวิเคราะห์ข้อผิดพลาดที่ตรวจพบ
งบดุลมีความสะดวกเนื่องจากช่วยให้คุณประเมินไม่เพียงแต่การมีอยู่ของยอดคงเหลือเชิงปริมาณติดลบเท่านั้น แต่ยังตรวจจับสถานการณ์ปัญหาอื่น ๆ ได้ด้วย:
- ยอดคงเหลือเชิงปริมาณของสินค้าคงคลังโดยไม่มีจำนวน
- ยอดรวมไม่มีปริมาณ
- ยอดคงเหลือติดลบ
อย่างไรก็ตาม หากมีรายการสินค้าจำนวนมากเกี่ยวข้องกับการบัญชี เช็คดังกล่าวอาจต้องใช้แรงงานค่อนข้างมาก นอกจากนี้ จะต้องสร้าง SALT แยกกันสำหรับบัญชีการบัญชีแต่ละบัญชี (10, 41, 43) ซึ่งทำให้กระบวนการทำงานค่อนข้างซับซ้อนด้วย
2. รายงาน "การควบคุมยอดคงเหลือติดลบ"
การกำหนดค่า 1C: Enterprise Accounting 8 รุ่น 3.0 จัดทำรายงานที่เหมาะสำหรับการตรวจสอบยอดคงเหลือเชิงปริมาณติดลบของรายการสินค้าคงคลัง รายงานจะอยู่ที่แท็บ "คลังสินค้า"เราระบุช่วงเวลา องค์กร และสร้างรายงาน
รายงานจะรวมเฉพาะรายการสินค้าที่มีการตรวจพบยอดดุลเชิงปริมาณติดลบ ข้อได้เปรียบที่สำคัญคือมีการวิเคราะห์ข้อมูลในบัญชีสินค้าคงคลังทั้งหมด ในความคิดของฉัน การทำงานกับรายงานสะดวกกว่า OSV
แต่ก็มีข้อเสียเช่นกัน - รายงานช่วยให้คุณตรวจสอบเฉพาะยอดคงเหลือเชิงปริมาณติดลบ โดยทิ้งปัญหาอื่นๆ ที่ SALT ช่วยให้คุณตรวจพบไว้เบื้องหลัง
3. รายงาน “การวิเคราะห์ Subconto”
ฉันได้พูดคุยเกี่ยวกับรายงานนี้มากกว่าหนึ่งครั้ง การวิเคราะห์ Subconto เป็นหนึ่งในรายงานที่ฉันชื่นชอบ ซึ่งไม่เพียงแต่ช่วยให้คุณตรวจพบข้อผิดพลาดเท่านั้น แต่ยังช่วยให้เข้าใจสาเหตุของข้อผิดพลาดในหลาย ๆ สถานการณ์ด้วยไปที่ส่วน "รายงาน" - "การวิเคราะห์เนื้อหาย่อย"
เลือกส่วนย่อย "ระบบการตั้งชื่อ" และตรวจสอบว่าได้เปิดใช้งานการแสดงตัวบ่งชี้เชิงปริมาณในการตั้งค่ารายงานแล้ว
การวิเคราะห์ Subconto นั้นดีเนื่องจากช่วยให้คุณได้รับข้อมูลเกี่ยวกับความเคลื่อนไหวของรายการสินค้าคงคลังในบัญชีทางบัญชีทั้งหมด ตัวอย่างเช่น เพื่อติดตามสถานการณ์ที่สินค้ามาถึงบัญชีบัญชีหนึ่งแต่ถูกขายจากอีกบัญชีหนึ่ง
อย่างไรก็ตาม เนื่องจากมีรายการจำนวนมาก การวิเคราะห์ข้อมูลจึงเป็นเรื่องยาก
ฉันได้พูดคุยเพิ่มเติมเกี่ยวกับการทำงานกับรายงานนี้ในวิดีโอสอนวิธีทำงานกับรายงาน "การวิเคราะห์ Subconto" ใน 1C - วิดีโอ
ดังนั้น รายงานที่ได้รับการตรวจสอบแต่ละรายงานจึงมีข้อดีและข้อเสียต่างกันไป ในงานของฉัน ฉันขอแนะนำให้รวมเข้าด้วยกัน:
- ค้นหาข้อผิดพลาดรวมโดยใช้รายงาน "การควบคุมยอดคงเหลือติดลบ"
- จากนั้นดู SALT สำหรับบัญชีสินค้าคงคลังทั้งหมด
- เพื่อระบุสาเหตุของยอดคงเหลือที่ไม่ถูกต้อง ให้ใช้รายงาน "การวิเคราะห์ Subconto"
ฉันยังกล่าวถึงตัวอย่างที่น่าสนใจที่เกี่ยวข้องกับการค้นหาและแก้ไขข้อผิดพลาดเมื่อพิจารณารายการสินค้าคงคลังในวิดีโอที่มีประโยชน์สองรายการ:
การควบคุมยอดคงเหลือในคลังสินค้าเป็นขั้นตอนการบัญชีบังคับสำหรับองค์กรที่ทำงานกับสินค้า บ่อยครั้งคุณอาจพบกับสถานการณ์ที่ไม่มีสินค้าในโปรแกรม แต่จริงๆ แล้วสินค้าอยู่ในคลังสินค้า ในสถานการณ์เช่นนี้ มีสองทางเลือก:
- ส่งมาขายครับ;
- ทิ้งไว้ในโกดังจนกว่าจะมีความชัดเจนในสถานการณ์นี้
ตัวเลือกขึ้นอยู่กับปัจจัยหลายประการ เช่น นโยบายองค์กรหรือสถานการณ์เฉพาะ หากผลิตภัณฑ์อยู่บนเคาน์เตอร์และผู้ซื้อสนใจ (ถือไว้ในมือ) ไม่แนะนำให้ปฏิเสธการขาย
องค์กรบางแห่งฝึกสร้างเอกสารการขายโดยไม่ต้องผ่านรายการ แต่ไม่ใช่ทั้งหมดที่ใช้แนวปฏิบัตินี้ ในกรณีดังกล่าว โปรแกรม 1C ในเวอร์ชันล่าสุดมีความสามารถในการปิดการควบคุมยอดคงเหลือติดลบ
เมื่อเปิดใช้งานการควบคุม การขายสินค้าที่ไม่มีในสต็อกตามโปรแกรมจะให้คำเตือนแก่ผู้ใช้: คอลัมน์ "ปริมาณ" ในบรรทัดที่ 1 ของรายการ "ผลิตภัณฑ์" กรอกไม่ถูกต้อง “ปริมาณที่ระบุเกินยอดคงเหลือ ที่เหลืออยู่: 18. หายไป 111.093”
ปิดการใช้งานการควบคุมยอดคงเหลือติดลบใน 1C
การดำเนินการเปิด/ปิดการควบคุมยอดคงเหลือใน 1C ดำเนินการผ่านเมนู "หลัก" - "การตั้งค่า" - "พารามิเตอร์การบัญชี" - "สินค้าคงคลัง" ที่นี่คุณต้องทำเครื่องหมายที่ช่อง "อนุญาตให้ตัดสินค้าคงคลังหากไม่มีสินค้าคงคลังตามข้อมูลทางบัญชี"
หลังจากนี้ การดำเนินการจะได้รับการยืนยันด้วยปุ่ม "บันทึกและปิด" ในทางกลับกันการกระทำดังกล่าวได้รับการรับรองว่าเป็นพื้นฐานสำหรับการสร้างยอดคงเหลือติดลบในการบัญชี พวกเขาจะต้องถูกกำจัด
รายงาน “การควบคุมยอดคงเหลือติดลบ”
รายงานนี้สร้างขึ้นผ่านเมนู "คลังสินค้า" - "รายงาน" ซึ่งมีการนำเสนอเอกสาร ผู้ใช้จะต้องกำหนดช่วงเวลาคำขอและคลิกที่ปุ่ม "สร้าง" การไม่มีระยะเวลาที่กำหนดจะไม่อนุญาตให้คุณแสดงยอดคงเหลือติดลบซึ่งเป็นคุณลักษณะของระบบที่จำเป็นต้องกรอกคอลัมน์ "ระยะเวลา" ให้เสร็จสิ้น
รายงานที่เสร็จสมบูรณ์จะมีลักษณะดังต่อไปนี้
ชุดตัวกรองมาตรฐานพร้อมใช้งานสำหรับรายงาน รวมถึงการจัดกลุ่ม การเรียงลำดับ และการแปลงข้อมูลอื่นๆ ตามคำขอและความต้องการของผู้ใช้ เมื่อใช้ปุ่ม "แสดงการตั้งค่า" คุณจะรวมแถวเพิ่มเติมในรายงานได้ด้วยตนเอง
รายงานนี้ช่วยให้ได้รับข้อมูลสรุปหรือรายละเอียดเกี่ยวกับยอดคงเหลือติดลบใน 41 บัญชีได้ตลอดเวลา ผลลัพธ์ของรายงานจะแสดงพร้อมรายละเอียดเริ่มต้น (ดูรูปที่ 1)
เพราะ เนื่องจากรายงานถูกเขียนอย่างสมบูรณ์โดยใช้โครงร่างข้อมูล ผู้ใช้จึงเปลี่ยนส่วนรายงานจากโหมดผู้ใช้ได้ไม่ยาก (ดูรูปที่ 2)
รายงานภายนอกมีไว้สำหรับการกำหนดค่า "1C: การบัญชีองค์กร 8 รุ่น 3.0" และ "รุ่น 3.0 (KORP)"ซึ่งทำงานบนแพลตฟอร์มเวอร์ชัน 8.2 ในโหมด “แอปพลิเคชันที่มีการจัดการ”
ระยะเวลาการสนับสนุนฟรี: 1 เดือน
เหตุผลที่จะซื้อ
ยอดคงเหลือติดลบเป็นเรื่องที่น่าปวดหัวสำหรับนักบัญชีเสมอ ยอดคงเหลือติดลบใน 41 บัญชีทำให้สถานการณ์นี้รุนแรงขึ้นเป็นสองเท่า รายงานนี้แสดงให้เห็นทั้งหมดอย่างรวดเร็วและชัดเจน "รอยแดง" ใน 41 นับในรูปแบบที่สะดวกและมองเห็นได้ นอกจากนี้ลยอดคงเหลือติดลบใน 41 บัญชีสามารถถอดรหัสได้โดยใช้รายงาน "การวิเคราะห์ Subconto" และ "บัตรบัญชี" ขณะเดียวกันเมื่อรวมการใช้รายงานเหล่านี้เข้าด้วยกันก็สามารถลงลึกถึงระดับเอกสารบันทึกที่ทำให้เกิดการเคลื่อนย้ายสินค้าได้โดยตรง ในการดำเนินการนี้ เพียงคลิกหมายเลขที่ต้องการในรายงาน และเลือกรายงานที่จะถอดรหัส
ตามคำขอจำนวนมากจากผู้ใช้ รายงาน "การควบคุมยอดคงเหลือติดลบในบัญชีสินค้าคงคลัง" เวอร์ชันแยกต่างหากได้ถูกสร้างขึ้น ซึ่งเพิ่มความสามารถในการควบคุมยอดคงเหลือติดลบ ไม่เพียงแต่สำหรับ 41 บัญชีเท่านั้น แต่ยังรวมถึงบัญชีหลักอื่น ๆ สำหรับการเคลื่อนย้ายสินค้าคงคลังด้วย รายการ:
บัญชี 07 อุปกรณ์ในการติดตั้ง
- บัญชี 08.04 การได้มาของสินทรัพย์ถาวร
- บัญชี 10 ทั้งหมด ยกเว้น 10.07 (วัสดุที่โอนเพื่อการประมวลผลไปยังบุคคลที่สาม)
- บัญชี 21 ผลิตภัณฑ์กึ่งสำเร็จรูปที่ผลิตเอง
- บัญชี 41 ทั้งหมด ยกเว้น 41.12 (สินค้าในการขายปลีก (เป็น NTT ตามมูลค่าการขาย))
- บัญชี 42.01 อัตรากำไรทางการค้าในร้านค้าปลีกอัตโนมัติ
- บัญชี 43 สินค้าสำเร็จรูป
นอกจากนี้ โปรดจำไว้ว่ายอดคงเหลือติดลบสามารถเกิดขึ้นได้ไม่เพียงแต่ในบัญชีสินค้าคงคลังเท่านั้น แต่ยังเกิดขึ้นในบัญชีศุลกากรด้วย หากคุณต้องการควบคุมบัญชีนี้ด้วย เราขอแนะนำให้คุณทำความคุ้นเคยกับรายงานภายนอก
ข้อดี
- การเชื่อมต่อผ่านกลไกการประมวลผลและการรายงานภายนอก ซึ่งจะทำให้คุณสามารถใช้รายงานได้โดยไม่ต้องทำการเปลี่ยนแปลงใดๆ กับการกำหนดค่ามาตรฐาน นอกจากนี้ยังสามารถเปิดรายงานมาตรฐานผ่าน "ไฟล์" -> "เปิด" ได้ด้วย
- ความเป็นไปได้ที่จะปรับแต่งรายงาน “เพื่อตัวคุณเอง” จากโหมดผู้ใช้
รับประกันคืนเงิน
Infostart LLC รับประกันคืนเงิน 100% หากโปรแกรมไม่สอดคล้องกับฟังก์ชันที่ประกาศไว้ในคำอธิบาย คุณสามารถคืนเงินเต็มจำนวนได้หากคุณร้องขอภายใน 14 วันนับจากวันที่ได้รับเงินในบัญชีของเรา
โปรแกรมนี้ได้รับการพิสูจน์แล้วว่าได้ผลจนเราสามารถรับประกันได้อย่างมั่นใจ เราต้องการให้ลูกค้าของเราทุกคนพอใจกับการซื้อของพวกเขา