Тут IMHO остается только кастомизировать выгрузку - выносить выгрузку на отдельную страницу и добавлять обработчики на обновление элементов инфоблока. Примерно следующим образом (пишу - не проверяю). Создаете файл вроде
/bitrix/my_1c_import.php, копируя содержимое
/home/bitrix/www/bitrix/modules/catalog/admin/1c_import.php. Потом в этом файле перед подключением компонента загрузки каталога
$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array( ... ) вставляете такой обработчик:
| Код |
|---|
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("MyHandlerClass", "OnBeforeIBlockElementUpdateHandler"));
class MyHandlerClass
{
// создаем обработчик события "OnBeforeIBlockElementUpdate"
function OnBeforeIBlockElementUpdateHandler(&$arFields)
{
if(isset($arFields["NAME"]) //если установлено поле Имя, убираем его
unset($arFields["NAME"]);
return;
}
}
|
Чтобы поля вообще никакие поля не менялись, можно отключить другие поля массива $arFields аналогично. Можно было бы возвращать в обработчике ложь, но это, наверное, приведет к ошибке выгрузки. После нужно настроить 1С-ку на выгрузку/загрузку с этим файлом, а не с оригинальным.