Найти в Дзене
Веб-студия WEB-Химики

Интеграция 1С и 1С-Битрикс: грабли при обмене заказами и остатками

Интеграция 1С и 1С-Битрикс кажется привычной задачей, пока обмен не начинает «ронять» заказы, путать статусы и рисовать фантазийные остатки. В этой статье — живой список «граблей» и рабочие решения, чтобы магазин продавал стабильно, а бухгалтерия и склад видели одни и те же цифры. В 1С и Битриксе у одной позиции могут быть разные коды (SKU, артикул, GUID). В итоге остатки и цены «прилетают» в чужие карточки или создаются дублеты. Сеть «похандрилa» — и 1С повторно отправляет пакет. Битрикс принимает второй раз, и в CRM появляются двойники. В 1С «Отгружен», в Битриксе «Готов к выдаче», а клиент видит «Оплачен». Поддержка тонет в вопросах. Остаток на сайте «10», на складе «3», резервы не освобождаются при отмене — корзина трещит по швам. В 1С цена хранится с 4 знаками, в Битриксе — с 2. В заказе расхождение на копейки — касса не бьёт чек. Часть заказа уехала, часть ждёт поставки, клиент вернул одну позицию — статусы «скачут». В отчётах отгрузка завтра, на сайте — уже сегодня. От этого лом
Оглавление

Интеграция и 1С-Битрикс кажется привычной задачей, пока обмен не начинает «ронять» заказы, путать статусы и рисовать фантазийные остатки. В этой статье — живой список «граблей» и рабочие решения, чтобы магазин продавал стабильно, а бухгалтерия и склад видели одни и те же цифры.

Грабля №1: разные идентификаторы номенклатуры

В 1С и Битриксе у одной позиции могут быть разные коды (SKU, артикул, GUID). В итоге остатки и цены «прилетают» в чужие карточки или создаются дублеты.

  • Решение: закрепите единый первичный ключ. В Битриксе храните GUID 1С в отдельном свойстве, а в 1С — внешний код Битрикса. Заблокируйте создание товаров «с руками» без ключа.
  • Профилактика: миграция сопоставлений + nightly валидатор: «каждый товар в Б24 имеет GUID 1С, и наоборот».

Грабля №2: дубли заказов из-за повторных колбэков

Сеть «похандрилa» — и 1С повторно отправляет пакет. Битрикс принимает второй раз, и в CRM появляются двойники.

  • Решение: идемпотентность. На стороне Битрикса проверяйте уникальный external_id/номер заказа 1С и не создавайте запись, если такая уже в базе.
  • Практика: храните журнал принятых идентификаторов с TTL и блокируйте повторные операции по ключу.

Грабля №3: статусы и оплата «разъезжаются»

В 1С «Отгружен», в Битриксе «Готов к выдаче», а клиент видит «Оплачен». Поддержка тонет в вопросах.

  • Решение: карта соответствия статусов «1С ↔ Битрикс» + единая диаграмма переходов. Запрещайте «прыжки» мимо шагов.
  • Важно: оплата меняет только финансовый статус, отгрузка — только складской. Не смешивайте.

Грабля №4: неверные остатки и «призрачные» резервы

Остаток на сайте «10», на складе «3», резервы не освобождаются при отмене — корзина трещит по швам.

  • Решение: раздельный учёт доступно к продаже = фактический остаток − резервы − отбор. Обменом передавайте не только «остаток», но и статусы резервов.
  • Практика: включите резервы по событию «создание заказа» и снимайте при отмене/истечении TTL брони.

Грабля №5: округления цен и НДС

В 1С цена хранится с 4 знаками, в Битриксе — с 2. В заказе расхождение на копейки — касса не бьёт чек.

  • Решение: синхронизируйте правила округления и ставку НДС. Передавайте цену за единицу и сумму позиции отдельно, храните базовую точность 1С в Битриксе.

Грабля №6: частичные отгрузки и возвраты «ломают» обмен

Часть заказа уехала, часть ждёт поставки, клиент вернул одну позицию — статусы «скачут».

  • Решение: разрешите многостатусность на уровне позиций: каждая строка имеет свой статус отгрузки и оплаты. Общий статус заказа собирается агрегированием.

Грабля №7: тайм-зоны и «вчерашние» даты

В отчётах отгрузка завтра, на сайте — уже сегодня. От этого ломается SLA доставки.

  • Решение: храните метки времени в UTC, отображайте в локали. На обмене — ISO 8601 с тайм-зоной.

Грабля №8: тяжёлые пакеты и падение крона

Большие выгрузки каталога или заказов кладут обмен по таймауту, возникают «дырки» в данных.

  • Решение: инкрементальный обмен: только изменённые записи. Пакетируйте по 200–500 элементов, на стороне Битрикса — очередь задач и повтор с бэкофом.

Грабля №9: ручные правки в обеих системах

Контент-менеджер отредактировал цену в Битриксе, бухгалтер — в 1С. Кто прав, никто не знает.

  • Решение: один источник истины: цены и остатки — только из 1С; контент/медиа — из PIM/Битрикса. Из Битрикса в 1С уходит только заказ и статусы оплаты/возврата.

Как настроить обмен: рабочая схема

  1. Идентификация: зафиксируйте ключи (GUID 1С в свойстве товара Битрикса, external_id у заказов).
  2. Каталог: сначала справочники (ед. измерения, НДС, склады), потом товары, далее цены/остатки.
  3. Заказы: на сайт — инкремент по статусам и оплате; в 1С — новые/изменённые с идемпотентностью.
  4. События: вебхуки статусов и оплат с подписью. Обрабатывайте асинхронно, не держите клиента на «вертушке».
  5. Валидация: перед записью проверяйте суммы, НДС, доступность склада, корректность статуса.

Битрикс: на что обратить внимание

  • Включите логирование обмена и ограничьте доступ по IP/токену.
  • Проверьте права на инфоблоки: обмен не должен падать из-за запрета записи.
  • Разграничьте типы цен и валюту, настройте курсы и точность округлений.
  • Отключите «автосоздание» карточек из обмена, если нет полного профиля товара.

Контроль качества интеграции

Еженедельно сверяйте показатели: количество заказов «туда/обратно», долю ошибок обмена, время лагов, расхождения по суммам и остаткам. Триггерите алерты при превышении порогов (например, 1% заказов с ошибками).

Нужен стабильный обмен без дублей и «магических» остатков?

Студия Web-Химики настроит интеграцию 1С и 1С-Битрикс: спроектируем схему идентификации, очистим обмен, подключим идемпотентность и очередь событий, выровняем статусы и проверим округления. Оставьте заявку — получите чёткий план работ и стабильную синхронизацию без сюрпризов.

ИСТОЧНИК:
https://se023.ru/