@nikegk

Как скопировать содержимое инфоблока в другой по событию?

Добрый вечер.
Подскажите пожалуйста, можно ли как-то скопировать содержимое инфоблока(со всеми категориями и свойствами) в другой по событию?
  • Вопрос задан
  • 888 просмотров
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
У Вас вопрос "как скопировать инфоблок?" или "как это повесить на событие?":

Если нужно повесить на событие, то делается например так:
код в init.php
$eventManager = \Bitrix\Main\EventManager::getInstance();

$eventManager->addEventHandler(
    "main",//код модуля из которого это событие
    "EventName",//Нужное Вам событие
    array('Vendor\Iblock\Copy', "copyIblock")//Класс и имя функции копирования
);


Если же надо еще написать копирование, то стоит учесть что перед копированием элементом, вам необходимо скопировать в новый инфоблок:
  • Свойства инфоблока.
  • Разделы инфоблока
  • UF Свойства разделов
  • Элементы (вместе со значением полей и свойств, а так же информацией из вкладки SEO если такая есть)


Если это каталог, то еще и информацию из модуля catalog:
  • CatalogProduct
  • Цены
  • Остатки на складах

Если это каталог с торговыми предложениями, то соответсвенно все выше перечисленное и для торговых предложений.

Как выполняется часть из того что написано выше можно посмотреть в модуле с маркетплейса - asd.iblock.

В итоге основная проблема как раз в копировании инфоблока, а повесить функцию на событие минутное дело.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sabramovskikh
@sabramovskikh
Можно) А как это сделать есть несколько вариантов. Можно просто сделать гетлист, собрать массив, и сделать потом add
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы