Практически каждый разработчик, который начинает работать с 1С-Битрикс, рано или поздно сталкивается с переносом сайта с другой CMS или с созданием интернет-магазина с огромным прайсом и когда это происходит, приходиться придумывать варианты загрузки большого количества данных в инфоблоки. Ну, как придумывать, есть конечно способы импорта данных, которые Битрикс предлагает из коробки, но к сожалению, они не всем нравятся из-за своей прожорливости и скорости.
Наверное, всем знакомо чувство недоумения, когда начинаешь пользоваться бесспорно лучшей коммерческой системой и практически сразу натыкаешься на ряд нелепых недоработок, недоделок, а может быть и специально урезанный функционал, чтобы мы с Вами имели возможность писать и читать подобные посты и совместными усилиями исправлять некоторые из таких ошибок.
Самый распространенный способ импорта данных в инфоблоки в 1С-Битрикс – это конечно CSV файлы. Но как показывает практика (а тем, кто еще с этим не столкнулся, она точно покажет), в ряде случаем работать с этим форматом практически не реально. Проблемы встречаются только в том случаи, если мы попытаемся экспортировать или импортировать из инфоблока элементы, у которых есть свойства с множественным выбором и эти свойства у элемента заполнены.
Все мы знаем, что при импорте и экспорте из CSV Битрикс не понимает того, что у одного элемента может быть свойство, например, типа «Список» с множественным выбором и выбрано там 10 значений, так как за один проход импорта и экспорта, он может извлечь и записать только по одному выбранному значению у таких свойств, от сюда мы получаем, что если бы у нас был один элемент в инфоблоке с одним множественным свойством типа «Список», то при экспорте такого инфоблока у нас бы создалось 11 строк для всего одного элемента с одним свойством. Почему 11? 1 строка для шапки и 10 для всех проставленных галочек в нашем списке. При импорте, Битрикс так же бы построчно проставлял галочки обратно, т.е. для импорта элемента с таким же свойством нам понадобился бы тот же файл с 11 строками.
А вот уже более-менее реальный пример из жизни Если создать инфоблок и добавить в него все существующие свойства, а их 20 (Привязка к товарам (SKU) не может быть множественным) и указать, что они множественные, после чего создать всего один элемент этого инфоблока и в каждое свойство внести по 2 значения, допустим просто цифру 1 и 2, а потом попробовать экспортировать данный инфоблок с одним элементом штатным экспортом, то мы получим CSV файл в котором будет 220 = 1 048 576 строк и будет такой файл весить около 57 МБ! Совсем не дурно для одного элемента, да? А если у нас интернет-магазин с прайсом на 10000 товаров? Я думаю тут без подсчета понятно, что загружать такой файл или выгружать просто не реально.
Мы, как и любая другая компания столкнулись с такими трудностями, когда создавали крупный интернет-магазин. Но мы легких путей искать не стали и изменили штатный импорт/экспорт в CSV, добавив в него возможность указать разделитель для множественных свойств, а также транслитерацию символьных кодов. Интересна математика с данным модулем? Если за расчеты взять вариант с одним элементом у которого 20 свойств и по 2 значения в каждом, то при использовании нашего модуля получится CSV файл, имеющий 2 строки и весом 400 байт. Ощутимая разница… И импортироваться такой файл конечно же будет намного быстрее.
Есть, пожалуй, в модуле один недостаток, он не работает с торговым каталогом. Но я уверен, что в будущем мы доработаем его и он сможет полноценно стать must have любого проекта. Воспользоваться данным модулем можно абсолютно бесплатно, просто скачайте его через Маркетплейс
Евгений Микулич, коммерческий - разумеется. Но мы пытались немного облегчить жизнь именно на начальной работе, тем кто не знаком с обменом через XML или это не требовалось в проекте. Надеемся нам это удалось.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».