1c حسابداری 8.3 کنترل مانده های منفی. اطلاعات حسابداری دریافت اطلاعات اسناد و ثبت موجودی بر اساس درخواست


این گزارش به شما کمک می کند تا در هر زمان اطلاعات خلاصه یا جزئی در مورد مانده های منفی 41 حساب به دست آورید. نتیجه گزارش با جزئیات پیش فرض نمایش داده می شود (شکل 1 را ببینید)

زیرا از آنجایی که گزارش به طور کامل با استفاده از طرح بندی داده نوشته شده است، تغییر بخش های گزارش از حالت کاربر برای کاربر دشوار نخواهد بود (شکل 2 را ببینید).

گزارش خارجی برای پیکربندی "1C: Enterprise Accounting 8, Edition 3.0" و "نسخه 3.0 (KORP)"، در حال اجرا بر روی پلت فرم نسخه 8.2 در حالت "برنامه مدیریت شده".

اعتبار پشتیبانی رایگان: 1 ماه.

دلایل خرید

مانده های منفی همیشه برای هر حسابداری دردسرساز است. موجودی منفی 41 حساب این وضعیت را دوچندان می کند. این گزارش به سرعت و به وضوح همه چیز را نشان می دهد "قرمزی" در 41 شمارش به شکلی راحت و بصری. علاوه بر این lهرگونه موجودی منفی در 41 حساب را می توان با استفاده از گزارش های "تحلیل زیرمجموعه" و "کارت حساب" رمزگشایی کرد. در عین حال، با ترکیب استفاده از این گزارش ها، می توان مستقیماً به سطح اسناد ثبتی که باعث جابجایی کالا شده است، پایین آمد. برای این کار کافیست روی عدد مورد نیاز در گزارش کلیک کرده و گزارش را برای رمزگشایی انتخاب کنید.

با توجه به درخواست های متعدد کاربران، نسخه جداگانه ای از گزارش "کنترل مانده های منفی در حساب های موجودی" ایجاد شد که امکان کنترل مانده های منفی را نه تنها برای 41 حساب، بلکه سایر حساب های اصلی برای جابجایی موجودی ها نیز اضافه کرد. موارد:

حساب 07 تجهیزات برای نصب
- حساب 08.04 تحصیل دارایی های ثابت
- حساب 10 همه، به جز 10.07 (مواد برای پردازش به اشخاص ثالث منتقل شده است)
- حساب 21 محصولات نیمه تمام تولید خود
- حساب 41 همه به جز 41.12 (کالا در خرده فروشی(در NTT به قیمت فروش))
- حساب 42.01 حاشیه تجاریدر فروشگاه های خرده فروشی خودکار
- حساب 43 محصولات تمام شده

همچنین به یاد داشته باشید که مانده های منفی نه تنها در حساب های موجودی، بلکه در حساب اظهارنامه گمرکی نیز می تواند ایجاد شود. اگر لازم است این حساب را نیز کنترل کنید، توصیه می کنیم با گزارش خارجی آشنا شوید

مزایای

  1. اتصال از طریق مکانیسم پردازش و گزارش خارجی. این به شما امکان می دهد بدون ایجاد هیچ تغییری در پیکربندی استاندارد از گزارش استفاده کنید. همچنین می توان یک گزارش استاندارد را از طریق "File" -> "Open" باز کرد.
  2. امکان سفارشی کردن گزارش "برای خودتان" از حالت کاربر.

تضمین بازگشت پول

اگر برنامه با عملکرد اعلام شده از توضیحات مطابقت نداشته باشد، Infostart LLC 100٪ بازپرداخت را به شما تضمین می کند. در صورت درخواست شما ظرف 14 روز از تاریخ دریافت پول در حساب ما، می توان پول را به طور کامل برگرداند.

این برنامه به حدی ثابت شده است که کار می کند که ما می توانیم چنین تضمینی را با اطمینان کامل ارائه دهیم. ما می خواهیم همه مشتریان ما از خرید خود راضی باشند.

هنگام خرید یا شرکت های تولیدیدر حسابداری، مانده های منفی در سیستم حسابداری ظاهر می شود. آنها منعکس کننده کالاها / موادی هستند که بیش از حد از بین رفته اند.

دلایل بروز آنها چیست؟

بدون ورود

اغلب شایع ترین دلیل ممکن است عدم دریافت یا ورودی کالاهای تکمیل شده باشد مانده های اولیه. به عنوان مثال، شما محصولی را خریداری کرده اید، اما هنوز موفق به سرمایه گذاری آن در سیستم نشده اید، اما آنها قبلاً موفق به فروش آن شده اند. اتفاقی که می افتد این است که کالا ثبت شد، سپس به فروشگاه منتقل شد و فروخته شد، اما شخصی سند رسید را باطل کرد.

در این موقعیت راه درستعمل بررسی وجود سند رسید در پایگاه داده خواهد بود. اگر وجود دارد و پست نشده است، پر کردن را بررسی کنید و آن را ارسال کنید. اگر سند رسید اصلاً در پایگاه داده نیست، باید آن را به ماسبق وارد کنید. در عین حال، لازم است بدانیم که اضافه کردن اسناد به ماسبق در یک بسته دوره مالیاتیممکن است منجر به تغییر در مقادیر مالیات، به ویژه مالیات بر ارزش افزوده شود.

درجه بندی مجدد

یکی دیگر از دلایل رایج پدیده مورد نظر ما، درجه بندی اشتباه یا زیاده روی یک نوع محصول (مواد) و در عین حال کمبود نوع دیگر است. به عنوان مثال، در برنامه فقط یک کیف پول مشکی به تعداد 10 عدد در انبار مشخص شده است، اما در یک فروشگاه فروشنده یک کیف پول قرمز را می فروشد و فروش آن را در پایگاه داده به میزان 5 عدد ثبت می کند. در نتیجه موجودی کیف پول های سیاه در پایگاه داده کاهش نمی یابد، اما موجودی ما در کیف پول های قرمز ظاهر می شود.

که در در این موردتصحیح مانده ها به روش زیر حل می شود: ثبت یک محصول و رد کالای دیگر ثبت می شود. برای انجام این کار، یک سند "پست کالا" ایجاد می شود و 5 مورد در آن با حروف بزرگ نوشته می شود. کیف پول قرمز در مرحله بعد، یک سند "حذف کالا" ایجاد می شود و 5 مورد در آن حذف می شود. کیف پول سیاه

هنگامی که در 1C: حسابداری 3.0 تعادل منفی برای یک محصول (مواد) وجود دارد، سپس هنگام ارسال سند "فروش کالا" نمایش داده می شود. اعلامیهکه امکان ارسال این سند وجود ندارد، زیرا تعداد واحدهای نمایش داده شده در قسمت جدولی سند از موجودی بیشتر است.

شکل 1 پیام در سند زمانی که موجودی در انبار وجود ندارد

سیگنال های هشدار در ترازنامه - ترازهای منفی با رنگ قرمز مشخص شده اند!



شکل 2 ردیابی توسط OSV

نحوه فعال یا غیرفعال کردن کنترل ترازهای منفی در 1C BP 3.0

می‌توانید کنترل را در بخش «اداره» تنظیم کنید، سپس روی پیوند «ارسال اسناد» کلیک کنید.



شکل 3 تنظیم

برای غیرفعال کردن کنترل، باید پرچم روی پارامتر "اجازه حذف موجودی در صورت عدم وجود موجودی بر اساس داده های حسابداری" را فعال کنید.



شکل 4 اجازه حذف واحدهای دارای شاخص تراز منفی

این اتفاق می افتد که برای فروش فوری محصولی که نیاز فوری به ارسال دارد، باید کنترل را به طور موقت غیرفعال کنید. سند "Implementations" در سیستم پست می شود و سپس کنترل دوباره روشن می شود. سپس باید به یاد داشته باشید که برای تصحیح خطای حسابداری که باعث محصول منفی شده است، مانده ها را تجزیه و تحلیل کنید.

برای کنترل موجودی‌ها بر اساس انبار، باید تجزیه و تحلیل آن‌ها را در «تنظیمات حسابداری» از طریق «اداره» تنظیم کنید.



Fig.5 پارامترها

روی «تنظیم نمودار حساب‌ها» کلیک کنید.



Fig.6 تنظیمات پارامتر

روی «بر اساس کالا، دسته و انبارها (بر اساس مقدار و مقدار)» کلیک کنید.



شکل 7 پارامترهای حسابداری موجودی

هنگام نصب تجزیه و تحلیل، با کلیک بر روی "بر اساس انبارها (مکان های ذخیره سازی)"، نحوه نگهداری سوابق را انتخاب می کنیم.



شکل 8 فعال سازی تجزیه و تحلیل انبار

اگر تنظیم «بر اساس مقدار و مقدار» انتخاب شود، بر این اساس، حسابداری در حسابداری کمی و کل انبارها به طور جداگانه و اگر «بر اساس مقدار»، در هر انبار فقط کمی است، و مبالغ حذف شده است. با تقسیم قیمت موجودی بر کل مقدار در همه انبارها تعیین می شود.

گزارش های کنترلی

گزارش "کنترل مانده های منفی" برای تجزیه و تحلیل مانده های منفی شناسایی شده کالاهای سازمان استفاده می شود. می توانید آن را از طریق "انبار - کنترل ترازهای منفی" باز کنید.



شکل 9 گزارش برای کنترل ترازها



شکل 10 فرم گزارش کنترل

در تنظیمات گزارش، می توانید تعیین کنید که گزارش بر روی چه داده هایی ساخته شود، به عنوان مثال، داده های گروهی بر اساس سازمان، انبار، سند حذف، آیتم و غیره.



شکل 11 تنظیمات گزارش را کنترل کنید

در انتخاب، می‌توانید مشخص کنید که برای چه داده‌هایی گزارش تولید شود، مثلاً برای یک انبار خاص یا برای یک کالای مشکل‌دار.



شکل 12 انتخاب در گزارش کنترل



شکل 13 ایجاد یک گزارش کنترل

مانده های منفی نوعی نشانگر خطاهای حسابداری است. نظارت مداوم بر موجودی انبار و اصلاح به موقع آنها بسیار مهم است. ترازهای نادرست موجود مشکلاتی را برای کار عملیاتی کاربران ایجاد می کند و همچنین می تواند باعث محاسبه نادرست بهای تمام شده، تجدید ارزیابی و سایر شاخص های مهم حسابداری شود.

دو نوع موقعیت وجود دارد که در آنها باید کنترل تعادل را تنظیم کرد.

موقعیت اول گاهی اوقات حسابداران باید با مشکل عدم امکان حذف مواد یا کالا در برنامه 1C 8.3 به دلیل عدم حضور آنها در حسابداری روبرو شوند ، اگرچه در واقع در دسترس هستند. و حسابدار نیاز فوری به تهیه اسناد برای حمل مواد یا کالا دارد:

این وضعیت در صورتی امکان پذیر است که سازمان به تازگی حسابداری را در 1C 8.3 شروع کرده باشد یا داده ها به موقع وارد برنامه نشده باشند.

حالت دوم زمانی است که یک حسابدار موادی را که در انبار موجود نیست، حذف می کند. و حسابدار اسناد حمل و نقل را تهیه می کند که برای شهرت شرکت خوب نیست.

تنظیم کنترل تعادل

در برنامه حسابداری 1C 8.3 تنظیمی برای کنترل مانده ها وجود دارد. و هنگام ایجاد یک پایگاه داده، تنظیمات پیش فرض به شما امکان می دهد کالاهایی را که طبق داده های حسابداری در برنامه موجود نیستند، حذف کنید.

موجودی ها در چارچوب یک سازمان و انبار خاص در انواع اسناد: فروش، فاکتور تقاضا، جابجایی ها و غیره کنترل می شوند که در آن حساب ها با تجزیه و تحلیل انبار درگیر هستند.

مهم! به منظور کنترل موجودی در سطح انبار، در 1C 8.3 لازم است که تجزیه و تحلیل انبار در حساب های کالا یا مواد نصب شود.

بدین ترتیب:

  • برای اولین موقعیت، باید کادر را علامت بزنید و تمام موجودی مواد را در پایگاه داده وارد کنید. و توصیه می شود پس از این دریافت کالا و مواد به موقع ثبت شود.
  • برای وضعیت دوم، باید علامت کادر ممنوعیت نوشتن کالاهای گمشده (مواد) را بردارید.

نحوه غیرفعال کردن کنترل تعادل در 1C 8.3

برای حذف ممنوعیت ارسال اسناد با کالاهای مفقود، باید به تنظیمات برنامه 1C 8.3 در بخش مدیریت بروید - سپس تنظیمات ارسال اسناد:

در صورت عدم وجود موجودی بر اساس داده های حسابداری، کادر مجاز به حذف موجودی ها را علامت بزنید:

کنترل موجودی در بافت انبارها

برای جلوگیری از تراز منفی انبارها، تجزیه و تحلیل By warehouses را تنظیم کنید. می توانید تجزیه و تحلیل انبارها را در تنظیمات حسابداری فعال کنید: بخش مدیریت - سپس پارامترهای حسابداری. انتخاب کنید تنظیم نمودار حسابو در حسابداری موجودی بر روی کلیک کنید بر اساس کالا و انبار (بر اساس مقدار):

پرچم را در پنجره جدید تنظیم کنید بر اساس انبارها (محل ذخیره سازی). این چک باکس بر کنترل موجودی ها در زمینه انبارها تأثیر می گذارد:

  • اگر چک باکس علامت نخورده باشد، کنترل تعادل توسط سازمان انجام می شود.
  • اگر چک باکس علامت زده شده باشد، در زمینه یک سازمان و یک انبار خاص:

کنترل ترازهای منفی در 1C 8.3

اگر نمی‌توانید علامت کادر را بردارید یا دلایلی برای نگهداری سوابق با مانده منفی وجود دارد، حسابداری 1C 8.3 گزارشی را اجرا می‌کند که به شما امکان می‌دهد ترازهای منفی را کنترل کنید.

گزارش کنترل ترازهای منفیدر 1C 8.3 در بخش انبارها قرار دارد - سپس کنترل ترازهای منفی:

گزارشی را می توان برای مدت معینی با جزئیات اسناد، انبارها، اقلام و سایر اشیاء حسابداری تهیه کرد. و همچنین داده های یک انبار یا کالای خاص را با استفاده از انتخاب نمایش می دهد:

مهم! گزارش کنترل تراز منفی فقط برای دوره مشخص، مانده های منفی را نشان می دهد. اگر قبل از شروع گزارش اسنادی نوشته شده باشد، مانده های منفی برای آنها در گزارش لحاظ نمی شود.

برای تغییر تنظیمات گزارش باید از دستور Show settings استفاده کنید. با حرکت در برگه های تنظیمات گروه بندی، انتخاب، فیلدهای اضافی، می توانید ظاهر مورد نظر را به گزارش بدهید:

در وب سایت می توانید پیکربندی 1C Accounting 8.3 را مشاهده کنید.

جزئیات بیشتر در مورد راه اندازی برنامه 1C 8.2 (8.3). ممنوعیت حذف موجودی ها در صورت عدم وجود موجودیچگونه تاثیر می گذارد نتایج مالیدر ویدیوی زیر تماشا کنید:


لطفا به این مقاله امتیاز دهید:

کنترل موجودی انبار یک روش حسابداری اجباری در هر شرکتی است که با کالا کار می کند. اغلب ممکن است با شرایطی مواجه شوید که هیچ محصولی در برنامه وجود نداشته باشد، اما در واقع در انبار باشد. در چنین شرایطی دو گزینه وجود دارد:

  • ارسال آن برای فروش؛
  • تا روشن شدن شرایط این وضعیت آن را در انبار بگذارید.

انتخاب به عوامل متعددی مانند سیاست های سازمانی یا موقعیت خاص بستگی دارد. اگر محصول روی پیشخوان است و خریدار به آن علاقه مند است (آن را در دستان خود نگه می دارد)، توصیه نمی شود از فروش خودداری کنید.

برخی از شرکت ها تولید سند فروش را بدون ارسال آن تمرین می کنند، اما همه از این روش استفاده نمی کنند. در صورت موقعیت های مشابهبرنامه 1C در آنها آخرین نسخه هاتوانایی غیرفعال کردن کنترل ترازهای منفی را نشان می دهد.

هنگامی که کنترل فعال می شود، فروش کالاهایی که طبق برنامه موجود نیستند به کاربر اخطاری می دهد: "ستون "مقدار" در ردیف 1 لیست "محصولات" به اشتباه پر شده است. "مقدار مشخص شده از موجودی بیشتر است. باقیمانده: 18. گمشده 111.093.

غیرفعال کردن کنترل ترازهای منفی در 1C

عملیات روشن / خاموش کردن کنترل موجودی در 1C از طریق منوی "اصلی" - "تنظیمات" - "پارامترهای حسابداری" - "موجودی ها" انجام می شود. در اینجا باید کادر "اجازه حذف موجودی در صورت عدم موجودی بر اساس داده های حسابداری" را علامت بزنید.

پس از این، عمل با دکمه "Record and close" تایید می شود. به نوبه خود ، چنین اقداماتی تضمین می شود که مبنایی برای تشکیل ترازهای منفی در حسابداری شود. آنها باید حذف شوند.

گزارش "کنترل تراز منفی"

این گزارش از طریق منوی "انبار" - "گزارش ها" تولید می شود، جایی که سند ارائه می شود. کاربر موظف است فاصله زمانی درخواست را تعیین کرده و بر روی دکمه "تولید" کلیک کند. عدم وجود دوره مشخص اجازه نمایش ترازهای منفی را نخواهد داد که این از ویژگی های سیستم است پر کردن اجباریستون های "دوره".

گزارش تکمیل شده دارای ظاهر زیر است.

مجموعه استانداردی از فیلترها برای خود گزارش در دسترس است، از جمله گروه بندی، مرتب سازی و سایر تغییرات داده ها مطابق با درخواست ها و نیازهای کاربر. با استفاده از دکمه "نمایش تنظیمات"، می توانید به صورت دستی ردیف های اضافی را در گزارش اضافه کنید.

این مقاله برای اجراکنندگان 1C در نظر گرفته شده است - و به ویژه برای کسانی که برای گواهینامه 1C آماده می شوند: متخصص پلتفرم.

امروز نگاه خواهیم کرد 2 روش برای کنترل موجودی - نه تنها موجودی در انبار، بلکه به عنوان مثال، تسویه حساب متقابل (بدهی فعلی مشتری چقدر است و آیا امکان ارسال کالا برای او وجود دارد؟)

هر دو روش در تنظیمات استاندارد و در وظایف صدور گواهینامه استفاده می شود. و از آنجایی که دو نفر از آنها وجود دارد - شما باید به وضوح درک کنید که چه زمانی تکنیک "جدید" قابل اجرا است و چه زمانی فقط تکنیک "قدیمی"..

این دانش اولیه برای برنامه نویسان 1C است؛ توصیه می کنیم در چنین زمینه هایی شکاف ایجاد نکنید. باید شما را به مطالعه ببرد 15 دقیقه :)

فرمول بندی مسئله

بیایید یک پیکربندی ساده با اسناد "دریافت کالا" و "فروش کالا" در نظر بگیریم:

برای حسابداری موجودی، از ثبت انباشت "موجودات رایگان" استفاده می شود:

هنگام ارسال سند "دریافت کالا" حرکات زیر انجام می شود:

فرآیند پردازش (شکست، حالت)


برای هر TechStringProducts از چرخه محصولات
Movement = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
Movement.Period = تاریخ;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
چرخه پایان

پایان رویه

پردازش ارسال سند "دریافت کالا" با استفاده از طراح حرکت انجام شده است و مورد توجه نیست، زیرا زمانی که به انبار می رسد، کنترل موجودی ها مورد نیاز نیست.

گاهی اوقات کنترل موجودی برای سند "دریافت کالا" نیز اجرا می شود - به طوری که هنگام لغو یا ارسال مجدد سند، تراز منفی تشکیل نمی شود.

به عنوان مثال، 10 تلویزیون ال جی جدید وارد انبار شد، 6 تای آنها فروخته شد. در صورتی که سند رسید شامل 10 قطعه باشد. رفع 5 عدد - تراز منفی "منهای 1 قطعه" تشکیل می شود.

در یک UT 11 معمولی، چنین کنترلی با استفاده از آن فعال می شود گزینه کاربردی"کنترل کالاهای سازمان در هنگام ابطال رسید."

هنگام ارسال سند "فروش کالا" سازماندهی کنترل باقیمانده ها ضروری است. اگر محصول کافی باقی نمانده باشد، سند پست نمی شود و پیام عیب یابی صادر می شود. این مشکل در حال حل شدن است.

ما عمداً روی یک مشکل ساده کار می کنیم که در آن هزینه حذف محاسبه نشده است. این به ما اجازه می دهد تا به طور خاص بر روی تفاوت های ظریف کنترل باقی مانده تمرکز کنیم.

توجه داشته باشید– الگوریتم های ارائه شده در زیر برای آموزش طراحی شده اند و باید تا حد امکان واضح باشند.
آنها را می توان بهینه کرد، اما پس از آن "ضریب درک" پایین تر خواهد بود، بنابراین ما در این مقاله به این موضوع نمی پردازیم.

طبیعتاً می‌توانید خودتان آنها را بهینه کنید یا دوره ما را در مورد شتاب و بهینه‌سازی 1C بگذرانید :)

همانطور که قبلاً فهمیدید، حل مشکل از دو طریق قابل انجام است. بیایید با تکنیکی شروع کنیم که از روزهای 1C:Enterprise 8.0 استفاده شده است.

روش قدیمی کنترل باقی مانده

اصل تکنیک کنترل باقی مانده قدیمی به شرح زیر است: ما بررسی می کنیم که آیا کالاهای باقی مانده در مقدار مورد نیاز وجود دارد یا خیر. اگر وجود داشته باشد، آن را حذف می کنیم، اگر نه، خطا را گزارش می کنیم..

الگوریتم در روش قدیمی از چندین بلوک تشکیل شده است:

  1. درخواست موجودی محصول و داده های سند را بازیابی می کند
  2. چرخه بر کفایت کالا نظارت می کند
  3. اگر کالا به اندازه کافی نباشد، سند پست نمی شود
  4. در صورت وجود كالا، حركات مصرف انجام مي شود

کد برنامه به این صورت است:

// 1. پاک کردن حرکات ثبت قدیمی
Movements.FreeRemainders.Write = True;
Movements.Record();

// 2. دریافت اطلاعات اسناد و ثبت موجودی بر اساس درخواست
درخواست = درخواست جدید;
درخواست.متن =
"انتخاب کنید

| PLACE محصولات
|از
| کجا
| محصولات.پیوند = &پیوند
|گروه توسط
| محصولات.نامگذاری
|INDEX BY
| نامگذاری
|;

|انتخاب کنید
,
| REPRESENTATIONLINK(Products.Nomenclature) AS NomenclatureRepresentation،
| محصولات. مقدار به عنوان مقدار،
| ISNULL(Remaining.NumberRemaining, 0) AS Remainder
|از
| محصولات AS محصولات
| LEFT JOIN RegisterAccumulations.FreeRemains.Remains(
| &لحظه زمان،
| نامگذاری B
| (انتخاب کنید
| محصولات.Nomenclature AS Nomenclature
| از جانب
| Software Products.Nomenclature = Remaining.Nomenclature";
Request.SetParameter("TimePoint", TimePoint());

// 3. پیمایش نتایج پرس و جو

// 4. بررسی کفایت کالا
کسری = SampleProducts.Quantity - SampleProducts.Remaining;
اگر کسری>0 سپس
امتناع = درست;
Message.Text = "محصول "+SelectionProducts.NomenclaturePresentation+" به تعداد "+کمبود+" عدد کافی نیست.";
Message.Message();
endIf;

// 5. در صورت وجود خطا به ابتدای حلقه بروید
اگر شکست پس
ادامه هید؛
endIf;

// 6. انجام حرکات در رجیسترها
Movement.Period = تاریخ;

چرخه پایان

// 7. تنظیم پرچم برای ثبت حرکات در پایان تراکنش
Movements.FreeRemainders.Write = True;

پایان رویه

اجازه دهید در مورد نکات کلیدی الگوریتم نظر دهیم.

1. پاک کردن حرکات ثبت قدیمی

در زیر در الگوریتم درخواستی برای باقیمانده ثبت وجود خواهد داشت.

اگر سند فعلی قبلا ارسال شده بود، وجود دارد احتمال دریافت جابجایی اسناد قدیمی در یک درخواست- این یک مشکل جدی است.

چه زمانی چنین شرایطی امکان پذیر است؟ تاریخ سند کی است به جلو حرکت می کند.

بیایید با یک مثال نشان دهیم که این به چه چیزی منجر می شود:

  1. چراغ رومیزی باقی مانده 10 عدد.
  2. سند مورخ 16/02/17 در حال پردازش است، ما در حال نوشتن 6 لامپ هستیم
  3. تاریخ در سند به 17/02/17 تغییر یافته است (تاریخ را می توان حداقل 1 ثانیه به جلو منتقل کرد)، اجازه دهید سند را دوباره ارسال کنیم.

اگر حرکات را پاک نکنید، سیستم کمبود 2 قطعه را گزارش می دهد. چرا؟ بله، زیرا حرکات سند قدیمی 6 لامپ از 10 لامپ موجود را حذف کردند. در مرحله بعد، سیستم سعی می کند 6 قطعه دیگر را بنویسد، اما تنها 4 قطعه باقی مانده است.

مشکل در 3 خط کد حل شده است:

  • مجموعه رکورد در حال پاک شدن است (ممکن است در فرم یا در کنترل کننده های قبلی خوانده شده باشد)
  • مجموعه رکورد دارای پرچم "نوشتن" است
  • تمام مجموعه هایی که دارای پرچم "Record" هستند ضبط می شوند.

به طور دقیق، ما می توانیم هنگام ارسال اسناد، پاکسازی حرکات را کنترل کنیم:

گزینه حذف حرکات هنگام لغو اجرا توصیه می شود - ما خودمان کنترل می کنیم که چه زمانی لازم است واقعاً حرکات را حذف کنیم.

2. دریافت اطلاعات اسناد و ثبت موجودی بر اساس درخواست

درخواست شامل دو بسته است:

  • در مرحله اول، داده های گروه بندی شده از قسمت جدولی به دست می آید - یک جدول موقت ایجاد می شود
  • در درخواست دوم، باقی مانده از ثبت به داده های سند الحاق می شود.

آنچه در این درخواست باید به آن توجه کنید:

  1. هنگام ایجاد یک جدول موقت، فیلدی که اتصال در آن انجام می شود نمایه می شود - این برای عملکرد بهینه انجام می شود.
  2. لحظه دریافت موجودی - مربوط به موقعیت سند در محور زمانی است
  3. ممکن است هیچ باقیمانده ای در رجیستر وجود نداشته باشد - بنابراین اجرا می شود چپ پیوستنو برای منبع "Quantity" از تابع "ECTNULL" استفاده می شود - مقدار NULL به صفر کاهش می یابد.

3. دور زدن نتایج پرس و جو

درخواست توسعه‌یافته حاوی داده‌های سند گروه‌بندی شده و مانده‌ها بر اساس آیتم‌ها است.

در یک حلقه نتیجه این درخواست را مرور می کنیم.

4. کافی بودن کالا را بررسی کنید

ما کمبود کالا را تعیین می کنیم.

اگر کسری بیشتر از صفر باشد، به این معنی است که کمبود کالا وجود دارد:

  • ما یک پیام تشخیصی صادر می کنیم
  • پارامتر "Refusal" را برای پردازش پست روی "True" تنظیم کنید

اگر «رد» برابر با «درست» باشد، نتیجه تراکنش ارسال سند ثبت نخواهد شد. صحبت كردن به زبان ساده– این یک فرمان به سیستم است که این سند را پردازش نکند.

5. در صورت وجود خطا به ابتدای چرخه بروید

اگر در این یا مراحل قبلی چرخه خطایی وجود داشته باشد (Failure = True) هیچ فایده ای در شکل دادن حرکات وجود ندارد. با این حال، آنها در پایگاه داده ثبت نخواهند شد.

6. انجام حرکات در رجیسترها

اگر بررسی موجودی موفقیت آمیز بود، حرکت هزینه را ایجاد می کنیم.

7. تنظیم پرچم ضبط حرکت در پایان تراکنش

اگر این پرچم تنظیم نشده باشد، حرکات ثبت نخواهد شد.

در پایان تراکنش ارسال سند، تنها مجموعه‌هایی از رکوردها نوشته می‌شوند که دارای پرچم «نوشتن» هستند.

برای عادلانه بودن، توجه می کنیم که تنظیم ویژگی "Record" مجموعه ای از رکوردها تحت یک شرط منطقی است - در ویژگی سند "Record حرکات در حین اجرا" مقدار "Record Selected" باید مشخص شود:

با این حال، این مقدار "Record Selected" است که استاندارد واقعی است:

  • در محلول های استاندارد استفاده می شود
  • هنگام ایجاد اسناد جدید به طور پیش فرض تنظیم شود.

مقدار دیگری از ویژگی - "Write modified" - قدیمی است و عملاً هرگز در پیکربندی های مدرن رخ نمی دهد.

روش جدید برای کنترل پسماند

روش جدید از این اصل استفاده می کند: کالاهای لازم را حذف می کنیم، سپس بررسی می کنیم که آیا تراز منفی برای کالاهای سند تشکیل شده است یا خیر. اگر بله، پس باید سند را برگردانید.

همانطور که می بینید، یک تفاوت اساسی در لحظه کنترل تعادل وجود دارد:

  • روش قدیمی این است که ابتدا موجودی را بررسی کنید، سپس آن را بنویسید
  • تکنیک جدید - ابتدا می نویسیم، سپس تعادل را بررسی می کنیم.

در نتیجه کد برنامه به شکل زیر خواهد بود:

فرآیند پردازش (شکست، حالت)

// 1. دریافت اطلاعات سند بر اساس درخواست
درخواست = درخواست جدید;
Query.TemporaryTableManager = NewTemporaryTableManager;
درخواست.متن =
"انتخاب کنید
| محصولات. نامگذاری AS Nomenclature,
| SUM(Items.Quantity) AS مقدار
| PLACE محصولات
|از
| سند.فروش کالا و خدمات.کالاهای AS
| کجا
| محصولات.پیوند = &پیوند
|گروه توسط
| محصولات.نامگذاری
|INDEX BY
| نامگذاری
|;
|////////////////////////////////////////////////////////////////////////////////
|انتخاب کنید
| محصولات. نامگذاری AS Nomenclature,
| Products.Quantity AS مقدار
|از
| محصولات AS محصولات"؛
Request.SetParameter("Link", Link);
RequestResult = Request.Execute();

// 2. تشکیل حرکات - ثبت مصرف
Movements.FreeRemains.Clear();
SelectionProducts = Query Result.Select();
در حالی که حلقه SelectProducts.Next() است
Movement = Movements.Free Remainings.AddExpense();
Movement.Period = تاریخ;
Movement.Nomenclature = SelectionProducts.Nomenclature;
Movement.Quantity = SampleProducts.Quantity;
چرخه پایان

// 3. ضبط حرکات در پایگاه داده
Movements.FreeRemainders.Write = True;
Movements.Record();

// 4. کوئری که باقیمانده های منفی را از ثبات دریافت می کند
درخواست.متن =
"انتخاب کنید
| باقی مانده است. نامگذاری AS نامگذاری،
| REPRESENTATIONLINK(Remains.Nomenclature) AS NomenclatureRepresentation،
| -Remaining.QuantityRemaining AS کسری
|از
| RegisterAccumulations.FreeRemains.Remains(
| &لحظه زمان،
| نامگذاری B
| (انتخاب کنید
| محصولات.Nomenclature AS Nomenclature
| از جانب
| محصولات AS محصولات)) AS باقی مانده
| کجا
| Remaining.QuantityRemaining< 0";

Control Border = New Boundary(TimePoint(), BorderView.Including);
Request.SetParameter("TimePoint"، Control Boundary);
RequestResult = Request.Execute();

// 5. نمایش پیام در مورد کمبود کالا
If Not QueryResult.Empty() سپس
امتناع = درست;
ErrorSelect = QueryResult.Select();
در حالی که حلقه SelectErrors.Next()
Message = New MessageToUser;
Message.Text = "محصول "+SampleErrors.NomenclaturePresentation+" از نظر تعداد "+SampleErrors.Deficiency+" کافی نیست.";
Message.Message();
چرخه پایان
endIf;

پایان رویه

بیایید به نکات کلیدی الگوریتم نگاه کنیم.

1. دریافت اطلاعات سند بر اساس درخواست

این پرس و جو برای گروه بندی داده ها در قسمت جدولی سند مورد نیاز است.

توجه داشته باشید که اولین پرس و جو در دسته یک جدول موقت ایجاد می کند - در پرس و جو بعدی استفاده خواهد شد. این به لطف مدیر جدول موقتی که برای این پرس و جو ایجاد شده امکان پذیر است.

2. تشکیل حرکات - ثبت مصرف

در چرخه، داده های سند در ثبت ثبت می شود - یعنی حذف بی قید و شرط (بدون تأیید) کالا انجام می شود.

3. ثبت حرکات در پایگاه داده

برای اینکه موجودی های موجود در رجیستر تغییر کند، حرکت ها باید ثبت شوند.

4. پرس و جو دریافت باقیمانده منفی از ثبات

حال با یک درخواست ساده تراز منفی کالاهای سند را انتخاب می کنیم.

اینجاست که از جدول موقت ایجاد شده در مرحله اول استفاده می شود - یک شرط بر روی مورد اعمال می شود (برای این ما یک شی جدید از نوع "درخواست" ایجاد نمی کنیم، بلکه از چیزی که قبلا ایجاد شده است استفاده می کنیم).

به نحوه انتقال لحظه در زمان توجه کنید - از نوع داده "Boundary" استفاده می شود. موجودی باقیمانده باید در نقطه ای از زمان بلافاصله پس از سند جاری دریافت شود.

آیا با اضافه کردن 1 ثانیه به تاریخ سند می شد موجودی بدون حاشیه را بدست آورد؟

نه! پس از همه، در یک ثانیه می تواند تعداد زیادی سند وجود داشته باشد. بنابراین، تنها گزینه صحیح استفاده از نوع حاشیه "Including" است.

5. نمایش پیام در مورد کمبود کالا

اگر نتیجه پرس و جو خالی نباشد، باقیمانده های منفی وجود دارد - در این حالت، سند پردازش نمی شود و پیام هایی در مورد تمام خطاها نمایش داده می شود.

مزایای کنترل پسماند با استفاده از روش جدید

بنابراین، هر دو الگوریتم یک مشکل را حل می کنند.

تفاوت بین الگوریتم ها قابل مشاهده است، اما مزایای آن آشکار نیست.

پس بیایید آنها را برجسته کنیم:

  1. نیازی به پاک کردن حرکات سند قدیمی نیست. در اصل، این عملیات نوشتن یک مجموعه خالی از حرکات در پایگاه داده و حذف حرکات موجود است - اینها عملیات کاملاً منابع فشرده هستند.
  2. پرس و جوی که داده های موجود در ترازهای منفی را بازیابی می کند فقط به یک جدول دسترسی دارد - نیازی به اتصال چپ با داده های سند و استفاده از تابع "ISNULL()" نیست

علاوه بر این، در طول روند عادی فرآیندهای تجاری، کاربر مقداری را نشان می دهد که از موجودی موجود در انبار تجاوز نمی کند.

در این صورت درخواست دوم هیچ داده ای را بر نمی گرداند و پردازش اسناد با حداکثر سرعت ممکن انجام می شود.

آیا این میلی ثانیه ها واقعاً اینقدر مهم هستند؟

بر پایه های با مقدار کمیداده ها و کاربران، تفاوت غیر قابل توجه خواهد بود. اما در سیستم های پرمشغله با ده ها کاربر، هزینه هر میلی ثانیه زیاد است.

علاوه بر این، در طول آزمون 1C:Platform Specialist، اگر کار خاصی اجازه دهد، قطعا باید از روش جدیدی برای کنترل تعادل استفاده کنید.

خوب، پس همیشه باید از یک تکنیک جدید استفاده کنید، درست است؟

نه، این درست نیست!

تکنیک جدید تنها در صورتی قابل استفاده است که تمام داده های لازم برای پردازش سند در خود سند باشد.

یعنی برای به دست آوردن داده ها، نیازی به دسترسی به رجیسترهایی که تعادل را کنترل می کنند ندارید.

بنابراین، به عنوان مثال، اگر مبلغ در ثبت "موجودی آزاد" نیز در نظر گرفته شود، باید از روش کنترل قدیمی استفاده شود.

به هر حال، در استاندارد "1C: مدیریت تجارت 11" کنترل تعادل با استفاده از روش جدید و در "1C: حسابداری 8" - طبق روش قدیمی اجرا می شود.

اما این همه ماجرا نیست!

الگوریتم های ارائه شده در بالا فقط برای اهداف آموزشی قابل استفاده هستند. نکته این است که آنها را در نظر نمی گیرند قفل های کنترل شده، که در صورت وجود بیش از یک کاربر در سیستم باید مورد استفاده قرار گیرد.

بلوک برای هر دو روش کنترل باقی مانده بحث شده است. همچنین در این مقاله موارد بیشتری را حل می کنیم کار دشوار- علاوه بر نظارت بر موجودی ها، هزینه اقلام در حال رد شدن را محاسبه می کنیم. توصیه می کنیم آن را با دقت مطالعه کنید.

و برای شروع، فقط این را بگوییم نصب قفل در روش جدید بسیار ساده است– و این یکی دیگر از مزایای روش جدید کنترل پسماند است.

نتایج

بیایید خلاصه کنیم.

ما دو تکنیک کنترل باقیمانده را بررسی کردیم که هر کدام در پیکربندی‌های معمولی مدرن استفاده می‌شوند.

تفاوت کلیدی بین تکنیک هادر لحظه کنترل موجودی:

  • تکنیک قدیمی - کنترل قبل از ثبت حرکات در رجیسترها
  • تکنیک جدید - کنترل پس از ثبت حرکات در رجیسترها

به طور کلی، تکنیک جدید موثرتر است، اما همیشه قابل اجرا نیست.

معیار کاربردی بودن- اگر برای ایجاد حرکات نیازی به دسترسی به داده ها از یک ثبات کنترل شده نباشد، می توان از یک تکنیک جدید استفاده کرد.

اگر در مورد کنترل موجودی محصول صحبت کنیم، استفاده از یک تکنیک جدید زمانی امکان پذیر است که داده های موجودی هزینه و انبار در رجیسترهای مختلف ذخیره شوند.

و در نهایت، نمونه هایی از تنظیمات معمولی:

  • که در UT 11 2 ثبت اصلی برای حسابداری اقلام وجود دارد: موجودی آزاد (مقدار) و هزینه کالا (داده های هزینه) - از یک روش جدید استفاده می شود.
  • که در BP 3.0داده های مربوط به هزینه ها و مانده ها در یک ثبت حسابداری ذخیره می شود - از روش قدیمی کنترل مانده ها استفاده می شود.
انتخاب سردبیر

در این مقاله به علائم و نشانه های کلی بیماری مانند انکولوژی می پردازیم. بیایید به علائم سرطان نگاه کنیم...

در تمام بافت ها و مایعات بدن، هم به صورت آزاد و هم به صورت استرهایی با اسیدهای چرب، عمدتاً...

«فلورین» به معنای «تخریب» (از یونانی) است و این نام تصادفی به آن داده نشده است. بسیاری از دانشمندان مردند یا ...
پوسیدگی با نرم شدن مینای دندان و ایجاد نقصی به شکل سوراخ پوسیدگی مشخص می شود. سلامتی ما به درون این «سیاهچاله‌ها» سرازیر می‌شود...
سوزاک یک عفونت مقاربتی است و سالانه حدود یک چهارم میلیارد مورد بالینی ثبت می شود. با وجود روش های نوین درمانی،...
سل یکی از قدیمی ترین بیماری های شناخته شده برای بشر است. و در حال حاضر میزان ابتلا به این بیماری بسیار بالا است، بنابراین ...
در کتاب‌های قدیمی گاهی به چنین تعبیری برخورد می‌کردم، نامفهوم بود، به عنوان کنایه تلقی می‌شد، اما این کنایه نیست، بلکه واقعاً تند است...
آخرین بار در مورد آن صحبت کردیم و امروز یک موضوع بسیار جدی داریم - درمان کلامیدیا. خطر بیماری این است که تظاهرات آن ...