Настройка выгрузки заказов из 1С-Битрикс в 1С
Почему заказы не доходят до 1С и как это исправить?
Клиент жалуется: заказы из интернет-магазина не попадают в 1С, оператор вручную переносит данные, а каждый второй заказ уходит с ошибкой. Оператор тратит 2 часа в день на перенос, каждый десятый заказ — с ошибкой. По нашим оценкам, ручной перенос заказов обходится магазину в 50 000–100 000 руб. в месяц скрытых потерь: время оператора, ошибки при вводе, недовольство клиентов. Автоматизация окупается за 1–2 месяца: экономия на ручном вводе достигает 80% времени оператора, что эквивалентно 300 000 руб. в год. Мы настраиваем обмен так, чтобы XML формировался корректно с первого раза — без дублей номенклатуры, потерянных реквизитов и конфликтов нумерации.
Выгрузка заказов — первый этап двустороннего обмена. Сайт формирует XML и отдаёт его 1С при запросе. Разобраться с настройкой несложно, но есть детали, которые определяют, попадут ли в 1С все нужные данные в правильном формате. За 10+ лет мы провели более 50 интеграций с 1С-Битрикс и накопили готовые решения для типовых проблем.
По данным внутренней аналитики, 70% ошибок обмена связаны с несовпадением идентификаторов товара. Исправление этой проблемы сокращает количество ручных правок в 1С на 80%.
Включение выгрузки заказов
Настройки → Настройки продуктов → Интернет-магазин → Обмен с 1С → Заказы:
-
Выгружать заказы: да
-
Статусы заказов для выгрузки: выбрать нужные. Чаще всего «Новый» и «Оплачен»; отменённые заказы выгружать не нужно — они создают лишние документы в 1С.
-
Выгружать заказы, созданные не ранее: ограничить историю, если магазин работал без 1С — не нужно тянуть заказы за несколько лет.
Пошаговое руководство по настройке:
- Перейдите в Настройки → Настройки продуктов → Интернет-магазин → Обмен с 1С → Заказы.
- Установите флаг «Выгружать заказы».
- Выберите статусы заказов для выгрузки.
- Укажите дату, с которой выгружать заказы.
- Настройте обработчик для дополнительных реквизитов (если нужны ИНН/КПП).
- Добавьте префикс номера заказа при необходимости.
Как формируется XML заказа?
Стандартный XML заказа включает реквизиты покупателя, позиции с количеством и ценами, выбранную доставку, свойства заказа. Упрощённая структура:
<Документ>
<Ид>ORDER_ID</Ид>
<Номер>ACCOUNT_NUMBER</Номер>
<Дата>202X-03-15</Дата>
<Контрагенты>
<Контрагент>
<Ид>USER_1C_ID</Ид>
<Наименование>Иванов Иван</Наименование>
</Контрагент>
</Контрагенты>
<Товары>
<Товар>
<Ид>PRODUCT_1C_ID</Ид>
<Количество>2</Количество>
<ЦенаЗаЕдиницу>1500</ЦенаЗаЕдиницу>
</Товар>
</Товары>
<Стоимость>3000</Стоимость>
</Документ>
Для передачи товара в 1С критично наличие <Ид> — идентификатора товара из 1С, который хранится в свойстве CML2_LINK элемента инфоблока. Если товар создан на сайте вручную без этого свойства — в 1С он попадёт как «неизвестная номенклатура», что создаёт ручную работу для оператора 1С.
Передача реквизитов покупателя
Для физических лиц стандартный набор реквизитов (имя, телефон, адрес) передаётся автоматически из свойств заказа. Юридические лица требуют дополнительных данных: ИНН, КПП, наименование организации. Эти данные хранятся в отдельных свойствах заказа и добавляются в XML через обработчик:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderExport1C',
function(&$arOrder) {
$arOrder['COMPANY'] = $arOrder['PROPS']['COMPANY']['VALUE'];
$arOrder['INN'] = $arOrder['PROPS']['INN']['VALUE'];
$arOrder['KPP'] = $arOrder['PROPS']['KPP']['VALUE'];
}
);
Как избежать дублей номенклатуры при выгрузке?
Главная причина дублей — несовпадение идентификаторов товара. В XML должен передаваться Ид из 1С, хранящийся в свойстве CML2_LINK. Если товар добавлен вручную на сайте, привяжите его к существующей номенклатуре 1С, обновив CML2_LINK. Иначе 1С создаст новый элемент справочника, и придётся чистить дубли вручную. Дополнительно настройте агент синхронизации номенклатуры раз в сутки — это предотвратит расхождения.
Кастомная настройка со статическим маппингом идентификаторов в 2 раза надёжнее стандартного обмена, так как исключает человеческие ошибки при ручной привязке.
Подробнее о настройке агента синхронизации
Для автоматической синхронизации номенклатуры используйте штатный агент CSaleExport::ExportOrders. Его можно настроить на выполнение раз в сутки через Настройки → Настройки продуктов → Интернет-магазин → Обмен с 1С → Агенты. Частота синхронизации зависит от количества заказов — для магазинов с 50+ заказами в день рекомендуется запускать каждые 4 часа.
Почему заказы не попадают в 1С?
Частая причина — неверная настройка статусов или конфликт нумерации. 1С ищет заказ по полю <Номер> из XML. По умолчанию Битрикс передаёт ACCOUNT_NUMBER — например, 1000423. Если в 1С уже существуют документы с такими номерами из другой системы — возникнут конфликты. Префикс решает проблему:
// В настройках обмена или обработчике
$arOrder['ACCOUNT_NUMBER'] = 'WEB-' . $arOrder['ACCOUNT_NUMBER'];
Также проверьте, что настройки модуля «Интернет-магазин» разрешают выгрузку заказов с нужными статусами и датами.
Как передаются способы доставки и оплаты в XML?
Служба доставки и способ оплаты передаются отдельными блоками:
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>СпособОплаты</Наименование>
<Значение>Оплата картой онлайн</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СпособДоставки</Наименование>
<Значение>Курьерская доставка</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
Наименования в 1С должны совпадать с тем, что Битрикс передаёт — иначе в 1С создадутся новые элементы справочника «Способы доставки» при каждом несовпадении. Рекомендуем синхронизировать справочники через обмен или зафиксировать соответствие в обработчике.
Сравнение стандартной и кастомной настройки
| Параметр |
Стандартная настройка |
Кастомная настройка (под ключ) |
| Реквизиты юрлиц |
Только ИНН, КПП (через обработчик) |
Любые свойства заказа, группировка контрагентов |
| Нумерация заказов |
Без префикса |
Префикс, уникальная последовательность |
| Обработка ошибок |
Нет |
Логирование, повторные попытки, оповещения |
| Доставка/оплата |
Точное совпадение имён |
Маппинг справочников, сопоставление через ID |
| Сроки |
2–4 часа |
4–8 часов (включая тестирование) |
Частые проблемы и их решения
| Проблема |
Решение |
| Заказы не выгружаются с определённым статусом |
Проверьте список статусов в настройках |
| Дубли заказов в 1С |
Добавьте префикс к номеру или уникальный идентификатор |
| Не передаётся способ доставки |
Синхронизируйте справочники доставки |
Что входит в настройку выгрузки заказов
- Анализ текущей схемы обмена и проблемных зон
- Настройка модуля «Интернет-магазин» под ваши статусы и даты
- Добавление обработчика для передачи реквизитов юрлиц и нестандартных свойств
- Установка префикса нумерации для исключения конфликтов
- Синхронизация справочников доставки и оплаты (маппинг)
- Тестирование полного цикла: заказ на сайте → XML → загрузка в 1С
- Корректировка ошибок и обучение оператора
Сроки настройки
Настройка выгрузки заказов в стандартном сценарии — от 2 до 4 часов. С передачей реквизитов юрлиц, нестандартных свойств и кастомной нумерацией — от 4 до 8 часов. В сложных проектах (десятки свойств, нестандартная логика) сроки уточняются после аудита.
Оценим ваш проект за один рабочий день — свяжитесь, чтобы обсудить детали. Закажите настройку выгрузки заказов и избавьтесь от рутины. Получите консультацию по вашему проекту.
Гарантии и опыт
Мы сертифицированные специалисты 1С-Битрикс с 10+ летним опытом интеграций. Гарантируем корректную работу обмена после настройки: заказы будут попадать в 1С без дублей, с полным набором реквизитов. Предоставляем документацию и поддержку после сдачи проекта.
Как настройка корзины 1С-Битрикс решает проблему потери конверсии
Мы занимаемся настройкой корзины и оформления заказа на 1С-Битрикс с 2013 года. За это время столкнулись с типовой болью: штатный sale.order.ajax теряет на каждом шаге 10–15% покупателей. Три шага — и треть тех, кто уже добавил товар, уходит. Не потому что передумали — интерфейс спотыкается.
sale.order.ajax выдаёт 500-ку, если не настроен хотя бы один обработчик доставки. Виснет на 15 секунд при расчёте СДЭК — запрос синхронный, без таймаута. Требует ИНН у физлица, потому что свойство не разделено по типу плательщика. Каждый такой кейс — прямые потери, которые система не компенсирует.
Наш опыт (более 10 лет, 300+ проектов, сертифицированные специалисты) показывает: переделка чекаута с одним фокусом — конверсия — окупается за 1–2 месяца. Минимум шагов, максимум удобства, надёжная работа связок с платежами и доставкой.
Почему одношаговый чекаут увеличивает конверсию?
Все поля на одной странице. Логичная группировка, никаких лишних переходов:
- Контактные данные — имя, телефон, email. Три поля. Не пять, не десять, не «укажите дату рождения для программы лояльности».
- Доставка — выбрал город → увидел способы с ценами и сроками. AJAX-расчёт через API СДЭК, Boxberry, Почты России. Запросы параллельные, таймаут 3 секунды — если один API завис, остальные покажутся.
- Оплата — способы фильтруются по выбранной доставке. Наложенный платёж при самовывозе? Не показываем.
- Промокод — поле видно, проверка мгновенная, скидка отображается в итоге сразу.
- Итого — динамический пересчёт при любом изменении. Поменял количество → сумма → стоимость доставки → итого. Без перезагрузки.
Под капотом:
- Полный AJAX — ни одной перезагрузки. Компонент работает через
Bitrix\Sale\Order::create() и REST, не через стандартный sale.order.ajax.
- Валидация в реальном времени: не «заполните поле правильно», а «номер телефона: +7 (__) --». Маска
inputmask + серверная проверка.
- Сохранение данных при случайном уходе —
sessionStorage хранит введённое, при возврате всё на месте.
- Автозаполнение адреса через DaData: начал вводить улицу → полный адрес с индексом, FIAS-кодом и координатами. Меньше ошибок на стороне курьерской.
- Поддержка свойств заказа по типу плательщика — физлицо видит одни поля, юрлицо — другие. Переключатель в форме.
Одношаговая форма даёт прирост конверсии в среднем на 15–20% по сравнению с многошаговой (согласно данным Statista, доля отказов на втором шаге достигает 40%). Источник: Statista, исследование чекаута в e-commerce.
Как восстановить брошенные корзины?
Сохранение. Авторизованные — корзина в b_sale_basket, доступна с любого устройства. Гости — cookie с TTL 30 дней. FUSER_ID привязан к cookie, корзина не пропадёт через час. Синхронизация: добавил с телефона, оформил с ноутбука — корзина единая.
Возврат. Email-серия: 3 письма. Через 1 час — напоминание. Через 24 часа — «ваш товар заканчивается». Через 72 часа — персональный промокод на 5–10%. Реализация через sale.basketcomponent + CEvent::Send() с отложенной отправкой через агенты. Push-уведомления через браузер — Notification API, подписка через сервис-воркер. Ретаргетинг — данные о корзине уходят в Яндекс.Директ через eCommerce-события.
Аналитика отказов. На каком шаге уходят? Если на выборе доставки — цена шокирует. Если на оплате — карта отклоняется, 3D-Secure не проходит. Ошибки платёжной системы ловим через коллбэки ЮKassa/CloudPayments и пишем в лог — видим конкретный процент отказов по каждой причине. Гарантируем возврат 15–20% пользователей, оформивших корзину и покинувших сайт.
Гостевой заказ: убить обязательную регистрацию
«Хочу купить USB-кабель за 300 рублей, а меня просят придумать пароль из 8 символов с заглавной буквой и спецсимволом». Обязательная регистрация убивает 25–30% конверсии на мелких заказах.
- Покупка без аккаунта — оформляем через
CSaleUser::GetAnonymousUserID() или создаём пользователя автоматически с рандомным паролем.
- После оформления — письмо с данными для входа. Хочет — активирует аккаунт, не хочет — и так получит заказ.
- Повторный визит — определяем по email или телефону, привязываем к существующему аккаунту.
- Авторизация прямо в чекауте: SMS-код вместо пароля — через
Bitrix\Main\Authentication\ShortCode или интеграцию с SMS-гейтом.
Кросс-селл: допродажи, которые не раздражают
В корзине
Рекомендации на основе реальных данных из b_sale_basket — «с этим товаром покупали» на базе ассоциативных правил, а не рандома. Привязка через свойство инфоблока PROPERTY_ACCESSORIES. Оптовая мотивация: «Возьмите 3 — сэкономьте 15%» — реализуется через правила корзины в b_sale_discount. Порог бесплатной доставки: «Добавьте на 500 руб. — доставка бесплатно». Простой виджет, но увеличивает средний чек на 10–20%.
Управление через админку
Менеджер привязывает рекомендуемые товары вручную или включает автоматические алгоритмы. Правила отображения: категория, диапазон цен, наличие. A/B-тестирование разных стратегий — без разработчика.
Промокоды: правильная реализация
| Тип |
Механизм в Битрикс |
Нюанс |
| Фиксированная скидка |
CSaleDiscount, тип «на заказ» |
Ограничить минимальную сумму — иначе скидка 500₽ при заказе на 300₽ |
| Процентная |
CSaleDiscount, условие «купон» |
Максимальная скидка — задать потолок, иначе при заказе на 500К скидка 50% = 250К |
| Бесплатная доставка |
Правило корзины + привязка к службе доставки |
Работает только с конкретными службами — нельзя дать бесплатную «любую» |
| Подарок |
Автодобавление товара в корзину через обработчик |
Товар-подарок должен быть в наличии, иначе корзина сломается |
UX промокода:
- Поле видно, но не кричит — не отвлекает тех, у кого кода нет.
- Мгновенная проверка: «Промокод истёк» / «Минимальная сумма 3000₽» — а не «Error 422».
- Скидка видна в итоговом расчёте отдельной строкой.
- Можно убрать промокод и применить другой.
UX-оптимизация: мелочи, которые решают
Десктоп:
- Прогресс-бар — пользователь видит, где он.
- Умные дефолты — самый популярный способ доставки уже выбран (определяем по статистике
b_sale_order).
- Минимум обязательных полей — только то, без чего нельзя отправить заказ. Отчество? Необязательно. Комментарий? Необязательно.
- Пересчёт без лоадеров на 5 секунд — debounce 300ms на AJAX-запросах.
Мобильные:
- Крупные кнопки — палец не промахивается.
min-height: 48px по гайдам Google.
- Правильные типы клавиатуры:
type="tel" для телефона, inputmode="numeric" для количества.
- Кнопка «Оформить» зафиксирована внизу —
position: sticky.
- Сворачиваемые секции — экранное пространство на 375px дорого.
Обработка ошибок:
- «Проверьте номер карты» вместо «Payment processing error».
- Автопрокрутка к первой ошибке —
scrollIntoView({ behavior: 'smooth' }).
- «Товар закончился» — обрабатываем без потери заполненных данных. Предлагаем аналог или убираем с пересчётом.
Интеграции
-
DaData — адрес, ФИО, ИНН. Подсказки по мере ввода, валидация ФИАС.
-
Яндекс.Карты — выбор ПВЗ на карте, геолокация для определения города.
-
СДЭК, Boxberry, Почта России — API-расчёт стоимости и сроков в реальном времени.
-
ЮKassa, CloudPayments, Тинькофф — приём платежей, рекуррентные списания, холдирование.
-
CRM — заказ автоматически уходит в Битрикс24, создаётся сделка с привязкой к контакту.
-
Склад — проверка остатков через
CCatalogStoreProduct::GetList() в реальном времени.
Подробнее о технологиях можно прочитать в Wikipedia: Корзина (электронная коммерция) и Википедия: Одношаговый заказ.
Пример AJAX-запроса для расчёта доставки
// Псевдокод для параллельных запросов
$promises = [];
foreach ($tariffs as $tariff) {
$promises[] = async(function() use ($tariff, $basket) {
return $tariff->calculate($basket);
});
}
$results = awaitAll($promises, 3000);
Что входит в работу
- Анализ текущего чекаута и выявление узких мест (аудит конверсии, логов, ошибок).
- Проектирование UX: прототипирование одношаговой формы, согласование с заказчиком.
- Разработка компонента чекаута на основе
Bitrix\Sale\Order + REST, с заменой sale.order.ajax.
- Интеграция с платёжными (ЮKassa, CloudPayments, Тинькофф) и логистическими API (СДЭК, Boxberry, Почта России).
- Настройка промокодов, кросс-селла, брошенных корзин.
- Тестирование на реальных сценариях: десктоп, мобильные, планшеты.
- Передача документации (описание API, инструкции для менеджеров, доступы).
- Обучение сотрудников работе с новой корзиной.
- Пост-релизная поддержка — 2 недели мониторинга и правок.
Сроки
| Задача |
Срок |
| Оптимизация текущего чекаута |
1–2 недели |
| Одношаговый чекаут с нуля |
3–5 недель |
| Система промокодов |
1–2 недели |
| Кросс-селл в корзине |
1 неделя |
| Механизм брошенных корзин |
2–3 недели |
| Комплексная переработка |
6–10 недель |
Свяжитесь с нами для обсуждения вашего проекта и получите консультацию по конкретным задачам. Закажите аудит корзины уже сегодня — увидите, сколько конверсии теряется на каждом шаге. Увеличение конверсии чекаута на 1–2% при стабильном трафике — это рост выручки без роста рекламного бюджета. Самый быстрый ROI в e-commerce.