AIVcoreOdoo development
en
All publications
Case18 June 20262 min read

Migrating from 1C:UPP to Odoo 17: a steel structures plant

We moved manufacturing accounting from 1C:UPP to Odoo 17 — master data, stock, BOMs and work in progress. One month of parallel run, zero data loss.

Project facts

Client
Завод металлоконструкций, 180 сотрудников
Industry
Производство
Duration
4 месяца
Stack
Odoo 17PostgreSQLPythonXML-RPC1С:УПП
4 мес.
from audit to go-live
-38%
month-end closing time
12
systems replaced by one

The starting point

The plant ran on 1C:UPP (end-of-life) plus a dozen Excel files for production planning. Orders, stock and costing lived in different places, and the margin report was assembled by hand two weeks late.

Main pains:

  • month-end closing took 9–11 working days;
  • actual order cost was known a month after shipment;
  • purchasing was planned by gut feeling, the warehouse held 4 months of excess stock;
  • every change to the 1C configuration was slow and expensive.

What we did

1. Audit and data map (3 weeks)

We documented 42 business processes and marked which ones standard Odoo covers, which need development, and which are better removed. Then we built an object map between 1C and Odoo: items → product.template, BOMs → mrp.bom, counterparties → res.partner, contracts → sale.order plus a custom framework-contract model.

2. Data migration

Data was exported from 1C to CSV/JSON and loaded through our own XML-RPC scripts with idempotent external identifiers (external_id), so the load could be repeated as many times as needed.

Migrated:

  • 18,400 product items with units of measure and substitutes;
  • 3,100 partners with legal details and contracts;
  • stock across 6 warehouses as of the cut-off date;
  • 2,700 multi-level bills of materials;
  • open sales and purchase orders, work in progress.

3. Manufacturing setup

We configured Odoo MRP: work centers with realistic cycle times, routings, scheduling, scrap and steel offcut handling. Costing is based on actual work center costs rather than standards.

4. Custom development

  • framework contracts module with shipment limits;
  • sheet nesting calculation including usable offcuts;
  • exchange with 1C:Accounting for statutory reporting (documents are pushed in daily batches);
  • printable documents matching the customer's requirements.

5. Parallel run

For one month the plant worked in both systems. We reconciled stock, costing and settlements at control points. Discrepancies reached zero in week three, after which 1C:UPP was switched to read-only.

Results

  • month-end closing: 6–7 working days instead of 9–11;
  • actual order cost is visible the day after the manufacturing order is closed;
  • inventory dropped 22% thanks to proper requirement planning;
  • total cost of ownership went down: Odoo Community licensing plus support costs less than the previous 1C maintenance contract.

What we would change

We would start warehouse training earlier. The migration itself went smoothly, but goods receipt slowed down for two weeks because the team was used to the old screens. We now schedule 2–3 training sessions before go-live, not after.

Similar challenge?

Describe your process — we will estimate the scope and timeline.

Related publications