{"id":470237,"date":"2025-08-11T21:00:38","date_gmt":"2025-08-11T21:00:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=470237"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=470237","title":{"rendered":"<span>\u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u0438\u043b\u043b\u0438\u043e\u043d: \u043a\u0430\u043a CDP \u043e\u0442 \u0411\u0438\u0437\u043d\u0435\u0441\u041f\u0440\u043e\u0444\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0427\u0430\u0441\u0442\u044c 1. \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u0448\u0435\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u043d\u0430 \u0410\u043c\u0438\u0440\u043e\u0432\u0430, \u044f \u0438\u0437\u00a0digital-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0442\u043e\u0440\u0430 \u0411\u0438\u0437\u043d\u0435\u0441\u041f\u0440\u043e\u0444\u0438 \u2014 \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u043c \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c \u0411\u0438\u0442\u0440\u0438\u043a\u044124, \u0430 \u0435\u0449\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 CRM \u041124 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e CDP (Customer Data Platform) \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043e\u0442 A\/B \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u0431\u044b\u043b\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a \u2014 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0447\u0435\u0440\u0435\u0437 Whatsapp, \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u0442\u043e\u0432 \u0438 \u0442.\u0434. \u0427\u0430\u0441\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433 \u0434\u0435\u0440\u0436\u0430\u043b \u0443 \u0441\u0435\u0431\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0441\u0430\u043d\u0438\u0439 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u0432\u0435\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0442\u044c \u0431\u0430\u0437\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0435\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0435\u043b\u0438\u043a\u0430.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c CDP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e, \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u043a\u0443 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u0430 \u043f\u0440\u043e\u0434\u0430\u0436 \u0438 \u043e\u0442\u0434\u0435\u043b\u0430 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u0430. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0430, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 CRM, \u0432\u0432\u0438\u0434\u0443 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439. \u041c\u044b \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, 1\u0421 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c\u0438.<\/p>\n<p>CDP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u0434\u0435\u043b\u0430\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434. \u0422\u0430\u043a\u0436\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043c\u0435\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e k-\u0441\u0440\u0435\u0434\u043d\u0438\u043c, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 RFM-\u0430\u043d\u0430\u043b\u0438\u0437. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a \u043f\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c, \u0442\u0430\u043a \u0438 \u043f\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0431\u0430\u0437\u044b, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u0430\u043d\u0430\u043b\u0430\u043c: email,\u00a0\u0421\u041c\u0421, Whatsapp, \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c \u043a\u0430\u0441\u0430\u043d\u0438\u0439, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u00ab\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0442\u044c\u00bb \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u2014 \u0442\u0435, \u043a\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438 \u0442\u0435, \u043a\u0442\u043e \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u043b \u2014 \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0da\/0b9\/afc\/0da0b9afc587947ac9a931f3445abf38.png\" alt=\"\" title=\"\" width=\"839\" height=\"633\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0da\/0b9\/afc\/0da0b9afc587947ac9a931f3445abf38.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0da\/0b9\/afc\/0da0b9afc587947ac9a931f3445abf38.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u0441\u0434\u0435\u043b\u043e\u043a, \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u2014 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u2014 \u0441\u0443\u0437\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u043b \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0437\u0430\u043a\u0430\u0437\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u0431\u044b \u0434\u043e\u043a\u0443\u043f\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043c\u044b\u0442\u044c\u044f \u043f\u043e\u0441\u0443\u0434\u044b \u0438\u043b\u0438 \u0448\u0430\u043c\u043f\u0443\u043d\u044c, \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0430\u0441\u044b \u043a\u043e\u0448\u0430\u0447\u044c\u0435\u0433\u043e \u043a\u043e\u0440\u043c\u0430 \u0438 \u0442.\u0434. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u043b \u044d\u0442\u0443 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0435\u0442. \u0410 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u0445, \u043a\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043a\u0443\u043f\u0438\u043b \u0442\u043e\u0432\u0430\u0440\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e, \u0448\u0430\u043d\u0441\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u043e\u044f\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u0440\u0443\u0436\u0435\u043b\u044e\u0431\u043d\u0430\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5bf\/67a\/0ef\/5bf67a0ef28cb6256d93560930d02f29.jpeg\" alt=\"\" title=\"\" width=\"900\" height=\"821\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5bf\/67a\/0ef\/5bf67a0ef28cb6256d93560930d02f29.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5bf\/67a\/0ef\/5bf67a0ef28cb6256d93560930d02f29.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c\u0438, \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0441\u0432\u044f\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0441\u0434\u0435\u043b\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0442\u0430\u043a\u0442. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0437\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 CRM. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u043b\u0443\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u043a\u0430\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0443 \u043d\u0435\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0435\u043d\u0430 \u0438\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0432\u0430\u0436\u0434\u044b \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u043b\u0438 \u044d\u0442\u0443 \u0443\u0441\u043b\u0443\u0433\u0443.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435\u00a0\u043f\u043e \u043f\u043e\u043b\u044f\u043c \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c \u0438\u043b\u0438 \u0441\u043e \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e\u00a0\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043a\u043e\u0434 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f04\/a6a\/189\/f04a6a1891ec1569f5f9f7289ef1a166.jpeg\" alt=\"\" title=\"\" width=\"631\" height=\"375\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f04\/a6a\/189\/f04a6a1891ec1569f5f9f7289ef1a166.jpeg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f04\/a6a\/189\/f04a6a1891ec1569f5f9f7289ef1a166.jpeg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<details class=\"spoiler\">\n<summary>\u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 ORM \u0411\u0438\u0442\u0440\u0438\u043a\u0441<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\"># \u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432  \u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 ORM \u0431\u0438\u0442\u0440\u0438\u043a\u0441.  \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b `\\Bitrix\\Crm\\ContactTable` \u0438 `\\Bitrix\\Crm\\CompanyTable` \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0432\u044f\u0437\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 1\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f (\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c\/\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439), \u0430 \u0442\u0430\u043a \u0436\u0435 \u0441\u0432\u044f\u0437\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0434\u0435\u043b\u043a\u0438 (\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u0441\u043e \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432\/\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439).  \u0421\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `Bitrix\\Crm\\Relation\\RelationManager`. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0445\u0435\u043b\u043f\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0435\u0439  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\Relation\\RelationManager; use Bitrix\\Crm\\Service\\Container; use Bitrix\\Main\\Loader; use Bitrix\\TasksMobile\\Exception\\ModuleNotFoundException;  class CrmRelationHelper {     public const SUPPORTED_ENTITY_IDS = [         \\CCrmOwnerType::Contact,         \\CCrmOwnerType::Company,         \\CCrmOwnerType::Deal,         \\CCrmOwnerType::Lead,         \\CCrmOwnerType::Quote,     ];      public readonly RelationManager $manager;      public function __construct()     {         if (!Loader::includeModule('crm')) {             throw new ModuleNotFoundException('Module \"crm\" not included');         }          $this-&gt;manager = Container::getInstance()-&gt;getRelationManager();     }      public function getRelationEntityIds(int $entityTypeId, bool $onlySupported = true): array     {         $entityIds = [];         foreach ($this-&gt;manager-&gt;getParentRelations($entityTypeId) as $relation) {             $parentEntityTypeId = $relation-&gt;getParentEntityTypeId();              if (                 $onlySupported                 &amp;&amp; !\\CCrmOwnerType::isPossibleDynamicTypeId($parentEntityTypeId)                 &amp;&amp; !in_array($parentEntityTypeId, static::SUPPORTED_ENTITY_IDS, true)             ) {                 continue;             }              $entityIds[] = (int) $parentEntityTypeId;         }          foreach ($this-&gt;manager-&gt;getChildRelations($entityTypeId) as $relation) {             $childEntityTypeId = $relation-&gt;getChildEntityTypeId();              if (                 $onlySupported                 &amp;&amp; !\\CCrmOwnerType::isPossibleDynamicTypeId($childEntityTypeId)                 &amp;&amp; !in_array($childEntityTypeId, static::SUPPORTED_ENTITY_IDS, true)             ) {                 continue;             }              $entityIds[] = (int) $childEntityTypeId;         }          return array_filter(             array_unique(                 $entityIds             )         );     } }  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c var_dump(     (new \\Bizprofi\\Cdp\\Helpers\\CrmRelationHelper())-&gt;getRelationEntityIds(\\CCrmOwnerType::Contact) );  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0434\u0435\u043b\u043a\u043e\u0439 var_dump(     (new \\Bizprofi\\Cdp\\Helpers\\CrmRelationHelper())-&gt;getRelationEntityIds(\\CCrmOwnerType::Deal) ); ```  \u041f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c \u0438 \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 `\\Bitrix\\Main\\ORM\\Entity` \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430, `\\Bitrix\\Main\\ORM\\Fields\\Relations\\Reference` \u0438 `\\Bitrix\\Main\\ORM\\Fields\\ExpressionField` \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\Binding\\DealContactTable; use Bitrix\\Crm\\Binding\\EntityContactTable; use Bitrix\\Crm\\Binding\\LeadContactTable; use Bitrix\\Crm\\Binding\\QuoteContactTable; use Bitrix\\Crm\\CompanyTable; use Bitrix\\Crm\\ContactTable; use Bitrix\\Crm\\DealTable; use Bitrix\\Crm\\LeadTable; use Bitrix\\Crm\\PhaseSemantics; use Bitrix\\Crm\\QuoteTable; use Bitrix\\Crm\\Relation\\EntityRelationTable; use Bitrix\\Crm\\Service\\Container; use Bitrix\\Main\\ORM\\Entity; use Bitrix\\Main\\ORM\\Fields; use Bitrix\\Main\\ORM\\Query\\Join; use Bitrix\\Main\\ORM\\Query\\Query;  class SegmentEntitiesQueryHelper { \/\/ ... \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430     protected function addRelationEntitiesRelationsToEntities(Entity $entity): void     {         $crmEntityId = match (ltrim($entity-&gt;getDataClass(), '\\\\')) {             CompanyTable::class =&gt; \\CCrmOwnerType::Company,             ContactTable::class =&gt; \\CCrmOwnerType::Contact,             default =&gt; null,         };          if ($crmEntityId === null) {             return;         }          $this-&gt;addDealRelationsToEntity($entity);         $this-&gt;addDealExpressionsToEntity($entity);         $this-&gt;addDealRelationEntitiesRelationsToEntities($entity, $crmEntityId);          $this-&gt;addBaseRelationEntitiesRelationsToEntities($entity, $crmEntityId);     }      protected function addDealRelationsToEntity(Entity $entity): void     {         if (ltrim($entity-&gt;getDataClass(), '\\\\') === ContactTable::class) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     'DEAL_CONTACTS',                     DealContactTable::class,                     Join::on('this.ID', 'ref.CONTACT_ID')                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }          $entity-&gt;addField(             (new Fields\\Relations\\Reference(                 'DEALS',                 DealTable::class,                 match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                     ContactTable::class =&gt; Join::on('this.DEAL_CONTACTS.DEAL_ID', 'ref.ID'),                     default =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                 }             ))-&gt;configureJoinType(Join::TYPE_LEFT)         );          $entity-&gt;addField(             (new Fields\\Relations\\Reference(                 'SUCCESS_DEALS',                 DealTable::class,                 (match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                     ContactTable::class =&gt; Join::on('this.DEAL_CONTACTS.DEAL_ID', 'ref.ID'),                     default =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                 })-&gt;where('ref.STAGE_SEMANTIC_ID', PhaseSemantics::SUCCESS)             ))-&gt;configureJoinType(Join::TYPE_LEFT)         );     }      protected function addDealExpressionsToEntity(Entity $entity): void     {         $entity-&gt;addField(             Query::expr()-&gt;sum('DEALS.OPPORTUNITY_ACCOUNT'),             'DEALS_SUM_OPPORTUNITY_ACCOUNT'         );          $entity-&gt;addField(             Query::expr()-&gt;sum('SUCCESS_DEALS.OPPORTUNITY_ACCOUNT'),             'SUCCESS_DEALS_SUM_OPPORTUNITY_ACCOUNT'         );          $entity-&gt;addField(             Query::expr()-&gt;countDistinct('DEAL_CONTACTS.DEAL_ID'),             'DEALS_COUNT'         );          $entity-&gt;addField(             Query::expr()-&gt;countDistinct('SUCCESS_DEALS.ID'),             'SUCCESS_DEALS_COUNT'         );          $this-&gt;addDealExpressionsLastDateToEntity($entity);     }      protected function addDealExpressionsLastDateToEntity(Entity $entity): void     {         foreach ($this-&gt;getDealsDateFieldNames() as $fieldName) {             $entity-&gt;addField(                 Query::expr()-&gt;max(\"DEALS.{$fieldName}\"),                 \"DEALS_MAX_{$fieldName}\"             );              $entity-&gt;addField(                 Query::expr()-&gt;max(\"SUCCESS_DEALS.{$fieldName}\"),                 \"SUCCESS_DEALS_MAX_{$fieldName}\"             );         }     }      protected function getDealsDateFieldNames(): array     {         $factory = Container::getInstance()-&gt;getFactory(\\CCrmOwnerType::Deal);          $fields = $factory-&gt;getFieldsInfoByMap();         $userFields = $factory-&gt;getUserFieldsInfo();          $fieldNames = [];         foreach (array_merge($fields, $userFields) as $code =&gt; $fieldData) {             if ($fieldData['TYPE'] === 'date' || $fieldData['TYPE'] === 'datetime') {                 $fieldNames[] = $code;             }         }          return $fieldNames;     }      protected function addDealRelationEntitiesRelationsToEntities(Entity $entity, int $crmEntityId): void     {         $relationEntityIds = array_diff(             (new CrmRelationHelper())-&gt;getRelationEntityIds(\\CCrmOwnerType::Deal),             [$crmEntityId]         );          foreach ($relationEntityIds as $relationEntityId) {             $crmEntityTypeName = \\CCrmOwnerType::ResolveName($relationEntityId);              switch ($relationEntityId) {                 case \\CCrmOwnerType::Contact:                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}_RELATION\",                             DealContactTable::class,                             Join::on('this.DEALS.ID', 'ref.DEAL_ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                      $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}\",                             ContactTable::class,                             Join::on(\"this.DEAL_{$crmEntityTypeName}_RELATION.CONTACT_ID\", 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Company:                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}\",                             CompanyTable::class,                             Join::on('this.DEALS.COMPANY_ID', 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Lead:                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}\",                             LeadTable::class,                             Join::on('this.DEALS.LEAD_ID', 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Quote:                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}\",                             QuoteTable::class,                             Join::on('this.DEALS.QUOTE_ID', 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 default:                     if (                         !\\CCrmOwnerType::isPossibleDynamicTypeId($relationEntityId)                         || $relationEntityId === \\CCrmOwnerType::Undefined                     ) {                         break;                     }                      if (!$entity-&gt;hasField('DEAL_RELATIONS')) {                         $entity-&gt;addField(                             (new Fields\\Relations\\Reference(                                 \"DEAL_RELATIONS\",                                 EntityRelationTable::class,                                 Join::on('this.DEALS.ID', 'ref.SRC_ENTITY_ID')                                     -&gt;where('ref.SRC_ENTITY_TYPE_ID', \\CCrmOwnerType::Deal)                             ))-&gt;configureJoinType(Join::TYPE_LEFT)                         );                     }                      $factory = Container::getInstance()-&gt;getFactory($relationEntityId);                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             \"DEAL_{$crmEntityTypeName}\",                             $factory-&gt;getDataClass(),                             Join::on('this.DEAL_RELATIONS.DST_ENTITY_ID', 'ref.ID')                                 -&gt;where('this.DEAL_RELATIONS.DST_ENTITY_TYPE_ID', $relationEntityId),                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;             }              $entity-&gt;addField(                 Query::expr()-&gt;countDistinct(\"DEAL_{$crmEntityTypeName}.ID\"),                 \"DEAL_{$crmEntityTypeName}_COUNT\"             );         }     }      protected function addBaseRelationEntitiesRelationsToEntities(Entity $entity, int $crmEntityId): void     {         $relationEntityIds = array_diff(             (new CrmRelationHelper())-&gt;getRelationEntityIds($crmEntityId),             [\\CCrmOwnerType::Deal]         );          foreach ($relationEntityIds as $relationEntityId) {             $crmEntityTypeName = \\CCrmOwnerType::ResolveName($relationEntityId);              switch ($relationEntityId) {                 case \\CCrmOwnerType::Company:                     if (ltrim($entity-&gt;getDataClass(), '\\\\') !== ContactTable::class) {                         break;                     }                      $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             'COMPANIES',                             CompanyTable::class,                             Join::on('this.COMPANY_BINDINGS.COMPANY_ID', 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Contact:                     if (ltrim($entity-&gt;getDataClass(), '\\\\') !== CompanyTable::class) {                         break;                     }                      $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             $crmEntityTypeName,                             ContactTable::class,                             Join::on('this.CONTACT_BINDINGS.CONTACT_ID', 'ref.ID')                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Lead:                     if (ltrim($entity-&gt;getDataClass(), '\\\\') === ContactTable::class) {                         $entity-&gt;addField(                             (new Fields\\Relations\\Reference(                                 'LEAD_CONTACTS',                                 LeadContactTable::class,                                 Join::on('this.ID', 'ref.CONTACT_ID')                             ))-&gt;configureJoinType(Join::TYPE_LEFT)                         );                     }                      $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             $crmEntityTypeName,                             LeadTable::class,                             match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                                 ContactTable::class =&gt; Join::on('this.LEAD_CONTACTS.LEAD_ID', 'ref.ID'),                                 default =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                             }                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 case \\CCrmOwnerType::Quote:                     if (ltrim($entity-&gt;getDataClass(), '\\\\') === ContactTable::class) {                         $entity-&gt;addField(                             (new Fields\\Relations\\Reference(                                 'QUOTE_CONTACTS',                                 QuoteContactTable::class,                                 Join::on('this.ID', 'ref.CONTACT_ID')                             ))-&gt;configureJoinType(Join::TYPE_LEFT)                         );                     }                      $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             $crmEntityTypeName,                             QuoteTable::class,                             match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                                 ContactTable::class =&gt; Join::on('this.QUOTE_CONTACTS.QUOTE_ID', 'ref.ID'),                                 default =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                             }                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;                 default:                     if (                         !\\CCrmOwnerType::isPossibleDynamicTypeId($relationEntityId)                         || $relationEntityId === \\CCrmOwnerType::Undefined                     ) {                         break;                     }                      if (!$entity-&gt;hasField('ENTITY_CONTACTS')) {                         $entity-&gt;addField(                             (new Fields\\Relations\\Reference(                                 'ENTITY_CONTACTS',                                 EntityContactTable::class,                                 Join::on('this.ID', 'ref.CONTACT_ID')                             ))-&gt;configureJoinType(Join::TYPE_LEFT)                         );                     }                      $factory = Container::getInstance()-&gt;getFactory($relationEntityId);                     $entity-&gt;addField(                         (new Fields\\Relations\\Reference(                             $crmEntityTypeName,                             $factory-&gt;getDataClass(),                             match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                                 CompanyTable::class =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                                 default =&gt; Join::on('this.ENTITY_CONTACTS.ENTITY_ID', 'ref.ID')                                     -&gt;where('this.ENTITY_CONTACTS.ENTITY_TYPE_ID', $relationEntityId),                             }                         ))-&gt;configureJoinType(Join::TYPE_LEFT)                     );                     break;             }              $entity-&gt;addField(                 Query::expr()-&gt;countDistinct(match ($relationEntityId) {                     \\CCrmOwnerType::Company =&gt; \"COMPANIES.ID\",                     default =&gt; \"{$crmEntityTypeName}.ID\",                 }),                 \"{$crmEntityTypeName}_COUNT\"             );         }     } \/\/ ... \u0442\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430 } ```  \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u0430\u043c, \u0430\u0434\u0440\u0435\u0441\u0443 \u0438 \u0442\u0440\u0435\u043a\u0438\u043d\u0433\u0443  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\AddressTable; use Bitrix\\Crm\\CompanyTable; use Bitrix\\Crm\\LeadTable; use Bitrix\\Crm\\RequisiteTable; use Bitrix\\Crm\\Tracking\\Internals\\TraceChannelTable; use Bitrix\\Crm\\Tracking\\Internals\\TraceEntityTable; use Bitrix\\Crm\\Tracking\\Internals\\TraceTable; use Bitrix\\Main\\ORM\\Entity; use Bitrix\\Main\\ORM\\Fields; use Bitrix\\Main\\ORM\\Query\\Join;  class SegmentEntitiesQueryHelper { \/\/ ... \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430     protected function addRequisiteRelationsToEntity(Entity $entity): void     {         if (! $entity-&gt;hasField('RQ')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"RQ\",                     RequisiteTable::class,                     Join::on(\"this.ID\", 'ref.ENTITY_ID')                         -&gt;where('ref.ENTITY_TYPE_ID', match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                             CompanyTable::class =&gt; \\CCrmOwnerType::Company,                             default =&gt; \\CCrmOwnerType::Contact                         })                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }          if (! $entity-&gt;hasField('RQ_ADDR')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"RQ_ADDR\",                     AddressTable::class,                     Join::on(\"this.RQ.ID\", 'ref.ENTITY_ID')                         -&gt;where('ref.ENTITY_TYPE_ID', \\CCrmOwnerType::Requisite)                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }      }      protected function addTrackingTraceRelationsToEntity(Entity $entity): void     {         if (! $entity-&gt;hasField('TRACKING_ENTITY')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"TRACKING_ENTITY\",                     TraceEntityTable::class,                     Join::on(\"this.ID\", 'ref.ENTITY_ID')                         -&gt;where('ref.ENTITY_TYPE_ID', match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                             CompanyTable::class =&gt; \\CCrmOwnerType::Company,                             default =&gt; \\CCrmOwnerType::Contact                         })                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }          if (! $entity-&gt;hasField('TRACKING')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"TRACKING\",                     TraceTable::class,                     Join::on(\"this.TRACKING_ENTITY.TRACE_ID\", 'ref.ID')                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }          if (! $entity-&gt;hasField('TRACKING_CHANNEL')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"TRACKING_CHANNEL\",                     TraceChannelTable::class,                     Join::on(\"this.TRACKING_ENTITY.TRACE_ID\", 'ref.ID')                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }     }      protected function addAddressToLeadEntity(): void     {         $entity = LeadTable::getEntity();         if (! $entity-&gt;hasField('ADDR')) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     \"ADDR\",                     AddressTable::class,                     Join::on(\"this.ID\", 'ref.ENTITY_ID')                         -&gt;where('ref.ENTITY_TYPE_ID', \\CCrmOwnerType::Lead)                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }     } \/\/ ... \u0442\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430 } ```  \u0422\u0430\u043a \u0436\u0435 \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0435\u0439. \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.  ```php \/**  * @var string $entity = contact|company  *\/ foreach (GetModuleEvents(\"bizprofi.cdp\", \"onGetEntityQuery\", true) as $arEvent) {     try {         ExecuteModuleEventEx($arEvent, [$entity]);     } catch (\\Exception|\\Error $e) {         \/\/skip event     } } ```  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0435 \u043f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432 `\\Bitrix\\Main\\ORM\\Query\\Query` \u0438 ORM \u0434\u0430\u043b\u044c\u0448\u0435 \u0441\u0430\u043c\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u043a\u0430\u043a\u0438\u0435 JOIN \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c.  \u0424\u0438\u043b\u044c\u0442\u0440\u044b \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 `\\Bitrix\\Crm\\ContactTable` \u0438\u043b\u0438 `\\Bitrix\\Crm\\CompanyTable` \u043f\u043e \u043f\u043e\u043b\u044e ID \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0444\u0438\u043b\u044c\u0442\u0440 \u0442\u043e \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c, \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043a\u0430\u043a \u0444\u0438\u043b\u044c\u0442\u0440 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441.  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\CompanyTable; use Bitrix\\Crm\\ContactTable; use Bitrix\\Main\\Loader; use Bitrix\\Main\\ORM\\Query\\Filter\\Condition; use Bitrix\\Main\\ORM\\Query\\Filter\\ConditionTree; use Bitrix\\Main\\ORM\\Query\\Query; use Bizprofi\\Cdp\\DataManagers\\EO_Segments; use Bizprofi\\Cdp\\DataManagers\\SegmentFiltersTable; use Bizprofi\\Cdp\\Enums\\EntityType; use Bizprofi\\Cdp\\Enums\\FilterLogic;  class SegmentEntitiesQueryHelper {     protected static bool $initAdditionalEntityRelations = false;      protected ?ConditionTree $ct;      public function __construct(protected readonly EO_Segments $segment, ?ConditionTree $ct = null)     {         if (!Loader::includeModule('crm')) {             throw new \\Exception('Not include module \"crm\"');         }         $this-&gt;ct = $ct ?: $this-&gt;getSegmentEntitiesConditionTree();     }      protected function getSegmentEntitiesConditionTree(): ?ConditionTree     {         $segmentFilters = SegmentFiltersTable::query()             -&gt;addSelect('*')             -&gt;where('ENTITY', $this-&gt;segment-&gt;getEntity())             -&gt;where('SEGMENT_ID', $this-&gt;segment-&gt;getId())             -&gt;addOrder('ORDER', 'ASC')             -&gt;exec()             -&gt;fetchCollection();          if ($segmentFilters-&gt;count() &lt;= 0) {             return null;         }          if ($segmentFilters-&gt;count() === 1) {             foreach ($segmentFilters as $segmentFilter) {                 return ConditionTreeHelper::arrayToConditionTree($segmentFilter-&gt;getFilter());             }         }          $or = (new ConditionTree())-&gt;logic(ConditionTree::LOGIC_OR);         $ct = new ConditionTree();         foreach ($segmentFilters as $segmentFilter) {             if (in_array($segmentFilter-&gt;getLogic(), [FilterLogic::OR, FilterLogic::NOTOR], true)) {                 $or-&gt;where($ct);                 $ct = new ConditionTree();             }              $ct-&gt;where(                 ConditionTreeHelper::arrayToConditionTree($segmentFilter-&gt;getFilter())                     -&gt;negative(                         in_array($segmentFilter-&gt;getLogic(), [FilterLogic::NOTOR, FilterLogic::NOTAND], true)                     )             );         }          if ($or-&gt;hasConditions() &amp;&amp; $ct-&gt;hasConditions()) {             $or-&gt;where($ct);         }          return $or-&gt;hasConditions() ? $or: $ct;     }      public function getQuerySelect(): Query     {         if (!($query = $this-&gt;getEntityQuery())) {             throw new \\Exception('Incorrect entity');         }          if (!$this-&gt;ct) {             return $query;         }          $this-&gt;setConditionsToQuery($query, $this-&gt;getModifyMultipleFilterConditions());          return $query;     }      protected function getEntityQuery(): ?Query     {         if (!static::$initAdditionalEntityRelations) {             $this-&gt;initAdditionalEntityRelations();              foreach (GetModuleEvents(\"bizprofi.cdp\", \"onGetEntityQuery\", true) as $arEvent) {                 try {                     ExecuteModuleEventEx($arEvent, [$this-&gt;segment-&gt;getEntity()]);                 } catch (\\Exception|\\Error $e) {                     \/\/skip event                 }             }              static::$initAdditionalEntityRelations = true;         }          return match ($this-&gt;segment-&gt;getEntity()) {             EntityType::CONTACT =&gt; ContactTable::query(),             EntityType::COMPANY =&gt; CompanyTable::query(),             default =&gt; null,         };     }      protected function getModifyMultipleFilterConditions(): ConditionTree     {         \/\/ \u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d 1 \u0444\u0438\u043b\u044c\u0442\u0440 \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0435\u0433\u043e         if (ConditionTreeHelper::isBaseConditions($this-&gt;ct)) {             return clone $this-&gt;ct;         }          \/\/ \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418         if ($this-&gt;ct-&gt;logic() !== ConditionTree::LOGIC_OR) {             \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 ConditionTree \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.             $ct = new ConditionTree();             foreach ($this-&gt;ct-&gt;getConditions() as $condition) {                 $not = '';                 if ($condition instanceof ConditionTree &amp;&amp; ConditionTreeHelper::isNegative($condition)) {                     $not = 'NOT ';                 }                  $subQuery = str_replace(                     '%',                     '%%',                     $this-&gt;getModifyMultipleFilterConditionSubQuery($condition)                 );                 $ct-&gt;whereExpr(                     \"%s {$not}IN ({$subQuery})\",                     ['ID']                 );             }              return $ct;         }          \/\/ \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0418\u041b\u0418         $or = new ConditionTree();         $or-&gt;logic(ConditionTree::LOGIC_OR);         foreach ($this-&gt;ct-&gt;getConditions() as $condition) {             $ct = new ConditionTree();             \/\/ \u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 ConditionTree \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c.             foreach ($condition-&gt;getConditions() as $c) {                 $not = '';                 if ($condition instanceof ConditionTree &amp;&amp; ConditionTreeHelper::isNegative($condition)) {                     $not = 'NOT ';                 }                  $subQuery = str_replace(                     '%',                     '%%',                     $this-&gt;getModifyMultipleFilterConditionSubQuery($c)                 );                 $ct-&gt;whereExpr(                     \"%s {$not}IN ({$subQuery})\",                     ['ID']                 );             }             $or-&gt;where($ct);         }          return $or;     }      protected function getModifyMultipleFilterConditionSubQuery(Condition|ConditionTree $ct): string     {         $subQuery = $this-&gt;getEntityQuery()             -&gt;addSelect('ID');          if ($ct instanceof Condition) {             return $subQuery                 -&gt;where($ct)                 -&gt;getQuery();         }          \/\/ \u041f\u043e \u0441\u0443\u0442\u0438 \u043d\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0445\u043e\u0432\u0430\u043b\u0441\u044f         \/\/ \u041d\u043e \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 $ct \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 having         \/\/ \u0431\u0438\u0442\u0440\u0438\u043a\u0441 \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0445\u043d\u0435\u0442 \u0432 having \u0438 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438 \u0447\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e         if ($ct-&gt;logic() === ConditionTree::LOGIC_OR) {             return $subQuery                 -&gt;where($ct)                 -&gt;getQuery();         }          \/\/ \u0427\u0442\u043e\u0431\u044b \u0431\u0438\u0442\u0440\u0438\u043a\u0441 \u0432\u0441\u0435 \u043d\u0435 \u043a\u0438\u0434\u0430\u043b \u0432 having \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0432\u0441\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432 Query \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e         foreach ($ct-&gt;getConditions() as $c) {             $subQuery-&gt;where($c);         }          return $subQuery-&gt;getQuery();     }      protected function setConditionsToQuery(Query $query, ConditionTree $ct): void     {         if ($ct-&gt;logic() === ConditionTree::LOGIC_OR) {             $query-&gt;where($ct);             return;         }          foreach ($ct-&gt;getConditions() as $condition) {             $query-&gt;where($condition);         }     } \/\/ ... \u0442\u0430\u043c \u0434\u0430\u043b\u0435\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430 } ```  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u043e\u043f\u043b\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0445\u0435\u043b\u043f\u0435\u0440 `\\Bizprofi\\Cdp\\Helpers\\SegmentEntitiesQueryHelper`  ```php if (\\Bitrix\\Main\\Loader::includeModule('bizprofi.cdp')) {     throw new \\Bitrix\\Main\\LoaderException('Not include module \"bizprofi.cdp\"'); }  if (!($segment = \\Bizprofi\\Cdp\\DataManagers\\SegmentsTable::getById(1)-&gt;fetchObject())) {     throw new \\Bitrix\\Main\\ObjectNotFoundException('Segment not found'); }  $entitiesQueryHelper = new \\Bizprofi\\Cdp\\Helpers\\SegmentEntitiesQueryHelper($segment);  $limit = 10000; $offset = 0;  $query = $entitiesQueryHelper-&gt;getQuerySelect()     -&gt;addSelect('ID')     -&gt;addOrder('ID', 'ASC')     -&gt;addGroup('ID')     -&gt;setLimit($limit)     -&gt;setOffset($offset);  $rows = $query-&gt;exec();  $clientIds = []; while ($row = $rows-&gt;fetch()) {     $clientIds[] = (int) $row['ID']; }  var_dump($clientIds); ```  \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0432\u0441\u0442\u0430\u0432\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430  ```php if (\\Bitrix\\Main\\Loader::includeModule('bizprofi.cdp')) {     throw new \\Bitrix\\Main\\LoaderException('Not include module \"bizprofi.cdp\"'); }  if (!($segment = \\Bizprofi\\Cdp\\DataManagers\\SegmentsTable::getById(1)-&gt;fetchObject())) {     throw new \\Bitrix\\Main\\ObjectNotFoundException('Segment not found'); }  $entitiesQueryHelper = new \\Bizprofi\\Cdp\\Helpers\\SegmentEntitiesQueryHelper($segment);  $limit = 10000; $offset = 0;  $query = $entitiesQueryHelper-&gt;getQuerySelect()     -&gt;registerRuntimeField(         new \\Bitrix\\Main\\ORM\\Fields\\ExpressionField('SEGMENT_ID', \"{$segment-&gt;getId()}\")     )     -&gt;registerRuntimeField(         new \\Bitrix\\Main\\ORM\\Fields\\ExpressionField('ENTITY', \"\\\"{$segment-&gt;getEntity()}\\\"\")     )     -&gt;setSelect(['SEGMENT_ID', 'ENTITY', 'ENTITY_ID' =&gt; 'ID'])     -&gt;addSelect('ID')     -&gt;addOrder('ID', 'ASC')     -&gt;addGroup('ID')     -&gt;setLimit($limit)     -&gt;setOffset($offset);  $sqlQuery = $query-&gt;getQuery();  \\Bitrix\\Main\\Application::getConnection()-&gt;queryExecute(     new \\Bitrix\\Main\\DB\\SqlExpression(         \"INSERT IGNORE INTO ?# (`SEGMENT_ID`, `ENTITY`, `ENTITY_ID`) {$sqlQuery};\",         \\Bizprofi\\Cdp\\DataManagers\\SegmentEntitiesTable::getTableName()     ) ); ```  \u041d\u043e \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043f\u0440\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445 \u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0447\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u0442\u043e\u043c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `INSERT VALUES`.<\/code><\/pre>\n<\/div>\n<\/details>\n<h3>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b<\/h3>\n<p>\u0412 CDP \u043c\u043e\u0436\u043d\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043c, \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u043b\u0438 \u0441\u0443\u043c\u043c\u0435 \u0441\u0434\u0435\u043b\u043e\u043a \u2014 \u043f\u043e \u043b\u044e\u0431\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0441 \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0430\u0437\u043e\u0439 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<p><strong>\u041c\u0435\u0442\u043e\u0434 k-\u0441\u0440\u0435\u0434\u043d\u0438\u0445<\/strong><\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442 \u0431\u0430\u0437\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 9). \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 k-\u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0443\u044e \u0431\u0430\u0437\u0443 \u043f\u043e \u0442\u0438\u043f\u0430\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u0441\u0434\u0435\u043b\u043e\u043a \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0443 \u043f\u043e \u043b\u044e\u0431\u043e\u043c\u0443 \u0438\u0437 \u043f\u043e\u043b\u0435\u0439 (\u0442\u0438\u043f\u0430 date) \u0432 \u0441\u0434\u0435\u043b\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a24\/5c7\/d7e\/a245c7d7e67dade970a4a9a3754203b6.png\" alt=\"\" title=\"\" width=\"1030\" height=\"793\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a24\/5c7\/d7e\/a245c7d7e67dade970a4a9a3754203b6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a24\/5c7\/d7e\/a245c7d7e67dade970a4a9a3754203b6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 (\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u043e\u043b\u044f \u0442\u0438\u043f\u0430 date) \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0431\u0430\u0437\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0443. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b (\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a) \u043e\u0442 20 \u0434\u043e 22, \u043e\u0442 22 \u0434\u043e 25 \u0438 \u0442.\u0434.<\/p>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u0435\u0442\u043e\u0434\u043e\u043c &#171;\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438&#187; <code>Xnorm = (X - Xmin) \/ (Xmax - Xmin)<\/code><\/p>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0432\u043e\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0435\u0442\u043e\u0434 k-mean++ , \u0430 \u0437\u0430\u0442\u0435\u043c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u043b\u0438\u0431\u043e \u043f\u043e\u043a\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 100 (\u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u043a\u0430\u043a \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435, \u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f).<\/p>\n<p>\u0414\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0435\u0432\u043a\u043b\u0438\u0434\u043e\u0432\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (\u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430), \u043a\u043e\u0440\u0435\u043d\u044c \u0441\u0443\u043c\u043c\u044b \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430 \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430. \u041a\u043e\u043d\u0442\u0430\u043a\u0442 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u043c \u0442\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443, \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435.<\/p>\n<p>\u0412\u0435\u0441 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u0432\u0435\u0441\u043e\u0432 \u0435\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u043e\u0432. \u0412\u0435\u0441 \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430 \u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u043e\u0438\u0434\u0430 \u0434\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043b\u0443\u0447\u0448\u0438\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442, \u0438\u0437 \u0432\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u0432 \u043d\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0435\u0440\u0438\u043e\u0434\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 k-\u0441\u0440\u0435\u0434\u043d\u0438\u0445, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442 \u0447\u0430\u0441\u0430 \u0434\u043e \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e \u0447\u0438\u0442\u0430\u0435\u0442 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 CSV-\u0444\u0430\u0439\u043b\u044b. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0434\u0430\u0436\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 PHP. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0430\u0437\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0431\u043e\u043b\u0435\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0437\u0430\u043d\u044f\u043b\u0430 \u043e\u043a\u043e\u043b\u043e 7 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eea\/a48\/386\/eeaa48386feba406e16f1596df9f34c0.png\" alt=\"\" title=\"\" width=\"1041\" height=\"1293\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/eea\/a48\/386\/eeaa48386feba406e16f1596df9f34c0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eea\/a48\/386\/eeaa48386feba406e16f1596df9f34c0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><strong>RFM-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0446\u0435\u043d\u043d\u044b\u0445 \u0438 \u043b\u043e\u044f\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0431\u0430\u0437\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435\u043c \u0442\u0440\u0435\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: \u043f\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 (Recency, \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u044c), \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043e\u043d\u0438 \u0438\u0445 \u0434\u0435\u043b\u0430\u044e\u0442 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043e\u0434\u0430 (Frequency, \u0447\u0430\u0441\u0442\u043e\u0442\u0430) \u0438 \u043a\u0430\u043a\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0434\u0435\u043d\u0435\u0433 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b\u0438 \u0437\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 (Monetary, \u0441\u0443\u043c\u043c\u0430).<\/p>\n<p>\u041f\u043e \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c \u0432 CDP \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f 27 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0443 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0431\u0430\u0437\u0430 \u0438 \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0442\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0438 \u0441\u043f\u044f\u0449\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/428\/30a\/64d\/42830a64d5dfff1d779829e057668e80.png\" width=\"1102\" height=\"1022\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/428\/30a\/64d\/42830a64d5dfff1d779829e057668e80.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/428\/30a\/64d\/42830a64d5dfff1d779829e057668e80.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430 \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c RFM. CDP \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 (\u0434\u0430\u0442\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043f\u043e\u043a\u0443\u043f\u043a\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u0443\u044e \u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434) \u0438 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044e RFM \u043e\u0446\u0435\u043d\u043a\u0443 \u043f\u043e \u0448\u043a\u0430\u043b\u0435 \u043e\u0442 1 \u0434\u043e 3. \u0417\u0430\u0442\u0435\u043c \u043e\u0446\u0435\u043d\u043a\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0443\u043f\u043f\u0430 \u0441 \u043e\u0446\u0435\u043d\u043a\u0430\u043c\u0438 3-3-3 \u2014 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043b\u043e\u044f\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u0430 1-1-1 \u2014 \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u043b\u043e\u044f\u043b\u044c\u043d\u044b\u0435.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a7\/4e1\/a42\/1a74e1a42e7d7ce134b70a1c840c6600.png\" alt=\"\" title=\"\" width=\"978\" height=\"985\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1a7\/4e1\/a42\/1a74e1a42e7d7ce134b70a1c840c6600.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a7\/4e1\/a42\/1a74e1a42e7d7ce134b70a1c840c6600.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043c\u043e\u0434\u0443\u043b\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043e\u0442\u0447\u0435\u0442\u044b \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f\u00a0\u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c. \u041c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435. \u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<p>\u041f\u043b\u044e\u0441 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e CDP \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0432 CRM \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0434\u0435\u043b\u043a\u0438, \u043f\u0435\u0440\u0438\u043e\u0434\u0443 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0443, \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u043e\u0442\u0440\u0430\u0437\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0430\u0445.<\/p>\n<h3>\u041a\u0430\u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u044b\u0441\u0442\u0440\u043e<\/h3>\n<p>\u0414\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432. \u0412 CDP \u0411\u0438\u0437\u043d\u0435\u0441\u041f\u0440\u043e\u0444\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0433\u0435\u043d\u0442 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 5 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0449\u0443\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c. \u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 10000 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043c\u0435\u043d\u0435\u0435 50000 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043f\u043e\u0438\u0441\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a.<\/p>\n<p>\u0426\u0438\u0444\u0440\u0430 5 \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0443\u0442\u0435\u043c. \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u043e\u043b\u0435\u0435 50000 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0434\u043a\u043e, \u0430 \u0435\u0441\u043b\u0438 \u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432 \u0434\u0432\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438. \u0412 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0443\u0445\u043e\u0434\u0438\u0442 \u043c\u0438\u043d\u0443\u0442\u0430, \u043d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b, \u0442\u043e \u043d\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0439\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9a5\/2d7\/e19\/9a52d7e199e43e7817bf5995e4cfe350.png\" alt=\"\" title=\"\" width=\"1021\" height=\"530\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9a5\/2d7\/e19\/9a52d7e199e43e7817bf5995e4cfe350.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9a5\/2d7\/e19\/9a52d7e199e43e7817bf5995e4cfe350.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h3>\n<p>\u0421\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0430 CDP \u2014 \u044d\u0442\u043e DashaMail \u0438 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0412\u041a \u0438 \u042f\u043d\u0434\u0435\u043a\u0441. \u041c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043b\u044e\u0431\u044b\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u2014 email, \u0421\u041c\u0421, \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u043e\u0432. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 CDP \u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/83a\/c59\/10d\/83ac5910d48f43a274020bc083eb7721.png\" alt=\"\" title=\"\" width=\"1164\" height=\"228\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/83a\/c59\/10d\/83ac5910d48f43a274020bc083eb7721.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/83a\/c59\/10d\/83ac5910d48f43a274020bc083eb7721.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/935474\/\"> https:\/\/habr.com\/ru\/articles\/935474\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0427\u0430\u0441\u0442\u044c 1. \u0421\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u0448\u0435\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u043d\u0430 \u0410\u043c\u0438\u0440\u043e\u0432\u0430, \u044f \u0438\u0437\u00a0digital-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0442\u043e\u0440\u0430 \u0411\u0438\u0437\u043d\u0435\u0441\u041f\u0440\u043e\u0444\u0438 \u2014 \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u043c \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c \u0411\u0438\u0442\u0440\u0438\u043a\u044124, \u0430 \u0435\u0449\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430 \u0431\u0430\u0437\u0435 CRM \u041124 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e CDP (Customer Data Platform) \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u043c\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043e\u0442 A\/B \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0435\u043b\u044c\u044e \u0431\u044b\u043b\u043e \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a \u2014 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0447\u0435\u0440\u0435\u0437 Whatsapp, \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u0442\u043e\u0432 \u0438 \u0442.\u0434. \u0427\u0430\u0441\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433 \u0434\u0435\u0440\u0436\u0430\u043b \u0443 \u0441\u0435\u0431\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u0441\u0430\u043d\u0438\u0439 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u0432\u0435\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u0442\u044c \u0440\u0438\u0441\u043a \u043f\u0435\u0440\u0435\u0433\u0440\u0435\u0442\u044c \u0431\u0430\u0437\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0435\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0435\u043b\u0438\u043a\u0430.<\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c CDP \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e, \u043a\u0430\u043a \u0441\u0432\u044f\u0437\u043a\u0443 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u0430 \u043f\u0440\u043e\u0434\u0430\u0436 \u0438 \u043e\u0442\u0434\u0435\u043b\u0430 \u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433\u0430. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0430\u0440\u043a\u0435\u0442\u043e\u043b\u043e\u0433\u0430, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 CRM, \u0432\u0432\u0438\u0434\u0443 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439. \u041c\u044b \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, 1\u0421 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c\u0438.<\/p>\n<p>CDP \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u0434\u0435\u043b\u0430\u043b\u0438 \u0437\u0430\u043a\u0430\u0437 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434. \u0422\u0430\u043a\u0436\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043c\u0435\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e k-\u0441\u0440\u0435\u0434\u043d\u0438\u043c, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 RFM-\u0430\u043d\u0430\u043b\u0438\u0437. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a \u043f\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c, \u0442\u0430\u043a \u0438 \u043f\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0431\u0430\u0437\u044b, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u0430\u043d\u0430\u043b\u0430\u043c: email,\u00a0\u0421\u041c\u0421, Whatsapp, \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430\u043c \u043a\u0430\u0441\u0430\u043d\u0438\u0439, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u00ab\u0434\u043e\u0433\u0440\u0435\u0432\u0430\u0442\u044c\u00bb \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u2014 \u0442\u0435, \u043a\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438 \u0442\u0435, \u043a\u0442\u043e \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u043b \u2014 \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u0441\u0434\u0435\u043b\u043e\u043a, \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u2014 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434, \u0430 \u0437\u0430\u0442\u0435\u043c \u043a \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u2014 \u0441\u0443\u0437\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u043b \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0437\u0430\u043a\u0430\u0437\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u043e\u0432 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u0431\u044b \u0434\u043e\u043a\u0443\u043f\u0438\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043c\u044b\u0442\u044c\u044f \u043f\u043e\u0441\u0443\u0434\u044b \u0438\u043b\u0438 \u0448\u0430\u043c\u043f\u0443\u043d\u044c, \u043f\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0430\u0441\u044b \u043a\u043e\u0448\u0430\u0447\u044c\u0435\u0433\u043e \u043a\u043e\u0440\u043c\u0430 \u0438 \u0442.\u0434. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u043b \u044d\u0442\u0443 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435, \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0435\u0442. \u0410 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0435\u0445, \u043a\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043a\u0443\u043f\u0438\u043b \u0442\u043e\u0432\u0430\u0440\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e, \u0448\u0430\u043d\u0441\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u043e\u044f\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u0440\u0443\u0436\u0435\u043b\u044e\u0431\u043d\u0430\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c\u0438, \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0441\u0432\u044f\u0437\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0441\u0434\u0435\u043b\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0442\u0430\u043a\u0442. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0437\u043d\u044b\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043e\u043d\u0438 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 CRM. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u043b\u0443\u0433\u0430 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u043a\u0430\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0443 \u043d\u0435\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0435\u043d\u0430 \u0438\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u043a\u0432\u0438\u0437\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0432\u0430\u0436\u0434\u044b \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u043b\u0438 \u044d\u0442\u0443 \u0443\u0441\u043b\u0443\u0433\u0443.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435\u00a0\u043f\u043e \u043f\u043e\u043b\u044f\u043c \u0441\u043c\u0430\u0440\u0442-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c \u0438\u043b\u0438 \u0441\u043e \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438\u043c\u0435\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043c\u043e\u0434\u0443\u043b\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c \u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u043e\u00a0\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043a\u043e\u0434 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<figure class=\"full-width\"><\/figure>\n<details class=\"spoiler\">\n<summary>\u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 ORM \u0411\u0438\u0442\u0440\u0438\u043a\u0441<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\"># \u041b\u043e\u0433\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432  \u0414\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 ORM \u0431\u0438\u0442\u0440\u0438\u043a\u0441.  \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b `\\Bitrix\\Crm\\ContactTable` \u0438 `\\Bitrix\\Crm\\CompanyTable` \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0432\u044f\u0437\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 1\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f (\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c\/\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439), \u0430 \u0442\u0430\u043a \u0436\u0435 \u0441\u0432\u044f\u0437\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0434\u0435\u043b\u043a\u0438 (\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u0441\u043e \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432\/\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439).  \u0421\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `Bitrix\\Crm\\Relation\\RelationManager`. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0445\u0435\u043b\u043f\u0435\u0440 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0435\u0439  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\Relation\\RelationManager; use Bitrix\\Crm\\Service\\Container; use Bitrix\\Main\\Loader; use Bitrix\\TasksMobile\\Exception\\ModuleNotFoundException;  class CrmRelationHelper {     public const SUPPORTED_ENTITY_IDS = [         \\CCrmOwnerType::Contact,         \\CCrmOwnerType::Company,         \\CCrmOwnerType::Deal,         \\CCrmOwnerType::Lead,         \\CCrmOwnerType::Quote,     ];      public readonly RelationManager $manager;      public function __construct()     {         if (!Loader::includeModule('crm')) {             throw new ModuleNotFoundException('Module \"crm\" not included');         }          $this-&gt;manager = Container::getInstance()-&gt;getRelationManager();     }      public function getRelationEntityIds(int $entityTypeId, bool $onlySupported = true): array     {         $entityIds = [];         foreach ($this-&gt;manager-&gt;getParentRelations($entityTypeId) as $relation) {             $parentEntityTypeId = $relation-&gt;getParentEntityTypeId();              if (                 $onlySupported                 &amp;&amp; !\\CCrmOwnerType::isPossibleDynamicTypeId($parentEntityTypeId)                 &amp;&amp; !in_array($parentEntityTypeId, static::SUPPORTED_ENTITY_IDS, true)             ) {                 continue;             }              $entityIds[] = (int) $parentEntityTypeId;         }          foreach ($this-&gt;manager-&gt;getChildRelations($entityTypeId) as $relation) {             $childEntityTypeId = $relation-&gt;getChildEntityTypeId();              if (                 $onlySupported                 &amp;&amp; !\\CCrmOwnerType::isPossibleDynamicTypeId($childEntityTypeId)                 &amp;&amp; !in_array($childEntityTypeId, static::SUPPORTED_ENTITY_IDS, true)             ) {                 continue;             }              $entityIds[] = (int) $childEntityTypeId;         }          return array_filter(             array_unique(                 $entityIds             )         );     } }  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c var_dump(     (new \\Bizprofi\\Cdp\\Helpers\\CrmRelationHelper())-&gt;getRelationEntityIds(\\CCrmOwnerType::Contact) );  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0434\u0435\u043b\u043a\u043e\u0439 var_dump(     (new \\Bizprofi\\Cdp\\Helpers\\CrmRelationHelper())-&gt;getRelationEntityIds(\\CCrmOwnerType::Deal) ); ```  \u041f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u043c \u0438 \u0441\u0434\u0435\u043b\u043a\u043e\u0439, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 `\\Bitrix\\Main\\ORM\\Entity` \u0434\u0430\u0442\u0430\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430, `\\Bitrix\\Main\\ORM\\Fields\\Relations\\Reference` \u0438 `\\Bitrix\\Main\\ORM\\Fields\\ExpressionField` \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438  ```php namespace Bizprofi\\Cdp\\Helpers;  use Bitrix\\Crm\\Binding\\DealContactTable; use Bitrix\\Crm\\Binding\\EntityContactTable; use Bitrix\\Crm\\Binding\\LeadContactTable; use Bitrix\\Crm\\Binding\\QuoteContactTable; use Bitrix\\Crm\\CompanyTable; use Bitrix\\Crm\\ContactTable; use Bitrix\\Crm\\DealTable; use Bitrix\\Crm\\LeadTable; use Bitrix\\Crm\\PhaseSemantics; use Bitrix\\Crm\\QuoteTable; use Bitrix\\Crm\\Relation\\EntityRelationTable; use Bitrix\\Crm\\Service\\Container; use Bitrix\\Main\\ORM\\Entity; use Bitrix\\Main\\ORM\\Fields; use Bitrix\\Main\\ORM\\Query\\Join; use Bitrix\\Main\\ORM\\Query\\Query;  class SegmentEntitiesQueryHelper { \/\/ ... \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0445\u0435\u043b\u043f\u0435\u0440\u0430     protected function addRelationEntitiesRelationsToEntities(Entity $entity): void     {         $crmEntityId = match (ltrim($entity-&gt;getDataClass(), '\\\\')) {             CompanyTable::class =&gt; \\CCrmOwnerType::Company,             ContactTable::class =&gt; \\CCrmOwnerType::Contact,             default =&gt; null,         };          if ($crmEntityId === null) {             return;         }          $this-&gt;addDealRelationsToEntity($entity);         $this-&gt;addDealExpressionsToEntity($entity);         $this-&gt;addDealRelationEntitiesRelationsToEntities($entity, $crmEntityId);          $this-&gt;addBaseRelationEntitiesRelationsToEntities($entity, $crmEntityId);     }      protected function addDealRelationsToEntity(Entity $entity): void     {         if (ltrim($entity-&gt;getDataClass(), '\\\\') === ContactTable::class) {             $entity-&gt;addField(                 (new Fields\\Relations\\Reference(                     'DEAL_CONTACTS',                     DealContactTable::class,                     Join::on('this.ID', 'ref.CONTACT_ID')                 ))-&gt;configureJoinType(Join::TYPE_LEFT)             );         }          $entity-&gt;addField(             (new Fields\\Relations\\Reference(                 'DEALS',                 DealTable::class,                 match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                     ContactTable::class =&gt; Join::on('this.DEAL_CONTACTS.DEAL_ID', 'ref.ID'),                     default =&gt; Join::on('this.ID', 'ref.COMPANY_ID'),                 }             ))-&gt;configureJoinType(Join::TYPE_LEFT)         );          $entity-&gt;addField(             (new Fields\\Relations\\Reference(                 'SUCCESS_DEALS',                 DealTable::class,                 (match (ltrim($entity-&gt;getDataClass(), '\\\\')) {                     ContactTable::class =&gt;<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-470237","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/470237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=470237"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/470237\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=470237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=470237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=470237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}