Рано чи пізно постає питання: як рахувати залишки на складі? Перед річною фінзвітністю потрібен разовий перерахунок на конкретну дату, а от щоб ловити розбіжності за ходом і не зупиняти склад — підходить безперервна циклічна звірка. Odoo вміє обидва режими, але налаштовуються й оформлюються вони по-різному. Тут ви оберете той, що відповідає вашій меті, і доведете його до підписаної відомості та правильних проводок.
Результат
Обрано режим, який відповідає вимогам Наказу МФУ №879: разовий Manual count на 31.12 для річної фінзвітності, або Continuous cycle counting для безперервної звірки фактичних залишків з обліковими — без зупинки складу.
Передумови
- Наказ керівника про порядок інвентаризації за обліковою політикою (форма інв-22).
- Підготовлений склад комісії: голова, члени, МВО присутня без права рахувати.
- Для perpetual — встановлений модуль
stock_barcodeі налаштовані штрих-коди на товарах. - Закриті всі picking за період до дати інвентаризації — інакше залишки попливуть.
Як це зробити
- Виберіть режим за метою. Якщо це річна перевірка перед фінзвітністю — Manual count із фіксацією на конкретну дату. Якщо хочете ловити розбіжності за ходом і не зупиняти склад — Continuous (perpetual) із циклічними перерахунками за категоріями.
- Manual count — створіть запит на перерахунок. Перейдіть у Інвентаризація → Операції → Фізична інвентаризація і натисніть Створити запит. Оберіть локацію (наприклад, склад сировини WH/Stock), список товарів або весь warehouse, дату 31.12.2026.
- Manual count — комісія рахує і вносить факт. У вкладці Inventory Adjustments виведіть на друк інв-3 (через QWeb, форму дає кастомізація
l10n_ua_inventory). Комісія фізично рахує і вписує фактичні кількості. Потім бухгалтер на кожномуstock.quantставить факт у поліinventory_quantity. - Manual count — підтвердьте і отримайте різниці. Натисніть Apply — Odoo створить
stock.moveіз типомinventory_loss(для недостач) іinventory_adjustment(для лишків) на віртуальну локацію «Inventory Adjustment». Сформується звіряльна відомість інв-19. - Continuous — налаштуйте періодичність. На кожному
stock.locationу полі Cyclic count frequency (days) проставте періодичність: 30 днів для категорії А (дорогі позиції), 90 для категорії В, 180 для категорії С. Odoo щодня вInventory Dashboardпоказує, які локації пора перерахувати. - Continuous — комірник сканує через mobile app. Установіть Odoo Mobile (або PWA), увійдіть із роллю Inventory User. У застосунку Barcode → Physical Inventory скануйте штрих-код полиці і кожного товару — Odoo автоматично оновлює
stock.quant. - Continuous — оформіть результати раз на квартал. Раз на квартал бухгалтер виводить звіт Inventory Discrepancies — список усіх розбіжностей за період. На його основі складіть протокол комісії і проводки. Для річної фінзвітності в кінці року проведіть повну manual count з інв-22, навіть якщо весь рік був perpetual.
Перевірка
- У звіті Inventory Adjustments → Filter by date видно
stock.moveза датою 31.12 із джерелом «Physical Inventory». - На рахунку 947 / 949 (недостачі, понаднормативні втрати) є проводки за датою інвентаризації, для понаднормативних — нараховані компенсуючі ПЗ за ПКУ 198.5.
- Звіряльна відомість інв-19 підписана головою комісії, членами, МВО.
- У режимі perpetual дашборд показує «Останній перерахунок» по кожній локації — не старший за частоту циклу.
Якщо щось пішло не так
| Симптом | Причина | Виправлення |
|---|---|---|
Apply інвентаризації провів stock.move, проте не пройшла проводка на 947 | На категорії продукту порожнє поле Inventory Loss Account | Налаштування → Інвентаризація → Категорії продуктів, проставте 947 у Inventory Valuation → Loss Account |
| Manual count показав нуль розбіжностей, хоча на складі недостача | Перед інвентаризацією не закрили всі picking — рух у транзиті | Запустіть фільтр stock.picking у статусах assigned / confirmed із датою ≤ 31.12, валідуйте або скасуйте перед apply |
Perpetual — кожне сканування створює inventory_adjustment, склад завалений рухами | Періодичність cyclic count = 1 день, сканування йде при кожній видачі | Збільшіть cyclic_inventory_frequency до розумних 30-90 днів; для разової перевірки використовуйте окрему inventory request |
На stock.quant через місяць після apply видно те саме значення, що й до | Apply пропущено, статус request лишився draft | Перевірте статус через Дія → Фільтр статус; для draft-запитів натисніть Apply вручну або видаліть |
| ДПС на перевірці запросила інв-3, але вивантаження порожнє | У стандарті Odoo моделі stock.inventory нема, тільки adjustment | Установіть кастомізацію l10n_ua_inventory із QWeb-формами інв-3, інв-19, або готуйте у Excel за вивантаженням stock.move |
Дотичне
- Інвентаризація ТМЦ — Положення №879, проводки, ПДВ-наслідки.
- Документ: акт М-7 — акт розбіжностей при прийманні.
- Odoo Inventory — як працюють
stock.quantіstock.move. - Контроль і перевірки — навіщо інвентаризація як інструмент управління.