Цитата |
---|
У меня имеются два инфоблока: проекты и заказчики. В заказчиках есть множественное свойство проекты и соотвественно в проектах есть свойство заказчик.
Нужно связать инфоблоки так, чтобы в инфоблоке заказчиков при выборе проектов, в инфоблоке проектов автоматически заполнялось поле заказчик. |
Наконец-то я снова вернулся к этому вопросу.
Есть файл init.php по адресу bitrix/php_interface/init.php
Код |
---|
<?php
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass", "OnAfterIBlockElementUpdateHandler"));
class MyClass
{
// создаем обработчик события "OnAfterIBlockElementAdd"
function OnAfterIBlockElementAddHandler(&$arFields) {
$value = $arFields["PROPERTY_ORDERS"];
$customer = $arFields["NAME"];
$ciblockid = $arFields["IBLOCK_ID"];
$piblockid = 17; // ID инфоблока Проекты
if ($arFields["ID"]>0) {
if ($iblockid == 14) { // ID инфоблока Заказчики
AddMessage2Log("Заказчик ".$arFields["NAME"].". ID = ".$arFields["ID"].". Заказ ".$arFields["PROPERTY_ORDERS"].". ID = ".$value);
$el = CIBlockElement::GetList(
$arFilter = array(
"IBLOCK_ID" => $piblock,
"ID" => $value,
"INCLUDE_SUBSECTIONS" => "Y")
);
$PROPERTY_CUSTOMER = $customer;
$res = $el->Update($PROPERTY_CUSTOMER);
}
} else {
AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
}
} /* end function OnAfterIBlockElementAddHandler */
} /* end class MyClass */
?> |
и кажется что в моем коде все неправильно.
во-первых, я не могу дать значение переменной $value = $arFields["PROPERTY_ORDERS"]; наверное неправильно написано обращение к свойству.
Но что касается лог-файла, все работает, кроме вывода переменной $value и $arFields["PROPERTY_ORDERS"].
Подскажите, что нужно сделать.
P.S. я не понимаю как работает GetList, по возможности объясните мне как обратиться к элементу другого инфоблока.