Со временем таблица заказов в интернет-магазине разрастается до сотен тысяч строк, и список заказов в админке начинает открываться заметно медленнее. Архивирование — штатный механизм модуля sale, который переносит старые завершённые заказы в отдельные таблицы, разгружая оперативные выборки и не удаляя саму историю.
Что такое архив заказов в Битрикс
Архивирование в 1С-Битрикс — это перенос заказов, которые уже отработали и давно не менялись, из основных «горячих» таблиц модуля sale в отдельные архивные. Заказ при этом не удаляется: он сохраняется целиком, но в компактном, по сути «замороженном» виде, недоступном для повседневного редактирования.
Логика простая. Оперативная работа менеджера идёт только по актуальным заказам: новые, в обработке, ожидающие оплаты или отгрузки. Заказы, доставленные и оплаченные полгода-год назад, нужны крайне редко — для сверки, отчётности или разбора спорной ситуации. Именно такие заказы и есть кандидаты в архив.
Куда переносятся данные
Оперативные заказы живут в связке таблиц: сам заказ в b_sale_order, состав корзины в b_sale_basket, значения свойств в b_sale_order_props_value, отгрузки и оплаты в своих таблицах модуля. Каждый заказ — это не одна строка, а несколько связанных записей в разных таблицах.
При архивировании эти данные собираются и переносятся в архивные таблицы (с суффиксом _archive, например b_sale_order_archive). Часть информации там хранится в сериализованном виде — единым блоком, а не «широким» набором связей. Это уменьшает и количество строк, и объём индексов в основных таблицах.
- Основные таблицы — читаются при каждом открытии списка заказов, работе фильтров и выборках витрины (личный кабинет, «Мои заказы»).
- Архивные таблицы — обращения к ним редкие и адресные: поиск конкретного старого заказа в разделе архива.
За счёт такого разделения «тяжёлые» частые запросы работают по меньшему набору данных, а редко нужная история не мешается под ногами.
Влияние на скорость списка и базу данных
Главный эффект архивирования — производительность. Список заказов в админке (Магазин → Заказы) и запросы витрины строятся поверх основных таблиц. Чем меньше в них строк, тем быстрее выполняются сортировка, фильтрация и пагинация.
| Что затрагивает | Без архива | С архивом |
|---|---|---|
| Список заказов в админке | Полный объём за все годы | Только актуальные заказы |
| Индексы основных таблиц | Растут постоянно | Держатся в разумных пределах |
| Личный кабинет клиента | Медленнее при большой истории | Быстрее, старое — по запросу |
| Резервное копирование БД | Дольше, объём больше | Компактнее «горячая» часть |
Настройка архивирования
Параметры задаются в настройках модуля «Интернет-магазин»: Магазин → Настройки → Настройки модуля (модуль sale), в блоке, отвечающем за архивирование. Ключевые параметры:
- Статусы для архива — переносятся только заказы в выбранных финальных статусах (обычно «Выполнен», «Отклонён»). Заказы в работе никогда не попадут в архив.
- Срок «остывания» — заказ архивируется, если он не менялся дольше указанного количества дней. Ориентир — от нескольких месяцев до года, в зависимости от того, как часто вы поднимаете старую историю.
- Ограничение за один проход — сколько заказов обрабатывать за одно срабатывание, чтобы не давать пиковую нагрузку на базу.
Отбирайте статусы осознанно: важно, чтобы в архив уходили именно завершённые сделки. Слишком короткий срок «остывания» приведёт к тому, что менеджеры будут часто лазить в архив за недавними заказами, а это неудобно.
Агент и расписание переноса
Сам перенос выполняет фоновый агент модуля sale: он периодически отбирает подходящие заказы и порциями отправляет их в архив. Разовой «кнопки заархивировать всё» здесь нет — процесс идёт постепенно, что и защищает базу от разовой тяжёлой операции.
Для этого агенты должны реально отрабатывать. На нагруженных магазинах агенты Битрикса стоит выносить на cron, а не запускать на хитах посетителей — так они выполняются стабильно, по расписанию и не тормозят открытие страниц.
- Проверьте, что агент активен и не «завис» с ошибкой — раздел
Настройки → Настройки продукта → Агенты. - Убедитесь, что запуск агентов настроен на
cron, а не «на хитах» — режим задаётся в.settings.phpиdbconn.php. - Первый запуск на большой исторической базе лучше проводить в часы низкой нагрузки: заказов накопилось много, и первая волна переноса — самая объёмная.
Работа с архивом заказов
Заархивированные заказы доступны в отдельном разделе архива в панели «Магазин». Там есть поиск и фильтры — по номеру, датам, покупателю — чтобы адресно найти нужную старую сделку.
Ключевое ограничение: архивный заказ доступен только для просмотра. Его нельзя редактировать, менять статус, добавлять оплаты или отгрузки. Это осознанное поведение: архив — это зафиксированная история, а не рабочая область.
Если старый заказ снова понадобился в работе (клиент вернулся, спорная ситуация, повторная отгрузка), заказ разархивируют — возвращают из архивных таблиц в основные, после чего с ним снова можно работать штатно. Обратная операция такая же порционная, как и архивирование.
Практические рекомендации
Архивирование почти всегда полезно на магазинах с длинной историей, но включать его стоит аккуратно:
- Снимите бэкап базы перед первым запуском — операция массовая и затрагивает несколько таблиц.
- Согласуйте срок с реальной практикой менеджеров: как далеко назад они регулярно поднимают заказы.
- Проверьте отчёты и выгрузки на тестовых данных — что архивные заказы либо учитываются, либо сознательно исключены.
- Мониторьте рост таблиц после включения: архив должен удерживать «горячую» часть в стабильном размере, а не просто откладывать проблему.
Помните, что архив — часть общей стратегии производительности. Он хорошо сочетается с грамотными индексами, кэшированием списков и вынесенными на cron агентами, но не отменяет их.
Итог
Архивирование заказов в 1С-Битрикс — это штатный и безопасный способ удержать базу магазина в форме: старые завершённые заказы переносятся в архивные таблицы, а «горячие» выборки — список заказов в админке и личный кабинет клиента — работают по меньшему объёму данных и заметно быстрее. Настраивается механизм в модуле sale статусами, сроком «остывания» и лимитом на проход, а сам перенос выполняет фоновый агент, который на нагруженных проектах лучше держать на cron.
Мы в B2Bsite настраиваем архивирование как часть комплексной оптимизации магазина: подбираем безопасные параметры, проверяем совместимость с обменом 1С и отчётами, чиним индексы и запросы, из-за которых список заказов реально тормозит. Если база выросла и админка стала медленной — поможем разобраться с причиной, а не только со следствием.
Частые вопросы
Удаляются ли заказы при архивировании?
Нет. Заказ переносится в отдельные архивные таблицы в компактном виде и остаётся в базе. Его можно найти в разделе архива и при необходимости вернуть в работу.
Какие заказы попадают в архив?
Только заказы в выбранных финальных статусах, которые не менялись дольше заданного числа дней. Заказы в работе не архивируются.
Можно ли редактировать заказ в архиве?
Нет, архивный заказ доступен только для просмотра. Чтобы снова работать с ним, заказ нужно разархивировать — вернуть в основные таблицы.
Насколько ускорится список заказов?
Эффект зависит от того, какая доля заказов уйдёт в архив. Чем больше старой истории вынесено, тем меньше строк в основных таблицах и тем быстрее сортировка и фильтрация.
Где настраивается архивирование?
В настройках модуля «Интернет-магазин»: Магазин → Настройки → Настройки модуля. Там задаются статусы для архива, срок неизменности и лимит заказов за один проход агента.
Кто выполняет перенос заказов в архив?
Фоновый агент модуля sale. Он порционно отбирает подходящие заказы и переносит их в архив. На нагруженных сайтах агенты стоит запускать через cron.
Что с первым запуском на большой базе?
Первая волна переноса самая объёмная, поэтому её лучше проводить в часы низкой нагрузки, с небольшим лимитом за проход, предварительно сняв резервную копию базы.
Как архив влияет на обмен с 1С и отчёты?
Интеграции обычно читают основные таблицы, поэтому архивные заказы могут выпасть из выгрузок и отчётов. Проверьте это на тестовых данных до включения архивирования на боевом магазине.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.