+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Импорт из CSV неуникальных записей

Задача: импортировать справочник из CSV в битрикс
Особенности: некоторые строки имеют одинаковые значения названия, но разные значения остальных свойств.
Технологии и инструменты: Битрикс, Эксель
Эксперимент №1.
Захожу в админку, добавляю две записи с одинаковыми названиями, убеждаюсь что всё ок. Оно и логично - ID записи получают автоматом разные.
Эксперимент №2.
Создаю CSV из двух строк, названия одинаковые, свойства разные, IE_XML_ID и IE_ID не задаю, т.к. данные новые, нужно вставить.
Импортирую, наблюдаю грустную картину, что записи склеились в одну, у множественных свойств всё ок, а вот обычные имеют значение последней записи.
Читаю ещё раз документацию http://dev.1c-bitrix.ru/learning/cour...ON_ID=2012
Для загрузки данных для свойств с признаком множественности необходимо повторить строку с элементом столько раз, сколько будет значений множественного поля.
...
Все строки должны быть одинаковыми по содержанию, за исключением множественных полей, которые изменяются указанием новых данных для этого свойства.
Замечательно, у меня свойства разные, а Битрикс решил, что это я так множественные поля подгружаю.
Обращаюсь в техподдержку, выясняю новые и интересные вещи:
Идентификация одного элемента из списка в CSV-файле происходит по "Названию" или "XML_ID".
У Вас одно название в двух строках, поэтому это один элемент, но с разными значениями множественного свойства, а значения остальных не множественных свойств определится из последней строки.
Значит нужны разные XML_ID. Есть идея проставить вручную от 1 до сколько нужно, но как это будет интерпретировать Битрикс неясно.
Строк в справочнике под 1000, в следующем уже счёт идёт на десятки тысяч, в админке не посидишь...
В результате подумав, решаю сделать всё 2-ступенчатым алгоритмом.
Шаг 1.
Вместо IE_NAME прописываю уникальные числа от 1 и далее в экселе, сохранив отдельно столбец со старыми названиями, соответствующими этим числам.
Импортирую новые данные.
Результат - загружены все данные кроме названий, ни одна из строк не склеилась
Шаг 2.
Экспортирую загруженные данные. На самом деле мне нужно лишь 2 столбца. При попытке экспортировать только XML_ID и IE_NAME, данных оказывается почему-то меньше. Экспортирую всё, вырезаю только эти два столбца.
Функцией ВПР возвращаю в IE_NAME законные названия, ещё раз импортирую.
Результат - у всех данных оказываются правильные имена.

Таким образом, без написания какого-либо кода или обработок задача решена, данные скормлены Битриксу, ура!

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA