საბუღალტრო ინფორმაცია. სააღრიცხვო ინფორმაცია BP 3.0 უარყოფითი ნაშთების კონტროლი

ეს სტატია განკუთვნილია 1C-ის შემსრულებლებისთვის - და განსაკუთრებით მათთვის, ვინც ემზადება 1C სერთიფიკაციისთვის: პლატფორმის სპეციალისტი.

დღეს ჩვენ გადავხედავთ ნაშთების კონტროლის 2 მეთოდი - არა მხოლოდ ნაშთები საწყობში, არამედ, მაგალითად, ორმხრივი ანგარიშსწორებები ("რა არის კლიენტის ამჟამინდელი დავალიანება და შესაძლებელია თუ არა მისთვის საქონლის გაგზავნა?")

ორივე მეთოდი გამოიყენება სტანდარტულ კონფიგურაციებში და სერტიფიცირების ამოცანებში. და რადგან ორი მათგანია - თქვენ ნათლად უნდა გესმოდეთ, როდის არის "ახალი" ტექნიკა და როდის მხოლოდ "ძველი"..

ეს არის ძირითადი ცოდნა 1C პროგრამისტებისთვის; ჩვენ გირჩევთ არ დატოვოთ ხარვეზები ასეთ სფეროებში. სწავლა უნდა წაგიყვანოთ 15 წუთი :)

პრობლემის ფორმულირება

ავიღოთ მარტივი კონფიგურაცია დოკუმენტებით "საქონლის მიღება" და "საქონლის გაყიდვები":

ნაშთების აღრიცხვისთვის გამოიყენება დაგროვების რეესტრი „თავისუფალი ნაშთები“:

დოკუმენტის „საქონლის მიღების“ განთავსებისას ხორციელდება შემდეგი მოძრაობები:

დამუშავების პროცედურა (მარცხი, რეჟიმი)


თითოეული TechStringProducts პროდუქტების ციკლისთვის
მოძრაობა = Movements.FreeRemains.Add();
Movement.MovementType = AccumulationMovementType.Incoming;
მოძრაობა.პერიოდი = თარიღი;
Movement.Nomenclature = TechStringProducts.Nomenclature;
Movement.Quantity = TechStringProducts.Quantity;
საბოლოო ციკლი;

პროცედურის დასასრული

დოკუმენტის „საქონლის მიღება“ განთავსების დამუშავება განხორციელდა მოძრაობის დიზაინერის გამოყენებით და არ არის საინტერესო, ვინაიდან საწყობში მისვლისას ნაშთების კონტროლი არ არის საჭირო.

ზოგჯერ ბალანსის კონტროლი ასევე ხორციელდება „საქონლის მიღების“ დოკუმენტზე - ისე, რომ დოკუმენტის გაუქმების ან ხელახლა განთავსებისას უარყოფითი ბალანსი არ წარმოიქმნება.

მაგალითად, საწყობში შემოვიდა 10 ახალი LG ტელევიზორი, მათგან 6 გაიყიდა. თუ ქვითრის დოკუმენტი შეიცავს 10 ცალი. გაასწორეთ 5 ც. – იქმნება უარყოფითი ბალანსი „მინუს 1 ცალი“.

UT 11 სტანდარტში, ასეთი კონტროლი ჩართულია ფუნქციური ვარიანტის გამოყენებით "ორგანიზაციის საქონლის კონტროლი ქვითრების გაუქმებისას".

დოკუმენტის "საქონლის გაყიდვების" განთავსებისას აუცილებელია ნარჩენების კონტროლის ორგანიზება. თუ საკმარისი პროდუქტი არ დარჩა, დოკუმენტი არ არის განთავსებული და გაიცემა დიაგნოსტიკური შეტყობინება. ეს პრობლემა მოგვარებულია.

ჩვენ განზრახ ვმუშაობთ მარტივ პრობლემაზე, სადაც ჩამოწერის ღირებულება არ არის გათვლილი. ეს საშუალებას მოგვცემს კონკრეტულად გავამახვილოთ ყურადღება ნარჩენების კონტროლის ნიუანსებზე.

შენიშვნა– ქვემოთ წარმოდგენილი ალგორითმები განკუთვნილია ტრენინგისთვის და რაც შეიძლება მკაფიო უნდა იყოს.
მათი ოპტიმიზაცია შესაძლებელია, მაგრამ შემდეგ „გააზრების კოეფიციენტი“ უფრო დაბალი იქნება, ამიტომ ამ სტატიაში ამაზე არ ვისაუბრებთ.

ბუნებრივია, თქვენ თავად შეგიძლიათ მათი ოპტიმიზაცია, ან გაიაროთ ჩვენი კურსი 1C-ის აჩქარებისა და ოპტიმიზაციის შესახებ :)

როგორც უკვე მიხვდით, პრობლემის გადაჭრა შესაძლებელია ორი გზით. დავიწყოთ ტექნიკით, რომელიც გამოიყენება 1C:Enterprise 8.0-ის დღეებიდან.

ნარჩენების კონტროლის ძველი მეთოდი

ნარჩენების კონტროლის ძველი ტექნიკის პრინციპი ასეთია: ჩვენ ვამოწმებთ არის თუ არა დარჩენილი საქონელი საჭირო რაოდენობით. თუ არის, ვწერთ, თუ არა, შეცდომის შესახებ ვატყობინებთ..

ძველი მეთოდის ალგორითმი შედგება რამდენიმე ბლოკისგან:

  1. მოთხოვნა იპოვის პროდუქტის ბალანსს და დოკუმენტის მონაცემებს
  2. ციკლი აკონტროლებს საქონლის საკმარისობას
  3. თუ არ არის საკმარისი საქონელი, მაშინ დოკუმენტი არ არის განთავსებული
  4. თუ საკმარისი საქონელია, მოხმარების მოძრაობა ხორციელდება

პროგრამის კოდი ასე გამოიყურება:

// 1. ძველი რეგისტრის მოძრაობების გასუფთავება
Movements.FreeRemainders.Write = True;
Movements.Record();

// 2. საბუთების მონაცემების მიღება და ნაშთების რეგისტრაცია მოთხოვნით
მოთხოვნა = ახალი მოთხოვნა;
მოთხოვნა.ტექსტი =
"აირჩიე

|ადგილის პროდუქტები
|საიდან
|სად
| პროდუქტები.ლინკი = &ბმული
|ჯგუფი
| პროდუქტები.ნომენკლატურა
|ინდექსის მიხედვით
| ნომენკლატურა
|;

|არჩევა
,
| REPRESENTATIONLINK(Products.Nomenclature) AS Nomenclaturerepresentation,
| პროდუქტები. რაოდენობა როგორც რაოდენობა,
| ISNULL(Remaining.NumberRemaining, 0) AS Remainder
|საიდან
| პროდუქტები AS Products
| LEFT Join RegisterAccumulations.FreeRemains.Remains(
| &დროის მომენტი,
| ნომენკლატურა ბ
| (აირჩიეთ
| პროდუქტები.ნომენკლატურა AS Nomenclature
| FROM
| Software Products.Nomenclature = Remaining.Nomenclature";
Request.SetParameter("TimePoint", TimePoint());

// 3. შეკითხვის შედეგების გავლა

// 4. საქონლის საკმარისობის შემოწმება
დეფიციტი = SampleProducts.Quantity - SampleProducts.Remaining;
თუ დეფიციტი>0 მაშინ
უარი = მართალია;
Message.Text = "პროდუქტი "+SelectionProducts.NomenclaturePresentation+" არ არის საკმარისი რაოდენობით "+Sortage+" ცალი.";
Message.Message();
დაასრულე თუ;

// 5. გადადით მარყუჟის დასაწყისში, თუ იყო შეცდომები
თუ წარუმატებლობა მაშინ
განაგრძეთ;
დაასრულე თუ;

// 6. მოძრაობების შესრულება რეგისტრებში
მოძრაობა.პერიოდი = თარიღი;

საბოლოო ციკლი;

// 7. ტრანზაქციის ბოლოს მოძრაობების ჩაწერისთვის დროშის დაყენება
Movements.FreeRemainders.Write = True;

პროცედურის დასასრული

მოდით კომენტარი გავაკეთოთ ალგორითმის ძირითად პუნქტებზე.

1. ძველი რეგისტრის მოძრაობების გასუფთავება

ქვემოთ ალგორითმში იქნება მოთხოვნა რეესტრის დარჩენილი ნაწილისთვის.

თუ მიმდინარე დოკუმენტი ადრე იყო განთავსებული, მაშინ არსებობს მოთხოვნაში ძველი დოკუმენტის გადაადგილების მიღების ალბათობა- ეს სერიოზული პრობლემაა.

როდის არის შესაძლებელი ასეთი სიტუაცია? როდის არის დოკუმენტის თარიღი წინ მიიწევს.

მაგალითით ვაჩვენოთ, რას გამოიწვევს ეს:

  1. დარჩენილი მაგიდის ნათურები 10 ც.
  2. მუშავდება 16.02.17 დოკუმენტი, ვაწერთ 6 ნათურას
  3. დოკუმენტში თარიღი შეიცვალა 17.02.17-ით (თარიღი შეიძლება გადაიწიოს წინ სულ მცირე 1 წამით), მოდით, დოკუმენტი ხელახლა გამოვაქვეყნოთ.

თუ არ გაასუფთავებთ მოძრაობებს, სისტემა გამოაცხადებს 2 ცალი დეფიციტის შესახებ. რატომ? დიახ, რადგან ძველი დოკუმენტის მოძრაობებმა ჩამოწერა 10 არსებული ნათურიდან 6. შემდეგი, სისტემა ცდილობს ჩამოწეროს კიდევ 6 ცალი, მაგრამ დარჩა მხოლოდ 4.

პრობლემა მოგვარებულია კოდის 3 სტრიქონში:

  • ჩანაწერების ნაკრები სუფთავდება (ის შეიძლება წაკითხული იყოს ფორმაში ან წინა დამმუშავებლებში)
  • ჩანაწერების კომპლექტში მითითებულია დროშა "Write".
  • ჩაწერილია ყველა კომპლექტი, რომელსაც აქვს „ჩაწერის“ დროშის ნაკრები.

მკაცრად რომ ვთქვათ, ჩვენ შეგვიძლია ვაკონტროლოთ მოძრაობების გასუფთავება დოკუმენტების გამოქვეყნებისას:

რეკომენდირებულია მოძრაობების წაშლის ვარიანტი შესრულების გაუქმებისას - ჩვენ თვითონ ვაკონტროლებთ, როდის არის საჭირო მოძრაობების რეალურად წაშლა.

2. საბუთების მონაცემების მიღება და ნაშთების რეგისტრაცია მოთხოვნით

მოთხოვნა შედგება ორი პაკეტისგან:

  • პირველში მიიღება დაჯგუფებული მონაცემები ცხრილის ნაწილიდან - იქმნება დროებითი ცხრილი
  • მეორე მოთხოვნაში რეესტრიდან დარჩენილი ნაშთები თან ერთვის დოკუმენტის მონაცემებს.

რას უნდა მიაქციოთ ყურადღება ამ მოთხოვნაში:

  1. დროებითი ცხრილის შექმნისას ინდექსირებულია ველი, რომელზეც შეერთება განხორციელდება - ეს კეთდება ოპტიმალური შესრულებისთვის
  2. ნაშთების მიღების მომენტი – შეესაბამება დოკუმენტის პოზიციას დროის ღერძზე
  3. რეესტრში შეიძლება არ იყოს ნაშთები - შესაბამისად, შესრულებულია მარცხენა შეერთება და "ECTNULL" ფუნქცია გამოიყენება "Quantity" რესურსისთვის - NULL მნიშვნელობა მცირდება ნულამდე.

3. შეკითხვის შედეგების გვერდის ავლით

შემუშავებული მოთხოვნა შეიცავს დაჯგუფებულ დოკუმენტურ მონაცემებს და ნაშთებს პუნქტების მიხედვით.

მარყუჟში ჩვენ გავდივართ ამ მოთხოვნის შედეგს.

4. შეამოწმეთ საქონლის საკმარისი რაოდენობა

ჩვენ განვსაზღვრავთ საქონლის ნაკლებობას.

თუ დეფიციტი ნულზე მეტია, ეს ნიშნავს, რომ საქონლის დეფიციტია:

  • ვაძლევთ დიაგნოსტიკურ შეტყობინებას
  • დააყენეთ „უარის“ პარამეტრი დამუშავების გამოქვეყნებისთვის „True“-ზე

თუ „უარი“ ტოლია „ჭეშმარიტი“, მაშინ დოკუმენტის განთავსების ტრანზაქციის შედეგი არ ჩაიწერება. მარტივი სიტყვებით, ეს არის ბრძანება სისტემისთვის, რომ არ დაამუშაოს ეს დოკუმენტი.

5. გადადით ციკლის დასაწყისში, თუ იყო შეცდომები

თუ ციკლის ამ ან წინა საფეხურზე იყო შეცდომები (Failure = True), მაშინ აზრი არ აქვს მოძრაობების ფორმირებას. ერთი და იგივე, ისინი არ ჩაიწერება მონაცემთა ბაზაში.

6. მოძრაობების შესრულება რეგისტრებში

თუ ნაშთების შემოწმება წარმატებული იყო, ჩვენ ვქმნით ხარჯის მოძრაობას.

7. ტრანზაქციის ბოლოს მოძრაობის ჩაწერის დროშის დაყენება

თუ ეს დროშა არ არის დაყენებული, მაშინ მოძრაობები არ ჩაიწერება.

დოკუმენტის განთავსების ტრანზაქციის დასასრულს იწერება მხოლოდ ის ჩანაწერების ნაკრები, რომლებშიც მითითებულია „ჩაწერის“ დროშა.

სამართლიანი რომ ვიყოთ, აღვნიშნავთ, რომ ჩანაწერების ნაკრების „ჩანაწერის“ თვისების დაყენება აზრი აქვს ერთი პირობით - დოკუმენტის თვისებაში „ჩაწერა მოძრაობები შესრულების დროს“ უნდა იყოს მითითებული მნიშვნელობა „ჩანაწერი არჩეული“:

თუმცა, ეს არის "არჩეული ჩანაწერის" მნიშვნელობა, რომელიც არის დე ფაქტო სტანდარტი:

  • იგი გამოიყენება სტანდარტულ ხსნარებში
  • ნაგულისხმევად დაყენება ახალი დოკუმენტების შექმნისას.

ქონების კიდევ ერთი ღირებულება - "ჩაწერეთ შეცვლილი" - მოძველებულია და პრაქტიკულად არასოდეს გვხვდება თანამედროვე კონფიგურაციებში.

ნარჩენების კონტროლის ახალი მეთოდი

ახალი მეთოდი იყენებს პრინციპს: ჩამოვწერთ საჭირო საქონელს, შემდეგ ვამოწმებთ, ჩამოყალიბდა თუ არა უარყოფითი ნაშთები დოკუმენტის საქონელზე. თუ კი, მაშინ თქვენ უნდა დააბრუნოთ დოკუმენტი.

როგორც ხედავთ, ნაშთების კონტროლის მომენტში ფუნდამენტური განსხვავებაა:

  • ძველი მეთოდია ჯერ ნაშთის შემოწმება, შემდეგ ჩამოწერა
  • ახალი ტექნიკა - ჯერ ჩამოვწერთ, შემდეგ ვამოწმებთ ბალანსს.

შედეგად, პროგრამის კოდი ასე გამოიყურება:

დამუშავების პროცედურა (მარცხი, რეჟიმი)

// 1. დოკუმენტის მონაცემების მოთხოვნით მიღება
მოთხოვნა = ახალი მოთხოვნა;
Query.TemporaryTableManager = NewTemporaryTableManager;
მოთხოვნა.ტექსტი =
"აირჩიე
| პროდუქტები.ნომენკლატურა AS ნომენკლატურა,
| SUM(Items.Quantity) AS რაოდენობა
|ადგილის პროდუქტები
|საიდან
| საქონლისა და მომსახურების გაყიდვები საქონელი AS საქონელი
|სად
| პროდუქტები.ლინკი = &ბმული
|ჯგუფი
| პროდუქტები.ნომენკლატურა
|ინდექსის მიხედვით
| ნომენკლატურა
|;
|////////////////////////////////////////////////////////////////////////////////
|არჩევა
| პროდუქტები.ნომენკლატურა AS ნომენკლატურა,
| პროდუქტები.რაოდენობა როგორც რაოდენობა
|საიდან
| პროდუქტები AS Products“;
Request.SetParameter ("ბმული", ბმული);
RequestResult = Request.Execute();

// 2. მოძრაობების ფორმირება - მოხმარების რეგისტრაცია
Movements.FreeRemains.Clear();
SelectionProducts = შეკითხვის შედეგი.Select();
ხოლო SelectProducts.Next() ციკლი
მოძრაობა = Movements.Free Remainings.AddExpense();
მოძრაობა.პერიოდი = თარიღი;
მოძრაობა.ნომენკლატურა = SelectionProducts.Nomenclature;
Movement.Quantity = SampleProducts.Quantity;
საბოლოო ციკლი;

// 3. მოძრაობების ჩაწერა მონაცემთა ბაზაში
Movements.FreeRemainders.Write = True;
Movements.Record();

// 4. შეკითხვა, რომელიც იღებს უარყოფით ნაშთებს რეესტრიდან
მოთხოვნა.ტექსტი =
"აირჩიე
| რჩება ნომენკლატურა AS ნომენკლატურა,
| REPRESENTATIONLINK(Remains.Nomenclature) AS Nomenclaturerepresentation,
| -დარჩენილი.რაოდენობა დარჩენილი AS დეფიციტი
|საიდან
| RegisterAccumulations.FreeRemains.Remains(
| &დროის მომენტი,
| ნომენკლატურა ბ
| (აირჩიეთ
| პროდუქტები.ნომენკლატურა AS Nomenclature
| FROM
| პროდუქტები AS Products)) AS ნარჩენები
|სად
| დარჩენილი.რაოდენობა დარჩენილი< 0";

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

// 5. საქონლის დეფიციტის შესახებ შეტყობინებების ჩვენება
თუ არა QueryResult.Empty() მაშინ
უარი = მართალია;
ErrorSelect = QueryResult.Select();
ხოლო SelectErrors.Next() ციკლი
Message = New MessageToUser;
Message.Text = "პროდუქტი "+SampleErrors.NomenclaturePresentation+" არ არის საკმარისი რაოდენობით "+SampleErrors.Deficiency+" ცალი.";
Message.Message();
საბოლოო ციკლი;
დაასრულე თუ;

პროცედურის დასასრული

მოდით შევხედოთ ალგორითმის ძირითად პუნქტებს.

1. დოკუმენტის მონაცემების მოთხოვნით მიღება

ეს მოთხოვნა საჭიროა დოკუმენტის ცხრილის ნაწილში მონაცემების დასაჯგუფებლად.

გაითვალისწინეთ, რომ ჯგუფის პირველი მოთხოვნა ქმნის დროებით ცხრილს - ის გამოყენებული იქნება შემდეგ მოთხოვნაში. ეს შესაძლებელია ცხრილის დროებითი მენეჯერის წყალობით, რომელიც შექმნილია ამ მოთხოვნისთვის.

2. მოძრაობების ფორმირება - მოხმარების რეგისტრაცია

ციკლში დოკუმენტიდან მონაცემები იწერება რეესტრში - ანუ ხდება საქონლის უპირობო (შემოწმების გარეშე) ჩამოწერა.

3. მოძრაობების ჩაწერა მონაცემთა ბაზაში

იმისათვის, რომ რეესტრში ნაშთები შეიცვალოს, მოძრაობები უნდა დაფიქსირდეს.

4. რეესტრიდან უარყოფითი ნაშთების მიღების მოთხოვნა

ახლა, მარტივი მოთხოვნით, ჩვენ ვირჩევთ უარყოფით ნაშთებს დოკუმენტური საქონლისთვის.

სწორედ აქ გამოიყენება პირველ ეტაპზე შექმნილი დროებითი ცხრილი - პუნქტს ეკისრება პირობა (ამისთვის ჩვენ არ ვქმნით „Request“ ტიპის ახალ ობიექტს, არამედ ვიყენებთ ადრე შექმნილს).

ყურადღება მიაქციეთ, თუ როგორ გადაიცემა დროში მომენტი - გამოიყენება "საზღვრის" მონაცემთა ტიპი. დარჩენილი ნაშთები უნდა იქნას მიღებული დროის მომენტში მიმდინარე დოკუმენტის შემდეგ.

შესაძლებელი იყო თუ არა ნაშთების მიღება საზღვრის გარეშე, მაგალითად, დოკუმენტის თარიღისთვის 1 წამის დამატებით?

არა! ყოველივე ამის შემდეგ, ერთ წამში შეიძლება იყოს დიდი რაოდენობით დოკუმენტები. აქედან გამომდინარე, ერთადერთი სწორი ვარიანტია გამოიყენოთ საზღვრის ტიპი "მათ შორის".

5. საქონლის დეფიციტის შესახებ შეტყობინებების ჩვენება

თუ მოთხოვნის შედეგი არ არის ცარიელი, მაშინ არის უარყოფითი ნაშთები - ამ შემთხვევაში, დოკუმენტი არ მუშავდება და ნაჩვენებია შეტყობინებები ყველა შეცდომის შესახებ.

ნარჩენების კონტროლის სარგებელი ახალი მეთოდის გამოყენებით

ასე რომ, ორივე ალგორითმი წყვეტს ერთსა და იმავე პრობლემას.

განსხვავება ალგორითმებს შორის ჩანს, მაგრამ უპირატესობები აშკარა არ არის.

მოდით გამოვყოთ ისინი:

  1. არ არის საჭირო ძველი დოკუმენტის მოძრაობების გასუფთავება. არსებითად, ეს არის მონაცემთა ბაზაში მოძრაობათა ცარიელი ნაკრების ჩაწერის და არსებული მოძრაობების წაშლის ოპერაცია - ეს საკმაოდ რესურსზე ინტენსიური ოპერაციებია.
  2. მოთხოვნა, რომელიც მოიძიებს მონაცემებს უარყოფით ნაშთებზე, წვდება მხოლოდ ერთ ცხრილს - არ არის საჭირო დოკუმენტის მონაცემებთან მარცხნივ შეერთება და "ISNULL()" ფუნქციის გამოყენება

გარდა ამისა, ბიზნეს პროცესების ნორმალური მიმდინარეობისას მომხმარებელი მიუთითებს რაოდენობაზე, რომელიც არ აღემატება საწყობში არსებულ ბალანსს.

ამ შემთხვევაში მეორე მოთხოვნა არ დააბრუნებს მონაცემებს და დოკუმენტის დამუშავება იქნება რაც შეიძლება სწრაფად.

მართლა ასე მნიშვნელოვანია ეს მილიწამები?

მონაცემთა ბაზებზე მცირე რაოდენობის მონაცემებით და მომხმარებლებით, განსხვავება არ იქნება შესამჩნევი. მაგრამ ათობით მომხმარებლის დატვირთულ სისტემებში, ყოველი მილიწამის ღირებულება მაღალია.

გარდა ამისა, 1C:პლატფორმის სპეციალისტის გამოცდის დროს აუცილებლად უნდა გამოიყენოთ ნაშთების კონტროლის ახალი მეთოდი, თუ კონკრეტული დავალება ამის საშუალებას იძლევა.

კარგი, ასე რომ თქვენ ყოველთვის უნდა გამოიყენოთ ახალი ტექნიკა, არა?

არა, ეს ასე არ არის!

ახალი ტექნიკის გამოყენება შესაძლებელია მხოლოდ იმ შემთხვევაში, თუ დოკუმენტის დასამუშავებლად ყველა საჭირო მონაცემი თავად დოკუმენტშია.

ანუ, მონაცემების მისაღებად, თქვენ არ გჭირდებათ წვდომა რეესტრებში, რომლებიც აკონტროლებენ ნაშთებს.

ასე, მაგალითად, თუ თანხა „თავისუფალი ნაშთების“ რეესტრშიც იქნებოდა გათვალისწინებული, მაშინ უნდა გამოეყენებინათ ძველი კონტროლის მეთოდი.

სხვათა შორის, სტანდარტში "1C: ვაჭრობის მენეჯმენტი 11" ბალანსის კონტროლი ხორციელდება ახალი მეთოდით, ხოლო "1C: ბუღალტრული აღრიცხვა 8" - ძველი მეთოდით.

მაგრამ ეს ყველაფერი არ არის!

ზემოთ წარმოდგენილი ალგორითმები შეიძლება გამოყენებულ იქნას მხოლოდ საგანმანათლებლო მიზნებისთვის. საქმე იმაშია, რომ ისინი არ ითვალისწინებენ კონტროლირებადი საკეტები, რომელიც უნდა იქნას გამოყენებული, თუ სისტემაში ერთზე მეტი მომხმარებელია.

განხილულია ნარჩენების კონტროლის ორივე მეთოდის ბლოკები. ასევე ამ სტატიაში ჩვენ გადავჭრით უფრო რთულ პრობლემას - ნაშთების კონტროლის გარდა, ჩვენ ვიანგარიშებთ ჩამოწერილი ნივთების ღირებულებას. ჩვენ გირჩევთ, რომ ყურადღებით შეისწავლოთ იგი.

და დამწყებთათვის, მოდით ვთქვათ ეს ახალი მეთოდით საკეტის დაყენება ძალიან მარტივია- და ეს არის ნარჩენების კონტროლის ახალი მეთოდის კიდევ ერთი უპირატესობა.

შედეგები

მოკლედ შევაჯამოთ.

ჩვენ განვიხილეთ ნარჩენების კონტროლის ორი ტექნიკა, რომელთაგან თითოეული გამოიყენება თანამედროვე ტიპურ კონფიგურაციებში.

ძირითადი განსხვავება ტექნიკას შორისნაშთების კონტროლის მომენტში:

  • ძველი ტექნიკა - კონტროლი რეესტრებში მოძრაობების ჩაწერამდე
  • ახალი ტექნიკა - კონტროლი რეესტრებში მოძრაობების ჩაწერის შემდეგ

ზოგადად, ახალი ტექნიკა უფრო ეფექტურია, მაგრამ ის ყოველთვის არ გამოიყენება.

გამოყენებადობის კრიტერიუმი– თუ არ არის საჭირო კონტროლირებადი რეესტრიდან მონაცემების წვდომა მოძრაობების გენერირებისთვის, შეიძლება გამოყენებულ იქნას ახალი ტექნიკა.

თუ ვსაუბრობთ პროდუქტის ნაშთების კონტროლზე, მაშინ ახალი ტექნიკის გამოყენება შესაძლებელია, როდესაც მონაცემები ღირებულებისა და საწყობის ნაშთების შესახებ ინახება სხვადასხვა რეესტრში.

და ბოლოს, მაგალითები ტიპიური კონფიგურაციები:

  • IN UT 11არსებობს პუნქტების აღრიცხვის 2 ძირითადი რეესტრი: უფასო ნაშთები (რაოდენობა) და საქონლის ღირებულება (ღირებულების მონაცემები) - გამოიყენება ახალი მეთოდოლოგია.
  • IN BP 3.0მონაცემები ხარჯებისა და ნაშთების შესახებ ინახება ერთ სააღრიცხვო რეესტრში - გამოიყენება ნაშთების კონტროლის ძველი მეთოდი.

ნებისმიერმა ორგანიზაციამ უნდა აკონტროლოს აქციების ნაშთები. და ხშირად ჩნდება სიტუაცია, როდესაც პროდუქტი რეალურად ხელმისაწვდომია, მაგრამ ის არ არის პროგრამაში. შემდეგ კი ბუღალტერი იძულებულია მიიღოს გადაწყვეტილება:

  • მიეცით საშუალება გაიყიდოს;
  • გადადეთ მანამ, სანამ არ გახდება ნათელი, თუ რატომ წარმოიშვა ეს სიტუაცია.

გადაწყვეტილება, როგორც წესი, მიიღება იმ პოლიტიკის საფუძველზე, რომელსაც ატარებენ ორგანიზაციაში ნაშთების აღრიცხვასთან დაკავშირებით. ზოგჯერ შეგიძლიათ პროდუქტი განზე გადადოთ და მყიდველს უთხრათ, რომ ახლა მისი გაყიდვა შეუძლებელია. ზოგჯერ ამის გაკეთება შეუძლებელია. მაგალითად, როცა მყიდველი ხედავს ამ პროდუქტს ან უკვე ხელში უჭირავს.

თქვენ, რა თქმა უნდა, შეგიძლიათ უბრალოდ შექმნათ გაყიდვების დოკუმენტი და არ განათავსოთ დოკუმენტი, მაგრამ ყველა ორგანიზაცია არ იძლევა ამის საშუალებას. ამიტომ, 1C 8.3 პროგრამაში (როგორც 8.2-ში) შესაძლებელია უარყოფითი ნაშთების კონტროლის გამორთვა.

თუ ბალანსის კონტროლი ჩართულია, მაშინ საქონლის გაყიდვისას, რომელიც არ არის მარაგში (ან საჭირო ანგარიშზე), პროგრამა გასცემს შემდეგ გაფრთხილებას:

„პროდუქციის“ სიის 1 სტრიქონში სვეტი „რაოდენობა“ არასწორად არის შევსებული.
მითითებული რაოდენობა აჭარბებს ნაშთს. დარჩენილი: 18; დაკარგული: 111,093

მიიღეთ 267 ვიდეო გაკვეთილი 1C-ზე უფასოდ:

უარყოფითი ნაშთების კონტროლის გამორთვა 1C-ში 8.3

1C-ში ბალანსის კონტროლის გამორთვის ან გასააქტიურებლად, თქვენ უნდა გადახვიდეთ მენიუში "მთავარი", შემდეგ "პარამეტრები" განყოფილებაში აირჩიეთ " ".

1C ბუღალტერიის ზოგიერთ ვერსიაში, ეს პარამეტრები განთავსებულია მენიუში "ადმინისტრაცია - დოკუმენტის გამოქვეყნების პარამეტრები".

"სააღრიცხვო პარამეტრებში" თქვენ უნდა გადახვიდეთ 1C "ინვენტარი" ჩანართზე და შეამოწმოთ ჩამრთველი "მარაგების ჩამოწერის დაშვება, თუ არ არის ნაშთები სააღრიცხვო მონაცემების მიხედვით":

ამის შემდეგ საკმარისია დააჭიროთ ღილაკს "შენახვა და დახურვა". ახლა, ჩამოწერისას, ნაშთები არ კონტროლდება.

მაგრამ ასეთი მეთოდი აუცილებლად გამოიწვევს უარყოფითი ნაშთების გამოჩენას საწყობში (იგულისხმება პროგრამაში). მოდი ვნახოთ, როგორ გავუმკლავდეთ ამას.

ანგარიში „უარყოფითი ნაშთების კონტროლი“

უმარტივეს შემთხვევაში, თქვენ უბრალოდ უნდა აირჩიოთ პერიოდი და დააჭიროთ ღილაკს "გენერაცია". და სწორედ აქ მელოდა პირველი სიურპრიზი.

მე კონკრეტულად სატესტო პროგრამაში გავაანალიზე სიტუაცია, როდესაც გავყიდე მეტი საქონელი, ვიდრე მარაგში მაქვს. უფრო მეტიც, მან ეს გაყიდვა 2013 წელს განახორციელა. ლოგიკურად, იგივე პროდუქტი წითლად მაქვს ახლაც, 2016 წელს. ამიტომ, პერიოდს არც კი შევეხები, არამედ მაშინვე დავაჭირე "გენერაცია". არ გამომივიდა. გამოდის, რომ ანგარიშს შეუძლია უარყოფითი ნაშთების შესახებ ინფორმაციის ჩვენება მხოლოდ შერჩეული პერიოდისთვის.

ჩემს ვიდეო გაკვეთილებში ხშირად ვსაუბრობ იმაზე, რომ 1C მონაცემთა ბაზა უნდა მომზადდეს პერიოდის დახურვისა და მოხსენებისთვის. და ასეთი მომზადების ერთ-ერთი მნიშვნელოვანი პუნქტია საქონლის, მასალებისა და მზა პროდუქციის უარყოფითი ნაშთების კონტროლი. რა ანგარიშები უნდა გამოიყენოთ 1C: საბუღალტრო ინვენტარიზაციის ანგარიშების სტატუსის შესამოწმებლად? მოდით შევხედოთ ზოგიერთ მათგანს.

1. მოხსენება „ანგარიშის ბალანსი“

ბევრი ბუღალტერი მიჩვეულია ანგარიშების ბალანსებთან მუშაობას. ეს ანგარიში მართლაც შეიძლება გამოყენებულ იქნას მარაგის ნაშთების გასაკონტროლებლად, თქვენ უბრალოდ უნდა დარწმუნდეთ, რომ პარამეტრები დაყენებულია რაოდენობრივი მაჩვენებლების ჩვენებაზე.
დააჭირეთ ღილაკს "პარამეტრების ჩვენება" და გადადით "ინდიკატორების" ჩანართზე.

შემდეგ ჩვენ ყურადღებით განვიხილავთ ანგარიშს და ვაანალიზებთ აღმოჩენილ შეცდომებს

ბალანსი მოსახერხებელია, რადგან ის საშუალებას გაძლევთ შეაფასოთ არა მხოლოდ უარყოფითი რაოდენობრივი ნაშთების არსებობა, არამედ სხვა პრობლემური სიტუაციების აღმოჩენაც:
- მარაგის ნივთების რაოდენობრივი ნაშთი ოდენობის გარეშე;
- მთლიანი ბალანსი რაოდენობის გარეშე;
- უარყოფითი ბალანსი.
თუმცა, თუ აღრიცხვაში ჩართულია ნივთების დიდი რაოდენობა, მაშინ ასეთი შემოწმება შეიძლება საკმაოდ შრომატევადი იყოს. გარდა ამისა, SALT უნდა გამოიმუშაოს ცალკე თითოეული სააღრიცხვო ანგარიშისთვის (10, 41, 43), რაც ასევე გარკვეულწილად ართულებს სამუშაო პროცესს.

2. ანგარიში „უარყოფითი ნაშთების კონტროლი“

1C: Enterprise Accounting 8 edition 3.0 კონფიგურაცია გთავაზობთ ანგარიშს, რომელიც იდეალურია სასაქონლო პროდუქციის უარყოფითი რაოდენობრივი ნაშთების მონიტორინგისთვის. ანგარიში განთავსებულია "საწყობის" ჩანართზე.

ჩვენ აღვნიშნავთ პერიოდს, ორგანიზაციას და ვაწარმოებთ ანგარიშს.

ანგარიში მოიცავს მხოლოდ იმ პუნქტებს, რომლებზეც გამოვლინდა უარყოფითი რაოდენობრივი ბალანსი. დიდი უპირატესობა ის არის, რომ ყველა ინვენტარის ანგარიშის მონაცემები გაანალიზებულია. ჩემი აზრით, ანგარიშთან მუშაობა უფრო მოსახერხებელია, ვიდრე OSV-სთან.
მაგრამ არის მინუსიც - ანგარიში საშუალებას გაძლევთ აკონტროლოთ მხოლოდ უარყოფითი რაოდენობრივი ნაშთები, კულისებში დატოვოთ სხვა პრობლემები, რომლებიც SALT საშუალებას გაძლევთ აღმოაჩინოთ.

3. მოხსენება „ქვეკონტოს ანალიზი“

ამ მოხსენებაზე არაერთხელ მილაპარაკია. Subconto ანალიზი არის ჩემი ერთ-ერთი საყვარელი მოხსენება, რომელიც საშუალებას გაძლევთ არა მხოლოდ აღმოაჩინოთ შეცდომები, არამედ, ბევრ სიტუაციაში, გაიგოთ მათი მიზეზები.
გადადით "ანგარიშები" - "Subconto Analysis" განყოფილებაში.

აირჩიეთ "ნომენკლატურის" ქვეკონტო და შეამოწმეთ, რომ რაოდენობრივი მაჩვენებლების ჩვენება ჩართულია მოხსენების პარამეტრებში.

სუბკონტო ანალიზი კარგია, რადგან ის საშუალებას გაძლევთ მიიღოთ ინფორმაცია ყველა სააღრიცხვო ანგარიშზე მარაგების ნივთების მოძრაობის შესახებ. მაგალითად, თვალყური ადევნოთ სიტუაციებს, როდესაც პროდუქტი მოვიდა ერთ სააღრიცხვო ანგარიშზე, მაგრამ გაიყიდა მეორედან.

თუმცა, ნივთების დიდი რაოდენობით, შეიძლება რთული იყოს მონაცემთა ანალიზი.
ამ ანგარიშთან მუშაობის შესახებ მეტი ვისაუბრე ვიდეო გაკვეთილზე, თუ როგორ ვიმუშაოთ „Subconto Analysis“ ანგარიშთან 1C - VIDEO.
ამრიგად, თითოეულ განხილულ ანგარიშს აქვს თავისი დადებითი და უარყოფითი მხარეები. ჩემს ნამუშევარში მე გირჩევთ მათ გაერთიანებას:
- იპოვნეთ უხეში შეცდომები ანგარიშის „უარყოფითი ნაშთების კონტროლის“ გამოყენებით;
- შემდეგ იხილეთ SALT ყველა ინვენტარის ანგარიშისთვის;
- არასწორი ბალანსის მიზეზების დასადგენად, გამოიყენეთ ანგარიში "Subconto Analysis".
მე ასევე განვიხილეთ საინტერესო მაგალითები, რომლებიც დაკავშირებულია მარაგის ნივთების აღრიცხვისას შეცდომების პოვნასთან და გამოსწორებასთან ორ სასარგებლო ვიდეოში:

საწყობის ნაშთებზე კონტროლი სავალდებულო აღრიცხვის პროცედურაა საქონელთან მომუშავე ნებისმიერ საწარმოში. ხშირად შეიძლება შეგხვდეთ სიტუაცია, როდესაც პროგრამაში პროდუქტი არ არის, მაგრამ ის რეალურად საწყობშია. ასეთ სიტუაციაში ორი ვარიანტია:

  • გაგზავნეთ გასაყიდად;
  • დატოვეთ იგი საწყობში, სანამ არ გაირკვევა ამ მდგომარეობის გარემოებები.

არჩევანი დამოკიდებულია რამდენიმე ფაქტორზე, როგორიცაა ორგანიზაციული პოლიტიკა ან კონკრეტული სიტუაცია. თუ პროდუქტი დახლზეა და მყიდველი დაინტერესებულია მისით (ხელში უჭირავს), გაყიდვაზე უარის თქმა არ არის მიზანშეწონილი.

ზოგიერთი საწარმო პრაქტიკაში აწარმოებს გაყიდვების დოკუმენტის გამოქვეყნების გარეშე, მაგრამ ყველა არ იყენებს ამ პრაქტიკას. ასეთი სიტუაციების შემთხვევაში, 1C პროგრამა თავის უახლეს ვერსიებში გვთავაზობს უარყოფითი ნაშთების კონტროლის გამორთვის შესაძლებლობას.

კონტროლის გააქტიურებისას, საქონლის გაყიდვა, რომელიც არ არის მარაგში პროგრამის მიხედვით, მისცემს მომხმარებელს გაფრთხილებას: „პროდუქტების“ სიის 1 სტრიქონში სვეტი „რაოდენობა“ არასწორად არის შევსებული. „აღნიშნული რაოდენობა აჭარბებს ბალანსს. დარჩენილია: 18. დაკარგული 111.093“.

უარყოფითი ნაშთების კონტროლის გამორთვა 1C-ში

1C-ში ნაშთების კონტროლის ჩართვის/გამორთვის ოპერაცია ხორციელდება მენიუს "მთავარი" - "პარამეტრები" - "აღრიცხვის პარამეტრები" - "ინვენტარები" მეშვეობით. აქ თქვენ უნდა მონიშნოთ ყუთი "დაუშვათ მარაგის ჩამოწერა, თუ არ არის ინვენტარი სააღრიცხვო მონაცემების მიხედვით".

ამის შემდეგ, მოქმედება დასტურდება ღილაკით "შენახვა და დახურვა". თავის მხრივ, ასეთი ქმედებები გარანტირებულია გახდეს ბუღალტრული აღრიცხვის უარყოფითი ნაშთების ფორმირების საფუძველი. მათი აღმოფხვრა დასჭირდება.

ანგარიში „უარყოფითი ნაშთების კონტროლი“

ეს ანგარიში გენერირდება "საწყობი" - "ანგარიშები" მენიუდან, სადაც წარმოდგენილია დოკუმენტი. მომხმარებელმა უნდა განსაზღვროს მოთხოვნის ინტერვალი და დააწკაპუნოს ღილაკზე "გენერაცია". მითითებული პერიოდის არარსებობა არ მოგცემთ საშუალებას აჩვენოთ უარყოფითი ნაშთები, რაც სისტემის მახასიათებელია, რომელიც მოითხოვს სვეტის "პერიოდის" სავალდებულო დასრულებას.

დასრულებულ მოხსენებას შემდეგი სახე აქვს.

ფილტრების სტანდარტული ნაკრები ხელმისაწვდომია თავად მოხსენებისთვის, მათ შორის დაჯგუფება, დახარისხება და მონაცემთა სხვა ტრანსფორმაციები მომხმარებლის მოთხოვნებისა და საჭიროებების შესაბამისად. "პარამეტრების ჩვენება" ღილაკის გამოყენებით, შეგიძლიათ ხელით შეიტანოთ ანგარიშში დამატებითი რიგები.

ეს ანგარიში დაგეხმარებათ მიიღოთ შემაჯამებელი ან დეტალური ინფორმაცია 41 ანგარიშზე უარყოფითი ნაშთების შესახებ ნებისმიერ დროს. ანგარიშის შედეგი ნაჩვენებია ნაგულისხმევი დეტალებით (იხ. სურ. 1)

იმიტომ რომ ვინაიდან ანგარიში მთლიანად არის დაწერილი მონაცემთა განლაგების სქემის გამოყენებით, მომხმარებლისთვის რთული არ იქნება ანგარიშის სექციების შეცვლა მომხმარებლის რეჟიმიდან (იხ. ნახ. 2).

გარე ანგარიში განკუთვნილია კონფიგურაციისთვის "1C: Enterprise Accounting 8, გამოცემა 3.0" და "გამოცემა 3.0 (KORP)", მუშაობს პლატფორმის 8.2 ვერსიაზე „მართული აპლიკაციის“ რეჟიმში.

უფასო მხარდაჭერის პერიოდი: 1 თვე.

ყიდვის მიზეზები

უარყოფითი ნაშთები ყოველთვის თავის ტკივილია ნებისმიერი ბუღალტრისთვის. 41 ანგარიშზე უარყოფითი ნაშთები ორმაგად ამძიმებს ამ მდგომარეობას. ეს ანგარიში სწრაფად და ნათლად აჩვენებს ყველაფერს "სიწითლე" 41 ითვლის მოსახერხებელი და ვიზუალური ფორმით. უფრო მეტიც, ლ41 ანგარიშზე ნებისმიერი უარყოფითი ნაშთის გაშიფვრა შესაძლებელია "Subconto Analysis" და "Account Card" ანგარიშების გამოყენებით. ამავდროულად, ამ ანგარიშების გამოყენების კომბინაციით, შესაძლებელია პირდაპირ გადავიდეთ სააღრიცხვო დოკუმენტების დონეზე, რამაც გამოიწვია საქონლის მოძრაობა. ამისათვის უბრალოდ დააწკაპუნეთ ანგარიშში საჭირო ნომერზე და აირჩიეთ ანგარიში დეკოდირებისთვის.

მომხმარებელთა მრავალი მოთხოვნის მიხედვით, შეიქმნა მოხსენების ცალკეული ვერსია „ინვენტარის ანგარიშებზე უარყოფითი ნაშთების კონტროლი“, რომელმაც დაამატა უარყოფითი ნაშთების კონტროლის შესაძლებლობა, არა მხოლოდ 41 ანგარიშისთვის, არამედ ინვენტარის მოძრაობის სხვა ძირითადი ანგარიშებიც. ნივთები:

ანგარიში 07 აღჭურვილობა ინსტალაციისთვის
- ანგარიში 08.04 ძირითადი საშუალებების შეძენა
- ანგარიში 10 ყველა, გარდა 10.07 (მასალები გადაცემულია მესამე პირებზე დასამუშავებლად)
- ანგარიში 21 საკუთარი წარმოების ნახევარფაბრიკატები
- ანგარიში 41 ყველა, გარდა 41.12 (საქონელი საცალო ვაჭრობაში (NTT-ში გაყიდვების ღირებულებით))
- ანგარიში 42.01 სავაჭრო მარჟა ავტომატურ საცალო ობიექტებში
- ანგარიში 43 მზა პროდუქცია

ასევე გახსოვდეთ, რომ უარყოფითი ნაშთები შეიძლება წარმოიშვას არა მხოლოდ სასაქონლო ანგარიშებზე, არამედ საბაჟო დეკლარაციის ანგარიშზეც. თუ ამ ანგარიშის კონტროლიც გჭირდებათ, გირჩევთ გაეცნოთ გარე ანგარიშს

უპირატესობები

  1. კავშირი გარე დამუშავებისა და მოხსენების მექანიზმით. ეს საშუალებას გაძლევთ გამოიყენოთ ანგარიში სტანდარტულ კონფიგურაციაში ცვლილებების შეტანის გარეშე. ასევე შესაძლებელია სტანდარტული ანგარიშის გახსნა "ფაილი" -> "გახსნა" საშუალებით.
  2. ანგარიშის „თქვენთვის“ მომხმარებლის რეჟიმიდან მორგების შესაძლებლობა.

Ფულის დაბრუნების გარანტია

შპს „ინფოსტარტი“ გარანტიას გაძლევთ თანხის 100%-იან დაბრუნებას, თუ პროგრამა არ შეესაბამება აღწერიდან დეკლარირებულ ფუნქციონირებას. თანხის სრულად დაბრუნება შესაძლებელია, თუ ამას მოითხოვთ 14 დღის განმავლობაში ჩვენს ანგარიშზე თანხის მიღების დღიდან.

პროგრამა იმდენად დადასტურებულია, რომ მუშაობს, რომ ჩვენ შეგვიძლია მივცეთ ასეთი გარანტია სრული ნდობით. ჩვენ გვინდა, რომ ჩვენი ყველა მომხმარებელი კმაყოფილი იყოს მათი შეძენით.