Перенос свойств из одного элемента в другой в 1С-Битрикс

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Перенос свойств из одного элемента в другой в 1С-Битрикс
Копируем значения свойств в 1С-Битрикс: от одного элемента до всего инфоблока

При миграциях, рефакторинге инфоблоков или выравнивании данных часто  возникает задача: аккуратно перенести значение из одного свойства  элементов в другое. Ниже — два практичных скрипта для 1С-Битрикс: первый  копирует значение для конкретного элемента по ID, второй — массово обрабатывает весь инфоблок. В примерах мы используем абстрактные коды свойств SOURCE_META (источник) и TARGET_META (приёмник), чтобы не зависеть от каких-либо модулей и названий.
Изменено: Валерий Макеев - 29.09.2025 14:33:56
Скрипт массово копирует значения из свойства OLD_PRICE в свойство BASE_PRICE для всех элементов инфоблока с ID 5, где BASE_PRICE ещё не заполнено.
Код
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
use Bitrix\Main\Loader;

if (!Loader::includeModule('iblock')) {
    die('Не загружен модуль iblock');
}

// Копирует значение свойства "OLD_PRICE" в "BASE_PRICE" для всех элементов инфоблока 5, где "BASE_PRICE" пуст
$iblockId = 5;

$res = CIBlockElement::GetList(
    [],
    [
        'IBLOCK_ID' => $iblockId,
        '!PROPERTY_OLD_PRICE' => false,
        'PROPERTY_BASE_PRICE' => false
    ],
    false,
    false,
    ['ID', 'PROPERTY_OLD_PRICE']
);

$updated = 0;
while ($element = $res->Fetch()) {
    $newValue = $element['PROPERTY_OLD_PRICE_VALUE'];
    if ($newValue !== null) {
        CIBlockElement::SetPropertyValuesEx($element['ID'], $iblockId, ['BASE_PRICE' => $newValue]);
        $updated++;
    }
}

echo "Обновлено элементов: $updated";
?>
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Участие в проекте

привлечение в проект на part-time основе

от 30 000 рублей / неделя

Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.

* сумма фиксированная

Аутсорсинг

готов помочь, если нет времени

договорная

Могу взять на себя работы по full-stack

* на основе готовой верстки

Техническая поддержка

сайтов на CMS 1C-Битрикс

от 20 000 рублей/месяц
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.

* стоимость зависит от объема и сложности выполняемых работ