В разделе Магазин → Заказы Битрикс умеет обрабатывать не только один заказ, но и целые выборки — менять статус, отмечать оплату и отгрузку, удалять и выгружать десятки строк за раз. Разберём, какие групповые действия доступны, как их безопасно применять к отфильтрованной выборке и где начинаются ограничения производительности.
Где включаются групповые действия
Список заказов открывается в административной части по адресу /bitrix/admin/sale_order.php (пункт меню Магазин → Заказы). Под таблицей находится панель групповых действий — выпадающий список «Действия» и кнопка «Применить». Слева у каждой строки стоит чекбокс, а в шапке — флажок «выбрать все на странице» и переключатель «Для всех», который распространяет действие на всю текущую выборку, а не только на видимую страницу.
Ключевой момент: групповое действие всегда работает поверх текущего фильтра. Если вы отметили «Для всех», Битрикс применит операцию ко всем заказам, попавшим под условия фильтра, — даже к тем, что находятся на других страницах. Поэтому логика почти всегда одна: сначала фильтр, затем выбор, затем действие.
sale и от того, включён ли новый интерфейс списка заказов (страница sale_order.php против устаревшей sale_order_new.php).Массовая смена статуса
Самая частая групповая операция — перевод пачки заказов в новый статус. В списке «Действия» выберите «Изменить статус», укажите целевой статус (например, N — принят, P — оплачен по вашей схеме, F — выполнен) и нажмите «Применить».
Важно понимать, что смена статуса через список — это не просто запись значения в поле. Битрикс вызывает штатный обработчик изменения статуса заказа, а значит:
- отрабатывают события
OnSaleStatusOrderиOnSaleOrderSaved; - отправляются почтовые уведомления, привязанные к статусу (если они настроены);
- срабатывают бизнес-процессы и правила автоматизации, завязанные на переход;
- проверяются права доступа к статусу — заказ не переведётся, если у менеджера нет прав на целевой статус.
Отметка оплаты и отгрузки
Помимо статуса заказа, в списке доступны флаги оплаты и отгрузки. В зависимости от версии интерфейса это действия «Отметить оплаченным» / «Отменить оплату» и «Разрешить отгрузку» / «Отменить отгрузку».
Здесь есть тонкость архитектуры: в современном ядре sale оплата и отгрузка живут не в самом заказе, а в дочерних сущностях — Payment (оплаты) и Shipment (отгрузки). Групповая отметка «оплачен» проставляет флаг оплаты по заказу и синхронизирует связанные объекты Payment. Если у заказа несколько оплат или частичная оплата, массовая отметка ведёт себя грубее, чем ручное редактирование карточки, поэтому для сложных случаев её лучше не использовать.
| Действие | Что меняется | Побочные эффекты |
|---|---|---|
| Отметить оплаченным | Флаг PAYED, объекты Payment | Уведомление об оплате, списание бонусов |
| Разрешить отгрузку | Флаг ALLOW_DELIVERY, Shipment | Резерв и списание товара со склада |
| Отменить оплату/отгрузку | Снятие соответствующих флагов | Возврат резерва, обратные проводки |
catalog, режим резервирования) списывает или резервирует остатки. На больших выборках это заметно нагружает базу.Удаление и архивирование
В групповых действиях есть «Удалить». По умолчанию Битрикс выполняет «мягкое» удаление: заказ помечается флагом CANCELED = Y и/или DEDUCTED, но остаётся в базе. Полное физическое удаление возможно только с соответствующим правом и, как правило, отключено на боевых магазинах, чтобы не терять историю продаж.
Для «расчистки» активного списка правильнее использовать не удаление, а архивирование. Штатный механизм переносит старые заказы в архивную таблицу, разгружая основную выборку и ускоряя работу менеджеров. Массовое архивирование настраивается отдельно и обычно выполняется агентом по расписанию, а не вручную из списка.
- Отмена (
CANCELED = Y) — заказ виден, но исключён из активной работы; резервы снимаются. - Удаление — физическое стирание записи вместе с оплатами и отгрузками; необратимо.
- Архив — вынос из оперативной таблицы без потери данных; лучший вариант для объёмов.
Экспорт выборки
Список заказов умеет выгружать данные в двух форматах. Кнопка «Excel» над таблицей формирует XLS/CSV по текущей выборке и текущему набору колонок: какие поля вы вывели через настройку столбцов, такие и попадут в файл. Это удобный способ отдать бухгалтерии или в 1С срез заказов за период.
Второй путь — штатная выгрузка в CSV/CommerceML через Магазин → Настройки → Экспорт данных, которая работает по правилам обмена и подходит для регулярных интеграций. Для разовой выборки достаточно фильтра и кнопки «Excel»; для обмена с учётной системой — настроенного профиля экспорта.
Связка «фильтр + действие»
Сила групповых операций раскрывается именно в связке с фильтром. Типовой сценарий: отобрать нужную выборку, включить режим «Для всех» и применить действие ко всему результату, а не к отмеченным вручную строкам.
- Задайте условия в фильтре: статус, дата, свойство, способ оплаты, менеджер.
- Проверьте счётчик найденных заказов внизу списка — это и есть объём операции.
- Отметьте флаг «Для всех» (не просто «выбрать на странице»).
- Выберите действие и нажмите «Применить».
Практические примеры: перевести все оплаченные, но не отгруженные заказы в статус «В сборке»; отметить оплату по всем заказам с успешным платежом за вчера; выгрузить в Excel все заказы конкретного менеджера за месяц. Сохранённые фильтры (именованные пресеты) позволяют повторять такие операции в один клик.
Ограничения производительности
Групповые действия в Битрикс обрабатываются последовательно, заказ за заказом, с полным пересчётом сущностей и запуском всех событий. Это не быстрая пакетная операция уровня SQL, а цикл по объектам заказа. Отсюда — реальные ограничения.
- Таймаут PHP. Обработка сотен заказов за один HTTP-запрос упирается в
max_execution_time. Часть выборки может остаться необработанной без явной ошибки. - Нагрузка на БД и почту. Каждый заказ тянет за собой пересчёт оплат/отгрузок, проводки по складу и отправку писем — при массовой операции это лавина запросов и сообщений.
- События и БП. Обработчики
OnSaleStatusOrder, бизнес-процессы и обмен с 1С срабатывают на каждом заказе, умножая время выполнения.
Практическое правило: массово обрабатывайте выборки в десятки, максимум сотни заказов. Для тысяч записей используйте не список в браузере, а агент, крон-скрипт или консольную команду на базе \Bitrix\Sale\Order, где легко разбить работу на порции и контролировать транзакции.
Итог
Массовые действия со списком заказов — рабочий инструмент менеджера: смена статуса, отметка оплаты и отгрузки, удаление или архив, экспорт выборки. Ключ к безопасному использованию — понимать, что каждое групповое действие запускает штатные события заказа (уведомления, склад, бизнес-процессы) и работает поверх текущего фильтра, а режим «Для всех» распространяет операцию на весь результат. Помните про ограничения: список в браузере не рассчитан на тысячи записей — для больших объёмов нужны агенты и скрипты на API.
Если групповые операции стали узким местом — тормозят, отправляют лишние письма или расходятся с 1С, — мы помогаем настроить корректные статусные модели, вынести тяжёлые операции в фоновые агенты и разгрузить админку магазина, чтобы менеджеры работали быстро и без сюрпризов.
Частые вопросы
Как применить действие ко всем найденным заказам, а не только к странице?
Задайте фильтр, затем включите флаг «Для всех» в шапке списка и только после этого выберите действие. Обычный «выбрать все» отмечает лишь текущую страницу.
Отправятся ли клиентам письма при массовой смене статуса?
Да, если к целевому статусу привязан шаблон почтового уведомления. Групповая смена вызывает те же события, что и ручная, поэтому письмо уйдёт по каждому заказу выборки.
Удаляются ли заказы физически при групповом удалении?
По умолчанию заказ помечается отменённым и остаётся в базе. Полное физическое удаление требует отдельного права и обычно отключено, чтобы сохранить историю продаж.
Чем отметка оплаты в списке отличается от редактирования карточки?
В списке проставляется общий флаг оплаты и синхронизируются объекты Payment грубо, целиком. Для частичных оплат или нескольких платежей корректнее редактировать карточку заказа вручную.
Сколько заказов можно обработать за один раз?
Безопасно — десятки и до нескольких сотен. Дальше начинаются таймауты PHP и перегрузка базы, потому что каждый заказ обрабатывается последовательно со всеми событиями.
Как выгрузить заказы в Excel с нужными полями?
Сначала добавьте нужные колонки через настройку списка (шестерёнку), затем нажмите «Excel». В файл попадают только выведенные столбцы текущей выборки по фильтру.
Списывается ли товар при массовой отметке отгрузки?
Да, если включён складской учёт и резервирование. Отметка отгрузки меняет остатки и делает складские проводки по каждому заказу, что заметно нагружает базу на больших выборках.
Что делать, если групповая операция обработала не все заказы?
Скорее всего сработал таймаут выполнения PHP. Разбейте выборку на меньшие порции через фильтр или вынесите операцию в агент либо консольный скрипт на API модуля sale.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.