Как скачать все детальные описания товаров и статей с сайта

Иногда возникает необходимость выгрузить все детальные описания товаров или статей. Это помогает:

  • внести массовые правки в тексты,
  • проверить корректность отображения контента,
  • подготовить материалы для анализа или импорта в сторонние сервисы.

Чтобы не собирать данные вручную, воспользуйтесь небольшим скриптом, который автоматически соберёт детальные описания и сохранит их в удобном формате.

Что делает скрипт

  • Проходит по элементам выбранного инфоблока (товары или статьи).
  • Забирает ID, NAME, DETAIL_TEXT (и при необходимости DETAIL_TEXT_TYPE).
  • Сохраняет результат в CSV-файл для массового редактирования.

Пример скрипта (1С-Битрикс, PHP)

Сохраните файл, например, как /local/scripts/export_detail_texts.php и запустите через консоль или по защищённой ссылке. Перед запуском укажите ваш IBLOCK_ID.

<?php
// /local/scripts/export_detail_texts.php
use Bitrix\Main\Loader;
use Bitrix\Iblock\Elements\ElementTable;

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php";

if (!Loader::includeModule("iblock")) {
    die("Module iblock not installed");
}

// <— УКАЖИТЕ СВОЙ ИНФОБЛОК —>
$IBLOCK_ID = 50; // пример: 50

// Подготовим CSV
$exportName = "detail_texts_".$IBLOCK_ID."_".date("Ymd_His").".csv";
$exportPath = $_SERVER["DOCUMENT_ROOT"]."/upload/".$exportName;

$fp = fopen($exportPath, "w");
if (!$fp) { die("Cannot open file: ".$exportPath); }

// Заголовки CSV
fputcsv($fp, ["ID", "NAME", "DETAIL_TEXT_TYPE", "DETAIL_TEXT"], ";");

// Получаем элементы
$rows = ElementTable::getList([
    "select" => ["ID", "NAME", "IBLOCK_ID", "DETAIL_TEXT", "DETAIL_TEXT_TYPE"],
    "filter" => ["=IBLOCK_ID" => $IBLOCK_ID, "=ACTIVE" => "Y"],
    "order"  => ["ID" => "ASC"],
    "cache"  => ["ttl" => 0]
]);

while ($item = $rows->fetch()) {
    // Уберём переводы строк, чтобы не ломать CSV (по желанию)
    $detail = str_replace(["\r\n", "\n", "\r"], " ", (string)$item["DETAIL_TEXT"]);
    fputcsv(
        $fp,
        [
            $item["ID"],
            $item["NAME"],
            $item["DETAIL_TEXT_TYPE"] ?: "html",
            $detail
        ],
        ";"
    );
}

fclose($fp);

// Выводим ссылку на файл
$publicUrl = "/upload/".$exportName;
echo "OK: ".$publicUrl;

Как использовать результат

  1. Скачайте CSV-файл по ссылке, которую выведет скрипт.
  2. Откройте файл в Excel/Google Sheets, внесите массовые правки.
  3. Импортируйте изменения обратно (через ваш собственный скрипт обновления или обмен с CMS).

Полезные советы

  • Для теста запускайте скрипт на копии сайта или ограничьте выборку фильтрами.
  • Если описания хранятся в HTML, не снимайте экранирование в CSV — так вы избежите поломки структуры.
  • При больших объёмах данных запускайте скрипт из CLI (php -d short_open_tag=On export_detail_texts.php), чтобы не упереться в таймауты веб-сервера.

< Возврат к списку

Контакты
ИП Мироненко О.В.
г. Москва,
ул. Озерная, д. 2, к. 2
Пн-Вс круглосуточно
Работаем удалённо!
Задать вопрос

Нажимая на кнопку «Отправить», Вы даете согласие на обработку своих персональных данных и получение информационных сообщений.