Немного теории
В данном уроке вы познакомитесь с функционалом импорта и экспорта данных при работе с инфоблоками, а также научитесь самостоятельно выполнять импорт/экспорт. Данная процедура позволяет точечно переносить данные с одного сайта на другой. Импорт и экспорт инфоблоков представлен в двух форматах: CSV и XML. Рассмотрим их.
CSV
CSV – формат данных, представленный в виде текстовых значений, разделенный определенным символом, чаще всего запятой. Главной особенностью CSV является относительно небольшой размер файла при большом количестве данных. Однако данный формат имеет и недостатки в виде отсутствия возможности выгружать/загружать структуру инфоблока и его настройки.
Экспорт
В системе “1С-Битрикс: Управление сайтом” экспорт данных в CSV позволяет задать разделитель, который будет использоваться в файле, а также выбрать поля и свойства, необходимые для экспортирования. Вложенность разделов при импорте ограничена и зависит от настроек модуля “Информационные блоки”.
Экспорт записей выполняется за один шаг, поэтому, при большом количестве записей и малом объеме выделенной памяти, есть риск возникновения ошибки “Нехватка памяти для выполнения скрипта”.
В случае, если у записей присутствуют изображения или файлы в значениях свойств, то в CSV-файле будут указаны пути, по которым были загружены данные файлы на сайте. Следовательно, при последующем импорте файла необходимо отдельно загрузить соответствующие файлы по указанным путям.
Импорт
При импорте в формате CSV “1С-Битрикс: Управление сайтом” позволяет выбрать разделитель, используемый в файле, а также указать соответствие полей в файле с полями в инфоблоке, в который импортируются данные.
Если в файле импорта есть изображения или файлы, то необходимо предварительно загрузить изображения на сайт и указать путь к ним при импорте данных.
Также в случае с импортом можно указать время выполнения одного шага. Если импортируемый файл содержит большой объём данных, то рекомендуется указывать положительный шаг выполнения, а также отключать индексацию созданных элементов модулем “Поиск”. Это увеличит скорость создания новых элементов, а следовательно, и процесс импорта.
Стоит заметить, что при импорте данных в CSV, обязательным становится хотя бы одно из полей: XML_ID или NAME. Их отсутствие не позволит корректно выполнить импорт элементов.
XML
Второй формат импорта/экспорта, который мы рассматриваем в данном уроке, это XML. Отличие XML от CSV заключается в том, что XML позволяет, помимо элементов инфоблоков, также экспортировать структуру и настройки инфоблока.
Экспорт
Экспорт данных в XML предлагает указать инфоблок, шаг экспорта, а также параметры выгрузки разделов и элементов, в отличие от CSV, который не предлагает такой возможности.
Если в данных содержатся изображения, то после завершения экспорта будет создан XML-файл с указанным названием, а также директория, имеющая идентичное название файлу выгрузки + постфикс с файлами изображений. При этом в самом XML-файле у элементов путь к изображениям будет указан относительно директории - название_файла_files.
Импорт
При импорте XML-файла необходимо заранее загрузить на сайт XML-файл импорта, а также папку с изображениями. Так как импортируется структура инфоблока, то необходимо указать сайт, к которому будет привязан инфоблок.
XML vs CSV
Сравнивая данные форматы, можно сделать вывод, что CSV рекомендуется использовать, когда работа осуществляется только с элементами инфоблока и количество записей велико.
Формат XML, в свою очередь, удобен для полного переноса инфоблоков между сайтами, так как позволяет сохранить все настройки, но стоит помнить, что большое количество записей в данном файле сильно увеличит его объём.
Доработка скриптов экспорта и импорта
Когда при импорте данных необходимо внести изменения в сами данные в момент импорта либо выполнить иные операции при добавлении/обновлении/удалении элемента в системе “1С-Битрикс: Управление сайтом”, предусмотрена возможность доработки импорта с помощью обработчиков событий. Подробнее про обработчики событий и работу с ними будет рассказано в следующих уроках, а пока что вы можете посетить страницу документации, ссылка на которую указана в материалах к данному уроку.
Практика
Научимся выполнять экспорт и импорт инфоблоков, а также рассмотрим, как самостоятельно создать или модифицировать файл импорта.
В примере:
- Импорт инфоблоков в формате XML.
- Экспорт нашего инфоблока в формате CSV.
- Импорт инфоблока в формате CSV.
Импорт/экспорт данных в Инфоблоки
10 мин
Полезные ссылки и материалы