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, чтобы определить формат.
Примечание
Если вы импортируете файл excel (.xls, .xlsx), вы можете использовать ячейки даты для хранения дат, поскольку отображение дат в excel отличается от способа хранения. Таким образом, вы будете уверены, что формат даты верен в Odoo независимо от вашего формата отображения даты.
Могу ли я импортировать числа со знаком валюты (например: $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 при сохранении в приложении для работы с электронной таблицей?
Если вы отредактируете и сохраните CSV-файлы в приложениях для электронных таблиц, региональные настройки вашего компьютера будут применены для разделителя колонок и разделителя строк. Мы предлагаем вам использовать OpenOffice или LibreOffice Calc, поскольку они позволят вам изменить все три параметра (в диалоговом окне «Сохранить как»). Установите флажок «Изменить настройки фильтра»> «Сохранить»).
Microsoft Excel позволит вам изменять только кодировку при сохранении (в диалоговом окне «Сохранить как»> щелкните раскрывающийся список «Инструменты»> вкладка «Кодировка»).
В чем разница между Database ID и External ID?
Некоторые поля определяют отношения с другим объектом. Например, страна в записи контакта - это ссылка на запись объекта «Страна». Когда вы хотите импортировать такие поля, Odoo придется воссоздавать ссылки между разными записями. Чтобы помочь вам импортировать такие поля, Odoo предоставляет 3 механизма. Вы должны использовать один и только один механизм для каждого поля, которое вы хотите импортировать.
Например, чтобы указать страну контакта, 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 дают вам пример для продуктов и их категорий.
Что делать, если у меня есть несколько совпадений для одного поля?
Если, например, у вас есть две категории товаров с именем «Продаваемое» (например, «Разное/Продаваемое» и «Другие продукты/Продаваемое»), ваша проверка приостанавливается, но вы все равно можете импортировать свои данные. Тем не менее, мы рекомендуем вам не импортировать данные, потому что все они будут связаны с первой категорией «Продаваемое», указанной в списке «Категория продуктов» («Разное/Продаваемое»). Мы рекомендуем вам изменить одно из значений дубликатов или иерархию категорий продуктов.
Однако, если вы не хотите изменять конфигурацию категорий продуктов, мы рекомендуем использовать External ID для поля '«Категория»'.
Как я могу импортировать поля one2many (например несколько позиций заказа клиента)?
Если вы хотите импортировать заказ клиента с несколькими позициями; Для каждой позиции вам нужно зарезервировать определенную строку в файле CSV. Первая позиция будет импортирована в той же строке, что и остальная информация о заказе. Каждая дополнительная позиция потребует строку, которая не имеет никакой информации в полях о заказе. В качестве примера можно привести файл purchase.order_functional_error_line_cant_adpat.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 у вас будет 4 контакта и 3 компании. (Первые два контакта связаны с первой компанией). Сначала вы должны импортировать компании, а затем людей.