This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Импорт и экспорт данных

Every form in Open ERP has a standard mechanism for importing data from a CSV file through the client user interface. That's the same format as used in the language translations.

Примечание

Формы и списки

В веб-клиенте у вас есть доступ к функциям импорта и экспорта на виде формы в режиме «только для чтения» -- вы не можете использовать импорт и экспорт в каком-либо другом виде или когда форма находится в режиме редактирования. Если вы используете клиент GTK, эти функции находятся в верхнем меню [Форма ‣ Импорт...] (Form ‣ Import...) и [Форма ‣ Экспорт...] (Form ‣ Export...).

Формат файла CSV -- это текстовый формат, совместимый с большинством программ -- табличных калькуляторов (таких, как OpenOffice Calc и Microsoft Excel) и легко редактируется как таблица. Первая строка содержит название полей формы. Все последующие строки -- это данные, помещенные в свои соответствующие столбцы.

Экспорт данных OpenERP в CSV

Начните экспорт данных OpenERP в формат CSV с ограниченно сложного набора данных, контрагентов и адресов контрагентов в демонстрационных данных.

Перейдите в [Контрагенты ‣ Контрагенты] (Partners ‣ Partners), чтобы получить список контрагентов и затем прокрутите экран до нижней части списка, чтобы нажать ссылку [Экспорт] (Export). Это вызовет диалоговое окно Экспорт данных (Export Data). Выберите следующие поля:

  • Название (Name),

  • Имя контакта (Contact Name) в меню [Контакты] (Contacts),

  • Город (City) в меню [Контакты] (Contacts).

Вы можете либо выбирать и добавлять их по одному, либо щелкая левой кнопкой мыши при нажатой клавише <Ctrl> и добавить затем множественный выбор -- поля будут перечислены в том порядке, в котором вы их выбирали.

Затем нажмите [Экспорт] (Export) и сохраните результирующий файл data.csv где-либо в доступном месте, например -- на рабочем столе. Вы можете открыть этот файл в табличном калькуляторе или текстовом редакторе.

Теперь у вас есть список контрагентов, с названиями и городами каждого контакта контрагента. В нескольких случаях, когда существует более одного адреса, название контрагента опущено. Важно учесть, что теперь порядок следования записей является критическим -- не сортируйте этот список!

Совет

Ограничения списка

На количество записей, которые вы можете экспортировать в клиентском ПО, существует ограничение -- это количество записей, которые вы можете реально видеть и ограничение равно максимум 100 записям в веб-клиенте, но может быть произвольно выбрано в клиенте GTK.

Так что если вы хотите экспортировать все, используйте клиент GTK. Установите лимит экспорта в достаточно большое значение (при помощи кнопки [+] для воздействия на Параметры (Parameters) и Ограничения (Limit)), затем нажмите [Форма ‣ Экспорт данных...] (Form ‣ Export data...), задайте поля для экспорта, и приготовьтесь подождать.

Импорт данных CSV в OpenERP

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

Например, для импорта контрагентов, с несколькими контактами, для которых вы можете указать имя и город, вы можете создать следующий файл CSV из экспортированного файла:

Example of importing partner address fields

Название (Name)

Контакты/Имя контакта (Contacts/Contact Name)

Контакты/Город (Contacts/City)

Whole Globe Technologies

Graham Global

Афины (Athens)

 

Wanda World

Рим (Rome)

 

Emerson Earth

Нью-Йорк (New York)

Miles A Minute

   

В списке контрагентов нажмите кнопку [Импорт] (Import) и затем в окне Импорт данных (Import Data) нажмите [Открыть] (Open) для того, чтобы выбрать и импортировать новый файл data.csv. Веб-клиент автоматически ставит соответствие по названиям колонок, но клиент GTK требует нажатия кнопки [Автоопределение] (Auto detect).

Будет выведено диалоговое окно, показывающее, что вы импортировали 2 объекта, и теперь вы можете увидеть новых контрагентов и адреса контрагентов при обновлении списка на экране.

Формат файла CSV для структур сложных баз данных

When you import data you have to overcome the problem of representing a database structure in .csv flat files. To do this, two solutions are possible in Open ERP:

  • импорт файла CSV, который был структурирован определенным путем, чтобы дать вам возможность загружать несколько различных таблиц базы данных из одного файла (такого, как контрагенты и адреса контрагентов в одном файле CSV, как вы только что проделали выше),

  • импорт нескольких файлов CSV, каждый из которых соответствует конкретной таблице базы данных, с заданными явными ссылками между таблицами.

Примечание

Импорт на стороне сервера

Вы можете также импортировать данные CSV при помощи интерфейса сервера. Формат файла остается таким же, но названия столбов немного отличаются. При импорте через пользовательский интерфейс он проверяет, что названия столбцов соответствуют названиям, показанным в формах самого пользовательского интерфейса. При импорте через сервер, названия столбцов должны соответствовать внутренним названиям полей.

Start by building the header of the CSV file. Open the import tool on the object that you're interested in and select the fields that you want to import into your Open ERP database. You must include every field that's colored in blue because those fields are required (unless you know that they get filled by default with an appropriate value), and also any other field that's important to you.

/doc_static/5.0/_images/csv_column_select.png

Выбор полей для импорта с использованием файла CSV

Use the field names as the column names in the first line of your CSV file, adding one field per column. If your CSV file has these names in the first line then when you import your CSV file, Open ERP will automatically match the column name to the field name of the table. When you've created your CSV file you'll do that by clicking the Nothing button to clear the Fields to Import, then select your CSV file by browsing for a File to import, and then clicking the Auto Detect button.

To import CSV data that matches your database structure, you should distinguish between the following types of field in the Open ERP interface: many-to-many fields (between multiple sources and destinations), many-to-one fields (from multiple sources to a single destination), and one-to- many fields (from a single origin to multiple destinations).

Примечание

Активная таблица

Каждый из этих типов описан в отношении к активной таблице -- т.е. той таблице, форму ввода которой вы видите и записи которой будут изменены простым файлом CSV.

То, что одно из этих полей с отношением присутствует в активной таблице, не означает, что существует обратное поле в таблице, к которой построено отношение -- но такое поле может и существовать.

Так, в форме Пользователь (User) не существует поля типа один-ко-многим (one-to-many) для отображения поля user_id Продавец (Salesman) типа многие-к-одному (many-to-one) user_id из формы Контрагента (Partner), но существует поле Контрагент(Partner) типа многие-к-одному (many-to-one) partner_id на форме Контакт контрагента (Partner contact) для отображения поля Контакты контрагента (Partner contacts) из формы Контрагент (Partner) для отображения поля типа один-ко-многим (one-to-many) child_ids.

Чтобы увидеть различия, посмотрите на иллюстрации ниже, показывающие экраны.

/doc_static/5.0/_images/csv_many2one.png

Поле многие-к-одному (many-to-one): продавец связан с контрагентом

/doc_static/5.0/_images/csv_many2many.png

Поле многие-ко-многим (many-to-many): категории контрагентов

/doc_static/5.0/_images/csv_one2many.png

Поле один-ко-многим (one-to-many): контакты контрагента

Все остальные поля вносятся в файл CSV просто как одна текстовая строка в каждом столбце.

Поля многие-к-одному

Many-to-one fields represent a relationship between the foreground table and another table in the database where the foreground table has a single entry for the other table. Open ERP tries to link the new record in the foreground table with the field in the other table by matching the field values.

Совет

Идентификаторы полей

Если вы работаете на стороне сервера, вам надо использовать идентификаторы, а не названия ресурсов для связи таблиц. Чтобы сделать это, импортируйте первый файл (например, Продукты (Products)) с колонкой, которая называется id в вашем файле CSV, содержащем уникальный идентификатор для каждого продукта. Это может быть увеличивающееся число.

Когда вы импортируете другие файлы, которые связаны с первой таблицей, предпочтительнее использовать идентификатор, а не название (так, например, когда вы сохраняете результаты инвентаризации, вы можете использовать product:id, а не название продукта). После этого вам не требуется никаких сложных преобразований для создания связей между таблицами.

This considerably simplifies the importation of another database into Open ERP. You just create a linking id column for each table that you're importing that contains the identifier used in the first table.

Поля многие-ко-многим

Поля типа многие-ко-многим обрабатываются также, как и поля типа многие-к-одному в попытке воссоздать отношения между таблицами: либо поиском по имени, либо с использованием идентификаторов.

В одном поле типа многие-ко-многим может содержаться несколько значений. Следовательно, контрагент может обладать несколькими ассоциированными категориями. Вы должны разделять различные значения запятыми.

Поля один-ко-многим

Поля типа один-ко-многим немного другие. Рассмотрим в качестве примера поле Контакты контрагента (Partner Contacts) на форме контрагента, которое содержит все связанные контакты.

To import such a field you don't have to link to an existing entry in another table, but can instead create and link to several partner contacts using the same file. You can then specify several values for different fields linked to that object by the one-to-many field. Each field must be put in a column of the table, and the title of that column must be expressed in the form field_one-to- many/field_linked-object . The partner data you imported earlier took that form.

Примечание

Симметрия в полях отношений

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

Например, вы можете:

  • импортировать одного контрагента с различными контактами в одном файле (один-ко-многим),

  • вначале импортировать контрагентов, а затем контакты с полем, связанным с контрагентом в формате многие-к-одному).

Другой пример файла импорта CSV

Чтобы проиллюстрировать импорт данных, рассмотрим ниже еще один пример. Вначале импортируем категории контрагентов, а затем импортируем нескольких контрагентов и их контакты вместе со ссылками на только что созданные категории. Хотя вы можете создавать новые контакты одновременно с созданием контрагентов, (потому что вы можете делать это для отношений один-ко-многим), вы не можете создать этим путем новые категории (потому что они используют отношения многие-ко-многим). Вы должны создать новые категории в отдельном шаге.

Категории контрагентов

Начните путем создания категорий контрагентов в файле CSV:

  1. Создайте следующую таблицу в вашем табличном калькуляторе:

    Partner categories file
     

    Столбец A (Column A)

    Столбец B (Column B)

    Строка 1 (Line 1)

    Название категории (Category Name)

    Родительская категория (Parent Category)

    Строка 2 (Line 2)

    Качество (Quality)

     

    Строка 3 (Line 3)

    Золотой (Gold)

    Качество (Quality)

    Строка 4 (Line 4)

    Серебряный (Silver)

    Качество (Quality)

    Строка 5 (Line 5)

    Бронзовый (Bronze)

    Качество (Quality)

    В первой строке, Название категории (Category Name) и Родительская категория (Parent Category) -- это заголовки столбцов, которые соответствуют именам полей в форме Категории контрагентов (Partner category).

    Столбец A (Column A) содержит различные категории контрагентов, а Столбец B (Column B) показывает, имеется ли родительская категория для данной категории. Если Столбец B (Column B) пуст, то категория располагается на верхнем уровне.

  2. Сохраните таблицу в файл CSV -- разделенный запятыми -- и назовите файл categories.csv.

  3. In Open ERP, select Partners ‣ Configuration ‣ Categories ‣ Edit Categories.

  4. Нажмите [Импорт] (Import) (внизу слева от списка), чтобы вызвать диалоговое окно [Импорт данных] (Import Data), в котором вы увидите список полей для импорта.

  5. Click Browse... on the File to import field and select the CSV file you just created, categories.csv Then click Auto Detect to atch the column names in the CSV file with the field names available in:guilabel:Partner Categories.

  6. Click Import at the bottom-right of the dialog box to load your data. You should get the message 4 objects imported in a new dialog box. Close both this and the Import Data dialog box to return to the original page.

  7. Click Partners ‣ Partners by category to view the tree of categories, including the new Quality branch that you loaded.

Новые контрагенты

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

  1. Создайте в вашем табличном калькуляторе следующую таблицу.

    Partner data file - partners.csv
     

    Столбец A (Column A)

    Столбец B (Column B)

    Столбец C (Column C)

    Столбец D (Column D)

    Строка 1 (Line 1)

    Название (Name)

    Категории (Categories)

    Контакты/Имя контакта (Contacts/Contact Name)

    Выделенный продавец (Dedicated Salesman)

    Строка 2 (Line 2)

    Black Advertising

    Silver,Gold

    George Black

    Administrator

    Строка 3 (Line 3)

       

    Jean Green

     

    Строка 4 (Line 4)

    Tiny sprl

     

    Fabien Pinckaers

    Administrator

  2. Вторая строка соответствует созданию нового контрагента, с двумя существующими категориями, у которого есть два контакта и который связан с продавцом.

  3. Сохраните файл под именем partners.csv.

  4. В OpenERP выберите [Контрагенты ‣ Контрагенты] (Partners ‣ Partners), затем импортируйте только что сохраненный вами файл. Будет выведено сообщение, подтверждающее что ваши данные импортированы и сохранены.

  5. Убедитесь, что данные импортированы успешно. Должен появиться новый контрагент (NoirAdvertising), с продавцом (Administrator), двумя контактами (George Black и Jean Green) и двумя категориями (Silver and Gold).

Экспорт данных в других видах

Open ERP's generic export mechanism lets you easily export any of your data to any location on your system. You're not restricted to what you can export, although you can restrict who can export that data using the rights management facilities discussed above.

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

Совет

Доступ к базе данных

Developers can also use other techniques to automatically access the Open ERP database. The two most useful are:

  • использование веб-сервиса XML-RPC,

  • прямой доступ к базе данных PostgreSQL.

Совет

Модуль Recorder

If you want to enter data into Open ERP manually, you should use the Module Recorder, described in the first section of this chapter.

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