З літа Росія балістикою та реактивними дронами "виносить" в Україні все: склади, торгові центри і навіть завод сантехніки Cersanit у Звягелі. Чи дотягнулися її "пазурі" до оборонки? Схоже, що ні.
За січень-серпень 2026 року продажі промисловості зросли на 16%, у порівнянні з аналогічним періодом 2025 року.
Але це середнє, за яким ховаються два різні світи. "Військові" галузі продали продукції на 458,8 млрд грн, що на 35% більше, ніж роком раніше. Цьогорічний поштовх частково пояснюється початком отримання оборонними компаніями грошей з частини кредиту ЄС на 90 млрд євро. Тепер європейці фінансують українську оборонку напряму, чого вони не робили в перші роки великої війни.
ЕП поділила галузі на військові і решту так само, як і в листопаді 2025 року. З понад 150 галузей, які показує Держстат, відбираємо три десятки, що прямо або опосередковано працюють на оборону: зброя та боєприпаси, електроніка, кабелі, одяг та інші.
Тепер на "військові" галузі припадає 15 копійок з кожної гривні промислових продажів і через зупинку меткомбінатів ця частка, імовірно, до кінця року ще зросте. Роком раніше було 13 копійок, у 2021-му – лише 6.
Всього від жовтня 2021 року продажі "військових" галузей без сезонних коливань зросли в 3,7 раза.
«Військові» галузі проти решти промисловості Продажі промпродукції У гривнях, жовтень 2021 = 100%. Без сезонних коливань, середнє за 3 місяці; серпень 2026 — без усереднення. Джерело: Держстат, обсяг реалізованої промислової продукції; розрахунок ЕП. '; return; } const DATA = {"dates":["2021-10","2021-11","2021-12","2022-01","2022-02","2022-03","2022-04","2022-05","2022-06","2022-07","2022-08","2022-09","2022-10","2022-11","2022-12","2023-01","2023-02","2023-03","2023-04","2023-05","2023-06","2023-07","2023-08","2023-09","2023-10","2023-11","2023-12","2024-01","2024-02","2024-03","2024-04","2024-05","2024-06","2024-07","2024-08","2024-09","2024-10","2024-11","2024-12","2025-01","2025-02","2025-03","2025-04","2025-05","2025-06","2025-07","2025-08","2025-09","2025-10","2025-11","2025-12","2026-01","2026-02","2026-03","2026-04","2026-05","2026-06","2026-07","2026-08"],"war":[100.0,100.4,112.5,113.3,96.4,80.6,67.5,74.6,74.7,82.5,86.4,89.7,90.6,94.9,107.1,117.4,129.2,130.2,132.9,138.2,143.5,144.8,142.1,141.4,146.9,148.9,157.0,163.8,173.4,182.8,187.8,192.7,196.7,206.0,213.5,226.2,222.3,231.6,229.8,240.3,249.2,248.2,257.0,254.9,258.1,254.9,260.2,266.8,280.7,286.2,277.7,271.4,289.6,327.1,354.3,364.5,364.7,369.6,374.3],"civil":[100.0,104.2,109.1,106.1,89.5,73.8,65.3,68.3,68.7,70.1,71.5,71.4,68.7,64.7,64.6,67.8,77.5,83.2,86.7,86.0,85.5,86.6,85.5,84.7,84.0,84.7,84.9,83.9,85.2,88.5,90.6,90.1,89.5,89.7,90.4,92.1,94.5,96.1,94.8,94.0,96.9,100.7,103.2,101.0,99.8,97.0,96.9,98.3,99.2,98.4,96.0,98.7,107.5,115.3,118.8,115.8,112.7,109.4,105.0],"article_end":"2025-09"}; const $$ = s => ROOT.querySelectorAll(s); const pct = (v, d = 1) => (v > 0 ? "+" : v String(s).replace(/[&"']/g, c => ({ "&": "&", "": ">", '"': """, "'": "'" }[c])); const num = (v, d = 0) => v.toLocaleString("uk-UA", { minimumFractionDigits: d, maximumFractionDigits: d }).replace(/ /g, " "); const MONTHS = ["січ", "лют", "бер", "квіт", "трав", "черв", "лип", "серп", "вер", "жовт", "лист", "груд"]; const FONT = '"Fira Sans", "Segoe UI", Arial, sans-serif'; const STYLE = { fontFamily: FONT, fontSize: "13px", color: "#333", overflow: "visible", fontVariantNumeric: "tabular-nums" }; // чекаємо шрифт до першого малювання, щоб підписи не міряли запасним шрифтом (не довше 1,5 с) await Promise.race([document.fonts.load('400 13px "Fira Sans"'), new Promise(r => setTimeout(r, 1500))]).catch(() => {}); // ===== СЦЕНИ: підготовка даних ===== // червоний — «військові» галузі, майже чорний — решта промисловості (лінія і її підпис одного кольору) const RED = "#e8001c", DARK = "#1e1e1e"; const YMIN = 40, YMAX = 420; const mid = s => { const [y, m] = s.split("-").map(Number); return new Date(y, m - 1, 15); }; const rows = DATA.dates.map((s, i) => ({ date: mid(s), war: DATA.war[i], civil: DATA.civil[i] })); const last = rows[rows.length - 1]; const xEnd = new Date(last.date.getFullYear(), last.date.getMonth() + 1, 1); const x0 = new Date(rows[0].date.getFullYear(), rows[0].date.getMonth(), 1); const p0 = v => num(v, 0) + "%"; // draw(W): малює весь графік під ширину W. Повертає DOM-вузол (Plot.plot або svg з D3). // МОБІЛЬНА ВЕРСІЯ ОБОВ'ЯЗКОВА з першої збірки: W "Військові галузі", dy: -14, fill: RED }), Plot.text([last], { ...lab, y: "civil", text: () => mobile ? "Решта" : "Решта промисловості", dy: 18, fill: DARK }), ]; return Plot.plot({ width: W, height: mobile ? 340 : 390, marginLeft: 48, marginRight: 14, marginTop: 14, marginBottom: 30, style: STYLE, x: { type: "time", label: null, domain: [x0, xEnd], ticks: d3.timeYear.every(1), tickFormat: d => String(d.getFullYear()) }, y: { label: null, domain: [YMIN, YMAX], ticks: mobile ? [100, 200, 300, 400] : [50, 100, 150, 200, 250, 300, 350, 400], tickFormat: d => d + "%" }, marks: [ Plot.gridY(mobile ? [100, 200, 300, 400] : [50, 100, 150, 200, 250, 300, 350, 400], { stroke: "#dbdbdb", strokeOpacity: 1 }), // пунктир 100% світліший за лінію решти, бо вона ходить якраз довкола 100 Plot.ruleY([100], { stroke: "#999", strokeWidth: 1, strokeDasharray: "4,3" }), Plot.lineY(rows, { x: "date", y: "civil", stroke: DARK, strokeWidth: 2.6 }), Plot.lineY(rows, { x: "date", y: "war", stroke: RED, strokeWidth: 3 }), Plot.dot([last], { x: "date", y: "civil", r: 4, fill: DARK, stroke: "white", strokeWidth: 1 }), Plot.dot([last], { x: "date", y: "war", r: 4.5, fill: RED, stroke: "white", strokeWidth: 1 }), ...ends, ], }); } // ===== КАРКАС: малювання й перебудова лише при зміні ширини (на телефоні висота скаче від адресного рядка) ===== let lastW = 0, rt; function build() { const W = BOX.clientWidth; if (!W || W === lastW) return; lastW = W; BOX.replaceChildren(draw(W)); } build(); new ResizeObserver(() => { clearTimeout(rt); rt = setTimeout(build, 150); }).observe(BOX); })();Найбільше до зростання "військових" галузей додав блок, в який входять літальні апарати (зокрема дрони), військові транспортні засоби та судна. З 2025 року Держстат не деталізує інформацію по ним, і показує лише разом. За вісім місяців 2026-го – 133,5 млрд грн, на 89% більше, ніж за аналогічний період 2025-го.
Далі йдуть галузі, які виготовляють деталі й електроніку. Металообробка, тобто механічна обробка деталей і нанесення покриттів, подвоїла продажі – до 27,5 млрд грн. Вимірювальні й навігаційні прилади додали 68%, електронні компоненти й плати – 122%, кабелі – 41%. Блок зі зброєю та боєприпасами виріс на 13% – до 60 млрд грн.
Попит держави на цю продукцію теж росте. 11 жовтня Міноборони повідомило, що Агенція оборонних закупівель у 2026 році законтрактувала на 300% більше безпілотників, ніж торік.
Зростання "військових" галузей ми міряли гривнями, а гривні – ще не штуки. Наприклад, згадане зростання усієї промисловості на 16% обумовлене інфляцією: у фізичних обсягах за вісім місяців відбулося навіть скорочення на 1%.
Читайте також Повністю на військових рейках: економіка України працює на оборонуДля "військових" галузей індекс промислового виробництва Держстату, який рахує саме фізичні обсяги, показує, наприклад, не +35%, як у гривні, а лише +4%. Але і тут без передчасних висновків. По-перше, продукція сектору стає технологічнішою, а отже, й дорожчою. По-друге, з'являються нові сегменти ринку, які просто не відображає система обліку держави.
Справжній вибух кількості видно в одному з небагатьох відкритих рядків статистики, пов'язаних із дронами, – радіоапаратурі дистанційного керування (є лише річні дані). У 2021 році її виготовили 249 штук, у 2024-му – 8,1 тис., а у 2025-му – 332,7 тис., у 41 раз більше, ніж роком раніше. І ціна тут не роздувала продажі, а навпаки: лише за 2025 рік один пристрій в середньому подешевшав майже в 12 разів, з 60 тис. до 5,1 тис. грн.
Скільки в мільярдах оборонки справжнього збільшення виробництва, а скільки – збільшення цін, сказати важко. Галузь росте надто стрімко і просто на ходу війни. А статистична секретність в цьому секторі не дає точно оцінити, що там відбувається, – зрештою, так як і задумано.
Україна проти Росії
Через не меншу секретність і різну інфляцію порівнювати українську оборонку з російською так само важко. Долари не полегшують задачу: у середньому за січень–серпень рубль зміцнився з 85 до 77 за долар, а гривня ослабла з 41,6 до 44 грн/дол.
Тому ЕП взяла три великі сектори, де в обох країнах зосереджене військове виробництво. Це металовироби разом зі зброєю, електроніка та "інший транспорт", куди входять літаки, дрони й військова техніка. Їхню частку в продажах переробної промисловості ми порахували за даними Росстату і Держстату.
Частка трьох галузей, Україна і Росія Частка металовиробів (разом зі зброєю), електроніки та «іншого транспорту» (літаки, дрони, військова техніка) у продажах переробної промисловості, сума за останні 12 місяців. Джерела: Держстат (обсяг реалізованої промислової продукції), Росстат (відвантаження товарів власного виробництва); розрахунок ЕП. '; return; } const DATA = {"dates":["2021-12","2022-01","2022-02","2022-03","2022-04","2022-05","2022-06","2022-07","2022-08","2022-09","2022-10","2022-11","2022-12","2023-01","2023-02","2023-03","2023-04","2023-05","2023-06","2023-07","2023-08","2023-09","2023-10","2023-11","2023-12","2024-01","2024-02","2024-03","2024-04","2024-05","2024-06","2024-07","2024-08","2024-09","2024-10","2024-11","2024-12","2025-01","2025-02","2025-03","2025-04","2025-05","2025-06","2025-07","2025-08","2025-09","2025-10","2025-11","2025-12","2026-01","2026-02","2026-03","2026-04","2026-05","2026-06","2026-07","2026-08"],"ua":[5.7,5.7,5.7,5.7,5.8,5.9,5.9,6.0,6.2,6.3,6.5,6.6,6.8,7.0,7.3,7.4,7.6,7.9,8.2,8.4,8.6,8.8,9.0,9.3,9.5,9.6,9.7,10.0,10.2,10.4,10.7,11.0,11.3,11.7,12.0,12.1,12.5,12.8,13.1,13.4,13.5,13.7,13.8,13.8,14.1,14.2,14.4,14.8,14.9,14.9,14.9,15.1,15.6,15.9,16.3,16.6,17.0],"ru":[11.5,11.5,11.3,11.2,11.1,11.1,11.2,11.4,11.5,11.6,11.8,12.1,12.3,12.5,12.9,13.3,13.6,13.8,14.0,14.1,14.2,14.4,14.5,14.7,14.6,14.5,14.6,14.8,14.9,15.0,15.2,15.4,15.5,15.8,16.0,16.0,16.6,16.7,16.8,17.0,17.2,17.4,17.6,17.8,18.2,18.3,18.5,18.6,18.9,19.1,19.3,19.4,19.6,19.8,19.9,20.1,20.1]}; const $$ = s => ROOT.querySelectorAll(s); const pct = (v, d = 1) => (v > 0 ? "+" : v String(s).replace(/[&"']/g, c => ({ "&": "&", "": ">", '"': """, "'": "'" }[c])); const num = (v, d = 0) => v.toLocaleString("uk-UA", { minimumFractionDigits: d, maximumFractionDigits: d }).replace(/ /g, " "); const MONTHS = ["січ", "лют", "бер", "квіт", "трав", "черв", "лип", "серп", "вер", "жовт", "лист", "груд"]; const FONT = '"Fira Sans", "Segoe UI", Arial, sans-serif'; const STYLE = { fontFamily: FONT, fontSize: "13px", color: "#333", overflow: "visible", fontVariantNumeric: "tabular-nums" }; // чекаємо шрифт до першого малювання, щоб підписи не міряли запасним шрифтом (не довше 1,5 с) await Promise.race([document.fonts.load('400 13px "Fira Sans"'), new Promise(r => setTimeout(r, 1500))]).catch(() => {}); // ===== СЦЕНИ: підготовка даних ===== // червоний — Україна, майже чорний — Росія (лінія і її підпис одного кольору) const RED = "#e8001c", DARK = "#1e1e1e"; const YMIN = 0, YMAX = 22, TICKS = [0, 5, 10, 15, 20]; const mid = s => { const [y, m] = s.split("-").map(Number); return new Date(y, m - 1, 15); }; const rows = DATA.dates.map((s, i) => ({ date: mid(s), ua: DATA.ua[i], ru: DATA.ru[i] })); const first = rows[0], last = rows[rows.length - 1]; const x0 = new Date(first.date.getFullYear(), first.date.getMonth(), 1); const x1 = new Date(last.date.getFullYear(), last.date.getMonth() + 1, 1); const p1 = v => num(v, 1) + "%"; // draw(W): малює весь графік під ширину W. Повертає DOM-вузол (Plot.plot або svg з D3). // МОБІЛЬНА ВЕРСІЯ ОБОВ'ЯЗКОВА з першої збірки: W "Росія", textAnchor: "end", dy: -14, fill: DARK }), Plot.text([last], { ...lab, y: d => d.ua - 4.5, text: () => "Україна", textAnchor: "end", fill: RED })] : [Plot.text([last], { ...lab, y: "ru", text: () => "Росія", textAnchor: "start", dx: 10, fill: DARK }), Plot.text([last], { ...lab, y: "ua", text: () => "Україна", textAnchor: "start", dx: 10, fill: RED })]; const startLab = { x: "date", fontSize: mobile ? 12 : 13, stroke: "white", strokeWidth: 4, textAnchor: "start" }; return Plot.plot({ width: W, height: mobile ? 320 : 370, marginLeft: 44, marginRight: mobile ? 14 : 130, marginTop: 14, marginBottom: 30, style: STYLE, // при ширині 700 px поділки кожні пів року налазили б одна на одну — лише роки x: { type: "time", label: null, domain: [x0, x1], ticks: d3.timeYear.every(1), tickFormat: d => String(d.getFullYear()) }, y: { label: null, domain: [YMIN, YMAX], ticks: TICKS, tickFormat: d => d + "%" }, marks: [ Plot.gridY(TICKS.slice(1), { stroke: "#dbdbdb", strokeOpacity: 1 }), Plot.ruleY([0], { stroke: "#121212", strokeWidth: 1 }), Plot.lineY(rows, { x: "date", y: "ru", stroke: DARK, strokeWidth: 2.6 }), Plot.lineY(rows, { x: "date", y: "ua", stroke: RED, strokeWidth: 3 }), Plot.dot([first, last], { x: "date", y: "ru", r: 4, fill: DARK, stroke: "white", strokeWidth: 1 }), Plot.dot([first, last], { x: "date", y: "ua", r: 4.5, fill: RED, stroke: "white", strokeWidth: 1 }), // значення на старті (грудень 2021): Росія над точкою, Україна під точкою Plot.text([first], { ...startLab, y: "ru", text: d => p1(d.ru), dy: -14, fill: DARK }), Plot.text([first], { ...startLab, y: "ua", text: d => p1(d.ua), dy: 16, fill: RED }), ...ends, ], }); } // ===== КАРКАС: малювання й перебудова лише при зміні ширини (на телефоні висота скаче від адресного рядка) ===== let lastW = 0, rt; function build() { const W = BOX.clientWidth; if (!W || W === lastW) return; lastW = W; BOX.replaceChildren(draw(W)); } build(); new ResizeObserver(() => { clearTimeout(rt); rt = setTimeout(build, 150); }).observe(BOX); })();