{"id":457956,"date":"2025-04-29T09:25:31","date_gmt":"2025-04-29T09:25:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=457956"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=457956","title":{"rendered":"<span>\u041d\u0435 \u0442\u0430\u043a \u0441\u0442\u0440\u0430\u0448\u0435\u043d \u0411\u0438\u0442\u0440\u0438\u043a\u044124, \u043a\u0430\u043a \u043e \u043d\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442: \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430<\/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<p><em>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u044f \u0421\u0435\u0440\u0433\u0435\u0439 \u2014 \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 e-commerce \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u0435 <\/em><a href=\"https:\/\/b24.o2k.ru\/?utm_source=habr&amp;utm_medium=cpc&amp;utm_campaign=statya_b24-1\"><em>KISLOROD<\/em><\/a><em>.<\/em><\/p>\n<p><em>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044f \u0440\u0435\u0448\u0430\u044e \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 1\u0421-\u0411\u0438\u0442\u0440\u0438\u043a\u0441, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 \u0411\u0438\u0442\u0440\u0438\u043a\u044124. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u041124 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043a\u0435\u0439\u0441\u043e\u0432.<\/em><\/p>\n<p>\u041c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043e\u0431\u043e\u0431\u0449\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442. \u0418 \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u0448\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0441\u0444\u0435\u0440\u044b \u0438\u0445 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043a\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0430\u043c\u0438 \u043f\u043e REST API.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u0440\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0441\u0434\u0435\u043b\u043a\u0438, \u2014 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0438 \u0445\u043e\u0442\u044f\u0442:<\/p>\n<ul>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0437\u0430 \u0441\u0447\u0435\u0442 \u0440\u043e\u0441\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c \u043d\u0443\u0436\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430w\u0442 \u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>\u0421\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0447\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u041124 \u043c\u0430\u043b\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u043b\u043e \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0430\u0432\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u043e\u0442\u044f\u0442 \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u0442\u044c \u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0438\u043b\u044b \u043d\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u041124. \u0412\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u0432\u043f\u0443\u0441\u0442\u0443\u044e: \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0435 \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u0438\u00a0 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0430 \u0434\u043e\u0445\u043e\u0434\u044b \u0441\u043d\u0438\u0437\u044f\u0442\u0441\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0438\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u2014 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u041124 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0441\u043d\u0438\u0436\u0430\u0435\u043c \u0440\u0438\u0441\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u043c \u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u0438 \u0432 \u0411\u0438\u0442\u0440\u0438\u043a\u044124<\/h3>\n<p><strong>\u041c\u043e\u0434\u0443\u043b\u044c<\/strong> \u2014 \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435, \u2014 \u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443 \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u0447\u0435\u043c <s>\u043d\u0435 \u0434\u0430\u0439 \u0411\u043e\u0433<\/s> \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u044f\u0434\u0440\u0430, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u041124.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f94\/4a3\/d59\/f944a3d59b78cd2a94d8a200c9f1834c.jpg\" alt=\"\u0411\u0438\u043b\u0435\u0442 \u0432 \u0410\u0434 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0432\u043d\u043e\u0441\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e \u0411\u0438\u0442\u0440\u0438\u043a\u0441\" title=\"\u0411\u0438\u043b\u0435\u0442 \u0432 \u0410\u0434 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0432\u043d\u043e\u0441\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e \u0411\u0438\u0442\u0440\u0438\u043a\u0441\" width=\"1080\" height=\"1128\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f94\/4a3\/d59\/f944a3d59b78cd2a94d8a200c9f1834c.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f94\/4a3\/d59\/f944a3d59b78cd2a94d8a200c9f1834c.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0411\u0438\u043b\u0435\u0442 \u0432 \u0410\u0434 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0432\u043d\u043e\u0441\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e \u0411\u0438\u0442\u0440\u0438\u043a\u0441<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443:<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0434\u0443\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0442 \u0442\u0440\u0443\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u00ab\u0421\u043a\u0435\u043b\u0435\u0442\u00bb \u043c\u043e\u0434\u0443\u043b\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u0445\u043e\u0436\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0434\u0443\u043b\u044f: \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0438 \u044f\u0434\u0440\u0430, \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u0441\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u041124 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0434\u0443\u043b\u0438.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u0435 \u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u0440\u043e\u043b\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.\u00a0<\/p>\n<p>\u041e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Bitrix Framework \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;CHAPTER_ID=04609\">\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c<\/a>. \u041c\u043e\u0434\u0443\u043b\u0438 \u0434\u043b\u044f 1\u0421-\u0411\u0438\u0442\u0440\u0438\u043a\u0441: \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u043c (\u0411\u0423\u0421) \u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430 \u041124 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c.\u00a0<\/p>\n<p>\u042f \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0437 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u0433\u043e\u0442\u043e\u0432 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b. \u042d\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043e\u043f\u044b\u0442\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u2014 <strong>o2k.d7<\/strong> \u00ab\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430\u00bb. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u2014 \u043e\u043d \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u0411\u0423\u0421.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0435\u0449\u0435 \u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0432 CRM. \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u00ab\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u00bb, \u00ab\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u00bb \u0438 \u00ab\u0421\u0434\u0435\u043b\u043a\u0430\u00bb<\/h3>\n<h4>\u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u0442\u0435\u0440\u044f\u044e\u0442 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 (\u0433\u0440\u0438\u0434, \u0442\u0430\u0431\u043b\u0438\u0446\u0443), \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u044b \u0441\u0434\u0435\u043b\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c\u0438 \u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0438 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\/\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\/\u0441\u0434\u0435\u043b\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043e\u0442\u0447\u0435\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c CRM \u00ab\u0421\u0434\u0435\u043b\u043a\u0430\u00bb.\u00a0<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0438\u0434 (\u0442\u0430\u0431\u043b\u0438\u0446\u0443).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043b\u044f \u0433\u0440\u0438\u0434\u0430 \u043f\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u043f\u043e\u043b\u044f\u043c.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u043f\u043e\u043b\u044e \u0432 \u0433\u0440\u0438\u0434\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<\/li>\n<\/ol>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0438 \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0435 \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eea\/a47\/74f\/eeaa4774f1a07bad1750d72ba2268437.jpg\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/eea\/a47\/74f\/eeaa4774f1a07bad1750d72ba2268437.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eea\/a47\/74f\/eeaa4774f1a07bad1750d72ba2268437.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0438\u0434 (\u0442\u0430\u0431\u043b\u0438\u0446\u0443)<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c CRM \u2014 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435,<\/strong> \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u00a0<\/p>\n<p>\u041f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431 ORM <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;CHAPTER_ID=05748\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 ORM, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438.\u00a0<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, \u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <strong>Bitrix\\Main\\Entity\\TextField<\/strong>. <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 <strong>DealField<\/strong>.\u00a0<\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <strong>\\Bitrix\\Main\\ScalarField,<\/strong> \u043d\u043e \u0432 \u043d\u0435\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432 255 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0430 \u0443 \u043d\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/dev.1c-bitrix.ru\/api_d7\/bitrix\/main\/entity\/index.php\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c (\u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c \u0432\u0438\u0434\u0435) \u2014 \u0437\u0430\u0432\u0435\u0434\u0435\u043c \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<ol>\n<li>\n<p><strong>getHTMLValues <\/strong>\u2014 \u0432\u044b\u0432\u043e\u0434 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0441\u0434\u0435\u043b\u043a\u0438 (\u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0433\u0440\u0438\u0434).<\/p>\n<\/li>\n<li>\n<p><strong>getDealStages <\/strong>\u2014 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0437\u043d\u0430\u044f, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0434\u0435\u043b\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043c<strong> protected-\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e<\/strong> \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0435 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0435.<\/p>\n<pre><code class=\"php\">protected $filter = [];<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0432 \u043d\u0435\u0435 \u0444\u0438\u043b\u044c\u0442\u0440, \u0447\u0442\u043e\u0431\u044b \u0443 \u043d\u0430\u0441 \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u043a\u0438, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0434\u0435\u043b\u043e\u043a \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<pre><code class=\"php\">'filter' =&gt; [   'CHECK_PERMISSIONS' =&gt; 'N' ],<\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439<\/strong> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">namespace o2k\\d7\\Tables;  use Bitrix\\Main\\Entity; use Bitrix\\Main\\Localization\\Loc; use o2k\\d7\\Entities; use o2k\\d7\\Conf\\Settings;  Loc::loadMessages( __FILE__ );  class TestTable extends Entity\\DataManager {    public static function getTableName() {        return 'o2k_test_table';    }     public static function getField(string $code) {        $result = false;              if(!empty($code)) {            $tableMap = static::getMap();            foreach($tableMap as $field) {                if($field-&gt;getName() === $code) {                    $result = $field;                } else {                    continue;                }            }        }         return $result;    }     public static function getMap() {        return [            'ID' =&gt; new Entity\\IntegerField('ID', [                'column_name' =&gt; 'ID',                'primary' =&gt; true,                'autocomplete' =&gt; true,                'title' =&gt; 'ID'            ]),            'RESPONSIBLE' =&gt; new Entities\\UserField('RESPONSIBLE', [                'column_name' =&gt; 'RESPONSIBLE',                'title' =&gt; Loc::getMessage(Settings::$langPrefix.'_RESPONSIBLE'),                'filter' =&gt; [                    '=ACTIVE' =&gt; 'Y'                ],                'required' =&gt; false            ]),            'RESPONSIBLE_REF' =&gt; new Entity\\ReferenceField('RESPONSIBLE_REF',                'Bitrix\\Main\\UserTable',                ['=this.RESPONSIBLE_ID' =&gt; 'ref.ID'],                ['join_type' =&gt; 'LEFT']            ),            'DEALS' =&gt; new Entities\\DealField('DEALS', [                'column_name' =&gt; 'DEALS',                'title' =&gt; Loc::getMessage(Settings::$langPrefix.'_DEALS'),                'filter' =&gt; ['CHECK_PERMISSIONS' =&gt; 'N'],                'required' =&gt; false,                'save_data_modification' =&gt; function() {                    return [                        function($value){                            return serialize($value);                        }                    ];                },                'fetch_data_modification' =&gt; function() {                    return [                        function($value){                            return unserialize($value);                        }                    ];                }            ])        ];    } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432 \u043a\u0430\u0440\u0442\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:<\/p>\n<ul>\n<li>\n<p><strong>ID<\/strong> \u2014 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u043d \u0436\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<\/li>\n<li>\n<p><strong>RESPONSIBLE, RESPONSIBLE_REF<\/strong> \u2014 \u0441\u0432\u044f\u0437\u044c \u043f\u043e<strong> ID<\/strong> \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430 \u0441\u0434\u0435\u043b\u043a\u0443 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c \u043f\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>DEALS<\/strong> \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0432 \u043f\u043e\u043b\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043f\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0417\u0430 \u044d\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><strong>save_data_modification<\/strong>;<\/p>\n<\/li>\n<li>\n<p><strong>fetch_data_modification<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;LESSON_ID=2244\">\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0438\u043f \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u043f\u043e\u043b\u044f\u043c (\u0444\u0438\u043b\u0434\u0430\u043c). \u0417\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <strong>getField<\/strong>.\u00a0<\/p>\n<p>\u041f\u043e \u0432\u0445\u043e\u0434\u0443 \u0443 \u043d\u0435\u0433\u043e \u2014 <strong>\u043a\u043e\u0434 \u043f\u043e\u043b\u044f<\/strong>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u043d \u2014 <strong>\u043e\u0431\u044a\u0435\u043a\u0442 \u0444\u0438\u043b\u0434\u0430<\/strong>. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0448 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043e\u043b\u0435\u043c \u2014 <strong>DealField<\/strong>.<\/p>\n<pre><code class=\"php\">namespace o2k\\d7\\Entities;  use Bitrix\\Main\\Loader,    Bitrix\\Main\\Localization\\Loc,    Bitrix\\Main\\Entity\\TextField,    Bitrix\\Main\\Config\\Option,    Bitrix\\Crm\\DealTable,    Bitrix\\Crm\\StatusTable,    Bitrix\\Main\\ORM,    Bitrix\\Iblock\\ORM as IblockORM,    o2k\\d7\\Conf\\Settings;  Loc::loadMessages( __FILE__ );  class DealField extends TextField {    protected $filter = [];     public function __construct(string $name, array $params = []) {        parent::__construct($name, $params);        if(is_array($params['filter']) &amp;&amp; count($params['filter']) &gt; 0) {            $this-&gt;filter = $params['filter'];        }    }    public static function getHTMLValues(array $id = [], int $ownerId = 0): string {        $result = '';           if(Loader::includeModule(Settings::$crmMid) &amp;&amp; (is_array($id) &amp;&amp; count($id) &gt; 0 ) || $ownerId &gt; 0) {            $getDealPathTemplate = Option::get(Settings::$crmMid, 'path_to_deal_details');            $arDealStages = self::getDealStages();            if(!empty($id) &amp;&amp; count($id) &gt; 0) {                $this-&gt;filter['=ID'] = $id;            } else {                $this-&gt;filter['=CONTACT_ID'] = $ownerId;            }            $query = new IblockORM\\Query(DealTable::getEntity());            $query-&gt;setSelect([                'ID', 'TITLE', 'STAGE_ID', 'ASSIGNED_BY_ID'            ]);            $query-&gt;setOrder([                'ID' =&gt; 'ASC'            ]);            $query-&gt;setFilter($this-&gt;filter);            $arDeals = ORM\\Query\\QueryHelper::decompose($query);            if(is_object($arDeals) &amp;&amp; count($arDeals) &gt; 0) {                foreach($arDeals as $deal) {                    $deal = $deal-&gt;collectValues(ORM\\Objectify\\Values::ALL, ORM\\Fields\\FieldTypeMask::ALL, true);                    $stage = '';                    if(!empty($deal['STAGE_ID'])) {                        $dealStatusInfo = $arDealStages[$deal['STAGE_ID']];                        if(!empty($dealStatusInfo['NAME_INIT'])) {                            $stage = (!empty($dealStatusInfo['COLOR']))                                ? '&lt;span style=\"color:'.trim($dealStatusInfo['COLOR']).'\"&gt;'.trim($dealStatusInfo['NAME_INIT']).'&lt;\/span&gt;'                                : trim($dealStatusInfo['NAME_INIT']);                        }                        elseif(!empty($dealStatusInfo['NAME'])) {                            $stage = (!empty($dealStatusInfo['COLOR']))                                ? '&lt;span style=\"color:'.trim($dealStatusInfo['COLOR']).'\"&gt;'.trim($dealStatusInfo['NAME']).'&lt;\/span&gt;'                                : trim($dealStatusInfo['NAME']);                        }                    }                    $result .= '&lt;a href=\"'.str_replace('#deal_id#', $deal['ID'], $getDealPathTemplate).'\"&gt;'.trim($deal['TITLE']).'&lt;\/a&gt; '.Loc::getMessage(Settings::$langPrefix.'_STAGE', ['#STAGE#' =&gt; $stage]).\"&lt;\/br&gt;\";                }            }        }         return $result;    }     public static function getDealStages(): array {        $result = [];         $query = new IblockORM\\Query(StatusTable::getEntity());        $query-&gt;setSelect([            'STATUS_ID',            'NAME',            'NAME_INIT',            'COLOR'        ]);        $query-&gt;setFilter([            'ENTITY_ID' =&gt; Settings::$stageEntityId        ]);        $arStatuses = ORM\\Query\\QueryHelper::decompose($query);        if(is_object($arStatuses) &amp;&amp; count($arStatuses) &gt; 0) {            foreach($arStatuses as $status) {                $status = $status-&gt;collectValues(ORM\\Objectify\\Values::ALL, ORM\\Fields\\FieldTypeMask::ALL, true);                $result[$status['STATUS_ID']]['NAME'] = $status['NAME'];                $result[$status['STATUS_ID']]['NAME_INIT'] = !empty($status['NAME_INIT']) ? $status['NAME_INIT'] : $status['NAME'];                $result[$status['STATUS_ID']]['COLOR'] = $status['COLOR'];            }        }         return $result;    } }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.<\/p>\n<h4>\u041c\u0435\u0442\u043e\u0434 __construct<\/h4>\n<ul>\n<li>\n<p><strong>__construc<\/strong>t \u2014 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041c\u0435\u0442\u043e\u0434 getHTMLValues<\/h4>\n<ul>\n<li>\n<p><strong>getHTMLValues<\/strong> \u2014 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <strong>html<\/strong> \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0433\u0440\u0438\u0434 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<ol>\n<li>\n<p>\u0412 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f \u0435\u0441\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0441\u0434\u0435\u043b\u043a\u0438. \u0425\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u043d \u0432 <strong>b_option<\/strong> \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>path_to_deal_details<\/strong> \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043f\u0443\u0442\u044c \u043a \u0441\u0434\u0435\u043b\u043a\u0430\u043c \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0438\u043c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0443\u0442\u0438 \u043a \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u0430 \u0441\u0434\u0435\u043b\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>ORM D7<\/strong> \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;LESSON_ID=12868\"> \u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435 \u0441\u043f\u043e\u0442\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043e \u00ab\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u00bb \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u2014 \u0435\u0441\u043b\u0438 \u0432 \u0442\u043e\u0432\u0430\u0440\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0442\u043e \u0442\u043e\u0432\u0430\u0440 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u0432\u0430\u0436\u0434\u044b.<\/p>\n<p>\u0418\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439.<\/p>\n<pre><code class=\"php\">$query = new IblockORM\\Query(DealTable::getEntity()); $query-&gt;setSelect([    'ID', 'TITLE', 'STAGE_ID', 'ASSIGNED_BY_ID' ]); $query-&gt;setOrder([    'ID' =&gt; 'ASC' ]); $query-&gt;setFilter($this-&gt;filter); $arDeals = ORM\\Query\\QueryHelper::decompose($query); if(is_object($arDeals) &amp;&amp; count($arDeals) &gt; 0) {    foreach($arDeals as $deal) {        $deal = $deal-&gt;collectValues(ORM\\Objectify\\Values::ALL, ORM\\Fields\\FieldTypeMask::ALL, true);<\/code><\/pre>\n<p><strong>ORM\\Query\\QueryHelper::decompose<\/strong> \u2014 \u044d\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0444\u0435\u0442\u0447.\u00a0<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430.<\/p>\n<pre><code class=\"php\">$deal-&gt;collectValues(ORM\\Objectify\\Values::ALL,ORM\\Fields\\FieldTypeMask::ALL,true);<\/code><\/pre>\n<p>\u0413\u0434\u0435<strong> collectValues<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<\/p>\n<p>\u041f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;LESSON_ID=11695\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>3. \u0414\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 <strong>Bitrix\\Iblock\\ORM\\Quer<\/strong>y \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f <strong>Entity \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/strong>.<\/p>\n<p>\u041e\u0442\u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u0432\u0437\u044f\u0442\u044c \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0430\u0448\u0430 \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430? \u0410 \u0432\u0441\u0435 \u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u043a\u0430\u0436\u0435\u0442\u0441\u044f. \u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 <strong>Entity<\/strong>.<\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <strong>Entity<\/strong>, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 \u0441\u0434\u0435\u043b\u043a\u0430\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"php\">DealTable::getEntity()<\/code><\/pre>\n<h4>\u041c\u0435\u0442\u043e\u0434 getDealStages<\/h4>\n<ul>\n<li>\n<p><strong>getDealStages<\/strong> \u2014 \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0441\u0442\u0430\u0434\u0438\u0439 \u0441\u0434\u0435\u043b\u043a\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0432 \u043a\u043e\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441 <strong>o2k\\d7\\Conf\\Settings<\/strong> \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0442. \u043a. \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.\u00a0<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"php\">namespace o2k\\d7\\Conf;  class Settings {    public static $langPrefix = 'O2K';    public static $mid = 'o2k.d7';    public static $voximplantMid = 'voximplant';    public static $crmMid = 'crm';    public static $stageEntityId = 'DEAL_STAGE';    public static $intranetMid = 'intranet'; }<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0431\u044b\u043b\u0438 \u00ab\u0432\u0438\u0434\u043d\u044b\u00bb, \u0438\u0445 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u00ab\u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u00bb. \u0417\u0430 \u044d\u0442\u043e \u0432 \u0411\u0438\u0442\u0440\u0438\u043a\u0441\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b <strong>include.php<\/strong> \u0432 \u043a\u043e\u0440\u043d\u0435 \u043c\u043e\u0434\u0443\u043b\u044f. \u0423 \u043d\u0430\u0441 \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">Bitrix\\Main\\Loader::registerAutoloadClasses(   \"o2k.d7\",   array(      \"o2k\\\\d7\\\\Conf\\\\Settings\" =&gt; \"conf.php\",      \"o2k\\\\d7\\\\Agents\\\\Deals\" =&gt; \"agents\/Deals.php\",      \"o2k\\\\d7\\\\Tables\\\\TestTable\" =&gt; \"classes\/mysql\/TestTable.php\",      \"o2k\\\\d7\\\\Entities\\\\UserField\" =&gt; \"classes\/entities\/UserField.php\",      \"o2k\\\\d7\\\\Entities\\\\DealField\" =&gt; \"classes\/entities\/DealField.php\",      \"o2k\\\\d7\\\\Events\\\\Voximplant\" =&gt; \"classes\/events\/Voximplant.php\",      \"o2k\\\\d7\\\\Events\\\\CrmMenu\" =&gt; \"classes\/events\/CrmMenu.php\",      \"o2k\\\\d7\\\\Events\\\\DealContextItemMenu\" =&gt; \"classes\/events\/DealContextItemMenu.php\",   ) ); <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.\u00a0<\/p>\n<p>\u041f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/api_d7\/bitrix\/main\/loader\/registerautoloadclasses.php\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0414\u043b\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u0411\u0438\u0442\u0440\u0438\u043a\u0441. \u0412 \u0438\u0434\u0435\u0430\u043b\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u0432\u0445\u043e\u0434\u043e\u043c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0438\u0441\u044c. \u041d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0435\u0441\u0442\u044c \u0442\u043e\u0436\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438.\u00a0<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0432\u0430\u043c.<\/p>\n<p>\u0410 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0447\u0438\u0449\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0430\u0433\u0435\u043d\u0442\u0443 \u0438 \u043a\u043b\u0430\u0441\u0442\u044c \u0432 \u043d\u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u00ab<strong>\u0421\u0442\u0430\u0442\u0443\u0441 \u0441\u0434\u0435\u043b\u043a\u0438<\/strong>\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0432 \u0411\u0438\u0442\u0440\u0438\u043a\u0441\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u043c\u043e\u0434\u0443\u043b\u044f <strong>options.php<\/strong>.<\/p>\n<p>\u0412 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">if(!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();  use Bitrix\\Main\\Loader,    Bitrix\\Main\\Localization\\Loc,    Bitrix\\Main\\HttpApplication,    o2k\\d7\\Conf\\Settings,    o2k\\d7\\Entities\\DealField;  Loc::loadMessages(__FILE__);  if($APPLICATION-&gt;GetGroupRight(Settings::$mid)&lt;'R') {    $APPLICATION-&gt;AuthForm(Loc::getMessage('ACCESS_DENIED')); }  Loader::includeModule(Settings::$mid);  $request = HttpApplication::getInstance()-&gt;getContext()-&gt;getRequest(); $arDealStatuses = []; $getDealStatuses = DealField::getDealStages(); if(is_array($getDealStatuses ) &amp;&amp; count($getDealStatuses) &gt; 0) {    foreach($getDealStatuses as $id =&gt; $status) {        $arDealStatuses[$id] = $status['NAME'];    } } $arMainOptions[] = Loc::getMessage(Settings::$langPrefix.'_TITLE_FILTER'); $arMainOptions[] = [    'DEAL_STATUS_FILTER',    Loc::getMessage(Settings::$langPrefix.'_FILTER_DEALS').':',    '',    ['multiselectbox', $arDealStatuses] ]; $arTabs = [    [        'DIV' =&gt; 'settings',        'TAB' =&gt; Loc::getMessage(Settings::$langPrefix.'_SETTINGS'),        'TITLE' =&gt; Loc::getMessage(Settings::$langPrefix.'_SETTINGS_TITLE'),        'OPTIONS' =&gt; ((!empty($arMainOptions) &amp;&amp; count($arMainOptions)&gt;0) ? $arMainOptions : [''])    ],    [        'DIV' =&gt; 'rights',        'TAB' =&gt; Loc::GetMessage('MAIN_TAB_RIGHTS'),        'ICON' =&gt; 'ldap_settings',        'TITLE' =&gt; Loc::GetMessage('MAIN_TAB_TITLE_RIGHTS')    ] ]; if($request-&gt;isPost() &amp;&amp; check_bitrix_sessid()) {    if(strlen($request['save'])&gt;0) {        foreach($arTabs as $arTab) {            __AdmSettingsSaveOptions(Settings::$mid, $arTab['OPTIONS']);        }    } } $tabControl = new CAdminTabControl('tabControl', $arTabs); ?&gt; &lt;form method=\"post\" action=\"&lt;?=$APPLICATION-&gt;GetCurPage()?&gt;?mid=&lt;?=Settings::$mid?&gt;&amp;amp;lang=&lt;?=$request['lang']?&gt;\" name=\"&lt;?=Settings::$mid?&gt;_settings\"&gt;    &lt;?$tabControl-&gt;Begin();?&gt;    &lt;?foreach($arTabs as $aTab):?&gt;        &lt;?if($aTab['OPTIONS']):?&gt;            &lt;?$tabControl-&gt;BeginNextTab();?&gt;            &lt;?__AdmSettingsDrawList(Settings::$mid, $aTab['OPTIONS']);?&gt;        &lt;?endif;?&gt;    &lt;?endforeach;?&gt;    &lt;?=bitrix_sessid_post();    $tabControl-&gt;Buttons(['btnApply' =&gt; false, 'btnCancel' =&gt; false, 'btnSaveAndAdd' =&gt; false, 'btnSave' =&gt; true]);    ?&gt;    &lt;?$tabControl-&gt;End();?&gt;    &lt;input type=\"hidden\" name=\"Update\" value=\"Y\" \/&gt; &lt;\/form&gt; &lt;? if($request-&gt;isPost()) {    LocalRedirect($APPLICATION-&gt;GetCurPage().'?lang='.LANGUAGE_ID.'&amp;mid='.Settings::$mid.'&amp;tabControl_active_tab='.urlencode($_REQUEST[\"tabControl_active_tab\"])); }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2de\/c52\/a02\/2dec52a02a649454a6baddc972fb6e44.jpg\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2de\/c52\/a02\/2dec52a02a649454a6baddc972fb6e44.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2de\/c52\/a02\/2dec52a02a649454a6baddc972fb6e44.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0443 ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 \u0411\u0438\u0442\u0440\u0438\u043a\u0441. \u0412\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">namespace o2k\\d7\\Agents;  use o2k\\d7\\Tables,    o2k\\d7\\Conf\\Settings,    Bitrix\\Main\\ORM,    Bitrix\\Iblock\\ORM as IblockORM,    Bitrix\\Main\\Application,    Bitrix\\Main\\Config\\Option,    Bitrix\\Crm\\DealTable;  class Deals {    public static function runActualize() {        self::actualize();        return __METHOD__ . '();';    }     private static function actualize() {        Application::getConnection(Tables\\TestTable::getConnectionName())-&gt;            queryExecute('TRUNCATE TABLE '.Tables\\TestTable::getTableName());        $stageParam = Option::get(Settings::$mid, 'DEAL_STATUS_FILTER');        $query = new IblockORM\\Query(DealTable::getEntity());        $query-&gt;setSelect([            'ID', 'STAGE_ID', 'ASSIGNED_BY_ID'        ]);        $query-&gt;setOrder([            'ID' =&gt; 'ASC'        ]);        $query-&gt;setFilter([            'STAGE_ID' =&gt; $stageParam        ]);        $arDeals = ORM\\Query\\QueryHelper::decompose($query);        $multiArray = [];        if(is_object($arDeals) &amp;&amp; count($arDeals) &gt; 0) {            foreach($arDeals as $deal) {                $deal = $deal-&gt;collectValues(ORM\\Objectify\\Values::ALL, ORM\\Fields\\FieldTypeMask::ALL, true);                $multiArray[$deal['ASSIGNED_BY_ID']]['RESPONSIBLE'] = $deal['ASSIGNED_BY_ID'];                $multiArray[$deal['ASSIGNED_BY_ID']]['CRM_DEALS'][] = $deal['ID'];            }            $success = Tables\\TestTable::addMulti($multiArray);            if(!$success-&gt;isSuccess()) {                var_dump($result-&gt;getErrorMessages());            }        }    } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043d\u0430\u0448\u0443 ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0435\u0435 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u043c\u043e\u0434\u0443\u043b\u044f.<\/p>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30e\/ba0\/33d\/30eba033daba6d184144f7d3ef31f6b0.jpg\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/30e\/ba0\/33d\/30eba033daba6d184144f7d3ef31f6b0.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30e\/ba0\/33d\/30eba033daba6d184144f7d3ef31f6b0.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435, \u043f\u043e\u043b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0441\u0434\u0435\u043b\u043a\u0438<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u0433\u0435\u043d\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d2\/b18\/0cf\/4d2b180cf050154d267848cfdc3cee6c.jpg\" alt=\"\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\" title=\"\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4d2\/b18\/0cf\/4d2b180cf050154d267848cfdc3cee6c.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4d2\/b18\/0cf\/4d2b180cf050154d267848cfdc3cee6c.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0448\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 <strong>ID \u0441\u0434\u0435\u043b\u043e\u043a<\/strong> \u043f\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c.<\/p>\n<h3>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439<\/strong>, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u043b\u0434\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u043d\u0435\u0435.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0444\u0430\u0439\u043b <strong>class.php<\/strong> \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <strong>o2k.d7<\/strong>.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();  use o2k\\d7\\Tables,    o2k\\d7\\Conf\\Settings,    o2k\\d7\\Entities,    Bitrix\\Main\\Entity,    Bitrix\\Main\\ORM,    Bitrix\\Iblock\\ORM as IblockORM,    Bitrix\\Main\\Application,    Bitrix\\Main\\Grid\\Options as GridOptions,    Bitrix\\Main\\UI\\Filter\\Options as FilterOptions,    Bitrix\\Main\\UI\\PageNavigation;  class Co2kTestComponent extends CBitrixComponent {    protected $request;    private $arTestTableMap = [];    private $arDealStages = [];    private $arGridSelect = [];    private $filter = [];     public function onPrepareComponentParams($arParams=[]) {        $this-&gt;request = Application::getInstance()-&gt;getContext()-&gt;getRequest();        if(is_array($arParams['FILTER']) &amp;&amp; count($arParams['FILTER']) &gt; 0) {            $this-&gt;$filter = $arParams['FILTER'];        }        $arMapFields = [];        $arMapList = Tables\\TestTable::getMap();        if(!empty($arMapList) &amp;&amp; count($arMapList) &gt; 0) {            $this-&gt;arTestTableMap = $arMapList;            foreach($arMapList as $mapField) {                $arMapFields[] = $mapField-&gt;getName();                if(                    $mapField instanceof Entities\\UserField ||                    $mapField instanceof Entities\\DealField ||                    $mapField instanceof Entity\\IntegerField                ) {                    $this-&gt;arGridSelect[] = $mapField-&gt;getName();                }            }        }        $this-&gt;arDealStages = Entities\\DealField::getDealStages();         return $arParams;    }     public function executeComponent() {        $this-&gt;initFilter();        $this-&gt;initGridColumns();        $this-&gt;getItems();        $this-&gt;includeComponentTemplate();    }     private function initFilter() {        $filter = [];         if(!empty($this-&gt;arTestTableMap) &amp;&amp; count($this-&gt;arTestTableMap) &gt; 0) {            foreach($this-&gt;arTestTableMap as $mapField) {                if($mapField instanceof Entity\\ReferenceField) {                    continue;                }  elseif($mapField instanceof Entities\\UserField) {                    $filter[] = [                        'id' =&gt; $mapField-&gt;getName(),                        'name' =&gt; $mapField-&gt;getTitle(),                        'type' =&gt; 'dest_selector',                        'params' =&gt; [                            'context' =&gt; strtolower($mapField-&gt;getName()),                            'multiple' =&gt; 'Y',                            'contextCode' =&gt; 'U',                            'enableAll' =&gt; 'N',                            'enableSonetgroups' =&gt; 'N',                            'allowEmailInvitation' =&gt; 'N',                            'allowSearchEmailUsers' =&gt; 'N',                            'departmentSelectDisable' =&gt; 'Y',                            'isNumeric' =&gt; 'Y',                            'prefix' =&gt; 'U'                        ],                        'default' =&gt; ($mapField-&gt;isRequired() ? true : false)                    ];                } elseif($mapField instanceof Entities\\DealField) {                    $arStatuses = [];                    foreach($this-&gt;arDealStages as $sID =&gt; $status) {                        if(!is_array($status) || empty($status)) {                            continue;                        }                        $arStatuses[$sID] = $status['NAME_INIT'];                    }                    $filter[] = [                        'id' =&gt; $mapField-&gt;getName(),                        'name' =&gt; $mapField-&gt;getTitle(),                        'type' =&gt; 'list',                        'items' =&gt; $arStatuses,                        'params' =&gt; [                            'multiple' =&gt; 'Y'                        ],                        'default' =&gt; ($mapField-&gt;isRequired() ? true : false)                    ];                } else {                    $filter[] = [                        'id' =&gt; $mapField-&gt;getName(),                        'name' =&gt; $mapField-&gt;getTitle(),                        'type' =&gt; 'text',                        'default' =&gt; ($mapField-&gt;isRequired() ? true : false)                    ];                }            }            $this-&gt;arResult['FILTER_FIELDS'] = $filter;        }               return $this-&gt;arResult['FILTER_FIELDS'];    }      private function initGridColumns() {        $columns = [];         if(!empty($this-&gt;arTestTableMap) &amp;&amp; count($this-&gt;arTestTableMap) &gt; 0) {            foreach($this-&gt;arTestTableMap as $mapField) {                if($mapField instanceof Entity\\ReferenceField) {                    continue;                }                $columns[] = [                    'id' =&gt; $mapField-&gt;getName(),                    'name' =&gt; $mapField-&gt;getTitle(),                    'sort' =&gt; ($mapField instanceof Entities\\CrmDealsField ? false : $mapField-&gt;getName()),                    'default' =&gt; true                ];            }            $this-&gt;arResult['COLUMNS'] = $columns;        }         return $this-&gt;arResult['COLUMNS'];    }      private function getItems() {        $arFilter = [];              if(is_array($this-&gt;$filter) &amp;&amp; !empty($this-&gt;$filter)) {            $arFilter = $this-&gt;$filter;        }        $gridOptions = new GridOptions($this-&gt;arParams['GRID_ID']);        $sort = $gridOptions-&gt;GetSorting(            [                'sort' =&gt; [                    'ID' =&gt; 'DESC'                ],                'vars' =&gt; [                    'by' =&gt; 'by',                    'order' =&gt; 'order'                ]            ]        );        $navParams = $gridOptions-&gt;GetNavParams();        $this-&gt;arResult['NAV_OBJECT'] = new PageNavigation('nav-grid-'.strtolower($this-&gt;arParams['GRID_ID']));        $this-&gt;arResult['NAV_OBJECT']-&gt;allowAllRecords(true)-&gt;setPageSize($navParams['nPageSize'])-&gt;initFromUri();        $filterOption = new FilterOptions($this-&gt;arParams['FILTER_ID']);        $filterData = $filterOption-&gt;getFilter([]);        if($filterData['FILTER_APPLIED']) {            foreach($filterData as $field =&gt; $value) {                $mapField = Tables\\TestTable::getField(trim($field));                if($mapField instanceof Entities\\DealField) {                   if(is_array($value)) {                        $arFilter['!'.$field] = false;                        $arFilter[$field] = ['LOGIC' =&gt; 'OR'];                        foreach($value as $data) {                            $arFilter[$field][] = \"%\".$data.\"%\";                        }                    } else {                        $arFilter[$field] = '%'.$value.'%';                    }                                   }                elseif( $mapField instanceof Entities\\UserField) {                    if(!empty($value) &amp;&amp; count($value)&gt;0) {                        $arFilter['!'.$field] = false;                        $arFilter[$field] = ['LOGIC' =&gt; 'OR'];                        foreach($value as $data) {                            $arFilter[$field][] = $data;                        }                    }                }            }        }        $rows = [];        $rows = Tables\\TestTable::query()            -&gt;setSelect($this-&gt;arGridSelect)            -&gt;setOrder($sort['sort'])            -&gt;setFilter($arFilter)            -&gt;setLimit($this-&gt;arResult['NAV_OBJECT']-&gt;getLimit())            -&gt;setOffset($this-&gt;arResult['NAV_OBJECT']-&gt;getOffset())            -&gt;exec()        -&gt;fetchAll();        if(is_array($rows) &amp;&amp; count($rows) &gt; 0) {            $this-&gt;arResult['ITEMS'] = $this-&gt;format($rows);            $this-&gt;arResult['NAV_OBJECT']-&gt;setRecordCount(count($rows));            $this-&gt;arResult['TOTAL_ROWS_COUNT'] = count($rows);        }         return $this-&gt;arResult['ITEMS'];    }      private function format($rows) {        $result = [];         foreach($rows as $i =&gt; $row) {            foreach($row as $code =&gt; $value) {                $mapField = Tables\\TestTable::getField($code);                if($mapField instanceof Entities\\UserField) {                    $row[$code] = (!empty($value) &amp;&amp; intval($value)&gt;0) ? $mapField-&gt;getHTMLValues($value, true) : '';                } elseif($mapField instanceof Entities\\DealField) {                    $row[$code] = (!empty($value) &amp;&amp; count($value)&gt;0) ? $mapField-&gt;getHTMLValues($value) : '';                }            }            $result[$i] = [                'id' =&gt; $row['ID'],                'data' =&gt; $row,                'actions' =&gt; [],                'columns' =&gt; false            ];        }         return $result;    } } <\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <strong>onPrepareComponentParams<\/strong>, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<ul>\n<li>\n<p>\u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 <strong>ORM<\/strong> \u043f\u043e\u043b\u044f <strong>$arMapList = Tables\\TestTable::getMap();<\/strong> \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438 <strong>$this-&gt;arTestTableMap = $arMapList;<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0438 \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0432 \u0433\u0440\u0438\u0434 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440 <strong>$this-&gt;arGridSelect[] = $mapField-&gt;getName();<\/strong><\/p>\n<\/li>\n<li>\n<p>\u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u043f\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c \u0441\u0434\u0435\u043b\u043a\u0438 <strong>$this-&gt;arDealStages = Entities\\DealField::getDealStages();<\/strong> \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <strong>public function executeComponent(), <\/strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430.<\/p>\n<pre><code class=\"php\">public function executeComponent() {    $this-&gt;initFilter();    $this-&gt;initGridColumns();    $this-&gt;getItems();    $this-&gt;includeComponentTemplate(); }<\/code><\/pre>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0442\u0443\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043c\u0435\u0442\u043e\u0434 <strong>initFilter <\/strong>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0444\u0438\u043b\u044c\u0442\u0440, \u043c\u0435\u0442\u043e\u0434 <strong>initGridColumns<\/strong> \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0433\u0440\u0438\u0434\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434 <strong>getItems, <\/strong>\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0432\u044b\u0431\u043e\u0440\u043a\u0443.\u00a0<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.\u00a0<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u0448\u043d\u0438\u0445 \u0444\u0438\u043b\u0434\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u0442\u0438\u043f \u0444\u0438\u043b\u0434\u0430 \u2014 <strong>$mapField instanceof Entities\\DealField<\/strong>.\u00a0<\/p>\n<p>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, ID \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0438\u043b\u0434\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <strong>$mapField-&gt;getTitle() <\/strong>\u2014 \u0432\u0435\u0440\u043d\u0435\u0442 \u0438\u043c\u044f \u0444\u0438\u043b\u0434\u0430.\u00a0<\/p>\n<p>\u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043a\u0430\u043a \u0440\u0430\u0437-\u0442\u0430\u043a\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u044b\u0432\u043e\u0434 \u0444\u0438\u043b\u0434\u0430.<\/p>\n<pre><code class=\"php\">} elseif($mapField instanceof Entities\\DealField) {   $row[$code] = (!empty($value) &amp;&amp; count($value)&gt;0) ? $mapField-&gt;getHTMLValues($value) : ''; }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0435 \u043f\u043e\u043b\u0435 (\u043a\u043b\u0430\u0441\u0441 <strong>DealField)<\/strong> \u0438\u0437 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/strong> \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 <strong>getHTMLValues,<\/strong> \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u0430\u043d \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a, \u043f\u043e \u0444\u0430\u043a\u0442\u0443, \u043f\u043e\u043b\u0435 <strong>DEALS<\/strong> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 <strong>ID \u0441\u0434\u0435\u043b\u043e\u043a<\/strong> \u0432 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435<\/strong>, \u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u043a\u0430\u043a \u0436\u0435 \u043f\u043e \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c?\u00a0<\/p>\n<p>\u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430.<\/p>\n<pre><code class=\"php\">$arFilter['!'.$field] = false; $arFilter[$field] = ['LOGIC' =&gt; 'OR']; foreach($value as $data) {    $arFilter[$field][] = \"%\".$data.\"%\"; }<\/code><\/pre>\n<p>\u0414\u0430, \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d. \u041d\u043e \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0435\u0433\u043e, \u0432\u0435\u0434\u044c \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \ud83d\ude42\u00a0<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0435\u0449\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u00ab<a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;CHAPTER_ID=011735\">\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439<\/a>\u00bb \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();  use Bitrix\\Main\\Localization\\Loc,    Bitrix\\Main\\UI\\Extension,    Bitrix\\Main\\Page\\Asset;  Loc::loadMessages( __FILE__ );  Extension::load('jquery'); ?&gt; &lt;?if($arParams['IS_TAB'] != 'Y') {?&gt;    &lt;?$APPLICATION-&gt;IncludeComponent(        'bitrix:crm.control_panel',        '',        [            'ID' =&gt; 'O2K_TEST',            'ACTIVE_ITEM_ID' =&gt; 'O2K_TEST',        ],        $component    );?&gt; &lt;?}?&gt; &lt;? if($arParams['IS_TAB'] !== 'Y') {    $APPLICATION-&gt;SetPageProperty('BodyClass', 'no-paddings pagetitle-toolbar-field-view flexible-layout crm-pagetitle-view crm-toolbar');    $this-&gt;SetViewTarget('inside_pagetitle'); } ?&gt; &lt;div class=\"pagetitle-container pagetitle-flexible-space\"&gt;    &lt;?$APPLICATION-&gt;IncludeComponent(        \"bitrix:crm.interface.filter\",        \"title\",        [            \"FILTER_ID\" =&gt; $arParams[\"FILTER_ID\"],            \"GRID_ID\" =&gt; $arParams[\"GRID_ID\"],            \"FILTER\" =&gt; $arResult[\"FILTER_FIELDS\"],            \"ENABLE_LIVE_SEARCH\" =&gt; false,            \"ENABLE_LABEL\" =&gt; true,            \"DISABLE_SEARCH\" =&gt; true        ], $this-&gt;getComponent(), [\"HIDE_ICONS\" =&gt; \"Y\"]    );?&gt; &lt;\/div&gt; &lt;?if($arParams['IS_TAB'] !== 'Y'):?&gt;    &lt;?$this-&gt;endViewTarget();?&gt; &lt;?endif;?&gt; &lt;div style=\"clear: both;\"&gt;&lt;\/div&gt; &lt;?$APPLICATION-&gt;IncludeComponent(    \"bitrix:main.ui.grid\",    \"\",    [        \"GRID_ID\" =&gt; $arParams[\"GRID_ID\"],        \"COLUMNS\" =&gt; $arResult[\"COLUMNS\"],        \"ROWS\" =&gt; $arResult[\"ITEMS\"],        \"NAV_OBJECT\" =&gt; $arResult[\"NAV_OBJECT\"],        \"NAV_STRING\" =&gt; true,        \"TOTAL_ROWS_COUNT\" =&gt; $arResult[\"TOTAL_ROWS_COUNT\"],        \"PAGE_SIZES\" =&gt; [            [\"NAME\" =&gt; \"10\", \"VALUE\" =&gt; \"10\"],            [\"NAME\" =&gt; \"20\", \"VALUE\" =&gt; \"20\"],            [\"NAME\" =&gt; \"50\", \"VALUE\" =&gt; \"50\"],            [\"NAME\" =&gt; \"100\", \"VALUE\" =&gt; \"100\"],            [\"NAME\" =&gt; \"200\", \"VALUE\" =&gt; \"200\"],            [\"NAME\" =&gt; \"500\", \"VALUE\" =&gt; \"500\"]        ],        \"CURRENT_PAGE\" =&gt; intval($arResult[\"NAV_OBJECT\"]-&gt;getCurrentPage()),        \"AJAX_MODE\" =&gt; \"Y\",        \"AJAX_ID\" =&gt; \\CAjax::getComponentID('bitrix:main.ui.grid', '.default', ''),        \"ENABLE_NEXT_PAGE\" =&gt; true,        \"ACTION_PANEL\" =&gt; $arResult[\"ACTION_PANEL\"],        \"AJAX_OPTION_JUMP\" =&gt; \"Y\",        \"SHOW_CHECK_ALL_CHECKBOXES\" =&gt; (!empty($arResult[\"ACTION_PANEL\"]) ? true : false),        \"SHOW_ROW_CHECKBOXES\" =&gt; (!empty($arResult[\"ACTION_PANEL\"]) ? true : false),        \"SHOW_ROW_ACTIONS_MENU\" =&gt; true,        \"SHOW_GRID_SETTINGS_MENU\" =&gt; true,        \"SHOW_NAVIGATION_PANEL\" =&gt; true,        \"SHOW_PAGINATION\" =&gt; true,        \"SHOW_SELECTED_COUNTER\" =&gt; (!empty($arResult[\"ACTION_PANEL\"]) ? true : false),        \"SHOW_TOTAL_COUNTER\" =&gt; true,        \"SHOW_PAGESIZE\" =&gt; ($arParams[\"IS_TAB\"] != \"Y\") ? true : false,        \"SHOW_ACTION_PANEL\" =&gt; (!empty($arResult[\"ACTION_PANEL\"]) ? true : false),        \"ALLOW_COLUMNS_SORT\" =&gt; true,        \"ALLOW_COLUMNS_RESIZE\" =&gt; true,        \"ALLOW_HORIZONTAL_SCROLL\" =&gt; true,        \"ALLOW_SORT\" =&gt; true,        \"ALLOW_PIN_HEADER\" =&gt; true,        \"AJAX_OPTION_HISTORY\" =&gt; \"N\",        \"NAV_PARAMS\" =&gt; [\"SEF_MODE\" =&gt; \"N\"],        \"GRID_PAGE_SIZES\" =&gt; [            [\"NAME\" =&gt; \"10\", \"VALUE\" =&gt; \"10\"],            [\"NAME\" =&gt; \"20\", \"VALUE\" =&gt; \"20\"],            [\"NAME\" =&gt; \"50\", \"VALUE\" =&gt; \"50\"],            [\"NAME\" =&gt; \"100\", \"VALUE\" =&gt; \"100\"],            [\"NAME\" =&gt; \"200\", \"VALUE\" =&gt; \"200\"],            [\"NAME\" =&gt; \"500\", \"VALUE\" =&gt; \"500\"]        ],        \"EXTENSION\" =&gt; [            \"ID\" =&gt; $arParams[\"GRID_ID\"],            \"CONFIG\" =&gt; [                \"gridId\" =&gt; $arParams[\"GRID_ID\"],                \"ownerTypeName\" =&gt; 'O2K_TEST'            ],            \"MESSAGES\" =&gt; []        ]    ], $this-&gt;getComponent(), [\"HIDE_ICONS\" =&gt; \"Y\"] );?&gt; &lt;script type=\"text\/javascript\"&gt;    BX.ready(function() {        BX.CrmUIGridExtension.create('&lt;?=$arParams['GRID_ID']?&gt;', {            gridId: '&lt;?=$arParams['GRID_ID']?&gt;',            ownerTypeName: 'O2K_TEST',        });    }); &lt;\/script&gt;<\/code><\/pre>\n<p>\u041f\u043e \u0444\u0430\u043a\u0442\u0443, \u2014 \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u043a\u0430 <strong>bitrix:crm.interface.filter<\/strong> \u0438 <strong>bitrix:main.ui.grid<\/strong>, \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0432 <strong>class.php<\/strong> \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0442\u043e\u0433\u043e<\/h3>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c2c\/e39\/efe\/c2ce39efe6056b2020ef76bce5a40bdf.jpg\" alt=\"\u041e\u0431\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445\" title=\"\u041e\u0431\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c2c\/e39\/efe\/c2ce39efe6056b2020ef76bce5a40bdf.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c2c\/e39\/efe\/c2ce39efe6056b2020ef76bce5a40bdf.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u041e\u0431\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445<\/em><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f32\/727\/e15\/f32727e1555b615694a222703e7a6203.jpg\" alt=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" title=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f32\/727\/e15\/f32727e1555b615694a222703e7a6203.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f32\/727\/e15\/f32727e1555b615694a222703e7a6203.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443<\/em><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cf\/da7\/23c\/5cfda723c96c0858fcab91d86a52f9b8.jpg\" alt=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" title=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5cf\/da7\/23c\/5cfda723c96c0858fcab91d86a52f9b8.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cf\/da7\/23c\/5cfda723c96c0858fcab91d86a52f9b8.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443<\/em><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ec\/8ab\/b8c\/5ec8abb8c1b748b9652b1d0209c85ff3.jpg\" alt=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" title=\"\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5ec\/8ab\/b8c\/5ec8abb8c1b748b9652b1d0209c85ff3.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ec\/8ab\/b8c\/5ec8abb8c1b748b9652b1d0209c85ff3.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0440\u0438\u0434\u0443<\/em><\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/36e\/6ba\/fa6\/36e6bafa6d4b1b5d1b683048fc06bfbd.jpg\" alt=\"\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438\u0437 \u0433\u0440\u0438\u0434\u0430\" title=\"\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438\u0437 \u0433\u0440\u0438\u0434\u0430\" width=\"3360\" height=\"1652\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/36e\/6ba\/fa6\/36e6bafa6d4b1b5d1b683048fc06bfbd.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/36e\/6ba\/fa6\/36e6bafa6d4b1b5d1b683048fc06bfbd.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><em>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438\u0437 \u0433\u0440\u0438\u0434\u0430<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0433\u0440\u0438\u0434\u0430 \u0438 \u00ab\u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0441\u0442\u0438\u00bb \u043c\u044b \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0442. \u043a. \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u043e\u0434 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043c\u044b \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u043f\u043e\u0434 \u043d\u0443\u0436\u0434\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/daf\/9ef\/eec\/daf9efeecb0be31bf959bd5e4e0bc427.jpg\" width=\"1480\" height=\"880\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/daf\/9ef\/eec\/daf9efeecb0be31bf959bd5e4e0bc427.jpg 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/daf\/9ef\/eec\/daf9efeecb0be31bf959bd5e4e0bc427.jpg 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0431\u043e\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u041124:<\/p>\n<ul>\n<li>\n<p>\u0432 \u0441\u0435\u0442\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (\u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435);<\/p>\n<\/li>\n<li>\n<p>\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u043d\u0435 \u0442\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u0430, \u043a\u0430\u043a\u043e\u0439 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441 \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c \u043e \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u0430\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0432\u043e\u0434 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0441\u0432\u043e\u0435\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0438) \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0441\u0434\u0435\u043b\u043a\u0435 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.<\/p>\n<p><em>\u0410 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438\/\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0411\u0438\u0442\u0440\u0438\u043a\u044124? \u0411\u044b\u043b\u0430 \u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0432\u0430\u043c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u043b\u0430\u043d\u0435?\u00a0<\/em><\/p>\n<p><strong>\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u043c\u043d\u0435\u043d\u0438\u0435\u043c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/strong><\/p>\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\/904166\/\"> https:\/\/habr.com\/ru\/articles\/904166\/<\/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<p><em>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u044f \u0421\u0435\u0440\u0433\u0435\u0439 \u2014 \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0432 e-commerce \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u0435 <\/em><a href=\"https:\/\/b24.o2k.ru\/?utm_source=habr&amp;utm_medium=cpc&amp;utm_campaign=statya_b24-1\"><em>KISLOROD<\/em><\/a><em>.<\/em><\/p>\n<p><em>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044f \u0440\u0435\u0448\u0430\u044e \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u043d\u0430 1\u0421-\u0411\u0438\u0442\u0440\u0438\u043a\u0441, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441 \u0411\u0438\u0442\u0440\u0438\u043a\u044124. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u041124 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043a\u0435\u0439\u0441\u043e\u0432.<\/em><\/p>\n<p>\u041c\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u0438 \u0437\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043e\u0431\u043e\u0431\u0449\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043e\u043f\u044b\u0442. \u0418 \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u0448\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0441\u0444\u0435\u0440\u044b \u0438\u0445 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043a\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0430\u043c\u0438 \u043f\u043e REST API.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u0440\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u0441\u0434\u0435\u043b\u043a\u0438, \u2014 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.<\/p>\n<\/li>\n<\/ol>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0438 \u0445\u043e\u0442\u044f\u0442:<\/p>\n<ul>\n<li>\n<p>\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0437\u0430 \u0441\u0447\u0435\u0442 \u0440\u043e\u0441\u0442\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043c \u043d\u0443\u0436\u0435\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430w\u0442 \u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>\u0421\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0447\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u041124 \u043c\u0430\u043b\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u043b\u043e \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0430\u0432\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u043e\u0442\u044f\u0442 \u0440\u0438\u0441\u043a\u043e\u0432\u0430\u0442\u044c \u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0438\u043b\u044b \u043d\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u041124. \u0412\u0440\u0435\u043c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u0432\u043f\u0443\u0441\u0442\u0443\u044e: \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0435 \u0432\u044b\u0440\u0430\u0441\u0442\u0435\u0442 \u0438\u00a0 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0430 \u0434\u043e\u0445\u043e\u0434\u044b \u0441\u043d\u0438\u0437\u044f\u0442\u0441\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0438\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u2014 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u041124 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0441\u043d\u0438\u0436\u0430\u0435\u043c \u0440\u0438\u0441\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u043c \u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u0438 \u0432 \u0411\u0438\u0442\u0440\u0438\u043a\u044124<\/h3>\n<p><strong>\u041c\u043e\u0434\u0443\u043b\u044c<\/strong> \u2014 \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435, \u2014 \u0430 \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443 \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442 \u044f\u0434\u0440\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435, \u0447\u0435\u043c <s>\u043d\u0435 \u0434\u0430\u0439 \u0411\u043e\u0433<\/s> \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u044f\u0434\u0440\u0430, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u041124.<\/p>\n<figure class=\"full-width\">\n<div><figcaption><em>\u0411\u0438\u043b\u0435\u0442 \u0432 \u0410\u0434 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0432\u043d\u043e\u0441\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e \u0411\u0438\u0442\u0440\u0438\u043a\u0441<\/em><\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443:<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0434\u0443\u043b\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0435\u043d.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0442 \u0442\u0440\u0443\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u00ab\u0421\u043a\u0435\u043b\u0435\u0442\u00bb \u043c\u043e\u0434\u0443\u043b\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445, \u0442\u0430\u043a \u043a\u0430\u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u0445\u043e\u0436\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u044f\u0434\u0440\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u043e\u0434\u0443\u043b\u044f: \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u0438 \u044f\u0434\u0440\u0430, \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u0441\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u041124 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0434\u0443\u043b\u0438.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u0435 \u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u0440\u043e\u043b\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.\u00a0<\/p>\n<p>\u041e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Bitrix Framework \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;CHAPTER_ID=04609\">\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c<\/a>. \u041c\u043e\u0434\u0443\u043b\u0438 \u0434\u043b\u044f 1\u0421-\u0411\u0438\u0442\u0440\u0438\u043a\u0441: \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u043c (\u0411\u0423\u0421) \u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u0430 \u041124 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u0441\u043b\u043e\u0436\u043d\u044b\u043c.\u00a0<\/p>\n<p>\u042f \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0437 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b \u043c\u043e\u0434\u0443\u043b\u0438 \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u0433\u043e\u0442\u043e\u0432 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043e\u043f\u044b\u0442\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u0438\u043d \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b. \u042d\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043e\u043f\u044b\u0442\u0430 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u2014 <strong>o2k.d7<\/strong> \u00ab\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430\u00bb. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0411\u0438\u0442\u0440\u0438\u043a\u0441 \u2014 \u043e\u043d \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u0411\u0423\u0421.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0430 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0435\u0449\u0435 \u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<h3>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0432 CRM. \u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u00ab\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u00bb, \u00ab\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u00bb \u0438 \u00ab\u0421\u0434\u0435\u043b\u043a\u0430\u00bb<\/h3>\n<h4>\u0424\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u0442\u0435\u0440\u044f\u044e\u0442 \u0441\u0434\u0435\u043b\u043a\u0438 \u0438 \u0443\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0434\u0430\u0447\u0438:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 (\u0433\u0440\u0438\u0434, \u0442\u0430\u0431\u043b\u0438\u0446\u0443), \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u044b \u0441\u0434\u0435\u043b\u043a\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c\u0438 \u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0438 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\/\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\/\u0441\u0434\u0435\u043b\u043a\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043e\u0442\u0447\u0435\u0442\u0443.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c CRM \u00ab\u0421\u0434\u0435\u043b\u043a\u0430\u00bb.\u00a0<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0438\u0434 (\u0442\u0430\u0431\u043b\u0438\u0446\u0443).<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043b\u044f \u0433\u0440\u0438\u0434\u0430 \u043f\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c \u043f\u043e\u043b\u044f\u043c.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u043f\u043e\u043b\u044e \u0432 \u0433\u0440\u0438\u0434\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u043b\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435 \u0411\u0438\u0442\u0440\u0438\u043a\u044124.<\/p>\n<\/li>\n<\/ol>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0438 \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0435\u0435 \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<\/p>\n<figure class=\"full-width\"><\/figure>\n<h3>\u0412\u044b\u0432\u043e\u0434 \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0438\u0434 (\u0442\u0430\u0431\u043b\u0438\u0446\u0443)<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c CRM \u2014 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435,<\/strong> \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u00a0<\/p>\n<p>\u041f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431 ORM <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;CHAPTER_ID=05748\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0442\u0430\u043a\u043e\u0435 \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 ORM, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438.\u00a0<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, \u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <strong>Bitrix\\Main\\Entity\\TextField<\/strong>. <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 <strong>DealField<\/strong>.\u00a0<\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 <strong>\\Bitrix\\Main\\ScalarField,<\/strong> \u043d\u043e \u0432 \u043d\u0435\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0432 255 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0430 \u0443 \u043d\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/dev.1c-bitrix.ru\/api_d7\/bitrix\/main\/entity\/index.php\">\u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c (\u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c \u0432\u0438\u0434\u0435) \u2014 \u0437\u0430\u0432\u0435\u0434\u0435\u043c \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<ol>\n<li>\n<p><strong>getHTMLValues <\/strong>\u2014 \u0432\u044b\u0432\u043e\u0434 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u0441\u0434\u0435\u043b\u043a\u0438 (\u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0433\u0440\u0438\u0434).<\/p>\n<\/li>\n<li>\n<p><strong>getDealStages <\/strong>\u2014 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u0442\u0430\u0434\u0438\u0438 \u0441\u0434\u0435\u043b\u043e\u043a.<\/p>\n<\/li>\n<\/ol>\n<p>\u0417\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u0437\u043d\u0430\u044f, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0434\u0435\u043b\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u043c<strong> protected-\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e<\/strong> \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0435 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0435.<\/p>\n<pre><code class=\"php\">protected $filter = [];<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0432 \u043d\u0435\u0435 \u0444\u0438\u043b\u044c\u0442\u0440, \u0447\u0442\u043e\u0431\u044b \u0443 \u043d\u0430\u0441 \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u043a\u0438, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0434\u0435\u043b\u043e\u043a \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<pre><code class=\"php\">'filter' =&gt; [   'CHECK_PERMISSIONS' =&gt; 'N' ],<\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 <strong>ORM-\u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439<\/strong> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"php\">namespace o2k\\d7\\Tables;  use Bitrix\\Main\\Entity; use Bitrix\\Main\\Localization\\Loc; use o2k\\d7\\Entities; use o2k\\d7\\Conf\\Settings;  Loc::loadMessages( __FILE__ );  class TestTable extends Entity\\DataManager {    public static function getTableName() {        return 'o2k_test_table';    }     public static function getField(string $code) {        $result = false;              if(!empty($code)) {            $tableMap = static::getMap();            foreach($tableMap as $field) {                if($field-&gt;getName() === $code) {                    $result = $field;                } else {                    continue;                }            }        }         return $result;    }     public static function getMap() {        return [            'ID' =&gt; new Entity\\IntegerField('ID', [                'column_name' =&gt; 'ID',                'primary' =&gt; true,                'autocomplete' =&gt; true,                'title' =&gt; 'ID'            ]),            'RESPONSIBLE' =&gt; new Entities\\UserField('RESPONSIBLE', [                'column_name' =&gt; 'RESPONSIBLE',                'title' =&gt; Loc::getMessage(Settings::$langPrefix.'_RESPONSIBLE'),                'filter' =&gt; [                    '=ACTIVE' =&gt; 'Y'                ],                'required' =&gt; false            ]),            'RESPONSIBLE_REF' =&gt; new Entity\\ReferenceField('RESPONSIBLE_REF',                'Bitrix\\Main\\UserTable',                ['=this.RESPONSIBLE_ID' =&gt; 'ref.ID'],                ['join_type' =&gt; 'LEFT']            ),            'DEALS' =&gt; new Entities\\DealField('DEALS', [                'column_name' =&gt; 'DEALS',                'title' =&gt; Loc::getMessage(Settings::$langPrefix.'_DEALS'),                'filter' =&gt; ['CHECK_PERMISSIONS' =&gt; 'N'],                'required' =&gt; false,                'save_data_modification' =&gt; function() {                    return [                        function($value){                            return serialize($value);                        }                    ];                },                'fetch_data_modification' =&gt; function() {                    return [                        function($value){                            return unserialize($value);                        }                    ];                }            ])        ];    } }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432 \u043a\u0430\u0440\u0442\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u0438\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f:<\/p>\n<ul>\n<li>\n<p><strong>ID<\/strong> \u2014 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u043d \u0436\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447.<\/p>\n<\/li>\n<li>\n<p><strong>RESPONSIBLE, RESPONSIBLE_REF<\/strong> \u2014 \u0441\u0432\u044f\u0437\u044c \u043f\u043e<strong> ID<\/strong> \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430 \u0441\u0434\u0435\u043b\u043a\u0443 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u043c \u043f\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>DEALS<\/strong> \u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0434\u0435\u043b\u043e\u043a \u0432 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430, \u0432 \u043f\u043e\u043b\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043f\u0440\u0438 \u0432\u044b\u0432\u043e\u0434\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0417\u0430 \u044d\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p><strong>save_data_modification<\/strong>;<\/p>\n<\/li>\n<li>\n<p><strong>fetch_data_modification<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/dev.1c-bitrix.ru\/learning\/course\/index.php?COURSE_ID=43&amp;LESSON_ID=2244\">\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c\u2192<\/a><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0438\u043f \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f, \u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u043f\u043e\u043b\u044f\u043c (\u0444\u0438\u043b\u0434\u0430\u043c). \u0417\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <strong>getField<\/strong>.\u00a0<\/p>\n<p>\u041f\u043e \u0432\u0445\u043e\u0434\u0443 \u0443 \u043d\u0435\u0433\u043e \u2014 <strong>\u043a\u043e\u0434 \u043f\u043e\u043b\u044f<\/strong>, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u043d \u2014 <strong>\u043e\u0431\u044a\u0435\u043a\u0442 \u0444\u0438\u043b\u0434\u0430<\/strong>. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0448 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043e\u043b\u0435\u043c \u2014 <strong>DealField<\/strong>.<\/p>\n<pre><code class=\"php\">namespace o2k\\d7\\Entities;  use Bitrix\\Main\\Loader,    Bitrix\\Main\\Localization\\Loc,    Bitrix\\Main\\Entity\\TextField,    Bitrix\\Main\\Config\\Option,    Bitrix\\Crm\\DealTable,    Bitrix\\Crm\\StatusTable,    Bitrix\\Main\\ORM,    Bitrix\\Iblock\\ORM as IblockORM,    o2k\\d7\\Conf\\Settings;  Loc::loadMessages( __FILE__ );  class DealField extends TextField {    protected $filter = [];     public function __construct(string $name, array $params = []) {        parent::__construct($name, $params);        if(is_array($params['filter']) &amp;&amp;<\/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-457956","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/457956","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=457956"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/457956\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=457956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=457956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=457956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}