Експорт та імпорт даних¶
В Odoo іноді необхідно експортувати або імпортувати дані для запуску звітів або для модифікації даних. Цей документ стосується експорту й імпорту даних у та з Odoo.
Важливо
Іноді користувачі стикаються з помилкою „айм-аут“ або запис не обробляється через його розмір. Це може статися під час експорту великого обсягу або у випадках, коли файл імпорту завеликий. Щоб обійти це обмеження щодо розміру записів, обробляйте експорт або імпорт меншими партіями.
Експорт даних з Odoo¶
Під час роботи з базою даних іноді необхідно експортувати дані в окремий файл. Це може допомогти у звітності про активності, хоча Odoo надає точний і простий інструмент звітності з кожним доступним додатком.
За допомогою Odoo значення можна експортувати з будь-якого поля будь-якого запису. Для цього активуйте перегляд списку ( (list) icon) для елементів, які потрібно експортувати, а потім виберіть записи, які потрібно експортувати. Щоб вибрати запис, поставте прапорець біля відповідного запису. Нарешті натисніть Actions, а потім Експорт.

Якщо натиснути Експорт, з’явиться спливаюче вікно Експортувати дані з кількома параметрами для даних, які потрібно експортувати:

Якщо позначено опцію Я хочу оновити дані (експорт, сумісний з імпортом), система показує лише ті поля, які можна імпортувати. Це корисно у випадку, коли існуючі записи необхідно оновити. Це працює як фільтр. Якщо залишити прапорець непозначеним, ви отримаєте набагато більше параметрів полів, оскільки відображатимуться всі поля, а не лише ті, які можна імпортувати.
Під час експорту є можливість експорту в двох форматах:
.csv
і.xls
. У.csv
елементи відокремлюються комою, тоді як.xls
містить інформацію про всі аркуші у файлі, включаючи вміст і форматування.Це елементи, які можна експортувати. Використовуйте піктограму > (стрілка вправо), щоб відобразити додаткові параметри підполя. Використовуйте панель Пошук, щоб знайти певні поля. Щоб ефективніше використовувати опцію Пошук, натисніть усі > (стрілки вправо), щоб відобразити всі поля.
Кнопка піктограми + (знак плюс) доступна для додавання полів до списку Поля для експорту.
↕️ (стрілка вгору-вниз) ліворуч від вибраних полів можна використовувати для переміщення полів угору та вниз, щоб змінити порядок, у якому вони відображаються в експортованому файлі. Перетягніть і опустіть за допомогою піктограми :guilabel:`↕️ (стрілка вгору-вниз).
Піктограма 🗑️ (кошик) використовується для видалення полів. Натисніть значок 🗑️ (кошик), щоб видалити поле.
Для повторюваних звітів корисно зберегти попередні налаштування експорту. Виберіть усі необхідні поля та натисніть спадне меню шаблону. Там натисніть Новий шаблон і дайте унікальну назву щойно створеному експорту. Натисніть піктограму 💾 (флоппі-дисковод), щоб зберегти конфігурацію. Наступного разу, коли той самий список потрібно буде експортувати, виберіть пов’язаний шаблон, який був раніше збережений зі спадного меню.
Порада
Корисно знати зовнішній ідентифікатор поля. Наприклад, Пов’язана компанія в інтерфейсі користувача експорту дорівнює parent_id (зовнішній ідентифікатор). Це корисно, оскільки тоді експортуються лише ті дані, які потрібно змінити та повторно імпортувати.
Імпорт даних в Odoo¶
Імпорт даних в Odoo є надзвичайно корисним під час впровадження або в моменти, коли дані потрібно масово оновити. У наведеній нижче документації описано, як імпортувати дані в базу даних Odoo.
Попередження
Імпорт є постійним і неможливо скасувати. Проте можна використовувати фільтри (створено
або останнє змінено
) для визначення записів, змінених або створених під час імпорту.
Порада
Активація режим розробника змінює видимі налаштування імпорту в меню ліворуч. Це відкриє меню . У цьому розширеному меню є два параметри: Відстежувати історію під час імпортування і Дозволити збіги з підполями.

Якщо модель використовує openchatter, параметр Відстежувати історію під час імпорту встановлює підписки та надсилає сповіщення під час імпорту, але призводить до повільнішого імпорту.
Якщо вибрано параметр Дозволити зіставлення з підполями, тоді всі підполя в полі використовуються для збігу під Поле Odoo під час імпорту.
Розпочніть¶
Дані можна імпортувати в будь-який бізнес-об’єкт Odoo за допомогою форматів Excel (.xlsx
) або CSV (.csv
). Це включає: контакти, продукти, банківські виписки, записи в журналі та замовлення.
Відкрийте представлення об’єкта, до якого потрібно імпортувати/заповнити дані, і натисніть
.
Після натискання Імпортувати записи Odoo відкриває окрему сторінку з шаблонами, які можна завантажити та заповнити власними даними компанії. Такі шаблони можна імпортувати в один клік, оскільки відображення даних уже зроблено. Щоб завантажити шаблон, натисніть Імпортувати шаблон для клієнтів у центрі сторінки.
Важливо
Під час імпортування файлу CSV Odoo надає параметри Форматування. Ці параметри не відображаються під час імпортування власного типу файлу Excel (.xls
, .xlsx
).

Внесіть необхідні зміни в параметри Форматування та переконайтеся, що всі стовпці в поле Odoo і Стовпець файлу не містять помилок. Нарешті натисніть Імпорт, щоб імпортувати дані.
Адаптуйте шаблон¶
Шаблони імпорту надаються в інструменті імпорту найпоширеніших даних для імпорту (контакти, продукти, банківські виписки тощо). Відкрийте їх за допомогою будь-якого додатку для роботи з електронними таблицями (Microsoft Office, OpenOffice, Google Drive тощо).
Після завантаження шаблону виконайте такі дії:
Додавайте, видаляйте та сортуйте стовпці, щоб найкраще відповідати структурі даних.
Настійно не рекомендується видаляти стовпець External ID (ID) (дивіться чому в наступному розділі).
Встановіть унікальний ідентифікатор для кожного запису, перетягнувши вниз послідовність ID у стовпці External ID (ID).

Примітка
Коли додається новий стовпець, Odoo може не мати змоги відобразити його автоматично, якщо його мітка не відповідає жодному полю в Odoo. Однак нові стовпці можна зіставити вручну під час перевірки імпорту. Знайдіть у спадному меню відповідне поле.

Потім використовуйте мітку цього поля у файлі імпорту, щоб переконатися, що майбутні імпорти будуть успішними.
Порада
Ще один корисний спосіб дізнатися правильні назви стовпців для імпорту - експортувати файл зразка за допомогою полів, які потрібно імпортувати. Таким чином, якщо немає зразка шаблону імпорту, імена будуть точними.
Імпорт з іншого додатку¶
External ID (ID) - це унікальний ідентифікатор позиції. Не соромтеся використовувати одне з попередніх додатків, щоб полегшити перехід на Odoo.
Встановлення ID не є обов’язковим при імпорті, але це допомагає у багатьох випадках:
Оновити імпорт: імпортувати той самий файл кілька разів без створення дублікатів.
Щоб відтворити зв’язки між різними записами, слід використати унікальний ідентифікатор із оригінального додатку, щоб зіставити його зі стовпцем External ID (ID) в Odoo.
Коли імпортується інший запис, який посилається на перший, використовуйте XXX/ID (XXX/External ID) як оригінальний унікальний ідентифікатор. Цей запис також можна знайти за його назвою.
Попередження
Слід зазначити, що конфлікти виникають, якщо два (чи більше) записи мають однаковий External ID.
Відсутнє поле для зіставлення стовпця¶
Odoo евристично намагається знайти тип поля для кожного стовпця всередині імпортованого файлу на основі перших десяти рядків файлів.
Наприклад, якщо є стовпець, який містить лише числа, лише поля типу ціле представлені як параметри.
Хоча така поведінка може бути корисною в більшості випадків, також можлива помилка або стовпець може бути зіставлено з полем, яке не пропонується за замовчуванням.
Якщо це станеться, позначте опцію :guilabel:`Показати поля зв’язків полей (додатково), тоді для кожного стовпця стане доступним повний список полів.

Змінити формат імпорту даних¶
Примітка
Odoo може автоматично визначити, чи є стовпець датою, і намагається вгадати формат дати з набору найбільш часто використовуваних форматів дати. Хоча цей процес може працювати для багатьох форматів дати, деякі формати дати не розпізнаються. Це може призвести до плутанини через інверсії день-місяць; важко вгадати, яка частина формату дати є днем, а яка - місяцем у даті, наприклад 01-03-2016
.
Під час імпортування файлу CSV Odoo надає параметри Форматування.
Щоб побачити, який формат дати Odoo знайшов у файлі, перевірте Формат дати, який відображається під час натискання параметрів під селектором файлів. Якщо цей формат неправильний, змініть його на бажаний формат, використовуючи ISO 8601, щоб визначити формат.
Важливо
ISO 8601 - це міжнародний стандарт, який охоплює всесвітній обмін, а також передачу даних, пов’язаних із датою та часом. Наприклад, формат дати має бути YYYY-MM-DD
. Отже, у випадку 24 липня 1981 року його слід писати як 1981-07-24
.
Порада
Під час імпорту файлів Excel (.xls
, .xlsx
), спробуйте використовувати комірки з датами для зберігання дат. Це зберігає формати дати для відображення, незалежно від формату дати в Odoo. Під час імпортування файлу CSV використовуйте розділ Форматування Odoo, щоб вибрати стовпці формату дати для імпорту.
Імпорт номерів зі знаком валюти¶
Odoo повністю підтримує числа з дужками для від’ємних знаків, а також числа зі знаками грошових одиниць. Odoo також автоматично визначає, який роздільник тисяч і десятків використовується. Якщо використовується символ валюти, невідомий Odoo, він може не розпізнаватися як число, і імпорт аварійно завершується.
Примітка
Під час імпортування файлу CSV меню Форматування з’являється в лівій колонці. У цих параметрах Розділювач тисяч можна змінити.
Приклади підтримуваних чисел (використовуючи „тридцять дві тисячі“ як цифру):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Приклад, який не буде працювати:
ABC 32.000,00
$ (32.000,00)
Важливо
() (дужка) навколо числа вказує на те, що число є від’ємним значенням. Символ валюти необхідно розмістити в дужках, щоб Odoo розпізнав його як від’ємне значення валюти.
Таблиця попереднього перегляду імпорту не відображається належним чином¶
За замовчуванням для попереднього перегляду імпорту встановлено коми як роздільники полів і лапки як розділювачі тексту. Якщо файл CSV не має цих параметрів, змініть параметри Форматування (відображаються під Імпорт CSV панель файлів після вибору файлу CSV).
Важливо
Якщо у файлі CSV є табуляція як роздільник, Odoo не виявляє розділення. Необхідно змінити параметри формату файлу в програмі для роботи з електронними таблицями. Перегляньте наступний розділ Змінити формат файлу CSV.
Змінити формат файлу CSV у додатку для роботи з електронними таблицями¶
Під час редагування та збереження файлів CSV в програмах для роботи з електронними таблицями для розділювача та роздільника застосовуються регіональні налаштування комп’ютера. Odoo пропонує використовувати OpenOffice або LibreOffice, оскільки обидві програми дозволяють змінювати всі три параметри (у програмі LibreOffice перейдіть до діалогового вікна
).Microsoft Excel може змінювати кодування під час збереження (
).Різниця між Database ID і External ID¶
Деякі поля визначають зв’язок з іншим об’єктом. Наприклад, країна контакту є посиланням на запис об’єкта „Країна“. Коли такі поля імпортуються, Odoo має відтворити зв’язки між різними записами. Щоб допомогти імпортувати такі поля, Odoo надає три механізми.
Важливо
Тільки один механізм слід використовувати для кожного поля, яке імпортується.
Наприклад, для посилання на країну контакту Odoo пропонує три різні поля для імпорту:
Країна: назва або код країни
Країна/Database ID: унікальний ID Odoo для запису, визначений стовпцем ID PostgreSQL
Країна/External ID: ID цього запису, на який посилається інший додаток (або файл
.XML
, який його імпортував)
Для Бельгії, наприклад, скористайтеся одним із цих трьох способів імпорту:
Країна:
Бельгія
Країна/Database ID:
21
Країна/Database ID:
base.be
Відповідно до потреб компанії, використовуйте один із цих трьох способів посилання на записи у відносинах. Ось приклад, коли слід використовувати те чи інше, залежно від потреби:
Використовуйте Країна: це найпростіший спосіб, коли дані надходять із файлів CSV, які були створені вручну.
Використовуйте Країна/Database ID: його слід використовувати рідко. Його здебільшого використовують розробники, оскільки головною перевагою є відсутність конфліктів (може бути кілька записів з однаковою назвою, але вони завжди мають унікальний Database ID)
Використовуйте Країна/External ID: використовуйте External ID під час імпорту даних із стороннього додатку.
Якщо використовуються External ID, імпортуйте файли CSV зі стовпцем External ID (ID), що визначає External ID кожного імпортованого запису. Потім можна зробити посилання на цей запис за допомогою стовпців, як-от Поле/External ID
. Наступні два файли CSV надають приклад продуктів та їхніх категорій.
Імпорт полів відношення¶
Об’єкт Odoo завжди пов’язаний з багатьма іншими об’єктами (наприклад, продукт пов’язаний із категоріями продуктів, атрибутами, постачальниками тощо). Щоб імпортувати ці зв’язки, спочатку потрібно імпортувати записи пов’язаного об’єкта з їх власного меню списку.
Цього можна досягти, використовуючи назву пов’язаного запису або його ідентифікатор, залежно від обставин. Ідентифікатор очікується, коли два записи мають однакові назви. У такому випадку додайте / ID
в кінці назви стовпця (наприклад, для атрибутів продукту: Атрибути продукту / Атрибут / ID
).
Параметри для кількох збігів на полях¶
Якщо, наприклад, є дві категорії продуктів із дочірньою назвою Продається
(наприклад, Різні продукти/Продається
& Інші продукти/Продаються
), перевірка призупиняється, але дані все ще можуть бути імпортовані. Однак Odoo рекомендує не імпортувати дані, оскільки всі вони будуть пов’язані з першою категорією Продається
, знайденою в списку Категорія продукту (Різні продукти/Продається
). Натомість Odoo рекомендує змінити одне зі значень дубліката або ієрархію категорії продукту.
Однак, якщо компанія не бажає змінювати конфігурацію категорій продуктів, Odoo рекомендує використовувати External ID для цього поля „Категорія“.
Імпортувати many2many полів зв’язку¶
Теги повинні бути розділені комою без пробілів. Наприклад, якщо клієнта потрібно пов’язати з обома тегами: Виробник
і Роздрібний продавець
, тоді „Виробник, роздрібний продавець“ потрібно закодувати в одному стовпці файлу CSV.
Імпорт зв’язків one2many¶
Якщо компанія хоче імпортувати замовлення на продаж із кількома рядками замовлення, у файлі :abbr:`CSV (значення, розділені комами)» має бути зарезервований окремий рядок для кожного рядка замовлення. Перший рядок замовлення імпортується в той самий рядок, що й інформація щодо замовлення. Для будь-яких додаткових рядків потрібен додатковий рядок, який не містить жодної інформації в полях щодо замовлення.
Як приклад, ось файл CSV деяких пропозицій, які можна імпортувати на основі демонстраційних даних:
Наступний файл CSV показує, як імпортувати замовлення на купівлю з відповідними рядками замовлення на купівлю:
Наступний файл CSV показує, як імпортувати клієнтів та їхні відповідні контакти:
Імпортуйте записи кілька разів¶
Якщо імпортований файл містить один зі стовпців: External ID або Database ID, записи, які вже було імпортовано, змінюються, а не створюються. Це надзвичайно корисно, оскільки дозволяє користувачам імпортувати той самий файл CSV кілька разів, вносячи при цьому деякі зміни між двома імпортами.
Odoo піклується про створення або зміну кожного запису, залежно від того, новий він чи ні.
Ця функція дозволяє компанії використовувати Інструмент імпорту/експорту в Odoo для зміни пакету записів у додатку для роботи з електронними таблицями.
Значення не вказано для певного поля¶
Якщо у файлі CSV не встановлено всі поля, Odoo призначає значення за замовчуванням для кожного невизначеного поля. Але, якщо поля встановлені з порожніми значеннями у файлі CSV, Odoo встановлює порожнє значення в полі замість призначення значення за умовчанням.
Експорт/імпорт різних таблиць із додатку SQL до Odoo¶
Якщо дані необхідно імпортувати з різних таблиць, потрібно відтворити зв’язки між записами, що належать до різних таблиць. Наприклад, якщо компанії та люди імпортуються, необхідно відновити зв’язок між кожною особою та компанією, на яку вони працюють.
Щоб керувати зв’язками між таблицями, використовуйте засоби External ID
Odoo. External ID
запису є унікальним ідентифікатором цього запису в іншому додатку. External ID
має бути унікальним для всіх записів усіх об’єктів. Це хороша практика, щоб перед цим External ID
назва додатку або таблиці. (наприклад, „company_1“, „person_1“ - замість „1“)
Як приклад, припустімо, що існує база даних SQL із двома таблицями, які потрібно імпортувати: компанії та люди. Кожна особа належить до однієї компанії, тому зв’язок між особою та компанією, у якій вона працює, має бути відтворений.
Перевірте цей приклад за допомогою зразок бази даних PostgreSQL
.
Спочатку експортуйте всі компанії та їхні External ID. У PSQL напишіть таку команду:
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
Ця команда SQL створює такий файл CSV:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Щоб створити файл CSV для людей, пов’язаних із компаніями, скористайтеся такою командою SQL у PSQL:
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
Він створює такий файл CSV:
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
У цьому файлі Fabien і Laurence працюють у компанії Bigees (company_1
), а Eric - у компанії Organi. Відносини між людьми та компаніями здійснюються за допомогою External ID компаній. External ID має префікс назви таблиці, щоб уникнути конфлікту ідентифікаторів між людьми та компаніями (person_1
і company_1
, які спільно використовують той самий ID 1 у вихідній базі даних).
Два створених файли готові до імпорту в Odoo без будь-яких змін. Після імпорту цих двох файлів CSV є чотири контакти та три компанії (перші два контакти пов’язані з першою компанією). Майте на увазі, що спочатку імпортуйте компанії, а потім людей.
Оновіть дані в Odoo¶
Існуючі дані можна масово оновити за допомогою імпорту даних, доки External ID залишається незмінним.
Підготуйте експорт даних¶
Щоб оновити дані через імпорт, спочатку перейдіть до даних, які потрібно оновити, і виберіть (list) icon щоб активувати перегляд списку. У дальній лівій частині списку встановіть прапорець для будь-якого запису, який потрібно оновити. Потім клацніть Actions і виберіть Експорт зі спадного меню.
У спливаючому вікні Експорт даних, що з’явиться, поставте прапорець біля пункту Я хочу оновити дані (експорт, сумісний з імпортом). Це автоматично включає External ID в експорт. Крім того, він обмежує список Поля для експорту лише включаючи поля, які можна імпортувати.
Примітка
Поле External ID не відображається у списку Поля для експорту, якщо воно не додано вручну, але воно все одно включене в експорт. Однак якщо Я хочу оновити дані (експорт, сумісний з імпортом) встановлено прапорець, це буде включено в експорт.
Виберіть необхідні поля, які потрібно включити в експорт, використовуючи опції у спливаючому вікні, а потім натисніть Експорт.
Імпорт оновлених даних¶
Після експорту внесіть необхідні зміни у файл даних. Коли файл буде готовий, його можна імпортувати, виконавши той самий процес, що й звичайний імпорт даних.
Небезпека
Під час оновлення даних надзвичайно важливо, щоб External ID залишався послідовним, оскільки саме за ним система ідентифікує запис. Якщо ідентифікатор змінено або видалено, система може додати дублікат запису замість оновлення існуючого.