Let me be a little naive on the eve of the New Year and believe in the miracle that 1C will at least partially satisfy the following. Below is a list of things that I, as a developer and my clients, as users, are annoying in one degree or another. Since everything is done for the sake of end users, then we’ll start with their comments, then the list from users, with their words and supplemented by me personally:
- There is an advertisement in the paid product, and there seems to be a check mark that removes it, but this is before the first update, and sometimes this check mark just does not work, i.e. advertising is not removed.
Wish: make this option always work, not before the first update. - There may be distributions of drivers or other third-party software in the configuration. Why should we weigh down so slow decisions if it is enough just to give the user a link?
Wish: to replace distributions with links. - The exchange rules are almost always irrelevant and lag behind the release version with which they leave, which often leads to errors, for example, due to non-existent metadata objects.
Wish: either to update the rules more quickly, or to do less often updates, so that the rules always correspond to the release to which they are attached. - There is no way to remove notifications for users who go out in the lower right corner.
Wish: to make the display of these windows optional, give the opportunity to turn them off completely and change the display location. - No full window or better license monitor.
Wish: to make a separate window with full information about licenses. - A menu in a managed application is hard to come up with something more inconvenient. Wish: to come up with another option and discuss it on some shared resource, the current version is bad for everyone.
- The text in the search field is not saved between sessions. Wish: the text should be saved.
- The database object selection window in the managed interface does not provide any filters at all.
Wish: provide filtering, which will be maintained between sessions, because Users usually work with the same database objects. - In different solutions, the same thing is named differently, for example, a cash receipt can be called a cash point and cash inflows, in order to find a document in the window you need to go through several options.
Wish: to maintain a uniform, generally accepted naming of objects.
Then there will be questions and wishes from the developer, but first let me remind you a couple of rules that developers of the whole world try to adhere to in order not to complicate the code, make it clear, readable, concise and fast, and for some reason employees of 1C diligently ignore:
- KISS (keep it short and simple)
- DRY (don't repeat yourself), by the way its antipode WET (write everything twice) - is present in all solutions based on 1C platforms.
I want to 1C more often remembered the basics of our profession, because they are simple and earned by an army of developers from all over the world, is this not a reason to listen to them at least sometimes?
So, let's go further, first present a list of what I don't like in the IDE (configurator):
')
- Contextual tooltips do not work for parameters of tabular documents, query fields, collections of values.
- Contextual hints do not take into account the time and frequency of text use, i.e. if I often select the field Object Name of the Object, then why not place it at the top?
- No query text coloring
- There is no support for a multi-cursor, you have to drag a test module between 1C and Sublime Text.
- Crooked refactoring works when deleting a metadata object.
- Requests work only for reading, there is no possibility to update the database objects in the request.
- ACS is a good thing for quick development of simple reports, but for more or less complex reports this is a problem, debugging such reports is very very difficult, you have to pull out the request text and debug outside the ACS, and if the request text is present in the ACS and, for example, the module of the object and there it is still being assembled from pieces, such as at BSU, then ... there are no words to convey how awkward the decision is.
- Closed base format, there is no possibility to pull out the configuration from the damaged 1cv8.1cd, there is no possibility to restore the base if the standard tools did not help.
- There is no full-fledged ability to programmatically create elements of dialogs and generally arbitrary forms.
- There is no support for the PLO, the ability to create arbitrary classes, inherit them and generally use all the buns of the PLO would greatly simplify the development.
- There is no possibility to create libraries of code, incl. external, it is strange for a paid IDE.
- It is not possible to download the text of the module from external sources, which would make it possible to write once for all, especially with the ability to download code from the network, including from code repositories, such as github or at least sync with them.
- There is no possibility to develop plugins for the configurator.
- The conclusion of the barcode in a tabular document was invented by a person with a non-standard psyche, perhaps in the state of 1C there is a maniac or a sadist, be careful of the employees of 1C;).
- There is no opportunity to form and save the workspace, which is almost in all modern IDEs and for a long time, for example, I want to see in the configurator tree only the Reference Nomenclature and Units of Measurement with which I work, the rest is out of sight, but no, I have to rush all over the tree , each time looking at the currently unnecessary metadata objects. I know about filtering by line and subsystems, but this is not enough at all. It should be possible to return the desired state of the workspace with one command.
- It is not possible to create unique keys in directories for several fields.
- For some reason, they removed the Scoreboard, in which it was possible to execute code in the embedded language in user mode.
- In SKD there is a beginning of different periods, why not make the end of the same periods, so that, for example, you can choose the end of the current year?
- There is no access to full distributions of configurations, even on the technical support site most releases are in the form of updates, if you do not have a more or less fresh complete distribution, then get ready to spend a lot of time installing all the missed updates. Why not just upload 2 options - full and update or just full?
- If there is a platform for Linux, then where are the configuration updates for Linux, why do you need a Windows machine to deploy the update?
- There is still no any convenient interface for working with roles, incl. programmatically.
- There is no possibility to get a link by the line with the identifier, it is possible only by the object Unique Identifier, but this does not work when searching through an external connection in another database
- Weak helper syntax, there are a lot of exhaustive code examples, although there are books in each delivery, it’s better to remove the books completely, but give detailed, up-to-date online documentation in free access.
Now, a bit of criticism, for all the work has accumulated a certain opinion regarding the products of 1C:
- Any configuration is a storehouse of noodles, inefficient solutions and repetitive code.
- The BSP is evil, the only thing that it helps to do is to make the bad worse, if, for example, you want to write a configuration based on BSP and you only need the functionality of working with contractors, be prepared for the fact that almost all BSP will have to be implemented, because this is one big, poorly documented, monster that cannot exist in parts, whatever 1C says.
- The texts of the requests, especially the footwomen, broken not only into several pages, but also into several modules - it is difficult to come up with something more cruel to complicate the lives of the developers, who then have to maintain it.
- Once again about query texts - the method of forming a query text by including “templates” in it and then replacing these “templates” with another text does not hold water, so it can be done on small volumes, but when it is used to form a multi-page monster, I hope the authors like everything is good, because the rays of hate they shine long and strong.
For now, the list goes on, but I think that's enough for now.
Unfortunately, 1C is practically a monopolist, hence its own policy for developing and distributing solutions that does not agree with the community, has its own standards, which have very little in common with world standards, their own layer of knowledge, which is almost useless if a programmer departs from 1C products.
Thanks for attention.
Happy New Year everyone!