Replacing BAS or 1C with Odoo takes a medium-sized Ukrainian business 16 to 24 weeks to go live with the core system, plus 4 to 8 weeks of stabilisation. Moving payroll into Odoo as well adds a second phase that runs to week 32 or later and 300 to 550+ hours of your own team’s time.
APEX AV takes a different route: move payroll first, then change the ERP. You outsource payroll to us, and HR administration too if you wish, before the Odoo project starts. Our payroll platform, APEX Cache, is compatible with 1C/BAS, so it runs inside your current system environment from the first month. When you go live on Odoo, APEX Cache switches its postings to Odoo on cut-over day, without delay and without a payroll implementation project.
The figures below come from an implementation review of BAS-to-Odoo projects for a typical Ukrainian company: one legal entity, one main BAS database, a wholesale or service business, 10 to 40 Odoo users and no complex manufacturing. One disclosure: we are a payroll outsourcing provider, so we benefit if you choose that route. The numbers are the review’s, not ours, and they leave out one large task that makes the real saving bigger. More on that below.
The timeline: payroll moves before the project, not inside it
A sensible migration is phased by business function. Finance and master data form the foundation; sales, purchasing and stock go live on top of them. The review treats payroll and HR as a separate, controlled workstream, because salaries, taxes and filings cannot pause while a new ERP settles in. With APEX AV that workstream is set up and running before the Odoo project begins.
BAS-to-Odoo project plan, by week
Odoo project in navy, go-live in orange, the payroll phase you avoid in red hatching. APEX AV starts in the grey zone, before the project.
The order matters. By the time your Odoo partner starts discovery, payroll is already running on APEX Cache inside your 1C/BAS environment, the payroll history has been cleaned up, and every gap is on record. The Odoo project then has no payroll build: no payroll design, no statutory test scenarios, no employee-history conversion. What remains is a monthly payroll journal for Odoo to receive.
On cut-over day, APEX Cache stops posting payroll to 1C/BAS and starts posting it to Odoo. The payroll calculation itself does not change, so no one gets a late or wrong salary while stock or invoicing is still settling down. The alternative, moving payroll into Odoo, adds at least eight weeks of project after go-live, starting in week 20, exactly when your team is still fixing the issues that surface after launch.
Function by function: where payroll fits
The review sequences each business function by risk. Payroll and HR administration are the two where a specialist route takes most of the work out of the Odoo project.
| Function | When it goes live | Your team’s effort | Main BAS risk |
|---|---|---|---|
| Company structure and access rights | First | Low to medium | Wrong access design creates control and confidentiality risks |
| Master data | First | High | Duplicate counterparties, inconsistent product codes, units, VAT fields |
| Sales and CRM | Early | Medium | Custom quotation and pricing logic in BAS |
| Purchasing | Early | Medium | Informal approvals and undocumented exceptions |
| Inventory and warehouse | Early or first wave | High | Wrong opening stock by product, location, batch or serial number |
| Finance and accounting | First wave, after design validation | High | Chart-of-accounts mapping, VAT, historic corrections, opening balances |
| E-documents and PRRO | Before go-live, if needed operationally | Medium | Provider API limits, document formats, tax and document timing |
| Manufacturing, service, projects | Second wave unless essential | High | Heavy BAS customisation, informal production processes |
| BI and historical reporting | Usually second wave | Low to medium | Full history migration delays go-live |
| HR administrationAPEX AV route: outsourced before the project (optional); Odoo can add a light HR layer later | Separate, can run in parallel | Medium in Odoo | Sensitive data, incomplete employee records, legal document history |
| PayrollAPEX AV route: on APEX Cache before the project; switches from 1C/BAS to Odoo at cut-over | Keep outside Odoo initially | Medium for interfaces; high if moved into Odoo | Statutory compliance, payroll continuity, historical calculations, tax reporting |
“Localisation installed” is not “statutory process proven.” Odoo’s app store has Ukrainian modules for HR administration, contracts and salary calculation, but each implementation must still prove the exact payroll, tax, leave, sick-leave, reporting, e-document and PRRO scenarios the company uses. With APEX Cache that proof already exists, month after month.
Your team’s hours: where the saving comes from
The implementation partner’s hours are billed separately. What companies underestimate is the time their own people spend: deciding, checking data, testing and learning. The review estimates it as follows.
Internal hours by scenario
Your own team’s time, excluding the implementation partner.
The most underestimated workload is data ownership. An implementation partner can extract and load records, but only your people can confirm whether a counterparty is still active, a product code is valid or a warehouse balance is real. Every function you keep out of the project is one less set of records your team has to vouch for.
Who carries the load
Most roles need the same time whichever way payroll goes. The difference sits with the person who owns HR and payroll: with payroll outsourced they review an interface and validate data; with payroll in Odoo they help design, test and prove a new payroll engine.
Internal hours by role
HR and payroll outsourced to APEX AV, except where marked.
| Role | Hours |
|---|---|
| Executive sponsor | 20–40 |
| Internal project lead | 120–220 |
| Finance lead / chief accountant | 80–160 |
| Warehouse lead | 60–140 |
| IT / systems administrator | 30–80 |
| Sales lead | 30–70 |
| Procurement lead | 25–60 |
| HR / payroll owner, with APEX AV | 25–70 |
| HR / payroll owner, payroll moved into Odoo | 100–220 |
The HR/payroll owner alone saves 75 to 150 hours. The rest of the 300–550+ hours is spread across the team: fewer payroll test scenarios for key users, fewer data fields to migrate and reconcile, fewer decisions about who may see salary data, and a shorter project for the project lead to run. Because APEX Cache already sends payroll postings to 1C/BAS before the project starts, the payroll side of the interface is running before your Odoo partner arrives; at cut-over only its destination changes.
What those hours cost you
Internal hours are not free: they come out of people who also have a business to run. Enter what an hour of your team’s time costs you, including taxes and overheads, to see the scale.
| Scenario | Internal cost, UAH |
|---|---|
| HR and payroll with APEX AV (450–850 h) | – |
| Payroll moved into Odoo (750–1,400+ h) | – |
| Saved by outsourcing (300–550+ h) | – |
Not in these numbers: cleaning up payroll history
The review’s hour estimates do not include cleaning up historical payroll data for a transfer from 1C/BAS to Odoo. That is a sizeable task in its own right, and it is one more reason the real saving is larger than 300–550 hours.
Payroll history is not optional. Ukrainian average-earnings rules need the past twelve months for every holiday and sick-leave payment. Leave balances, indexation bases, dismissal calculations and auditors’ questions all reach back into history that sits in BAS.
If payroll moves into Odoo, your team has to export that history, check it and fix it before the new system can calculate correctly. Typical gaps in 1C/BAS payroll data:
- Employee records with missing or outdated positions, contract types or employment status.
- Personnel orders that exist in BAS but were never signed, or signed orders that never reached BAS.
- Leave balances that do not match the orders and timesheets behind them.
- Earnings history that does not reconcile to the ЄСВ and ПДФО reports already filed.
- Manual corrections and one-off payments with no explanation attached.
With APEX AV this work happens on our side, while you are still on 1C/BAS and before the Odoo project starts. We take the payroll data out of 1C/BAS, reconcile it against your filed reports, record every gap in a register with an owner and a deadline, and run the first month in parallel before anything switches over. The cleaned history stays in the APEX Cache archive, so it never has to be migrated into Odoo at all. Your team answers questions; it does not do the cleanup.
Who else the project needs
An Odoo migration is not a one-vendor job. The review lists the specialists a typical project draws on; with APEX AV, the payroll line is covered before the others start.
| Provider | What they do | When |
|---|---|---|
| Odoo implementation partner | Discovery, design, configuration, development, migration, testing, go-live, hypercare | Throughout |
| Ukrainian accounting and localisation specialist | Validates tax, VAT, postings, reports, statutory workflows and print forms | Design, testing, month-end rehearsal |
| Payroll and HR outsourcing providerAPEX AV | Payroll continuity, statutory calculations, HR administration, filings, payroll reports, employee-data interface | From before the project; especially at cut-over |
| BAS/1C technical specialist | Data extraction, custom fields, transaction logic, reports, archive set-up | Discovery to final migration |
| Data migration specialist | Extraction, cleansing rules, import templates, reconciliation reports | Weeks 5–18 |
| Integration developer | Bank, e-documents, PRRO, Nova Poshta, marketplaces, CRM, BI and API connections | Weeks 7–16 |
| Hosting / DevOps provider | Odoo.sh or server deployment, monitoring, backups, disaster recovery | Before testing and launch |
| Cybersecurity or data-protection adviser | Roles, multi-factor login, access reviews, personal-data handling, retention | Design and pre-go-live |
| Training and change management | Key-user materials, procedures, end-user sessions, hypercare support desk | Testing to stabilisation |
Who owns what after go-live
Outsourcing payroll does not mean Odoo is blind to people costs. Odoo becomes the operational ERP and finance platform; we remain responsible for payroll compliance and HR administration; BAS stays as a read-only archive.
| Area | Odoo | APEX AV |
|---|---|---|
| Departments, jobs, managers | System of record | Receives approved changes |
| Hiring and onboarding | Workflow and tasks | Statutory employment records and documents |
| Leave requests, timesheets | Captures and approves | Legal calculation and balance check |
| Payroll calculation, taxes, filings | Not needed | Calculation, submission, compliance ownership |
| Payroll postings, cost allocation | Receives the monthly journal | APEX Cache sends a validated posting file or API feed: to 1C/BAS before cut-over, to Odoo after |
| Payslips and salary questions | Optional later | Primary channel |
Each month Odoo receives only what finance and management need: employee identifier, department, position, cost centre and status; approved absence data where it matters operationally; payroll postings summarised by entity, account, cost centre or project; payroll liabilities and payment totals; and, if you want it, payroll budget against actuals.
A cut-over that leaves payroll alone
- Freeze BAS transactions at the agreed cut-off time.
- Load opening balances, stock, open receivables and payables, and active documents into Odoo.
- Keep BAS available as a read-only archive.
- Switch APEX Cache’s payroll postings from 1C/BAS to Odoo. The payroll engine and the payroll team stay the same.
- Start working in Odoo the next business day.
- Receive the validated monthly payroll journal and approved HR changes in Odoo, by file import or API.
- Consider Odoo payroll only after two to three stable payroll cycles, a compliance review and a signed parallel-run reconciliation.
Our recommendation
Start with payroll. Move payroll, and HR administration if you want, to APEX AV while you are still on 1C/BAS, and let us clean up the payroll history in that phase. Then run the Odoo project for sales, purchasing, inventory, finance, banking, master data and essential integrations, with no payroll workstream. Add a light Odoo HR layer only where it helps day-to-day work: directory, organisation chart, leave approval, onboarding tasks and timesheets. On cut-over day, APEX Cache switches to Odoo and payroll carries on as before.
Planning a move off 1C or BAS? Start with payroll. We take it over while you are still on 1C/BAS, clean up the history, and switch our postings to Odoo on cut-over day, so your Odoo project only has to receive a monthly payroll journal.
Discuss your payroll transition1C/BAS replacementSources used by the review: Odoo implementation methodology (odoo.com); Odoo implementation timeline guides from Netlinks, Octura Solutions, Ecosire and Enersys; Ukrainian HR and payroll modules on the Odoo Apps store. Hour figures are planning ranges, not quotes.
This is the general position. Yours will have specifics.
Thirty minutes on a call and we can tell you which parts of the above actually apply to your company, what getting them wrong would cost, and what we would do about it. No slides, no obligation, and we will say so if you do not need us.
