ข้อมูลการบัญชี ข้อมูลการบัญชี 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. คำขอดึงข้อมูลยอดคงเหลือของผลิตภัณฑ์และข้อมูลเอกสาร
  2. วงจรจะตรวจสอบความเพียงพอของสินค้า
  3. ถ้าสินค้ามีไม่เพียงพอก็จะไม่ผ่านรายการเอกสาร
  4. หากมีสินค้าเพียงพอ จะดำเนินการเคลื่อนไหวการบริโภค

นี่คือลักษณะของโค้ดโปรแกรม:

// 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. เคลียร์ความเคลื่อนไหวทะเบียนเก่า

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

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

สถานการณ์เช่นนี้จะเป็นไปได้เมื่อใด? เอกสารถึงวันไหน. ก้าวไปข้างหน้า.

มาดูตัวอย่างกันว่าสิ่งนี้จะนำไปสู่อะไร:

  1. โคมไฟตั้งโต๊ะที่เหลืออยู่ 10 ชิ้น
  2. กำลังดำเนินการเอกสารลงวันที่ 02/16/60 เรากำลังตัดไฟ 6 ดวง
  3. วันที่ในเอกสารเปลี่ยนเป็น 02/17/60 (สามารถเลื่อนวันที่ไปข้างหน้าได้อย่างน้อย 1 วินาที) ให้โพสต์เอกสารอีกครั้ง

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

ปัญหาได้รับการแก้ไขด้วยโค้ด 3 บรรทัด:

  • ชุดระเบียนกำลังถูกล้าง (อาจถูกอ่านในแบบฟอร์มหรือในตัวจัดการก่อนหน้านี้)
  • ชุดบันทึกมีชุดธง "เขียน"
  • ชุดทั้งหมดที่มีชุดธง "บันทึก" จะถูกบันทึกไว้

พูดอย่างเคร่งครัด เราสามารถควบคุมการล้างข้อมูลการเคลื่อนไหวเมื่อโพสต์เอกสาร:

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

2. รับข้อมูลเอกสารและลงทะเบียนยอดตามคำขอ

คำขอประกอบด้วยสองแพ็คเกจ:

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

สิ่งที่คุณควรใส่ใจในคำขอนี้:

  1. เมื่อสร้างตารางชั่วคราว ฟิลด์ที่จะทำการรวมจะถูกจัดทำดัชนี - ซึ่งทำเพื่อประสิทธิภาพสูงสุด
  2. ช่วงเวลาที่ได้รับยอดคงเหลือ – สอดคล้องกับตำแหน่งของเอกสารบนแกนเวลา
  3. อาจไม่เหลือในการลงทะเบียน - ดังนั้นจึงดำเนินการรวมด้านซ้ายและใช้ฟังก์ชัน "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. แสดงข้อความเกี่ยวกับการขาดแคลนสินค้า

หากผลลัพธ์การสืบค้นไม่ว่างเปล่า แสดงว่ายังมีเศษลบ - ในกรณีนี้ เอกสารจะไม่ได้รับการประมวลผลและจะแสดงข้อความเกี่ยวกับข้อผิดพลาดทั้งหมด

ประโยชน์ของการควบคุมสารตกค้างด้วยวิธีใหม่

ดังนั้นอัลกอริธึมทั้งสองจึงแก้ปัญหาเดียวกันได้

ความแตกต่างระหว่างอัลกอริธึมสามารถมองเห็นได้ แต่ข้อดีไม่ชัดเจน

เรามาเน้นกัน:

  1. ไม่ต้องเคลียร์การเคลื่อนย้ายเอกสารเก่า. โดยพื้นฐานแล้ว นี่คือการดำเนินการในการเขียนชุดการเคลื่อนไหวที่ว่างเปล่าไปยังฐานข้อมูลและการลบการเคลื่อนไหวที่มีอยู่ ซึ่งเป็นการดำเนินการที่ค่อนข้างใช้ทรัพยากรมาก
  2. แบบสอบถามที่ดึงข้อมูลยอดดุลติดลบเข้าถึงได้เพียงตารางเดียว - ไม่จำเป็นต้องรวมข้อมูลเอกสารด้านซ้ายและใช้ฟังก์ชัน "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 สินค้าสำเร็จรูป

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

ข้อดี

  1. การเชื่อมต่อผ่านกลไกการประมวลผลและการรายงานภายนอก ซึ่งจะทำให้คุณสามารถใช้รายงานได้โดยไม่ต้องทำการเปลี่ยนแปลงใดๆ กับการกำหนดค่ามาตรฐาน นอกจากนี้ยังสามารถเปิดรายงานมาตรฐานผ่าน "ไฟล์" -> "เปิด" ได้ด้วย
  2. ความเป็นไปได้ที่จะปรับแต่งรายงาน “เพื่อตัวคุณเอง” จากโหมดผู้ใช้

รับประกันคืนเงิน

Infostart LLC รับประกันคืนเงิน 100% หากโปรแกรมไม่สอดคล้องกับฟังก์ชันที่ประกาศไว้ในคำอธิบาย คุณสามารถคืนเงินเต็มจำนวนได้หากคุณร้องขอภายใน 14 วันนับจากวันที่ได้รับเงินในบัญชีของเรา

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