Open
Close

Automatic deployment of php projects. How not to develop a project using Bitrix Checklists and subtasks

Clients turn to us not only to create a new website, but also to redesign an existing one. There are three main reasons why a website needs to be updated:

  1. A new corporate identity has been developed. The site needs to be brought into compliance.
  2. The cost of website support has reached critical levels and it is necessary to optimize this expense item.
  3. It is necessary to add new large functionality, and the existing architecture is not flexible enough.

Of course, there are various combinations of these reasons. As a rule, we recommend that clients move their site to Bitrix at the same time as an external update. This will provide greater opportunities for project development in the future, reduce dependence on contractors and gain access to the Marketplace - a platform with proven solutions that allow you to quickly and cheaply expand the functionality of your website.

The first question we hear from clients is “How much does it cost to move to Bitrix?” The answer will depend on what project we are migrating and how much functionality we end up adding. For a site selling goods and services, at a minimum, the cost of the 1C-Bitrix license will depend on this.

However, our practice shows that redesigning a website and relaunching it on a new CMS costs more than creating a website from scratch on the same one. This happens due to the following circumstances:

  1. The need to transfer all content from the old site. At the same time, the biggest problems arise with the catalogue, users and orders. In addition to the fact that it is necessary to preserve the integrity of the database, that is, all data and connections between them, it is extremely important to preserve the url structure and final page addresses. After all, for sites that have good visibility in search engines, the option of maintaining addressing is preferable to setting up 301 redirects to new addresses.
  2. Often, along with moving data, it is necessary to transfer specific functionality, for example, calculators, discount systems, etc. The difficulty is that the copied functionality is not documented, may contain errors (especially in boundary conditions) and, often, the client, along with the transfer, wants to improve it a little.
  3. Creating a development infrastructure and the need to update it before launch. This means that after creating a complete copy of the old site's data and starting development, which will take a couple of months at best, you will need to update the data before launching the project. For example, nomenclature, prices and balances of goods, list and user orders.
  4. Connection to external systems. There may be a large number of pitfalls hiding here. It happens that a client cannot update the exchange module in his 1C accounting system, and you just need a new module to set up synchronization with 1C.
  5. Careful and thorough launch of the site on the main domain. One mistake, which may have no consequences when launching a new site, can lead to serious problems during a redesign.

Summarizing the above, we can say that transferring a website to Bitrix, combined with a redesign, is a more complex and expensive procedure than developing a new website. In complex cases, the difference can reach 100%, in other words, it will cost you twice as much as creating a project from scratch. We have already written earlier about the formation of value when creating an e-commerce project.

If we compare with stores, then for corporate sites the difference in labor intensity between creating a new site and redesigning an old one, combined with a change of platform, will be lower, and for portal-type sites, the difference will be slightly higher.

If you do not change the management system, then it will probably be better to continue to cooperate with your contractors and focus on their approach to pricing work.



From time to time, our studio is faced with the need to transfer content from one platform to another. When we talk about content transfer, we mean a mass transfer, i.e. when a significant amount of information from the old site needs to be placed on a new site - hundreds, thousands of news, publications, articles, photographs, videos, etc.

What is "content management"? This is when the operator in the admin panel sees exactly those controls that are supposed to be used for a particular type of information, while the operator performs a minimum set of actions to achieve some goal.

For example, there are large institutions with a wide territorial network that regularly publish news. When creating or editing such news, the operator should be able to select a similar link to a territorial branch from a certain drop-down list, which not only contains a list of such branches, but is also updated if new branches appear.

Bitrix, deservedly receiving regular negative reviews as a development platform, is nevertheless quite suitable for creating information portals. The Bitrix admin panel is far from unlimited in its capabilities, and is not always perfect in terms of available functionality, but most of the required functions can be implemented there with varying degrees of acceptability.

And if everything is more or less clear with the capabilities of organizing information in the Bitrix ecosystem and the capabilities of managing this information, the transfer process always presents certain difficulties. In fact, this is always an individual task, i.e. transferring the content of project “A” to Bitrix and transferring the content of project “B” to Bitrix are usually two independent tasks.

How does it happen that such a seemingly typical and repeatable task becomes very individual? It's always a matter of the difference between the source and required formats (in the broad sense of the word). The range of technical capabilities of various CMS for storing and presenting identical content is too large for this to be resolved once and for all. Below we will try to briefly cover a number of issues that inevitably have to be faced when transferring content from one CMS to another.

Text

Text is not just text. This is, as a rule, HTML markup, and often also inline-styled. Different CMSs use different text editors, so the markup, in addition to its main part, may contain service data in html comments. Is this significant? Speaking of comments, they can have several hundred lines and be several times larger than the volume of the text itself. Accordingly, you will see all this beauty in the Bitrix visual editor. If we talk about the text itself and its stylization, some stylization may be considered useful, and some may be considered unacceptable relative to the general approach used on the new site. Therefore, unfortunately, you can’t just mindlessly go through the regular routine and cut everything off, you have to approach it selectively.

Plugins

A typical situation is when part of the content is managed using some plugins for the CMS. The text may contain some, let's say, control expressions that are used to display other content in this place. When displaying content, the CMS code first checks it for the presence of such expressions, and, if necessary, launches third-party mechanisms that already replace these expressions with new content. What does this mean in terms of data migration? That you can no longer just copy and paste text, because... Bitrix knows nothing about what to do with such control expressions. Instead, you can either simply get rid of them, naturally losing the corresponding part of the content, or prepare this part of the content in such a way that it can not only technically be imported into Bitrix, but also exactly matches the structure of this type of data. One of the most striking examples of this situation is photo galleries inside articles.

Images

Images, from a content management point of view, can be divided into 2 broad categories - those that are part of the text and are displayed in the text stream as part of it, and images that are defined separately from the text and the output of which is specified by auxiliary mechanisms. These categories require different processing methods and different approaches in the process of preparing data import into Bitrix.

For example, one of the typical situations is that we simply have the text of an article in the form of html markup with inline pictures. It is necessary to generate data for the information block element in such a way that the first image becomes a detailed picture, and the rest remain in the text stream. The tasks that arise in this case: it is necessary to cut out the markup of the first image, form a path suitable for receiving the image (http-uri or path in the file system), form the correct path to the image for the import file, place the image along this path; for inline pictures, we need to create links to obtain the pictures, place the pictures where we intend to permanently store them, and replace the original paths in the text with new ones.

Semantic URLs

The use of CNC URLs for addressing has long been more of a general rule than some special functionality for a site. Unfortunately, at the moment, Bitrix does not support the creation of such codes automatically during import (at least, we were not able to achieve this), but this can be circumvented by using third-party modules to generate them after importing the data. However, this is not very convenient from the point of view of organizing the process for mass import, and, in addition, it is quite possible that the generation must be done with “fine settings”, for which these third-party modules, of course, are not designed (this may also be generation based on a specific piece of content, and a special procedure for accounting for duplicates). Therefore, it is more profitable to do this at the data preparation stage.

Specialized properties of information blocks

The Bitrix admin panel supports the creation of additional and custom properties of information blocks that help manage data in the most appropriate way; this can and should be actively used. That is, if a publication provides a photo gallery as one of the elements of this publication, it is reasonable to create a separate multiple property and import the necessary pictures into it. Or create a separate “gallery” information block and refer to it in the article (more precisely, to the desired element). However, from a technical point of view, forming the correct structure in the import file for such properties is not always an “intuitive” or developer-friendly procedure.

How to import?

Bitrix supports several ways to import data. Through the software API and through 2 types of file formats - csv or xml. All these methods have their advantages and disadvantages. So, on the one hand, importing via API seems to be the most natural solution - that is, we write directly and that’s it. However, de facto this is not the best solution from various points of view. Firstly, with a large volume of data, there will likely be more than one import attempt, since more and more new cases will be discovered that were not visible at first glance. Each such import attempt will take a significant amount of time (have you tried importing a large xml with several thousand elements?). To check the import results, you will need to travel to different elements each time in the admin panel and examine the values ​​of their various properties and fields. When it comes to checking, the GUI is always more of a hindrance than a help.

For mass import, it is more suitable to generate the results in the form of a finished file (xml is preferable, since csv import is extremely limited in capabilities). Firstly, this result can be obtained on any machine locally, not on the server where the site is deployed. Secondly, the result of data conversion (which is the generated import file) can be analyzed for suitability by any suitable means - from banal regular checks to validation using the xsd scheme. In addition, this method allows you to completely prepare a package that is completely ready for import (that is, not only the import file itself, but also all other accompanying files), but do this in stages, as you solve the initial problems and those that arise in the process.

What to do?

To solve the problems described in this article, the studio has created an internal toolkit that allows you to quickly and carefully transfer data from the old site to the new one, while avoiding the loss of information, time, money and nerve cells. However, all historical content will be managed exactly as intended on the new site.

In the next article we will talk about the technical details...

What we'll tell you about:

  1. How to create a task (consider a simple and an advanced form),
  2. How are responsible people assigned and roles distributed?
  3. What are checklists and templates, how to work with groups.

It is a set of working tools, and “Tasks” is one of them. The interconnection of all these tools allows you to see the whole picture of your business. For example, when assigning a task to your employee, you can indicate which CRM client it is linked to. As a result, when you open a client’s card, you will see what work is being carried out on it. You also have the opportunity to set a task and assign a person responsible right when adding a lead to CRM.

Create a task: simple and advanced form

To create a task, go to the appropriate section in the menu on the left. You can set a task in several ways.
The simplest and fastest:
In the list that opens, click on the “New task” area, enter the name of the task and press the “Enter” key. In this case, the task will be assigned to you, from you, without specifying any deadline or other nuances.


This method is not always convenient, since it does not allow you to specify the task. To create more detailed tasks, use the “Add task” button in the upper right corner.


  • On the page that opens, fill in all the required fields:
  • Task name;
  • Description;
  • Responsible (by default you will stand);
  • Deadline;
  • Custom fields.


If the task is important, check the appropriate box in the right corner. If necessary, you can attach files to the task:

  • Upload from your computer;
  • Download from Bitrix24 Disk;
  • Upload from external drive (Office365, Google Drive, Dropbox);
  • Create using Google Docs (immediately create and add a text document, table or publication).

IN you can plan the deadlines for completing a task. To do this, you must indicate the task deadline in the appropriate field.

From the More menu you can make the following settings:
  • Allow the executor to change the deadlines of the task (if the person responsible does not have time to complete the task, he will have the opportunity to change the deadline);
  • Skip weekends and holidays;
  • Accept the work after completing the task.

Some of the custom fields are required, and without filling them out you will not be able to set the task. Creating and editing custom fields is available to Portal Administrators.

Note that when you hover over the task creation field, a pushpin icon appears. It is used to customize the interface of the task creation page. If a field is “pinned”, this field will be present when creating subsequent tasks. If you don’t need the field, “click off” the button.


There are also a number of additional fields that you can “pin” and use when creating tasks. Those fields that you do not use will be hidden.

In the "Advanced" menu you can configure:

  • Time tracking in hours and minutes (useful for urgent tasks);
  • Remind about a task (set up a reminder: by letter or message in business chat, to the person in charge, to the director or to yourself, set the date and time);
  • Repeat the task (make the task regular);
  • Gant;
  • CRM (indicate which client/company this task relates to);
  • Make it a subtask (attach to other tasks if this is part of a larger project);
  • Tags (used for tasks that are not part of projects or workgroups);
  • Related tasks (for tasks that belong to the same project, but are related to each other by some other principle).

After filling out all the required fields and specifying important information for the task, click the “Submit task” button.
As soon as the task is assigned, the performer receives a notification in the corporate chat and live feed.
You can comment on a task - this is very convenient for discussion, because everything is saved and located in one place, which makes it easy to find the necessary information. You can also view the history of this task and monitor time tracking.
Creating a task from a live feed

It happens that the creation of a task is preceded by a long discussion of the project or necessary actions that take place in the live feed. Once the discussion is complete and some agreement has been reached, you can create a task based on your message.

To do this, click on the “More” button under the message and select “Create task” from the menu.


After this, you will receive a notification that the task has been created and you can proceed to directly editing it using the algorithm described above. Please note that the task description will have the message text and the title will be the message title. Also, images and documents that were attached to the post in the live feed will be attached to the task.

Create a recurring task

If you have a series of recurring tasks that you need to complete regularly, such as preparing weekly reports, you can create a task template that will be assigned automatically. When using this function, you will not need to create a task each time, fill out fields, distribute roles between employees; the portal will do this for you if you make the appropriate settings.

On the page for creating a new task, after filling out all the required fields, go to “Advanced” and select “Repeat task” and check the “Make task regular” checkbox. In the menu that appears, configure the repeatability of the task.


Specify how often the task should be created, at what time and until what date. You can also adjust the number of repetitions. Based on this task, a template will be created that you can use in the future.

To view, edit or delete a template, click on the “More” button in the upper right corner (next to the “Add” button). In the list that opens, you will see the last few templates, as well as the “List of all templates” link, by clicking on which you will have access to all your task templates.

Create a task template

You can create a task template in advance for a large project or frequently repeated tasks. To do this, go to the list of templates (the “More” button, the “List of all templates” link) and click on the “Add template” button.


In the template creation interface, you can add and remove the necessary fields, fill in information that will be repeated in each task, assign roles (select the person in charge, the director, observers and co-performers), set up repeatability, etc. And after saving the template, use the menu:

  • Create a task using a template;
  • Add a subtask for the template;
  • Edit;
  • Delete.

Rights and roles in tasks

In the "Tasks" section, you can assign employees to several roles:

  • Task manager - primarily performs supervisory functions, monitoring the progress of the task. This could be the portal creator, administrator, department head, etc. The task director can be selected in the appropriate field. That is, you actually set the task, and enter the name, for example, of your manager in the field.
  • The person responsible for the task is the performer, the one who will complete the assigned task within the specified terms and conditions.
  • Observers are those who can watch the progress of a task without interfering with its execution. The observer can leave comments on the task, but cannot complete it. His participation in the task will be of an advisory nature. The number of observers is not limited.
  • Co-executors - if you have a large task and it will be difficult for one employee to cope with it, you can assign the task to several colleagues at once by selecting their names in the field that will appear after clicking on the corresponding button. The number of co-executors is also unlimited. They will have the same rights as the performer.


You can assign roles both in the task creation interface and in the task viewing interface. Also note that if you indicate that you are not the director, then after creating the task, only the person specified by the director will be able to make edits to it. This can also be done by the portal administrator and its creator.

In order to assign new performers or observers, click on the “Change” button next to the corresponding role and select the required employees in the dialog box that appears. This is convenient if you do not need to change the conditions of the task, but need to expand, reduce, or replace the circle of employees working on the task. To make other edits, use the “Edit” button.

Checklists and subtasks

On the page for creating (and editing) a task, under the field for the task text, there is a “Checklist” field. It often happens that a task has a number of small actions that the performer must perform. These are peculiar subtasks for the person responsible for this task, that is, they will be performed by one person.


It’s convenient to add this kind of action to a checklist. By clicking on the “Add” link, enter the required action and press the “Enter” key. Enter several subtasks and you will have a numbered list with checkboxes in which the performer can tick as soon as the action is completed.

Completed subtasks are displayed in the “Completed” column and are automatically crossed out.

If you need to create a subtask, the performer of which will be another employee, open the task and in the upper right corner, click the “Add” button and select “Add subtask” from the drop-down menu. Next, follow the usual algorithm: fill out the title and description fields, assign a person in charge, etc. When the subtask is created, you will see the “Base task” column, and a nested subtask with a different owner will appear in the main task.

Task menu

It greatly simplifies working with tasks from the menu at the top of the page, where the tabs are distributed according to roles:


You can see red “lights” near the tabs. When you go to the tab, immediately below the menu you will see a breakdown of their meaning - unviewed tasks. By clicking on the link, you can view and check the tasks. Once the tasks are reviewed, the “lights” will go off.

There are also additional items in the menu that will help you navigate the company’s tasks:

  • Favorites - the tasks that you add yourself will be displayed here. This is necessary in order to quickly gain access to tasks that interest you.
  • Everything - absolutely all tasks that relate to you in one way or another will be displayed here. To view specific tasks, use the filters:
  1. Simple - tasks can be sorted depending on your role + view pending and completed.
  2. Advanced - where you can filter tasks by ID, responsible, director, co-executor, observer, status, work group, tags, dates of creation, closing, being in work, etc.
  • Employment - display the employment of your employees during the reporting period.
  • Projects - tasks related to individual groups (projects) will be shown here.
  • Reports - here you can view task reports.
  • Applications - There are a number of applications from partners that help with tasks. You will only have this item if you have them connected.

If in the company structure you are appointed as the head of a department, then in the tasks menu you will have another item “Managing”, where the tasks of the employees of your department and subordinates, if any, will be displayed. The director of the company will see the tasks of all employees.


In this chart, you can track who has how many tasks in their work, and at what stage they are. So, if you have overworked employees, you can change the person in charge and reassign tasks. Red lights most often indicate overdue or unreviewed tasks.

Gantt chart

In the task menu item tabs, you can choose how you want to sort tasks. By default, tasks are presented in the form of a Gantt chart - tasks are distributed by due date. It is convenient to use this diagram when you are the task setter and you need to control the deadlines for task groups.

If you have a number of related tasks, that is, the deadlines for one task will depend on others, you can link them in a diagram, which will allow you to move the deadlines of the entire bunch of tasks in almost one click, without having to edit each one.

To do this, hover over a task whose deadline may affect others. Transparent circles will appear along the edges of the task - hold down the left mouse button and draw a line to the “dependent” task. You will see the relationship as a gray line with an arrow that will point to the “dependent” task.

In this case, if your deadline for one task is delayed, you do not need to edit it and change the dates. All you have to do is select the Gantt Chart in the task sorting and move the task to the required date. The due date of the related, “dependent” task will also change by exactly this period. Changes will be displayed in the tasks themselves, recorded in history, and performers will receive notifications in the business chat and live feed.


Tasks can be linked in four ways: the end of one task with the end of another, the beginning of a task with the beginning of another, and crosswise - the end of one task with the beginning of another, and the beginning of one with the end of another.

This method of setting deadlines is suitable for managing large projects that include several tasks that are dependent on each other. You just need to make the appropriate connections and keep track of deadlines.

A Gantt chart is also suitable for distributing tasks among employees. Thanks to this chart, you can determine how busy your employee is.

By going to the “Employment” tab in the tasks menu, you will see that on the left you will see not tasks, but your employees, while the field on the right will show the deadlines for completing assigned tasks.

Group Actions

You can perform the same actions with a group of tasks. For example, you need to complete them or assign a new person in charge, select the tasks in the list by checking the boxes and select the required action at the bottom. Available to you:

  • Complete
  • Specify a deadline;
  • Move the deadline forward;
  • Move the deadline back;
  • Change the person in charge;
  • Change director;
  • Add observer;
  • Add a co-executor;
  • Add to favorites;
  • Remove from favorites;
  • Specify group;
  • Delete.


This menu is available in any tab of the “Tasks” section, except for “Employment”, “Projects” and “Reports”.

Groups

If you are leading a large global project with many people involved and a large number of tasks assigned, you will find it more convenient to view them as part of a working group. To do this, go to the “Groups” section in the menu on the left and create a group (click on the “Create Group” button in the upper right corner).

In the context menu you should fill in information about the group: name, description, icon (optional). And configure access rights:

  • The group is visible to everyone (if it concerns the work of all employees);
    Open for free entry (so that you don’t have to confirm the rights of employees every time);
  • The group is available on the extranet (if you use third party services, you can invite them to this group and they will only see it).

The next tab configures the capabilities of the group - a list of necessary tools that will be available to the group for work:

  • Photo gallery;
  • Calendar;
  • Tasks;
  • Disk;
  • Messages;
  • Search;
  • Wiki;
  • Lists.

If you do not need some features, you can uncheck unnecessary items. In the next tab you invite performers, and in the “Advanced” tab you set the access rights of group members.

After creating a group, its menu will be displayed at the top, which will completely repeat the items that were selected in the “Opportunities” tab. By selecting the “Tasks” item, you can view and set tasks within this workgroup.

If you already have tasks that belong to the newly created group, you just need to go to edit the task and link it to the desired workgroup.


After this, the task will appear in your group's menu, and it will be more convenient for you to track it as part of your work on a specific project.

Business processes

Business processes are a specialized tool that allows you to automate work and associate it with tasks, for example, so that a task is assigned automatically.

Important!
Business processes are available starting with the “Team” tariff of cloud Bitrix24.

For example, you need that after adding a lead, an employee is automatically assigned the task of contacting him. To do this, use the CRM settings, go to the “Automation” - “Business Processes” - Lead - “Add Template” section, where already in the business process designer you can create and edit blocks to create a task for the manager.

This is especially true if your CRM is tied to a web form on your site. When you receive a request or question from a user, a lead is automatically created, and a task is also automatically assigned to the employee. Firstly, it saves your time significantly, since you do not need to set a task for each individual application. And secondly, you always quickly process requests from your potential clients.

Search for tasks

If you have too many active tasks and need to quickly find one of them, you can use keyword search.

In the upper right corner in the “Tasks” section, next to the “Add task” button, there is a special field in which you enter a word or phrase from the task you are interested in. After pressing the “Enter” key, the portal will filter out all tasks with this keyword (including completed ones) and display them in a list below.

You can also search for a task by its number. When creating a task, the portal assigns it a number that you need to enter in the search field.

So, the “Tasks” section allows you to assign tasks to both individual employees and an entire group. You can filter tasks depending on your role, monitor the completion of tasks of other employees, and also be a co-executor. For convenience, you can link tasks to specific clients (leads) and work groups. You can also automate task creation using recurrence settings or business processes.

“Tasks” is a convenient and functional tool for managing personnel, conducting large and small projects, as well as organizing the effective work of your company.

How to quickly and easily transfer a site to Bitrix? We'll tell you about the reasons for the transition and what you will get after migrating your site to Bitrix.

Recently, more and more clients want their website to run on a stable and secure CMS, such as 1C-Bitrix. It's understandable: choosing a management system (CMS) on which your website or online store will run is as important as choosing a company name - it will influence every decision you make in the future. So, the choice of CMS directly determines what kind of website you will create, what its design will be, and how you will update and support it in the future.

If your company already has a working website that you plan to transfer to Bitrix, you are probably wondering how to transfer content from the old CMS to the new one. There may be enough reasons to plan a transition to Bitrix: you want to completely change the CMS to automate business processes, or you want to make your website adaptive and choose a new design - the choice is yours.

Reasons for moving.

Perhaps you work on Wordpress, Drupal or Joomla and have outgrown these solutions by now. Either you are looking for advanced functionality or you have decided to change the design of your main website. Here are a few reasons that will help you decide whether to switch to Bitrix:

  • 1C-Bitrix has all the necessary functionality out of the box
  • 1C-Bitrix has detailed documentation, training courses and competent technical support
  • 1C-Bitrix has the largest selection of ready-made solutions that are suitable for any business
  • If necessary, any functionality of the ready-made solution can be modified to suit your business tasks
  • Regular updates that fix bugs
  • Bitrix works with online cash registers and you can work according to Federal Law-54
Plan for website conversion to Bitrix.

Deciding to transfer your website to Bitrix is ​​one thing, but transferring it is another story. In order to do everything right and along the way not to lose the most important part of the site - the content, we have prepared a plan for evacuating your site to Bitrix.

In order to transfer a site to Bitrix you need:

  • Evaluate your current website and how content and design will be imported
  • Back up all data
  • Install CMS 1C-Bitrix
  • Install a ready-made solution from our catalog
  • Create 301 redirects for old landing pages
  • Import content to new site
  • Launching a new website
Additionally, every migration project includes a content inventory: typically a spreadsheet that lists the existing content's name, URL, type, location in the site structure, and attribution. This will ensure that you don't forget to transfer anything.

What will you get after migrating your site to Bitrix?

Upon completion of the site transfer to Bitrix, you will receive:

  • Stable and secure CMS
  • Competent and prompt technical support
  • Wide selection of ready-made solutions, from corporate websites to online stores
  • SEO module that allows you to work with meta data templates and simplifies the process of optimization for search engines
  • Composite website technology, BigData service, email newsletters
  • Possibility of working under Federal Law-54 with online submission of data to the Federal Tax Service
If you are still thinking about whether to transfer your website to Bitrix or not, it seems that the answer is obvious. You can get acquainted with ours and choose the one that suits your business needs specifically.

Conclusion.

After transferring your old website to 1C-Bitrix, you will ultimately receive an intuitive content management system, a functional website, and competent technical support. A complete kit for running a successful business on the Internet.

Put yourself in the customer's shoes:
1. CMS with rich experience (more than 10 years on the market)
2. Has the largest share of eccommerce in Russia
3. Has free high-quality support
4. Has extensive documentation
5. In all regions, from small to top studios, you can easily find specialists.
6. Backward compatibility. Complete and unconditional. You will always get access to new features and you won’t have to pay a ton of extra money to programmers to upgrade to a new version of the engine because... the old one is no longer maintained and it is teeming with holes.
7. Most of the functionality you need is already ready and has been tested for years. Just essentially stretch the template + slightly customize the logic to suit your power supplies.
8. There is standard integration with 1C, our entire business in Russia is almost based on it.

Key: “business does not like risks,” and therefore, in most cases, bitrix is ​​the most convenient and profitable system for the customer, at least in Russia.

Over 6 years of experience in the field of web studios, I have seen so many companies that were written for some:
a) Self-written engines
b) Free engines that have been nailed down with functionality that is not included in them
c) Or even in Python/Ruby
... which none of the top 10-20 regional studios (RnD) wanted to support, and then they rewrote the projects again ... on bitrix.

Bitrix is ​​the industry standard for ecommerce in Russia. Now there is a global trend in the market - work on supporting and developing projects is becoming more and more than work on creating new ones.

And when you write on the bitrix framework, you will always have a lot of work, because... bitrix is ​​not only popular, but is becoming more and more popular, keep an eye on the vector. Now it is one of the top 8 CMS in the world, in recent years it has added 5 positions and continues to increase its share.

And as for quality... Sometimes the association with PHP comes to mind. PHP has long won a huge market share, but then it experienced some period of stagnation. And here there are pythons on the side, chop them up. And everyone scolded PHP, they said that it did not have the best OOP support (which improved a little with the first 5 releases), but articles in the spirit of PHP were fashionable on the Internet, “PHP is everything”, now its share in the web software market is being bitten off.
But no wonder, due to the large community and rich inertia, PHP simply began to improve, they overcame the crisis of PHP6 and disagreements, and voila, already php7 is already “more or less”, and php has gone uphill.

I think the same with Bitrix. It is more likely that it will rewrite its core into human code than it will be removed from the market.
Work on the new core is actively underway, and it has been living in parallel with the old one for 4 years now. From release to release, an increasing part of the modules, components, and database structure are rewritten, which is important with support for code and data migration.

Well, what is important is those people who write this code. If you are in a top web studio with good architects and leading programmers, the code on the bitrix Framework will be written with high quality, and competently on a new core in the tradition of OOP, the use of patterns, correctly assembled into modules and components. If you are a freelancer or in a small studio, most likely your projects will smell “bad”, all the logic will be in templates, or in general in 1 template which will completely consist of continuous routing.