Интеграция 1С-Битрикс с 1С-ЭДО

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с 1С-ЭДО
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция 1С-Битрикс с 1С-ЭДО

1С-ЭДО — встроенный сервис электронного документооборота в конфигурациях 1С (Бухгалтерия, УТ, ERP). Когда компания уже работает через 1С-ЭДО для внутреннего документооборота, задача интеграции с сайтом на 1С-Битрикс формулируется так: заказы из Битрикс автоматически попадают в 1С, а УПД, накладные и акты формируются и отправляются через 1С-ЭДО без дублирования ввода данных.

Это не интеграция «Битрикс → Диадок» напрямую. Это интеграция «Битрикс → 1С → 1С-ЭДО». Ключевое звено — синхронизация 1С-Битрикс с учётной системой 1С.

Схема взаимодействия

Битрикс (заказ создан/оплачен)
  → Стандартный обмен bitrix→1С (CommerceML/REST)
    → 1С: создана реализация/акт
      → 1С-ЭДО: документ отправлен контрагенту через оператора
        → 1С: статус подписания получен от оператора
          → 1С→Битрикс: статус документа обновлён в заказе

Битрикс в этой схеме — источник заказов. 1С — система, где формируются учётные документы. 1С-ЭДО — транспорт.

Настройка обмена Битрикс ↔ 1С

Стандартный обмен работает через bitrix:catalog и bitrix:sale.export по протоколу CommerceML 2.10. В 1С подключается через «Обмен с сайтом» в конфигураторе.

Для автоматической передачи заказов в 1С — настройка расписания выгрузки: каждые 15–30 минут или по событию через \Bitrix\Main\EventManager. При наличии быстрого API-обмена через REST 1С — можно настроить практически real-time: событие OnSaleOrderPaid в Битрикс триггерит POST-запрос к 1С REST-сервису.

Обработчик события оплаты

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale', 'OnSaleOrderPaid',
    function (\Bitrix\Main\Event $event) {
        $order = $event->getParameter('ENTITY');
        if ($order->isPaid()) {
            // Отправляем заказ в 1С немедленно (не ждём cron)
            \Local\OneCIntegration\OrderSync::pushOrderToOnec($order->getId());
        }
    }
);

В 1С REST-сервис (PublishedHTTPServices) принимает заказ и создаёт документ реализации. После этого 1С-ЭДО автоматически (по настройкам в 1С) или по нажатию кнопки отправляет УПД контрагенту.

Обратный поток: статусы из 1С в Битрикс

Когда контрагент подписывает документ в своей системе ЭДО, 1С получает подтверждение через оператора. 1С в ответ может вызвать webhook Битрикс или передать статус при следующем плановом обмене.

// Endpoint в Битрикс для приёма статусов от 1С
// /local/ajax/onec_edo_status.php
$data = json_decode(file_get_contents('php://input'), true);

if ($data['action'] === 'update_edo_status') {
    $orderId   = (int)$data['order_id'];
    $edoStatus = $data['edo_status']; // 'signed', 'rejected', 'annulled'

    // Записываем в пользовательское поле заказа
    $order = \Bitrix\Sale\Order::load($orderId);
    if ($order) {
        $props = $order->getPropertyCollection();
        $prop  = $props->getItemByOrderPropertyCode('EDO_STATUS');
        if ($prop) {
            $prop->setValue($edoStatus);
        }
        $order->save();

        // Уведомление менеджеру
        if ($edoStatus === 'rejected') {
            \CEvent::Send('EDO_DOCUMENT_REJECTED', SITE_ID, [
                'ORDER_ID' => $orderId,
                'REASON'   => $data['reason'],
            ]);
        }
    }
}

Кейс: интеграция для производственной компании

Производитель промышленного оборудования. 1С УТ 11.5 с 1С-ЭДО. Сайт на 1С-Битрикс Управление Сайтом — для приёма B2B-заказов от дилеров. Задача: дилер оформляет заказ на сайте, УПД автоматически создаётся и уходит через ЭДО, ни бухгалтер, ни менеджер не создают документы вручную.

Проблемы, с которыми столкнулись:

  1. Стандартный CommerceML-обмен работал с задержкой 30 минут и не передавал данные юрлица (ИНН, КПП) — поля были в Битрикс, но CommerceML-схема их не включала.

  2. 1С-ЭДО в конфигурации не настраивался на автоматическую отправку — требовал ручного подтверждения бухгалтером.

  3. Статус подписания в Битрикс не отображался вовсе.

Решения:

  1. Расширили CommerceML-выгрузку через OnBeforeSaleOrderExport — добавили поля юрлица в XML-схему заказа. В 1С написали обработчик загрузки, который распознаёт эти поля и заполняет реквизиты контрагента.

  2. В 1С настроили автоматическое правило ЭДО: при создании реализации с определённым видом договора — автоматическая постановка в очередь отправки через 1С-ЭДО. Бухгалтер только периодически проверяет журнал ошибок.

  3. Разработали скрипт обратной синхронизации: 1С каждые 15 минут вызывает webhook Битрикс со статусами документов за последний час.

Показатель До После
Время от заказа до отправки УПД 1–2 дня (вручную) 35 мин (автомат)
Ошибки в реквизитах (несоответствие 1С ↔ Битрикс) ~12%/мес < 1%
Бухгалтер занят ЭДО (часов/день) ~2 часа ~15 минут

Маппинг статусов ЭДО в статусы заказов Битрикс

Статус 1С-ЭДО Статус заказа Битрикс Действие
Отправлен EDO_SENT Уведомление менеджеру
Доставлен EDO_DELIVERED
Подписан контрагентом EDO_SIGNED Закрытие сделки в CRM
Отказ в подписании EDO_REJECTED Уведомление + задача менеджеру
Аннулирован EDO_ANNULLED Пометка в заказе

Особенности при работе с несколькими операторами ЭДО

1С-ЭДО поддерживает роуминг между операторами: документ, отправленный через оператора, который обслуживает отправителя, доставляется контрагенту через его оператора. В коде Битрикс это прозрачно — логика маршрутизации полностью на стороне 1С.

Состав работ

  • Аудит схемы обмена Битрикс ↔ 1С: CommerceML или REST
  • Расширение схемы выгрузки под данные ЭДО (ИНН, КПП, тип документа)
  • Настройка в 1С: правила автоотправки через 1С-ЭДО
  • Обратная синхронизация: webhook или polling статусов
  • Отображение статуса ЭДО в заказе Битрикс
  • Уведомления при отказе, аннулировании

Сроки: при наличии рабочего обмена Битрикс-1С — 2–4 недели на ЭДО-часть. Если обмен нужно настраивать с нуля — добавить 2–3 недели.