Как импортировать данные в Odoo - Odoo 13.0

C чего начать

Вы можете импортировать данные в любой бизнес-объект Odoo, например контакты, товары, банковские выписки, записи в журнале и даже заказы, используя форматы Excel (.xlsx) или CSV (.csv):

Откройте представление объекта, который вы хотите заполнить, и нажмите Импорт.

Вам предоставляются шаблоны, которые вы легко можете заполнить своими собственными данными. Такие шаблоны можно импортировать одним щелчком мыши; Сопоставление данных уже выполнено.

Как подготовить шаблон

  • Вы можете добавлять, удалять и сортировать столбцы, для того, чтобы они соответствовали вашей структуре данных.

  • Мы советуем не удалять ID (см. почему в следующем разделе).

  • Установите уникальный ID для каждой записи путем последовательного переноса каждого из них.

  • Когда вы добавляете новый столбец, Odoo может не отображать его автоматически, если его метка не соответствует какому либо полю в Odoo. Не волнуйтесь! Вы можете сопоставить новые столбцы вручную, когда проверяете импорт. Найдите колонку с данными для соответствующего поля.

    Затем используйте метку этого поля в своем файле, чтобы он работал как нужно вам при каждом использовании.

Как импортировать данные из другого приложения

Чтобы воссоздать отношения между разными записями, вы должны использовать уникальный идентификатор из исходного приложения и сопоставить его с столбцом ID (External ID) в Odoo. Когда вы импортируете другую запись, которая ссылается на первую, используйте XXX/ID (XXX/External ID) для создания уникального идентификатора. Вы также можете найти эту запись, используя ее имя, но это будет проблемой, если хотя бы 2 записи имеют одинаковое имя.

ID также будет использоваться для обновления записей, которые вы уже загрузили, если вам потребуется повторно импортировать измененные данные, поэтому хорошей практикой будет его указание, в тех случаях, когда это возможно.

Я не могу найти поле, в котором я хочу отобразить свою колонку

Odoo пытается найти при помощи эвристического анализа, основанного на первых десяти строках файлов, тип поля для каждого столбца вашего файла. Например, если у вас есть столбец, содержащий только числа, для вас будут отображаться только те поля, которые имеют тип Integer. Хотя в большинстве случаев это поведение может быть полезно, однако существует вероятность, что-то пойдет не так, или что вы хотите сопоставить свой столбец с полем, который не предлагается по умолчанию.

Если это произойдет, вам просто нужно проверить опцию Показывать поля как реляционные (дополнительно), тогда вы сможете выбрать из полного списка типов полей для каждого столбца.

Где я могу изменить формат даты для импорта?

Odoo can automatically detect if a column is a date, and it will try to guess the date format from a set of most commonly used date formats. While this process can work for many date formats, some date formats will not be recognized. This can cause confusion due to day-month inversions; it is difficult to guess which part of a date format is the day and which part is the month in a date such as '01-03-2016'.

Чтобы узнать, какой формат даты установила Odoo в вашем файле, вы можете проверить Формат даты, который отображается при нажатии на Параметры под селектором файлов. Если этот формат неверен, вы можете изменить его по своему усмотрению, используя стандарт ISO 8601, чтобы определить формат.

Могу ли я импортировать числа со знаком валюты (например: $32,00)?

Да, мы полностью поддерживаем цифры с круглыми скобками, отрицательным знаком, а также числа со знаком валюты. Odoo также автоматически определяет, формат тысячных разделителей и разделителей дробной части (вы можете изменить их в опциях). Если вы используете символ валюты, неизвестный Odoo, то число будет не распознано, в следствии чего произойдет аварийное завершение.

Примеры поддерживаемых форматов чисел (на примере тридцати двух тысяч):

  • 32.000,00
  • 32000,00
  • 32,000.00
  • -32000,00

  • (32000.00)
  • $ 32 000,00

  • (32000.00 €)

Пример, который не будет работать:

  • ABC 32 000,00

  • $ (32.000,00)

Что делать, если при импорте таблица предварительного просмотра отображается неправильно?

По умолчанию в предварительном просмотре разделители столбцов формируются запятыми, а разделители текста кавычки. Если ваш файл csv не имеет этих параметров, вы можете изменить параметры формата файла (отображается в разделе «Обзор файла CSV» после выбора файла).

Обратите внимание, что если ваш CSV-файл имеет табуляцию в качестве разделителя, Odoo не обнаружит разделения. Вам нужно будет изменить параметры формата файла в приложении для работы с электронными таблицами. См. Следующий вопрос.

Как изменить параметры формата файла CSV при сохранении в приложении для работы с электронной таблицей?

If you edit and save CSV files in spreadsheet applications, your computer's regional settings will be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as they will allow you to modify all three options (in 'Save As' dialog box ‣ Check the box 'Edit filter settings' ‣ Save).

Microsoft Excel will allow you to modify only the encoding when saving (in 'Save As' dialog box ‣ click 'Tools' dropdown list ‣ Encoding tab).

В чем разница между Database ID и External ID?

Some fields define a relationship with another object. For example, the country of a contact is a link to a record of the 'Country' object. When you want to import such fields, Odoo will have to recreate links between the different records. To help you import such fields, Odoo provides three mechanisms. You must use one and only one mechanism per field you want to import.

Например, чтобы указать страну контакта, Odoo предлагает вам 3 разных поля для импорта:

  • Country: название или код страны

  • Country/Database ID: уникальный идентификатор Odoo для записи, определяемый столбцом postgresql ID

  • Country/External ID: идентификатор этой записи, на который ссылается другое приложение (или файл .XML, который его импортировал)

Для страны Бельгия вы можете использовать один из этих трех способов импорта:

  • Country: Belgium
  • Country/Database ID: 21
  • Country/External ID: base.be

Исходя из ваших потребностей вы должны использовать один из этих трех способов записи ссылок:

  • Использовать Country. Это самый простой способ, когда ваши данные поступают из CSV файлов , созданных вручную.

  • Использовать Country/Database ID: Вам вряд ли пригодится такая нотация. В основном ее используют разработчики, поскольку главным преимуществом является отсутствие конфликтов (у вас может быть несколько записей с тем же именем, но у них всегда есть уникальный Database ID)

  • Использовать Country/External ID: Используйте External ID при импорте данных из стороннего приложения.

Когда вы используете External ID, вы можете импортировать CSV-файлы со столбцом «External ID», чтобы определить внешний идентификатор каждой импортируемой вами записи. Затем вы сможете сделать ссылку на эту запись с такими столбцами, как «Поле/External ID». Следующие два файла CSV дают вам пример для продуктов и их категорий.

[UNKNOWN NODE download_reference].

[UNKNOWN NODE download_reference].

Что делать, если у меня есть несколько совпадений для одного поля?

Если, например, у вас есть две категории товаров с именем «Продаваемое» (например, «Разное/Продаваемое» и «Другие продукты/Продаваемое»), ваша проверка приостанавливается, но вы все равно можете импортировать свои данные. Тем не менее, мы рекомендуем вам не импортировать данные, потому что все они будут связаны с первой категорией «Продаваемое», указанной в списке «Категория продуктов» («Разное/Продаваемое»). Мы рекомендуем вам изменить одно из значений дубликатов или иерархию категорий продуктов.

Однако, если вы не хотите изменять конфигурацию категорий продуктов, мы рекомендуем использовать External ID для поля '«Категория»'.

Как импортировать поле many2many (например клиент с несколькими тегами)?

Теги должны быть разделены запятой без какого-либо интервала. Например, если вы хотите, чтобы ваш клиент был связан с обоими тегами «Производитель» и «Продавец», вы должны записать это следующим образом «Производитель,Продавец» в том же столбце вашего CSV-файла.

[UNKNOWN NODE download_reference]

Как я могу импортировать поля one2many (например несколько позиций заказа клиента)?

If you want to import sales order having several order lines; for each order line, you need to reserve a specific row in the CSV file. The first order line will be imported on the same row as the information relative to order. Any additional lines will need an additional row that does not have any information in the fields relative to the order. As an example, here is purchase.order_functional_error_line_cant_adpat.CSV file of some quotations you can import, based on demo data.

[UNKNOWN NODE download_reference].

В следующем файле CSV показано, как импортировать заказы с позициями:

[UNKNOWN NODE download_reference].

Следующий файл CSV показывает, как импортировать клиентов и их контакты:

[UNKNOWN NODE download_reference].

Могу ли я импортировать несколько раз одну и ту же запись?

Если вы импортируете файл, содержащий один из столбцов «External ID» или «Database ID» то, записи, которые уже были импортированы, будут обновлены а не созданы заново. Это очень полезно, так как позволяет вам импортировать несколько раз один и тот же файл CSV, сделав некоторые изменения. Odoo будет заботиться о создании или изменении каждой записи в зависимости от того новая она или нет.

Эта функция позволяет вам использовать инструмент импорта/экспорта Odoo для групповых изменений записей в вашем любимом приложении для электронных таблиц.

Что произойдет, если я не предоставил значение для определенного поля?

Если вы не установите все поля в CSV-файле, Odoo присвоит значение по умолчанию для каждого не определенного поля. Но если вы установите поля с пустыми значениями в CSV-файле, Odoo установит значение "СВОБОДНО" в поле вместо значения по умолчанию.

Как экспортировать/импортировать различные таблицы из приложения SQL в Odoo?

Если вам нужно импортировать данные из разных таблиц, вам придется воссоздавать отношения между записями, принадлежащими разным таблицам. (например, если вы импортируете компании и их сотрудников, вам придется воссоздать связь между каждым человеком и компанией, в которой они работают).

To manage relations between tables, you can use the "External ID" facilities of Odoo. The "External ID" of a record is the unique identifier of this record in another application. This "External ID" must be unique across all the records of all objects, so it's a good practice to prefix this "External ID" with the name of the application or table. (like 'company_1', 'person_1' instead of '1')

As an example, suppose you have a SQL database with two tables you want to import: companies and persons. Each person belong to one company, so you will have to recreate the link between a person and the company he work for. (If you want to test this example, here is a [UNKNOWN NODE download_reference])

Сначала мы экспортируем все компании и их «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;

This SQL command will create the following CSV file:

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

It will produce the following CSV file:

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

As you can see in this file, Fabien and Laurence are working for the Bigees company (company_1) and Eric is working for the Organi company. The relation between persons and companies is done using the External ID of the companies. We had to prefix the "External ID" by the name of the table to avoid a conflict of ID between persons and companies (person_1 and company_1 who shared the same ID 1 in the original database).

Эти два файла готовы для импорта в Odoo без каких-либо изменений. После импорта этих двух файлов CSV у вас будет 4 контакта и 3 компании. (Первые два контакта связаны с первой компанией). Сначала вы должны импортировать компании, а затем людей.