Иногда возникает необходимость выгрузить все детальные описания товаров или статей. Это помогает:
- внести массовые правки в тексты,
- проверить корректность отображения контента,
- подготовить материалы для анализа или импорта в сторонние сервисы.
Чтобы не собирать данные вручную, воспользуйтесь небольшим скриптом, который автоматически соберёт детальные описания и сохранит их в удобном формате.
Что делает скрипт
- Проходит по элементам выбранного инфоблока (товары или статьи).
- Забирает
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;
Как использовать результат
- Скачайте CSV-файл по ссылке, которую выведет скрипт.
- Откройте файл в Excel/Google Sheets, внесите массовые правки.
- Импортируйте изменения обратно (через ваш собственный скрипт обновления или обмен с CMS).
Полезные советы
- Для теста запускайте скрипт на копии сайта или ограничьте выборку фильтрами.
- Если описания хранятся в HTML, не снимайте экранирование в CSV — так вы избежите поломки структуры.
- При больших объёмах данных запускайте скрипт из CLI (php -d short_open_tag=On export_detail_texts.php), чтобы не упереться в таймауты веб-сервера.