Habro suicide. The pain of planning in 1C

    I didn’t come up with it, but I agree that pain is needed to understand the solutions and their usefulness , or, as the guys in suits say, pain . If you do not have difficulties with shortages, excess stocks, late shipments, and other symptoms of poor planning - excellent, the article is not for you, and with a high probability the problems listed here will not respond in your soul.

    If you have experienced, or are now experiencing the pain of planning in 1C, then let's get sick together and try to recover.

    The article is written mainly about SCP. Part of the problems was removed in ERP (at the same time adding new ones), but the pain has remained to this day.

    So let's go.


    First and foremost, how do you know which needs are met and which are not? So I have customer orders, or a sales plan, or internal orders, or production orders - these are my needs (more precisely, buyers). There are stocks in warehouses, there are orders to suppliers (purchase and processing), there are purchase plans in the end - these are my resources. How to answer the question - which needs are satisfied and which are not? Well, immediately the attendant question - what is missing? What do you need to buy or produce?

    There is no simple answer to this question in 1C configurations. Although the task, at first glance, is trivial - take all the resources, distribute them according to your needs, and you will be happy. It seems that a simple report should help, but it is not.

    I, like you too, did such a report. For a gross answer to the question posed, the report is quite suitable, but who needs a rude answer? People have business, the answer to the question depends on the expense of money, illiquid assets, cash gaps, relations with customers.

    In an attempt to clarify the answer, my report began to grow into conditions and reservations. For example, this counterparty is the key one, it must be given stock in the warehouse first. But he does not make sense to take stocks from this warehouse - this is the other end of the country, only by plane can be brought, and only in an emergency. Or this warehouse is only for unit X, but in case of special need, by the order of the director, the guys from unit Y can take something from this warehouse. But they must place an internal order that will be executed by relocation.

    The capabilities of the layout scheme and the query language are no longer enough to describe all the conditions for calculating security, and tuning manuals appear. The report begins to look more and more like a scary monster, and here more and more new problems with data quality are constantly being discovered.

    Then another nightmare occurs - the business process changes, at the same time the staff structure changes, the units mix, the number of warehouses doubles, production plans appear, a new document of the type “Buyer Request” is invented, which precedes the buyer's order, etc. In short, there are so many reasons for the death of the Report that it ceases to resist.

    Planning assistant

    Part of the issues of calculating security in SCP is decided by the “Planning Assistant”. I used to love this tool very much, it has cool ideas and approaches. But, alas, he remained the prototype for solving real business problems. I will not tell for a long time about the assistant grandfather, if you wish, you can easily find a lot of information about its limitations (bottleneck, for example).

    In relation to the calculation of security, the main drawback of the “Planning Assistant” is the need to constantly use it . The real picture of security changes every minute, or every hour at least, and the assistant is designed for relatively infrequent use.

    The second important drawback is that the assistant does not give an answer to the question “at what expense is provided?”. It only gives out what is missing, i.e. answers the accompanying question, skipping the main one.

    Reservation and Accommodation

    At a certain point, I drew attention to the reservation (in warehouses) and placement (in orders to suppliers and internal orders). Here it is, it would seem, what I need! Reservation gives an unambiguous answer to the main question - due to which the need is provided. It says directly - take a piece of iron from this warehouse and go in peace, and a piece of wood will arrive in a week from the supplier by order No. 23123.

    But the illusion crashed into reality. Reservation occurs at the time of the document (customer’s order, for example), and the place of the reserve (warehouse or order to the supplier) is stored in it. A person made a mistake three days ago - everything, a three-day reservation chain is flying to hell. Canceled the order to the supplier two weeks ago - get the minuses in the reserve register. They took it from the warehouse without a reserve, or wrote off the shortage - to start everything from the stove.

    Hope flashed in the form of a document “Reservation of goods” - it allows you to adjust all reserves in one sitting. Release, transfer, occupy more relevant resources - i.e. eliminates all the disadvantages described above

    Hope lasted a long time, even grew into several projects. I, and probably you, did such things, such as auto-recalculation of reserves or a large workstation for managing reserves, so that the Big Dispatcher could transfer reserves back and forth, take them off, and set them up, taking into account the needs and all the changes in real life. The manipulations of this person easily fit into the document “Reservation of goods”, from the point of view of the programmer, he is just fine - there is almost a direct record in the registers.

    But here, not everything is smooth. Problems with the sequence remained in place, because retroactively changing a requirement or reserve document can likewise divert the reserve register to minus. The Big Dispatcher can no longer rely on data that is constantly changing. He just allocated reserves, a minute later he goes into his AWP, and sees that he has distributed nonexistent resources (and by naivety he also called people and promised something).

    Plus, the same drawback as in the planning assistant - redundancy, incl. AWP, you need to constantly use . Go into it, follow it, press something. The Big Dispatcher, again, is needed.

    The worst thing is that the backup, as such, I did not need. I just wanted to know what was provided for me, what it was provided for, and what I was missing. And the reservation is “not to touch mine!”, I.e. whole business process. Which, moreover, at manufacturing enterprises the guys in the warehouse (where there are no cool WMS systems) like to break. He was the only one who was rooting for production with his soul, and when he received scarce parts, he simply hid them in the corner “so that the damned sellers would not be taken away”. What kind of reservation is there.

    I, like you, probably, tried to create a system of automatic reservation and allocation. It seems that the task is simple, more technical, similar to batch accounting. It is necessary to take all batches of reserves and distribute among those who need it. But the difficulties were born the same as in batch accounting - the need to restore consistency, complex algorithms, criticality to changes in business processes and accounting schemes.

    But I just want to find out what is provided with me, what is provided, and what needs to be bought.


    The topic is so hackneyed that it probably doesn’t even come up at conferences. Years go by, the cart does not move.

    Wherever I worked with planning, I had to consider analogues.

    The easiest option is the usual interchangeability of parts. In machining, for example, a common case is exactly the same looking pieces of iron, but made according to different versions of the design documentation. For example, from different grades of steel. Or one from forging, and the other from stamping. Or one of their own manufacture, the other is purchased. Or the roughness is different due to different processing methods from suppliers.

    The interchangeability of such parts can be indicated both in the soft starter and in the ERP. Somewhere, this information will even be taken into account - for example, when selecting materials in a production report for a shift. And when planning and calculating security, I want not to buy a part, an analogue of which I already have in stock.

    In real life, accounting for analogues is, of course, more difficult.

    For example, interchangeability may depend on the client - one needs a different steel, the other needs nose blood 40X. One is made in China, the other is a patriot.

    But this is all - simple cases when analogues are connected one to one.

    It happens more difficult. For example, when making a polymer package, a film of a suitable width is taken. If the customer ordered a roll of packaging 1000 mm wide, we take a width of 1100 mm, cut along the edges by 50 mm (so that it is even), and everyone is happy. But there was a situation when we do not have a film 1100 wide, and there is 1105 mm. Of course, we do not take a steam bath and take it - there will simply be a little more waste. And we can take 1110 mm, we can 1115 mm, we can even take 1300 if the burning order and the client are our favorites.

    It turns out a complex formula for calculating the analogue. Each film is a separate nomenclature, i.e. combinations for each film will be tens. But the applicability of combinations of analogues depends on the context - the width of the product that we need to get. We add here that films of the same width are different in their properties, but can replace each other under certain conditions. And a roll of 1000 mm wide can be cut in half to complete an order where a width of 450 mm is required. And it can be cut into three parts, and not necessarily the same.

    In short, hell is hellish. But I want it to be taken into account somehow, and the system gave the answer to the question “are we provided or not?”

    You probably know even more sophisticated material replacement schemes. Tell me not to be shy. All the same, no one plans to automate our accounting of analogues.


    More precisely, not flexibility, but its lack. I, probably like you, have heard the phrase many times - you need to adapt not 1C to your processes, but your processes to 1C. When he worked in a franchise, he himself liked to repeat this slogan to customers.

    There is no flexibility in planning and calculating security in 1C. Flexibility is when you can, without hellish programming, choose the most suitable tool, tune it up a bit and get the required planning scheme.

    I am very comfortable with SCP, but there isn’t much to choose from in the planning decision. This is not even flexibility, but the Great Nothing, the vacuum, the field is clean. Can it be argued that Nothing is flexible? Of course. This is the charm of SCP, for this I love him, especially in terms of planning - do what you want, it will not be worse.

    For example, to attach to the soft starter procurement according to the BBV method (drum-buffer-rope) is a simple task, even by ordinary programming, without any universal tools there. And it’s impossible to spoil anything in the system with its modifications, as work in the Great Nothing is done. It's like to detonate a nuclear bomb halfway from Mars to Venus - the solar system will not notice anything.

    ERP already has plenty to choose from - there are four ways to meet your needs. But ERP, as its developers say at a partner conference, is a process-oriented system written for processes. Change the methods of support in ERP - to explode the same nuclear bomb, only already on Earth. Especially given the constant changes from the editorial staff to the editorial staff.

    Nevertheless, the undertaking is useful, there is plenty to choose from. I talked with the developers, asked them questions about my pain, received disappointing answers - the pain is not treated with this pill. There is no report on security, there are no analogues, adding or changing methods of security - only through the configurator, you won’t be able to take into account your metadata objects in the security schemes.

    I don’t know about you, but in this comparison the Great Nothing is closer.

    Custom metadata objects

    Well, there's really nothing to tell here. Any added metadata object does not fall into any planning or collateral scheme.

    Examples of makeshift metadata objects, and I, and you know a million. If you combine SCP with industry solutions, then home-made objects will appear by themselves. None of them will participate in the planning, and the configurator is indispensable here.

    If the object is not added directly, but the props, for example, then no matter where else it goes, it will appear at least in the selection of the planning assistant.

    In the context of home-made objects, it’s even good that in 1C such planning. Imagine if it would be like RAUZ - integral, tested, working, self-sufficient. Many of us risked our lives by adding a completely new document to the movement of goods, and including it in all the chains of the RAUZ? Or added details to the nomenclature, which would affect the decision of SLAU? But planning is not like that - it doesn’t matter to you where you added it, it will pass by anyway.


    Before, I often heard the phrase that about planning is a unique process for each enterprise, and it is impossible to produce a standard solution for all its options.

    After this phrase, I liked planning as a class of tasks.

    On the one hand, the phrase saves 1C (and any developer in general) from the need to make a standard solution.

    On the other hand, the phrase inspires the intruder - come on, act, there are no laws, rules, right and wrong decisions on this field! Do it!

    I worked for several years, probably you too. Something turned out, something not, somewhere on the way there were monstrous planning and backup systems, wild reports with unreadable settings and algorithms that I myself can’t figure out now.

    And all because of this phrase. Create, create each time, because there is no standard solution.

    Then it only dawned that the phrase was incorrect, unsaid, something was missing in it.

    There is no standard solution for the client . Or in another way - there is no boxed solution for the user . There is no such program in the world in which the user makes his own planning. There is a program where the user will do accounting himself. Accounting will all of us know it.

    But they are not rich in single implementations, there are also 1C programmers there. The user - he only knows how to press buttons, and even then he is mistaken all the time. The programmer, he writes the code, he knows the layout scheme, and the data storage scheme, and sees the metadata, and the planning goal knows, and the processes know ... Do you understand?

    There is no standard solution to the planning task for the user, but for the programmer. There must be a typical planning task solution for the programmer . Tool,

    • having a certain level of abstraction (but not as a configurator, of course);
    • solves the basic algorithms of planning tasks so as not to worry about them at each implementation;
    • able to use all the necessary system data for planning purposes;
    • which for setup does not require programming, but also does not slip into a vulgar enikey.

    In general, you need a tool created by programmers for programmers.

    The closest clear analogy is Data Conversion . Not a very simple, but not a complex tool that solves a specific, understandable area of ​​tasks - data exchange - and contains all the necessary functions for the successful solution of this problem.

    The conversion almost completely meets the criteria that I presented to the planning system:

    • has a certain level of abstraction (does not know anything about metadata, knows how to work with different platforms, knows how to transfer everything or in pieces, etc.);
    • solves the basic algorithms of data transfer problems so as not to worry about them at each implementation;
    • able to use all the necessary system data for transfer purposes;
    • it doesn’t require programming * to configure, but it also doesn’t slip into a vulgar enikey.

    * - That's just not true here, programming in conversion is usually necessary. But there are plenty of examples when it is not necessary.

    From my point of view, and in the context of the article, Data Conversion is an almost perfect example of a typical solution for a programmer. The conversion does not even try to pretend that it is for the user, so she does not have to carry usability, a process approach, convenient settings, require special data organization and other ballast solutions for the user.

    Another worth mentioning is Budgeting in SCP . This is a system that allows you to collect any data from the system using queries, and build budget planning from them. It usually doesn’t work right out of the box, but if you put the programmer behind the setup, you can get a positive result quickly enough.

    I’ll follow up with a tool that I personally thought was right - ERP Monitor . The purpose of the tool is multifaceted, but at the same time very simple - to give information about the business in the right way. The main thing - in the ERP monitor you can write layout diagrams, define your own indicators, the rules for their calculation and control. Of course, the user will not do this, although an attempt has been made to make the configuration interface for the user - there are predetermined indicators, strategies, goals. Plant the programmer with the correct statement of the problem - he will create a smart controlling system for the enterprise.

    Now, in fact, the main question: where is the tool for setting up planning and calculating security, similar in its flexibility and capabilities to data conversion, budgeting, and the ERP monitor?

    Typical 1C configurations - they, like, for "accounting and management". The basis of management is plan and controlling. Controlling, at the very least, can be built. To build the correct, modern planning, able to quickly respond to environmental changes, taking into account the peculiarities of the Russian approach to accounting, is almost impossible.

    That's why the roll in the phrase "accounting and management" on the first word. And I want a balance, one thing follows from the other.

    All of the above is the personal opinion of the author, of course.

    PS Well, I’ll ask myself, it’s very interesting, maybe you know - and who made the decisions, how to make the right tool in the soft starter or ERP, and which wrong? Why budgeting is right and planning is wrong.

    Also popular now: