Расскажу, как легко выгрузить и загрузить товары, обновить цены, остатки и любую другую информацию на сайте под управлением 1С Битрикс.
Введение
В этой статья я расскажу, как вам организовать на вашем сайте под управлением 1С Битрикс самый лучший способ выгрузки и загрузки (Экспорт и Импорт) данных для этого нам понадобится установить модуль «Экспорт/Импорт товаров в Excel» от «esolutions.su»
Данный модуль платный, но его цена не высокая если посмотреть на его возможности. Перед покупкой вы сможете его протестировать в полном объёме без ограничений в течении 14 дней.
На маркетплейсе битрикса вы можете найти много похожих модулей, но я рекомендую именно этот модуль по нескольким причинам.
- Имеет возможность загрузить (из формата файла: CSV, XLS, XLSX, XLSM, HTML, DBF) или выгрузить (в формат файла: CSV, XLS, XLSX, DBF) любые данные.
- Работает с информационными и highload блоками
- Отличная техническая поддержка.
- Понятный и удобный интерфейс использования.
- Приемлемая цена и возможность протестировать перед покупкой.
- Регулярное обновление и улучшения.
После установки модуля у вас на сайте появится в разделе «Контент» две вкладки «Импорт из Excel» и «Экспорт в Excel», а в настройках модулей появится Экспорт/Импорт товаров в Excel».
В настройках модуля можно оставить всё по умолчанию или настроить под ваши нужды и характеристики хостинга где располагается ваш сайт всё довольно понятно вам нужно только проставить галочки или заполнить поля.
Я не буду полностью рассказывать обо всех настройках и возможностях так как обо всём рассказать в одной статье просто не реально из-за того, что бывают разные задачи и разные характеристики сайта, а вкратце опишу некоторые на которые обратите внимание, также под многими из настроек есть подсказки думаю вам будет всё понятно для чего та или иная настройка нужна.
Экспорт
Для создания экспорта нам нужно будет пройти три шага.
Экспорт - Шаг 1
На первом шаге мы создаём профиль и настраиваем его. В моём примере я буду использовать создание файла экспорта в формате Excel .XLSX.
Название профиля: Вам нужно придумать название вашего профиля экспорта, желательно назвать его коротко и со смыслом того для чего он создаётся.
Тип файла экспорта: Выбираем в каком формате у нас на выходе получится файл экспорта.
Путь к файлу экспорта: Указываем путь от корня сайта где у вас будет создан файл экспорта. По умолчанию путь и имеет примерно такой вид /upload/export_743588399.xlsx, где «upload» это папка, «export_743588399» название файла, «.xlsx» расширение имени файла.
Информационный блок: Выбираем из какого информационного блока мы будем выгружать данные.
Разделитель для множественных свойств: Некоторые свойства информационного блока могут быть множественного вида, то есть в одном свойстве могут быть несколько значений, чтобы их разделять мы можем указать любое значение, по умолчанию это точка с запятой «;». Этот параметр мы можем оставить по умолчанию так как на втором шаге в самих настройках выгружаемого свойства мы можем переопределить разделить по умолчанию.
Максимальный уровень вложенности разделов: Можно указать на какой уровень вложенности обрабатывать разделы или вообще отключить выбор разделов на втором шаге указав «0»
Указывать коды полей для последующего импорта: Это вам понадобится если вы в дальнейшем планируете использовать файл экспорта для последующего импорта. Намного упрощает и ускоряет процесс импорт так как к названию будет добавлен код поля к примеру {IE_NAME} и при импорте можно нажатием одной кнопки сопоставить значение.
Далее ниже будут отдельные вкладки с различными настройками такие как «Обработка разделов», «Свойства документа (только для xlsx-файлов)», «Внешние сервисы» и «Прочие настройки» в них вы по желанию указываете те данные которые вам могут понадобятся. Также при настройках у вас свержу есть кнопка при нажатии на которую вы можете посмотреть инструкции.
Экспорт - Шаг 2
На втором шаге мы настраиваем непосредственно то, что будет отображаться в файле экспорта.
Первым делом обратим внимание на блок с фильтром в котором мы можем отфильтровать те значения, которые хотим выгрузить. Чтобы добавить фильтр нажимаем на кнопку «+», выбираем значение, далее оно покажется в фильтре и при необходимости заполняем поле значения, далее нажимаем на кнопку «Найти».
К примеру, нам нужно выгружать только активные элементы, выбираем «Активность» и данное поле имеет 3 значения «(любой), «Да» и «Нет» выбираем «Да» и нажимаем кнопку «Найти» и в итоге у нас применится фильтр где будут выводиться только активные элементы.
Далее мы настраиваем сам лист, это то, что и как будет отображаться в файле экспорта.
Мы можем указать название листа так как у нас есть возможность создать несколько листов и при дальнейшем использовании файла будет удобно и понятно знать, что это за лист.
Под окном названия листа есть «Дополнительные настройки», развернув которые мы можем применить их к конкретному листу.
Теперь мы дошли до настроек вывода значений по столбцам.
По умолчанию у нас выводится 2 столбца с полями «ID элемента» и «Наименование элемента»
Нажав на поле у нас раскроется список всех доступных полей, которые мы можем выгрузить, если у вас много полей и вам трудно найти можете воспользоваться поиском введя название и по мере ввода у вас будут показываться поля, которые совпадают с вашим названием.
Рядом с полем у вас есть возможность дополнительно настроить выбранное значение (У разных значений полей могут быть разные настройки) или удалить поле, а также добавить рядом ещё одно поле.
Также вы можете дополнительно воспользоваться настройками строкой заголовков.
Нажав на кнопку действий в строке заголовков которая показана на скриншоте у вас появляется возможность настроить список полей, добавить строку ниже или выше настроить отображение или сбросить настройки, полный список виден на скрине.
После того как вы всё настроили вы можете внизу страницы нажать на «Экспортировать данные» или добавить ещё лист, просто сохранить данные и вернуться назад (Если вы не сохраните данные и вернётесь назад тогда вы потеряете всё что было настроено!)
Экспорт - Шаг 3
Когда вы нажмёте на кнопку «Экспортировать данные» вы перейдёте к третьему шагу где автоматически начнётся экспорт с информацией о его процессе.
После завершения экспорта данных вы получите ссылку на файл выгрузки битрикса.
Вывод
С помощью экспорта в модуле вы без особого труда сможете сформировать Excel файл с любыми данными из вашего сайта в удобном структурированном виде для различных задач, которые перед вами стоят. К примеру, с помощью экспорта можно сформировать удобный прайс лист ваших товаров, который будет автоматически обновляться и содержать актуальные данные и будет доступен для скачивания любому пользователю по ссылке «URL».
Импорт
Как и для экспорта импорт настраивается в три шага.
Импорт - Шаг 1
На первом шаге мы создаём профиль импорта и настраиваем его. В моём примере я буду использовать файл для импорта в формате Excel .XLSX. С помощью файла я обновлю цены и остаток в каталоге товара.
Название профиля: Вам нужно придумать название вашего профиля экспорта, желательно назвать его коротко и со смыслом того для чего он создаётся.
Файл для загрузки: Добавляем файл который мы загрузим в профиль импорта. Мы можем разным способом загрузить файл на выбор нам представлено - «Загрузить с компьютера», «Выбрать из структуры» (Выбрать файл который загружен у вас на сайте), «Загрузить файл с Email-адреса» (Можно загрузить файл из любого почтового ящика и из любого письма), «Загрузить файл по ссылке с авторизацией» (Загрузка файла по url адресу к которому требуется вводить логин и пароль) или просто «Вставить путь к файлу» (Обычный адрес по которому расположен файл).
Информационный блок: Выбираем в какой информационный блок мы будем загружать данные.
Поле (поля) для идентификации элемента: Указываем по какому полю или по нескольким полям будет происходить поиск элементов на сайте. В моём случае я выбрал по «Внешний код» так как товар у меня уже загружен и у него есть внешний код, также хочу отметить, что в по внешнему коду это самый быстрый способ идентификации элемента.
Поле (поля) для идентификации торговых предложений: Указываем по какому полю или по нескольким полям будет происходить поиск торговых предложений. Данное поле появится если в инфоблоке есть каталог и помимо обычного товара есть торговые предложения. В моём случае я оставляю все поля пустыми так как торговых предложений в том списке, который я буду обновлять их нет.
Далее необходимо отметить опции того, что нам потребуется.
Не создавать новые элементы: Режим обновления. Будут обновлены только существующие элементы, новые не будут созданы. Это то что мне нужно я выбираю его «+» (Далее я буду указывать «+» выбираю или «-» пропускаю и оставляю неотмеченным).
Не обновлять существующие элементы: Режим создания. Будут созданы только новые элементы, существующие останутся без изменений. «-»
Режим удаления элементов: Все элементы, найденные по указанным полям для идентификации, будут удалены. «-»
Если новый элемент, то делать элемент неактивным: У всех создаваемых элементов активность будет выключена. На активность обновляемых существующих элементов данная опция не влияет. «-»
Если кол-во нулевое, то делать элемент неактивным: Будут деактивированы элементы, у которых «Доступное количество» пустое или равно нулю. «-»
Если цена нулевая, то делать элемент неактивным: Будут деактивированы элементы, у которых не задан ни один тип цены. «-»
Активировать загружаемые элементы: При включении данной опции все создаваемые и обновляемые элементы будут загружаться активными, если не включены другие настройки, влияющие на активность загружаемых элементов. «-»
Не обновлять элемент при отсутствии изменений: Ускоряет обновление элемента. При включении данной галочки не будет обновлена дата изменения элемента. «+»
Добавлять новые привязки к разделам и сохранять старые: Для существующих элементов привязка к текущим разделам будет сохранена, но при этом добавится привязка к разделам, указанным при импорте. Если при импорте разделы не указаны, то привязка существующих элементов к разделам не изменится в любом случае и данную опцию можно не использовать. «+»
Загружать привязку к разделам только для новых элементов: Привязка к разделам будет применена только для новых элементов. «+»
Не загружать элементы без привязки к разделу: Элементы не будут загружены если к ним нет привязки разделов. «+»
Разделитель для множественных свойств: Некоторые свойства информационного блока могут быть множественного вида, то есть в одном свойстве могут быть несколько значений, чтобы их разделять мы можем указать любое значение, по умолчанию это точка с запятой «;». Этот параметр мы можем оставить по умолчанию так как на втором шаге в самих настройках выгружаемого свойства мы можем переопределить разделить по умолчанию.
Далее идёт ещё большой раскрывающийся список настроек вы можете их просмотреть если вам они будут нужны отметить галочкой соответствующую опцию. Я укажу только те, которые нужны были в моём случае.
Блок «Действия над отсутствующими в файле элементами» я выбрал «Обнулить остатки для отсутствующих в файле элементов», «Удалить цены для отсутствующих в файле элементов» (Так как если в прайс листе отсутствует товар, то скорее всего он уже снят с производства и его больше не выпускают.), «Учитывать раздел, выбранный на 2-м шаге».
Блок «Действия над отсутствующими в файле торговыми предложениями» я пропускаю так как в моём случае нет торговых предложений и все опции остаются неотмеченные.
Блок «Обработка разделов» выбираю «Не создавать новые разделы» и «Не обновлять существующие разделы» разделы у нас уже существуют я не собираюсь добавлять и обновлять их.
Блок «Настройки торгового каталога» выбираю «Включить количественный учет» и «Рассчитывать доступное количество как сумму остатков по складам»
Блок «Статистика» Записываю статистику последних трёх импортов. Это удобно, когда вам необходимо проверить что у вас записалось и для того чтобы можно было откатить импорт.
Блок «Загрузка и чтение файла импорта» я отмечаю «Оптимизировать расход оперативной памяти». (Данная опция позволяет уменьшить расход оперативной памяти при разборе xlsx-файлов за счет вынесения данных на жесткий диск и использования поточного парсера xml.)
Блок «Дополнительные настройки» включаю «Отложить сброс кеша инфоблока на конец импорта». (По умолчанию кеш инфоблока сбрасывается после изменения каждого элемента и раздела инфоблока. Данная опция дает возможность отложить сброс кеша на конец импорта, чтобы можно было уменьшить нагрузку на сайт в процессе импорта.)
После того как вы всё настроили вы можете внизу страницы нажать на «Далее» чтобы перейти ко второму шагу или просто «Сохранить конфигурацию».
Импорт - Шаг 2
Настройки полей импорта на втором шаге похожи на настройки полей экспорта и повторять здесь не вижу смысла, а напишу только те, на которые вам нужно обратить внимание и их нет в экспорте.
Появились дополнительные настройки листа
Изменены настройки строк нажав на кнопку действий в строке заголовков у вас будет возможность указать что строка содержит заголовки (Рекомендую всегда выбирать это значение если вы планируете запускать импорт по Cron так как будет происходить проверка на изменение заголовков и если вы скачиваете файл по ссылке и в файле были изменены заголовки, то тогда импорт не будет произведён) или указать что строка содержит раздел это в том случае, когда файл имеет вложенность в виде дерева. Добавлена возможность «Применить настройки ко всем листам» если файл импорта содержит несколько листов то, то что вы настроите на первом листе перенесутся на второй и последующие.
В раскрывающемся списке при нажатии «Дополнительные настройки» у вас есть возможность задать разделы, по которым будет происходить поиск элементов. Если разделы заданы, то поиск элементов для обновления будет производится только в указанных разделах и их подразделах. Если же разделы не указаны, то поиск по умолчанию работает по всему инфоблоку. Рекомендую всегда указывать раздел для поиска.
В каждом подставленном свойстве существуют множества настроек, которые могут отличаться из-за характеристик самого свойства. К примеру, скрин одного свойства
После всех настроек вы можете «Сохранить конфигурацию», вернутся назад на первый шаг или сразу нажать на «Загрузить данные» (Если вы не сохраните данные и вернётесь назад тогда вы потеряете всё что было настроено!)
Импорт - Шаг 3
Когда вы нажмёте на кнопку «Загрузить данные» вы перейдёте к третьему шагу где автоматически начнётся импорт с информацией о его процессе.
После завершения импорта данных вам будет доступна информация сколько строк обработано, добавлено или обновлено элементов. Будет доступна ссылка на статистику и откат импорта если вы указали на первом шаге сохранение статистики. Покажет ошибки если такие будут.
Ваш профиль сохраняется в модуле, вы всегда можете запустить его изменить или запустить заново в ручном режиме или через планировщика задач «Cron» по расписанию.
Вывод
С помощью импорта в модуле вы без особого труда сможете обработать Excel файл с любыми данными для различных задач, которые перед вами стоят. К примеру, с помощью импорта можно загружать номенклатуру в ваш каталог обновлять остатки и цены в автоматическом режиме.
Заключение
Для полноценной возможности экспорта и импорта на сайте под управлением 1С Битрикс лучшего решения ещё не придумали. Данный модуль - это мощный инструмент выгрузки и загрузки данных, которым можно без особых усилий и навыков можно работать с Excel файлами. Умеет работать не только с информационными блоками, но и highload-блок тоже обработать может. Экспортом вы обрабатываете то что уже есть на вашем сайте и выгружаете данные, а импортом получаете данные и наполняете ими свой сайт.
Работает по расписанию. К примеру, в моём случае для экспорта в Cron я записал примерно следующее задание:
#29 4 * * * /usr/bin/php -d memory_limit=1024M /.../.../.../.../bitrix/php_interface/include/catalog_export/cron_frame.php 1 >/dev/null 2>&1
Немного пояснения по коду: «29 4 * * *» это время, когда нам нужно запускать, далее «/usr/bin/php» это путь до интерпретатора PHP, далее «-d memory_limit=512M» укажем сколько выделять памяти для процесса (Если у вас большой объём данных которые нужно выгрузить и происходит зависание экспорта тогда увеличьте это значение), далее «/.../.../.../.../bitrix/php_interface/include/catalog_export/cron_frame.php 1» это полный путь к файлу настроек модуля запуска по cron и «1» это номер ID вашего профиля экспорта, далее «>/dev/null 2>&1» этим мы запретим уведомление о выполнении команды. В зависимости от того где у вас работает сайт команда для запуска может отличаться.
Более полный список возможностей описан на странице модуля в маркетплейсе битрикса все ссылки вы найдёте ниже.
Ссылки
Модуль на маркетплейсе 1С Битрикс: https://marketplace.1c-bitrix.ru/solutions/esol.importexportexcel/
Сайт разработчика модуля: https://esolutions.su/
E-Mail почта технической поддержки разработчика модуля: app@esolutions.su
Сайт на котором установлен и работает модуль экспорта и импорта: «Фабрика света» https://fabrika-sveta.com/ . Я являюсь администратором этого сайта и могу вам сказать, что каталог товаров содержит более 170000 товаров и несколько тысяч разделов. На нём ежедневно выполняется десятки процессов импорта и экспорта без каких-либо проблем.
Файл прайс лист производителя светодиодной продукции «Gauss», который обработали модулем импорта, с помощью этого файла был сформирован каталог и обновляются цены и остатки:
Возможно вас ещё заинтересует модуль обмена сайта Битрикс с 1С о котором я рассказывал ранее от разработчика этого модуля обмена данными.
Источник: KDV.su Климов Дмитрий