Форум 1С-Битрикс

Перенос свойств из одного элемента в другой в 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-Битрикс

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

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

Лендинг

от 3 дней

от 25 000 рублей

Разработка одностраничного сайта на платформе Битрикс

* стоимость зависит от наличия верстки, использования готового решения и т.д.