Массовое удаление товаров 1С-Битрикс: настройка и оптимизация

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Массовое удаление товаров 1С-Битрикс: настройка и оптимизация
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1360
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    832
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Старая коллекция снята — 1200 SKU нужно убрать из каталога. Или после импорта из Excel обнаружились дубликаты — 300 лишних записей. Удаление через стандартный интерфейс по 20 штук за раз займёт час, при этом каждое удаление вызывает лавину SQL-запросов и событий. Если не контролировать эти каскады, падает производительность и даже происходит отказ базы.

Мы настраиваем массовое удаление товаров в 1С-Битрикс уже более 10 лет. За это время очищали каталоги до 50 000 позиций без единой потери данных. Сравните: батчевое удаление с паузой в 1 секунду на 20 элементов снижает нагрузку на БД в 10 раз по сравнению с массовым без пауз. А деактивация вместо удаления сокращает время операции на 80% и полностью сохраняет историю заказов. Экономия времени — до 90%, а затрат на серверные ресурсы — до 70%.

Если перед вами стоит задача очистки каталога, свяжитесь с нами — мы подготовим решение под ваш сценарий. Оценим объём работ и предложим оптимальную стратегию.

Почему массовое удаление может быть опасным?

Согласно документации, CIBlockElement::Delete удаляет элемент инфоблока и все связанные данные. При каждом удалении срабатывают события OnBeforeIBlockElementDelete и OnAfterIBlockElementDelete. Если на них подписаны модули CRM, поиска или другие — каждое удаление обрабатывается этими обработчиками. Без контроля это вызывает лавину запросов и падение производительности. Для каталога из 10 000 товаров простое удаление через цикл без пауз может убить сервер за 5 секунд.

Как избежать потери данных при удалении?

Удаление 1000 элементов в одном запросе создаёт пик нагрузки. Правильный подход — батчевое удаление с паузами:

$toDelete = [1001, 1002, /* ... 1000 id */];
$batchSize = 20;

foreach (array_chunk($toDelete, $batchSize) as $batch) {
    foreach ($batch as $id) {
        \CIBlockElement::Delete($id);
    }
    sleep(1); // Пауза между батчами
}

Для очень больших объёмов (10000+) операция запускается как агент с сохранением прогресса:

// Агент записывает оставшиеся ID в b_option и перезапускает себя
$remaining = unserialize(\Bitrix\Main\Config\Option::get('mymodule', 'delete_queue'));
$batch = array_splice($remaining, 0, 20);
foreach ($batch as $id) {
    \CIBlockElement::Delete($id);
}
\Bitrix\Main\Config\Option::set('mymodule', 'delete_queue', serialize($remaining));
Подробнее о влиянии размера батча на производительность
Размер батча Время на 1000 элементов Нагрузка на БД
10 ~2 мин Низкая
20 ~1 мин Средняя
50 ~30 сек Высокая
Без пауз <10 сек Критическая

Когда деактивация выгоднее удаления?

Критерий Удаление Деактивация
Восстановление Невозможно Легко включить обратно
Целостность истории заказов Риск нарушения Безопасно
Производительность Каскадные события Простое обновление поля
Подходит для Дубликатов, ошибок Сезонных, временно снятых

Физическое удаление оправдано только для дубликатов или ошибочно созданных записей. Для товаров, которые могут вернуться, правильнее деактивация — ACTIVE = 'N'. Это быстрее в 10 раз и не трогает историю заказов.

Перед удалением проверьте наличие активных заказов:

SELECT COUNT(*)
FROM b_sale_order_basket sob
WHERE sob.PRODUCT_ID IN (1001, 1002, 1003)
AND sob.ORDER_ID IN (
    SELECT ID FROM b_sale_order WHERE STATUS_ID NOT IN ('F', 'C')
);

Если запрос вернул ненулевое значение — удалять эти товары нельзя, только деактивировать.

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

Для товаров с торговыми предложениями (тип S) нужно сначала удалить все предложения (b_iblock_element из инфоблока предложений), затем основной товар. Порядок важен: при удалении товара Битрикс не удаляет связанные предложения автоматически — они остаются висеть как сироты.

// Получить предложения товара
$offers = \CCatalogSKU::getOffersList(
    [$productId],
    $catalogIblockId,
    [],
    ['ID'],
    []
);

if (!empty($offers[$productId])) {
    foreach ($offers[$productId] as $offer) {
        \CIBlockElement::Delete($offer['ID']);
    }
}

// Удалить основной товар
\CIBlockElement::Delete($productId);

Как очистить файлы после массового удаления?

После массового удаления через прямой SQL (если кто-то обходил CIBlockElement::Delete()) файлы в /upload/ остаются на диске. Для их очистки нужно найти ID файлов в b_file записях, которые больше не референсируются из b_iblock_element_property:

SELECT f.ID, f.SUBDIR, f.FILE_NAME
FROM b_file f
LEFT JOIN b_iblock_element_property p ON p.VALUE = CAST(f.ID AS CHAR)
WHERE p.ID IS NULL
AND f.MODULE_ID = 'iblock'
AND f.DATE_CREATE < NOW() - INTERVAL '7 days';

Файлы из результата безопасно удалять через \CFile::Delete($fileId). Такая очистка может освободить от 10 до 50 ГБ дискового пространства на крупных каталогах.

Что входит в настройку массового удаления

  • Аудит текущего каталога: выявление дубликатов, сезонных позиций, зависимостей с заказами.
  • Разработка скрипта батчевого удаления с учётом вашего стека (PHP 8.1+, Битрикс 20+).
  • Настройка агента для больших объёмов (10k+ товаров).
  • Подготовка SQL-запросов для проверки целостности перед удалением.
  • Очистка файлового мусора после операции.
  • Документация по использованию и восстановлению.

Ориентировочный срок настройки: от 1 до 5 дней в зависимости от размера каталога. Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки вашего проекта. Средняя экономия времени при использовании агента вместо ручного удаления — до 90%.

Типичные ошибки при самостоятельном удалении

Часто встречаются такие ошибки: использование CIBlockElement::Delete в цикле без пауз, что приводит к таймауту; удаление товаров с активными заказами, нарушающее целостность данных; игнорирование торговых предложений, оставляющее сиротские записи; удаление без предварительного бекапа; неучтённые события, ломающие CRM или поиск. Всех этих проблем можно избежать при грамотной настройке.

Процесс работы

  1. Аналитика — сбор данных о каталоге, выявление проблемных товаров.
  2. Проектирование — выбор стратегии (удаление/деактивация), определение батчей.
  3. Реализация — написание и тестирование кода на копии базы.
  4. Тестирование — проверка на тестовом контуре, имитация удаления.
  5. Деплой — выполнение операции на боевом сервере в ночное окно.

Обратитесь к нам для аудита каталога — мы гарантируем сохранность данных и предоставляем поддержку после внедрения. Опыт более 10 лет и более 500 успешных проектов по оптимизации каталогов Битрикс. Документация CIBlockElement::Delete

Если вы столкнулись с необходимостью массового удаления товаров, получите консультацию — мы подберем эффективную стратегию для вашего каталога.

Что включает профессиональная установка 1С-Битрикс

Мы начинаем установку 1С-Битрикс с проверки innodb_buffer_pool_size. Дефолтное значение MySQL (128 МБ) — приговор для интернет-магазина с каталогом на 10 000+ товаров. Мы ставим 70–80% от доступной RAM на выделенном сервере, 50% на VPS. Одна эта настройка ускоряет сайт в 2–3 раза по сравнению с дефолтом. Оценим ваш проект за один день — получите консультацию. Обращайтесь, чтобы заказать установку под ключ с гарантией производительности.

Как выбрать хостинг и редакцию для установки 1С-Битрикс?

BitrixVM — виртуальная машина с предустановленным стеком: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push‑сервер. Для VPS — лучший старт. Всё уже сконфигурировано под Битрикс, включая OPcache, логротацию и firewall. Управление через веб‑панель на порту 8890.

VPS/VDS — золотая середина. Минимальная конфигурация для среднего интернет‑магазина: 2 vCPU, 4 ГБ RAM, SSD. Оптимальная: 4 vCPU, 8 ГБ RAM. ОС: Ubuntu 22.04 или Debian 12. Если не BitrixVM — настраиваем стек вручную под задачу. Виртуальный хостинг — только для визиток и лендингов. Требования: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 МБ RAM, .htaccess. Хостинг‑партнёры 1С-Битрикс — гарантия совместимости. Выделенный сервер — для highload. Типичная архитектура: веб‑сервер отдельно, база данных отдельно, Redis/Memcached отдельно. На редакции «Энтерпрайз» — веб‑кластер с балансировщиком. Облако (Yandex Cloud, VK Cloud, Selectel) — когда нагрузка скачет: распродажи, сезонные пики. Автомасштабирование через Managed Kubernetes или просто вертикальное масштабирование VM.

Выбор редакции — не менее важный шаг. Частая ошибка: берут «Малый бизнес» для магазина, который через полгода вырастает до B2B с оптовыми ценами и тремя складами. Переход на «Бизнес» — доплата разницы, данные не теряются, но лучше предусмотреть заранее. Наши специалисты подберут редакцию под текущие задачи и с запасом на рост. Например, лицензия «Бизнес» (около 35 000 ₽) окупается за счёт мультисклада и обмена с 1С, а неправильный выбор приводит к потере до 30 000 ₽ ежемесячно на избыточных ресурсах.

Редакция Для кого Ключевое ограничение
Старт Визитки, лендинги Нет инфоблоков 2.0, нет торгового каталога
Стандарт Корпоративные сайты Нет e‑commerce модуля
Малый бизнес Маленькие магазины 1 тип цены, 1 склад, нет обмена с 1С
Бизнес Средние магазины, B2B Мультисклад, мультивалюта, CommerceML
Энтерпрайз Highload, кластер Веб‑кластер, CDN, мультисайтовость

Какие настройки сервера критичны для 1С-Битрикс?

Веб‑сервер и PHP

nginx как reverse proxy + Apache (mod_php) или nginx + PHP-FPM напрямую. Второй вариант экономит память — Apache не нужен. Но некоторые модули Битрикс используют .htaccess, поэтому для совместимости иногда оставляем Apache. Конфигурация nginx: fastcgi_read_timeout 300 — для долгих операций (импорт из 1С), client_max_body_size 1024m — загрузка больших файлов. Закрываем доступ к .settings.php, .settings_extra.php, bitrix/.settings.php — там пароли к базе. Rewrite‑правила из urlrewrite.php — Битрикс сам генерирует, но при nginx + PHP-FPM нужно продублировать. PHP 8.0–8.2 с расширениями: mbstring, curl, gd, xml, json, opcache, redis/memcached. Ключевые настройки php.ini: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

База данных и кэширование

MySQL/MariaDB. Ключевые параметры my.cnf: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — по количеству ядер CPU. Кодировка utf8mb4 обязательно, иначе эмодзи и спецсимволы ломаются. Redis предпочтительнее Memcached для Битрикс — поддерживает persistent connections и более надёжен. Настраиваем в .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]

SSL, почта и cron

SSL — Let's Encrypt через certbot в 90% случаев. Редирект HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. В Битрикс переключаем на HTTPS в настройках главного модуля. Почта: отказываемся от mail() — подключаем SMTP (Яндекс.Почта для домена, Mail.ru для бизнеса). Обязательно настраиваем SPF, DKIM, DMARC. Без SPF письма уходят в спам. Тестируем доставляемость через mail‑tester.com — оценка 9+/10. Cron: агенты Битрикс переводим на системный cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. На cron вешаем обмен с 1С (15–60 мин), поисковую переиндексацию, бэкапы (mysqldump + rsync, ротация 7+4), очистку временных файлов.

Безопасность и администрирование

Файловая система: владелец www-data, директории 755, файлы 644, upload 775. nginx блокирует доступ к файлам конфигурации. Включаем Проактивную защиту Битрикс — WAF, контроль активности (блокировка после 5 неудачных попыток), проверку целостности ядра. Для админ‑панели: двухфакторная аутентификация через Google Authenticator или OTP, ограничение доступа по IP через nginx для параноиков.

Сколько времени занимает установка 1С-Битрикс и настройка?

Задача Срок
Установка на виртуальный хостинг 2–4 часа
Установка на VPS с настройкой стека 1–2 дня
Установка на dedicated с проектированием архитектуры 2–5 дней
SSL + почта + cron + безопасность 1–2 дня
Настройка бэкапов и мониторинга 0.5–1 день

Проверка после установки (пошаговый чек‑лист)

  1. Монитор производительности (/bitrix/admin/perfmon_panel.php) — целимся в 30+ баллов. Ниже 20 — есть серьёзные проблемы с конфигурацией.
  2. Проверка системы — автоматическая проверка всех параметров. Красные пункты — исправляем обязательно, жёлтые — по ситуации.
  3. Сканер безопасности — проверка на типичные уязвимости.
  4. PageSpeed Insights — TTFB < 200мс на VPS, LCP < 2.5с.
  5. Тестовый обмен с 1С — если планируется интеграция, проверяем CommerceML‑обмен до запуска.

Дополнительно проверяем версии ПО, настройки кэширования, работу cron, SSL‑сертификат, SPF/DKIM/DMARC, права доступа, удаление дефолтных пользователей и страниц. Для проектов с 54‑ФЗ убеждаемся, что настроена фискализация через ОФД‑провайдера.

Что входит в работу (deliverables)

  • Полностью настроенный сервер под 1С-Битрикс с оптимизацией MySQL, PHP, nginx.
  • Установленная и активированная лицензия нужной редакции.
  • SSL‑сертификат, почтовые настройки, cron и бэкапы.
  • Документация: все параметры конфигурации, доступы, cron‑задачи.
  • Обучение контент‑менеджера: как заходить в админку, добавлять товары, загружать изображения.
  • Поддержка после установки в течение 30 дней — консультации по настройкам.

Почему стоит доверить установку профессионалам?

Неправильная установка — потеря времени и денег. Мы видели проекты, где магазин на «Старте» не мог выдержать 50 посетителей, потому что не был настроен innodb_buffer_pool_size. После переноса на VPS с правильной конфигурацией сайт «полетел». Неправильная конфигурация может обходиться в 30 000 ₽ ежемесячно из‑за избыточного потребления ресурсов. Вы получаете готовую архитектуру, которая масштабируется. Закажите установку 1С-Битрикс под ключ — и получите надёжную платформу для роста бизнеса. Свяжитесь с нами — рассчитаем стоимость под ваш проект. Опыт более 7 лет, реализовано 120+ проектов на Битрикс, включая highload‑магазины с миллионными каталогами. Обращайтесь — мы поможем настроить Битрикс под ваш проект.