{"id":282867,"date":"2016-12-22T13:15:08","date_gmt":"2016-12-22T10:15:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=282867"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=282867","title":{"rendered":"Excel \u00ab\u0412\u0441\u0435\u043c\u043e\u0433\u0443\u0449\u0438\u0439\u00bb \u0438 Redmine: \u043a\u0430\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 Excel"},"content":{"rendered":"<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"https:\/\/habrastorage.org\/files\/389\/1b0\/e86\/3891b0e86c384484992b8334c2645886.png\"\/><\/div>\n<p>  \u0412 \u0434\u0430\u043b\u0451\u043a\u0438\u0445 \u043e\u0442 IT \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u0445 Excel \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043e\u0433 \u0432\u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u043e\u0447\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u044b\u0435 \u0441\u0440\u043e\u043a\u0438 \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0432 Excel \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u043e\u043f\u0443\u0442\u043d\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044b. \u041a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0422\u0417 \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0438 \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 VBA \u0441\u0430\u043c\u043e\u0433\u043e Excel.<\/p>\n<p>  \u0421 \u0432\u044b\u0434\u0430\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e. \u041f\u043e\u0441\u043a\u0440\u0438\u043f\u0435\u0432 \u043a\u0440\u0435\u0441\u043b\u043e\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 Redmine \u043f\u0440\u044f\u043c\u043e \u0438\u0437 Excel, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c-\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0436\u0435 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u0440\u0443\u0442\u0438\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u044b\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c! <br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435?<\/h3>\n<p>  \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e Excel \u0432 \u043e\u0442\u0440\u0430\u0441\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0435-\u0444\u0430\u043a\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u0447\u0430\u044e\u0449\u0438\u043c\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u043c\u0438, \u043a\u0430\u043a \u0438 AutoCAD \u0434\u043b\u044f \u0447\u0435\u0440\u0442\u0435\u0436\u0435\u0439.<\/p>\n<p>  \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0442\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0435 \u043a\u043e\u043d\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0443\u043c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0431\u0430\u0437\u044b, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043d\u0430 \u0434\u0435\u043b\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Excel \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u00ab\u0442\u0443\u0434\u0430-\u0441\u044e\u0434\u0430\u00bb \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0441 \u043a\u043e\u043d\u0442\u0440\u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u0412 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0442\u043d\u0438 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043e\u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041a \u043d\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u044e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0441 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u044d\u043a\u0441\u0435\u043b\u0435\u0432\u0441\u043a\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u043d\u0430 ~4500 \u0441\u0442\u0440\u043e\u043a, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0432 \u0440\u0430\u0431\u043e\u0442\u0443: \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d, \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 \u0413\u041e\u0421\u0422 \u0438 \u0442.\u0434. <\/p>\n<p>  \u0422\u0430\u043a\u0438\u0435 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u0434\u043e\u0431\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 Redmine \u043f\u0440\u044f\u043c\u043e \u0438\u0437 Excel, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044f \u0438\u0445 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>  \u041a\u043e \u0432\u0441\u0435\u043c\u0443 \u0432\u044b\u0448\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443, \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u043f\u044b\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0441\u0442\u044b\u043b\u0435\u0439 \u043d\u0430 vba \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b, \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0433\u043e\u043b\u043e\u0432\u0435 \u0443\u0436\u0435 \u043a\u0440\u0443\u0442\u0438\u043b\u0441\u044f.<\/p>\n<p>  \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0430\u043c\u043e\u0433\u043e Redmine. \u0422\u0435, \u043a\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c <a href=\"http:\/\/demo.redmine.org\">demo<\/a>, \u0438\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0442\u0430\u043a \u043e\u0442 <a href=\"https:\/\/bitnami.com\/stack\/redmine\">bitnami<\/a>. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 Bitnami Redmine \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/docs.bitnami.com\/virtual-machine\/apps\/redmine\/\">\u0442\u0443\u0442<\/a>. <\/p>\n<p>  \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e API &mdash; <a href=\"http:\/\/www.redmine.org\/projects\/redmine\/wiki\/Rest_api\">Redmine API<\/a>.<\/p>\n<h3>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>  \u0418\u0442\u0430\u043a, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 vba \u0432 Excel, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"vbscript\">' \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Redmine, \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430, ' \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435 url, \u0442\u043e\u0433\u0434\u0430 \u043e\u043a\u043d\u043e \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c ' \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 Const REDMINE_URL = &quot;http:\/\/redmine_url&quot; ' \u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u0436\u0435\u0441\u0442\u043a\u043e \u0437\u0430\u0434\u0430\u0442\u044c 'Const REDMINE_URL = &quot;http:\/\/user:password@redmine_url  ' \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0430 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0432\u0435\u0440\u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f PostIssue ' (\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u043a\u0430\u043a \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 ' \u0431\u0435\u0437 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043d\u0435 \u0441\u0442\u0440\u043e\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432) Public issue_url, issue_id As String  Sub Redmine_Create_Issue()     Dim ReqStatus As Boolean     Dim PROJECT_ID, TRACKER_ID, ASSIGNED_TO_ID, CATEGORY_ID As Integer     Dim Subject, Body, DUE_DATE, REDMINE_API_KEY As String      ' ID \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0438\u0437 \u0431\u0430\u0437\u044b Redmine     ' \u041f\u043e\u0437\u0436\u0435 \u044f \u043e\u043f\u0438\u0448\u0443, \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u0438\u0437 Redmine     PROJECT_ID = 32     TRACKER_ID = 1     ASSIGNED_TO_ID = 20  'ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430      ' \u0421\u044e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b     Subject = &quot;\u0422\u0435\u043c\u0430 \u0437\u0430\u0434\u0430\u0447\u0438&quot;     Body = &quot;\u0422\u0435\u043a\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438&quot;      ' \u041f\u043b\u0430\u043d\u043e\u0432\u0430\u044f \u0434\u0430\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438     DUE_DATE = Format(ActiveSheet.Cells(ActiveCell.Row, 12), &quot;yyyy-mm-dd&quot;)      'REDMINE_API_KEY = &quot;e11234567891234567891234567891234567bce0&quot; ' \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f API key          ' \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0440\u0435\u0434\u043c\u0430\u0439\u043d \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438     ReqStatus = PostIssue(PROJECT_ID, TRACKER_ID, ASSIGNED_TO_ID, Subject, Body, DUE_DATE, _                           REDMINE_API_KEY, CATEGORY_ID)      ' \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430     If ReqStatus &lt;&gt; False Then         MsgBox &quot;Redmine: Ok, \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430&quot;          ' \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0430\u0448\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432\u043e 2\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0433\u0438\u043f\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443         ActiveSheet.Cells(ActiveCell.Row, 2) = issue_id         ActiveSheet.Hyperlinks.Add Range(&quot;B&quot; & ActiveCell.Row), issue_url, &quot;&quot;, _                                                                &quot;\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443&quot; & issue_url         ' \u0414\u0430\u0442\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 11\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u043d\u0430 \u043b\u0438\u0441\u0442\u0435)         ActiveSheet.Cells(ActiveCell.Row, 11) = Date      Else         MsgBox &quot;Redmine: \u041e\u0448\u0438\u0431\u043a\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443&quot;     End If End Sub  ' \u0421\u0430\u043c\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 xml Function PostIssue(ByVal PROJECT_ID As Integer, ByVal TRACKER_ID As Integer, _                    ByVal ASSIGNED_TO_ID As Integer, ByVal Subject As String, _                    ByVal Body As String, ByVal DUE_DATE As String, _                    ByVal REDMINE_API_KEY As String, ByVal CATEGORY_ID As String)     Dim xhr     Dim RequestURL As String     Dim RequestBody As String      RequestURL = REDMINE_URL & &quot;\/issues.xml?format=xml&quot;     ' \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f API key     'RequestURL = REDMINE_URL & &quot;\/issues.xml?format=xml&key=&quot; & REDMINE_API_KEY      Set xhr = CreateObject(&quot;Microsoft.XMLHTTP&quot;)     xhr.Open &quot;GET&quot;, RequestURL, False     xhr.SetRequestHeader &quot;Content-Type&quot;, &quot;text\/xml&quot;      RequestBody = &quot;&lt;?xml version=&quot; & Chr(34) & &quot;1.0&quot; & Chr(34) & &quot;?&gt;&quot;     RequestBody = RequestBody & &quot;&lt;issue&gt;&quot;     RequestBody = RequestBody & &quot;&lt;project_id&gt;&quot; & PROJECT_ID & &quot;&lt;\/project_id&gt;&quot;     RequestBody = RequestBody & &quot;&lt;tracker_id&gt;&quot; & TRACKER_ID & &quot;&lt;\/tracker_id&gt;&quot;     RequestBody = RequestBody & &quot;&lt;assigned_to_id&gt;&quot; & ASSIGNED_TO_ID & &quot;&lt;\/assigned_to_id&gt;&quot;     RequestBody = RequestBody & &quot;&lt;subject&gt;&quot; & Subject & &quot;&lt;\/subject&gt;&quot;     RequestBody = RequestBody & &quot;&lt;description&gt;&quot; & Body & &quot;&lt;\/description&gt;&quot;     RequestBody = RequestBody & &quot;&lt;due_date&gt;&quot; & DUE_DATE & &quot;&lt;\/due_date&gt;&quot;     RequestBody = RequestBody & &quot;&lt;\/issue&gt;&quot;      ' \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430     xhr.Send (RequestBody)     If xhr.Status = 201 Then         PostIssue = True     Else         PostIssue = False     End If      ' \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0430 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0447\u0438     issue_url = xhr.getResponseHeader(&quot;location&quot;)     issue_id = Right(issue_url, Len(issue_url) - InStrRev(issue_url, &quot;\/&quot;)) End Function <\/code><\/pre>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 Redmine \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c, \u0438\u043b\u0438 \u043a\u043b\u044e\u0447 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043d-\u043f\u0430\u0440\u043e\u043b\u044c, \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b.<\/i><\/p>\n<p>  \u0412\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u043a\u0430\u043a \u0431\u044b\u0442\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Redmine? \u042f \u0438\u043c\u0435\u044e \u0432 \u0432\u0438\u0434\u0443 ID \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0442\u0440\u0435\u043a\u0435\u0440\u0430, \u0438 \u043d\u0430 \u043a\u043e\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0430.<\/p>\n<p>  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u043f\u0440\u043e\u0435\u043a\u0442, \u0435\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441, \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0434\u0435\u043b), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b \u043f\u0440\u043e\u0441\u0442\u043e, \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042f \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u043b ID \u0432 \u0431\u0430\u0437\u0435 Redmine \u0447\u0435\u0440\u0435\u0437 phpMyAdmin \u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043b\u0438\u0441\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0433\u0434\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043b \u044d\u0442\u0438 ID \u0434\u043b\u044f \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u043d\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u043e\u043a\u043e\u043d.<\/p>\n<p>  \u042f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0441\u043c\u044b\u0441\u043b \u0442\u043e\u0442 \u0436\u0435 &mdash; \u0431\u0435\u0440\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043f\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441 ID.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a6f\/eff\/8f4\/a6feff8f4f2049dfacb95a416200c951.PNG\" \/><\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c ID \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e: \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u043e\u0434\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0440\u0435\u043a\u0435\u0440\u0430, \u0438 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u044e\u0436\u0438\u043d\u044b \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043e\u0442\u0434\u0435\u043b\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0434\u0430\u0447\u0430. <\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u043c\u0435\u0441\u0442\u043e:<\/p>\n<pre><code class=\"vbscript\">PROJECT_ID = 32 TRACKER_ID = 1 ASSIGNED_TO_ID = 20 <\/code><\/pre>\n<p>  \u042f \u0432\u043f\u0438\u0441\u0430\u043b \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"vbscript\">PROJECT_ID = 0 TRACKER_ID = 0 ASSIGNED_TO_ID = 0 Set ID_WS = Application.ThisWorkbook.Sheets(&quot;ID&quot;)     last_row = ID_WS.Cells(Rows.Count, 1).End(xlUp).Row     For i = 2 To last_row         If ActiveSheet.Cells(ActiveCell.Row, 3) = ID_WS.Cells(i, 2) Then             PROJECT_ID = ID_WS.Cells(i, 3)         End If         If ActiveSheet.Cells(ActiveCell.Row, 4) = ID_WS.Cells(i, 5) Then             TRACKER_ID = ID_WS.Cells(i, 6)         End If         If ActiveSheet.Cells(ActiveCell.Row, 10) = ID_WS.Cells(i, 8) Then             ASSIGNED_TO_ID = ID_WS.Cells(i, 9)         End If         If PROJECT_ID &lt;&gt; 0 And TRACKER_ID &lt;&gt; 0 And ASSIGNED_TO_ID &lt;&gt; 0 Then Exit For     Next <\/code><\/pre>\n<p>  <\/p>\n<h3>\u041f\u0430\u0440\u0441\u0438\u043d\u0433 xml<\/h3>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 &mdash; \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u044f\u043c\u043e \u0438\u0437 Redmine. \u0422\u0443\u0442 \u043d\u0430\u043c \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 API.<\/p>\n<p>  \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<p>  <b>XMLtoArray<\/b> &mdash; \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0430\u0440\u0441\u0438\u0442 xml \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0422\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Microsoft XML, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0449\u0435, \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0438\u0442\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">XMLtoArray<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <b>Microsoft XML<\/b> \u0447\u0435\u0440\u0435\u0437 <b>Tools<\/b> &#8212;&gt; <b>Reference<\/b><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6e7\/b7b\/f3b\/6e7b7bf3bcd04c52927953fb29cf4770.PNG\"\/><\/p>\n<pre><code class=\"vbscript\">Function XMLtoArray(ByVal RequestURL, ByVal ElementsByTagName As String, ByVal arr) As Variant ' \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 xml \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0435\u0433\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 ' ElementsByTagName - \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 xml \u0443\u0437\u0435\u043b \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 ' arr - \u043c\u0430\u0441\u0441\u0438\u0432 \u0443\u0437\u043b\u043e\u0432 \u0438 \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432     Dim strXML As String     Dim currNode As IXMLDOMNode          If Not IsArray(arr) Then MsgBox &quot;\u042d\u0442\u043e \u043d\u0435 \u043c\u0430\u0441\u0441\u0438\u0432!&quot;, vbCritical: Exit Function          ' \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c xml     Set xhr = CreateObject(&quot;Microsoft.XMLHTTP&quot;)     xhr.Open &quot;GET&quot;, RequestURL, False     xhr.SetRequestHeader &quot;Content-Type&quot;, &quot;text\/xml&quot;     xhr.Send     strXML = xhr.responseText          ' \u043f\u0430\u0440\u0441\u0438\u043c xml     ' \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Microsoft XML, v6.0 (Tools --&gt; Reference)     Set xmlParser = CreateObject(&quot;MSXML2.DOMDocument&quot;)     If Not xmlParser.LoadXML(strXML) Then         Err.Raise xmlParser.parseError.ErrorCode, , XDoc.parseError.reason     End If      Set colNodes = xmlParser.getElementsByTagName(ElementsByTagName)     ReDim newarr(0 To colNodes.Length, 0 To UBound(arr))     N = 0     For Each node_item In colNodes         For i = 0 To UBound(arr)             If Not arr(i) Like &quot;*@*&quot; Then                 If Not IsNull(node_item.SelectSingleNode(arr(i))) Then                     newarr(N, i) = node_item.SelectSingleNode(arr(i)).Text                 End If             Else                 For Each nodeChild In node_item.ChildNodes                     If part1(arr(i)) = nodeChild.nodeName Then                         newarr(N, i) = nodeChild.getAttribute(part2(arr(i)))                         If nodeChild.ChildNodes.Length &gt; 0 Then                             p = 0                             For Each nodeChildChild In nodeChild.ChildNodes                                 If p = 0 Then                                     newarr(N, i) = nodeChildChild.getAttribute(part2(arr(i)))                                 Else                                     newarr(N, i) = newarr(N, i) & &quot;@&quot; & nodeChildChild.getAttribute(part2(arr(i)))                                 End If                                 p = 1                             Next                         End If                     End If                 Next             End If         Next         N = N + 1     Next     XMLtoArray = newarr End Function <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <b>SWAP<\/b> &mdash; \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 (\u0432\u0437\u044f\u043b <a href=\"http:\/\/excelvba.ru\/code\/ArraySwapColumns\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">SWAP<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">Function SWAP(ByVal arr As Variant, ByVal NewColumnsOrder$) As Variant     ' \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 arr (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432)     ' \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 NewColumnsOrder \u0441 \u043d\u043e\u0432\u044b\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 &quot;,,5,6,8,,9-15,18,2,9-11,,1,4,,21,&quot;     ' \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435     On Error Resume Next     cols = Split(Replace(NewColumnsOrder$, &quot; &quot;, &quot;&quot;), &quot;,&quot;): Dim n As Long: ReDim colArr(0 To 0)     For i = LBound(cols) To UBound(cols)         Select Case True             Case cols(i) = &quot;&quot;, Val(cols(i)) &lt; 0                 colArr(UBound(colArr)) = -1: ReDim Preserve colArr(0 To UBound(colArr) + 1)             Case IsNumeric(cols(i))                 colArr(UBound(colArr)) = cols(i): ReDim Preserve colArr(0 To UBound(colArr) + 1)             Case cols(i) Like &quot;*#-#*&quot;                 spl = Split(cols(i), &quot;-&quot;)                 If UBound(spl) = 1 Then                     If IsNumeric(spl(0)) And IsNumeric(spl(1)) Then                         For j = Val(spl(0)) To Val(spl(1)) Step IIf(Val(spl(0)) &gt; Val(spl(1)), -1, 1)                             colArr(UBound(colArr)) = j: ReDim Preserve colArr(0 To UBound(colArr) + 1)                         Next j                     End If                 End If         End Select     Next i     ReDim Preserve colArr(0 To UBound(colArr) - 1)     ColumnsArray = colArr       ReDim tmpArr(LBound(arr, 1) To UBound(arr, 1), LBound(arr, 2) To UBound(ColumnsArray) + 1)     For j = LBound(ColumnsArray) To UBound(ColumnsArray)         If Val(ColumnsArray(j)) &gt;= 0 Then             For i = LBound(arr, 1) To UBound(arr, 1): tmpArr(i, j + LBound(arr, 2)) = arr(i, Val(ColumnsArray(j))): Next i         End If     Next j     SWAP = tmpArr End Function <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432 Redmine:<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"vbscript\">RequestURL = REDMINE_URL & &quot;\/projects.xml?include=trackers&quot; Arr_childNodes_projects = Array(&quot;id&quot;, &quot;name&quot;, &quot;trackers@id&quot;, &quot;trackers@name&quot;, _                         &quot;identifier&quot;, &quot;description&quot;, &quot;parent@id&quot;, &quot;parent@name&quot;, _                         &quot;status&quot;, &quot;is_public&quot;, &quot;created_on&quot;, &quot;updated_on&quot;) Arr_projects = XMLtoArray(RequestURL, &quot;project&quot;, Arr_childNodes_projects) Arr_projects_SWAP = SWAP(Arr_projects, 1) <\/code><\/pre>\n<p>  \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 &mdash; \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438 \u0443\u0440\u0435\u0437\u0430\u043d\u043d\u044b\u0439 SWAP \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u0442\u0430\u0442\u0443\u0441\u044b \u0437\u0430\u0434\u0430\u0447<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">RequestURL_status = REDMINE_URL & &quot;\/issue_statuses.xml&quot; Arr_childNodes_status = Array(&quot;id&quot;, &quot;name&quot;, &quot;is_closed&quot;) Arr_statuses = XMLtoArray(RequestURL_status, &quot;issue_status&quot;, Arr_childNodes_status) Arr_statuses_SWAP = SWAP(Arr_statuses, 1) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u0437\u0430\u0434\u0430\u0447<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">RequestURL_priorities = REDMINE_URL & &quot;\/enumerations\/issue_priorities.xml&quot; Arr_childNodes_priorities = Array(&quot;id&quot;, &quot;name&quot;, &quot;is_default&quot;) Arr_priorities = XMLtoArray(RequestURL_priorities, &quot;issue_priority&quot;, Arr_childNodes_priorities) Arr_priorities_SWAP = SWAP(Arr_priorities, 1) <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">RequestURL_memberships = REDMINE_URL & &quot;\/projects\/&quot; & Arr_projects(i, 0) & &quot;\/memberships.xml?limit=300&quot; Arr_childNodes_memberships = Array(&quot;user@id&quot;, &quot;user@name&quot;, &quot;project@id&quot;, &quot;project@name&quot;, &quot;roles@id&quot;, &quot;roles@name&quot;) Arr_memberships = XMLtoArray(RequestURL_memberships, &quot;membership&quot;, Arr_childNodes_memberships) Arr_memberships_SWAP = SWAP(Arr_memberships, 1) <\/code><\/pre>\n<p>  \u0433\u0434\u0435 <b>Arr_projects(i, 0)<\/b> \u2014 <b>ID<\/b> \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">RequestURL_issues = REDMINE_URL & &quot;\/issues.xml?project_id=&quot; & Arr_projects(i, 0) Arr_childNodes_issues = Array(&quot;id&quot;, &quot;subject&quot;) Arr_issues = XMLtoArray(RequestURL_issues, &quot;issue&quot;, Arr_childNodes_issues) Arr_issues_SWAP = SWAP(Arr_issues, &quot;0,1&quot;) ComboBox_parent_issue.List = Arr_issues_SWAP <\/code><\/pre>\n<p>  \u0433\u0434\u0435 <b>Arr_projects(i, 0)<\/b> \u2014 <b>ID<\/b> \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.  <\/div>\n<\/div>\n<p>  \u042d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u044b:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1b7\/1c2\/d0b\/1b71c2d0b83845e685e376859d22ced3.png\"\/><\/p>\n<p>  \u042d\u0442\u0430 \u0444\u043e\u0440\u043c\u0430 \u0434\u0435\u043b\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0434 Word (\u0441\u0443\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u0434 vba \u0442\u043e\u0442 \u0436\u0435 \u0438 \u0432 Excel) \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0441 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0431\u044e\u0440\u043e\u043a\u0440\u0430\u0442\u043e\u0432. \u041d\u043e \u044d\u0442\u043e, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<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:\/\/habrahabr.ru\/post\/318198\/\"> https:\/\/habrahabr.ru\/post\/318198\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div style=\"text-align:center;\"><img decoding=\"async\"  src=\"https:\/\/habrastorage.org\/files\/389\/1b0\/e86\/3891b0e86c384484992b8334c2645886.png\"\/><\/div>\n<p>  \u0412 \u0434\u0430\u043b\u0451\u043a\u0438\u0445 \u043e\u0442 IT \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u0445 Excel \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043e\u0433 \u0432\u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434\u043e \u043c\u043d\u043e\u0439 \u0432\u0441\u0442\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u043e\u0447\u0435\u043d\u044c \u0441\u0436\u0430\u0442\u044b\u0435 \u0441\u0440\u043e\u043a\u0438 \u043d\u0430\u043b\u0430\u0434\u0438\u0442\u044c \u0432 Excel \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043f\u043e\u043f\u0443\u0442\u043d\u043e\u0439 \u0432\u044b\u0434\u0430\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u043e\u0442\u0434\u0435\u043b\u044b. \u041a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0422\u0417 \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0438 \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 VBA \u0441\u0430\u043c\u043e\u0433\u043e Excel.<\/p>\n<p>  \u0421 \u0432\u044b\u0434\u0430\u0447\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e. \u041f\u043e\u0441\u043a\u0440\u0438\u043f\u0435\u0432 \u043a\u0440\u0435\u0441\u043b\u043e\u043c, \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 Redmine \u043f\u0440\u044f\u043c\u043e \u0438\u0437 Excel, \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c-\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0436\u0435 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u0440\u0443\u0442\u0438\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u044b\u043c \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f\u043c!   <\/p>\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-282867","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/282867","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=282867"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/282867\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=282867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=282867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=282867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}