Настройка двусторонней синхронизации 1С и 1С-Битрикс

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

Настройка двусторонней синхронизации 1С и 1С-Битрикс

Двусторонняя синхронизация — технически самая сложная схема обмена: изменения в любой из систем должны попасть в другую без потери данных и без конфликтов версий. Стандартный CommerceML частично покрывает эту задачу (каталог из 1С + заказы в 1С), но полноценный двусторонний обмен требует чёткого определения правил приоритета.

Правила приоритета — фундамент двустороннего обмена

До начала разработки ответить на вопросы:

Поле Мастер-система Обоснование
Цена Финансовый учёт в 1С
Остатки Складской учёт в 1С
Описание товара Сайт SEO-контент пишется на сайте
Фото товара Сайт Фотографии загружаются в медиатеку сайта
Статус заказа Заказ исполняется в 1С
Адрес доставки Сайт Покупатель вводит на сайте
Реквизиты покупателя Юридически значимые данные в 1С

Нарушение этих правил ведёт к «мерцанию» данных: 1С перезаписывает описание → редактор исправляет → 1С снова перезаписывает.

Реализация через обработчики событий

На стороне сайта — контроль полей при импорте из 1С:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'iblock',
    'OnIBlockElementBeforeUpdate',
    function(\Bitrix\Main\Event $event) {
        $fields = $event->getParameter('fields');
        $elementId = $event->getParameter('id');

        // Получить список защищённых полей для этого элемента
        $protected = getProtectedFields($elementId);

        foreach ($protected as $fieldCode) {
            unset($fields[$fieldCode]);
        }

        return new \Bitrix\Main\EventResult(
            \Bitrix\Main\EventResult::SUCCESS,
            ['fields' => $fields]
        );
    }
);

Обнаружение конфликтов

Конфликт версий возникает, когда одно поле изменилось в обеих системах между сеансами обмена. Обнаружение через timestamp последнего изменения:

// Хранить в доп. поле элемента время последнего обновления с сайта
$lastSiteUpdate = $element['UF_LAST_SITE_UPDATE']; // timestamp
$lastExchangeUpdate = $element['UF_LAST_EXCHANGE_UPDATE']; // timestamp из 1С

if ($lastSiteUpdate > $lastExchangeUpdate) {
    // Поле изменялось на сайте после последнего обмена — не перезаписывать
}

Кейс: двусторонняя синхронизация для дистрибьютора

Компания-дистрибьютор, 15 000 SKU. 1С ведёт цены и остатки, сайт — описания и SEO. Два раза в год — переоценка в 1С: меняются цены на 80% ассортимента. До настройки двустороннего обмена при переоценке цены обновлялись, но одновременно перезаписывались SEO-описания, написанные копирайтерами.

Решение: поле DETAIL_TEXT внесено в «защищённый список» через пользовательское свойство UF_PROTECT_DESCRIPTION. При обмене обработчик проверяет флаг и пропускает перезапись описания, но применяет обновление цены. После внедрения — ни одного случая потери SEO-контента за 8 месяцев эксплуатации.

Синхронизация изображений

Изображения — отдельная сложность в двустороннем обмене. Если 1С передаёт изображения через CommerceML (<Картинки>), а сайт имеет дополнительную галерею с ретушированными фото:

  • Основное изображение (PREVIEW_PICTURE) — защитить, если есть флаг «обработано фотографом»
  • Дополнительные изображения из 1С — добавлять, но не удалять фото с сайта

Сроки настройки

Задача Срок
Двусторонний обмен с правилами приоритета 2–4 дня
+ детектирование конфликтов версий +1–2 дня
+ двусторонняя синхронизация пользователей +1–2 дня