Настройка выгрузки заказов из 1С-Битрикс в 1С
Выгрузка заказов — первый этап двустороннего обмена. Сайт формирует XML и отдаёт его 1С при запросе. Разобраться с настройкой несложно, но есть детали, которые определяют, попадут ли в 1С все нужные данные в правильном формате.
Включение выгрузки заказов
Настройки → Настройки продуктов → Интернет-магазин → Обмен с 1С → Заказы:
- Выгружать заказы: да
- Статусы заказов для выгрузки: выбрать нужные. Чаще всего «Новый» и «Оплачен»; отменённые заказы выгружать не нужно — они создают лишние документы в 1С
- Выгружать заказы, созданные не ранее: ограничить историю, если магазин работал без 1С — не нужно тянуть заказы за несколько лет
Состав XML заказа
Стандартный XML заказа включает реквизиты покупателя, позиции с количеством и ценами, выбранную доставку, свойства заказа. Упрощённая структура:
<Документ>
<Ид>ORDER_ID</Ид>
<Номер>ACCOUNT_NUMBER</Номер>
<Дата>2024-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'];
}
);
Нумерация заказов
1С ищет заказ по номеру <Номер> из XML. По умолчанию Битрикс передаёт ACCOUNT_NUMBER — например, 1000423. Если в 1С уже существуют документы с такими номерами из другой системы — возникнут конфликты. Префикс решает проблему:
// В настройках обмена или обработчике
$arOrder['ACCOUNT_NUMBER'] = 'WEB-' . $arOrder['ACCOUNT_NUMBER'];
Доставка и оплата в XML заказа
Служба доставки и способ оплаты передаются отдельными блоками:
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>СпособОплаты</Наименование>
<Значение>Оплата картой онлайн</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СпособДоставки</Наименование>
<Значение>Курьерская доставка</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
Наименования в 1С должны совпадать с тем, что Битрикс передаёт — иначе в 1С создадутся новые элементы справочника «Способы доставки» при каждом несовпадении.
Сроки настройки
Настройка выгрузки заказов в стандартном сценарии — 2–4 часа. С передачей реквизитов юрлиц, нестандартных свойств и кастомной нумерацией — 4–8 часов.







