вообщем последовал советам, вот что сделал. запустил, работает, добавляет, только свойство 46 у меня оно является списком выбора, не множественным. оно не загружается. при стандартном пошаговом импорте CVS загружается. пробовал и значение подставлять (например "Торговля" там есть в списке) и номера значений списка.
Код |
---|
<?php
CModule::IncludeModule('iblock'); //подключай iblock
$row = 2;
$handle = fopen ("C:/RABOTY.csv","r"); //открываю фаил и начинаю перебирать его
while ($data = fgetcsv ($handle, 10000, ";"))
{
$num = count ($data);
print "<p> $num полей в строке $row: <br>\n";
$row++;
reset($data); //перебираю присваиваю попорядку занчения переменным
$IBLOCK_ID=current($data); next($data);
$IE_XML_ID=current($data); next($data);
$naimenovanie=current($data); next($data);
$roditel=current($data); next($data);
$IE_NAME=current($data); next($data);
$IP_PROP47=current($data); next($data);
$IP_PROP49=current($data); next($data);
$IP_PROP52=current($data); next($data);
$IP_PROP57=current($data); next($data);
$IP_PROP58=current($data); next($data);
$IP_PROP48=current($data); next($data);
$IP_PROP55=current($data); next($data);
$IP_PROP56=current($data); next($data);
$IP_PROP50=current($data); next($data);
$IP_PROP46=current($data); next($data);
$IP_PROP51=current($data); next($data);
$IE_DETAIL_TEXT=current($data); next($data);
$IE_PREVIEW_TEXT=current($data);next($data);
$IE_ACTIVE_FROM=current($data); next($data);
$IE_ACTIVE_TO=current($data); next($data);
$el = new CIBlockElement; //начинаем добавлять новый элемент
$PROP = array(); // создаю массив для свойств
$PROP[46] = $IP_PROP46; // свойству с кодом 46 $IP_PROP46 ОТРАСЛЬ
$PROP[47] = $IP_PROP47; // свойству с кодом 47 присваиваем значение переменной $IP_PROP47
$PROP[49] = $IP_PROP49; // свойству с кодом 49 присваиваем значение переменной $IP_PROP49
$PROP[52] = $IP_PROP52; // свойству с кодом 52 присваиваем значение переменной $IP_PROP52
$PROP[57] = $IP_PROP57; // свойству с кодом 57 присваиваем значение переменной $IP_PROP57
$PROP[58] = $IP_PROP58; // свойству с кодом 58 присваиваем значение переменной $IP_PROP58
$PROP[48] = $IP_PROP48; // свойству с кодом 48 присваиваем значение переменной $IP_PROP48
$PROP[55] = $IP_PROP55; // свойству с кодом 55 присваиваем значение переменной $IP_PROP55
$PROP[56] = $IP_PROP56; // свойству с кодом 56 присваиваем значение переменной $IP_PROP56
$PROP[50] = $IP_PROP50; // свойству с кодом 50 присваиваем значение переменной $IP_PROP50
$PROP[51] = $IP_PROP51; // свойству с кодом 51 присваиваем значение переменной $IP_PROP51
$arLoadProductArray = Array( // создаю массив для загрузки
"MODIFIED_BY" => $USER->GetID(), // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 16, // 16 инфоблок
"PROPERTY_VALUES"=> $PROP, // указываем на массив свойств
"NAME" => $IE_NAME, // имя из переменной $IE_NAME
"ACTIVE" => "Y", // активен
"PREVIEW_TEXT" => $IE_PREVIEW_TEXT, // текст из переменной $IE_PREVIEW_TEXT
"DETAIL_TEXT" => $IE_DETAIL_TEXT, // детальный текст из переменной $IE_DETAIL_TEXT
);
if($PRODUCT_ID = $el->Add($arLoadProductArray)) //добавляю новый элемент из массива
echo "New ID: ".$PRODUCT_ID; //и отчет добился или не добавился
else
echo "Error: ".$el->LAST_ERROR;
}
fclose ($handle);
?> |
пока не понял, в чем причина что именно 46 свойство не загружается, просто пустое оно после загрузки.
выполнял
echo("<br>");
print $IP_PROP46;
echo("<br>");
print $arLoadProductArray[PROPERTY_VALUES][46];
- все на месте, все есть.