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

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка двусторонней синхронизации 1С и 1С-Битрикс
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

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

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

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

До начала разработки нужно ответить на вопросы: какая система мастер для каждого поля? Это критично, так как при отсутствии чётких правил система не знает, какое значение считать истинным при конфликте. Мы предлагаем таблицу приоритетов, основанную на 150+ реальных проектах, где двусторонний обмен работает надёжно:

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

Нарушение этих правил ведёт к «мерцанию» данных: 1С перезаписывает описание → редактор исправляет → 1С снова перезаписывает → потеря работы. Такой цикл деморализует команду и приводит к частым ошибкам. Мы гарантируем, что при правильной настройке система блокирует перезапись защищённых полей и уважает изменения, сделанные в каждой системе согласно её компетенции.

Почему двусторонняя синхронизация вызывает конфликты?

Конфликт версий возникает, когда одно поле изменилось в обеих системах между сеансами обмена. Собственный обработчик гибче стандартного агента в 3–5 раз, так как позволяет точечно контролировать каждое поле. Мы обнаруживаем конфликты через timestamp последнего изменения, хранящийся в пользовательских свойствах элемента.

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

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

Механизмы синхронизации и обработка ошибок

Стабильная двусторонняя синхронизация требует надёжной системы обработки ошибок и восстановления. Мы используют несколько слоёв защиты:

  1. Логирование всех транзакций — каждое изменение записывается в отдельную таблицу с временем, статусом (успех/ошибка) и текстом ошибки. Это помогает диагностировать проблемы.

  2. Очередь задач (Job Queue) — изменения в 1С не проходят сразу. Они ставятся в очередь с повторными попытками: если первая попытка синхронизации упала (например, элемент не найден), система повторит через 5 минут, потом через 15, потом через час.

  3. Откат при конфликте — если обнаружен конфликт версий (оба поля изменились), система создаёт запись в системе задач и ждёт решения администратора вместо слепой перезаписи.

  4. Маппирование данных — мы явно указываем, какое поле 1С соответствует какому полю Битрикса. Нестандартные поля (пользовательские свойства) должны быть описаны в конфигурации.

Как защитить поля при импорте из 1С?

На стороне сайта — контроль полей через обработчики событий. Это быстрее и надёжнее, чем редактировать XML-схему CommerceML. Пример кода:

\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]
        );
    }
);

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

Компания-дистрибьютор, 15 000 SKU. Наш клиент использует 1С для цен и остатков, сайт — для описаний и SEO. Дважды в год — переоценка в 1С, меняются цены на 80% ассортимента. До настройки двустороннего обмена при переоценке цены обновлялись, но одновременно перезаписывались SEO-описания, написанные копирайтерами. Мы внесли поле DETAIL_TEXT в «защищённый список» через пользовательское свойство UF_PROTECT_DESCRIPTION. После внедрения — ни одного случая потери SEO-контента за 8 месяцев эксплуатации. Опыт показывает, что такой подход подходит для 90% проектов.

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

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

  • защищаем основное изображение (PREVIEW_PICTURE) флагом «обработано фотографом»;
  • добавляем новые фото из 1С, не удаляя существующие.

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

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

Хотите получить консультацию по вашему проекту? Оценим сроки и сложность бесплатно. Свяжитесь с нами — мы поможем настроить обмен без потери данных.