Интеграция 1С с сайтом на 1С-Битрикс

Интернет-магазин на 1С-Битрикс не должен требовать ручного переноса цен, остатков и заказов между сайтом и 1С.

Нормально настроенная интеграция связывает две системы:

1С
↓
товары
цены
остатки
характеристики
↓
1С-Битрикс
↓
заказы покупателей
↓
1С

Но на практике обмен редко ограничивается кнопкой «включить интеграцию».

У одного магазина товары выгружаются, но остатки остаются старыми. У другого цены обновляются, а новые позиции не появляются на сайте. У третьего заказы создаются в Битрикс, но не попадают в 1С.

Поэтому задача — не просто «подключить 1С», а построить и проверить всю цепочку обмена данными.

Официальная интеграция 1С и «1С-Битрикс: Управление сайтом» использует открытый XML-формат CommerceML и предусматривает двунаправленный обмен.


Что можно синхронизировать

Товары

Передача номенклатуры из 1С в интернет-магазин:

  • названия;
  • артикулы;
  • характеристики;
  • свойства;
  • группы и категории;
  • торговые предложения;
  • изображения;
  • дополнительные данные товара.

Цены

Можно настроить передачу:

1С
↓
тип цены
↓
1С-Битрикс

Например:

  • розничная;
  • оптовая;
  • дилерская;
  • специальные типы цен.

Особенно важно правильно сопоставить типы цен между двумя системами.

Запрос битрикс 1с цены в нашем исследовании получил 327 показов, поэтому это явно одна из основных реальных задач при интеграции.


Остатки

Сайт может получать актуальные остатки из 1С.

Это позволяет избежать ситуации:

на сайте товар «в наличии», а в 1С его уже нет.

Или наоборот:

товар появился на складе, но интернет-магазин продолжает показывать «нет в наличии».

По Wordstat отдельный запрос битрикс 1с остатки109.


Заказы

Обмен работает и в обратную сторону:

покупатель оформил заказ
↓
1С-Битрикс
↓
обмен
↓
1С

В официальной документации Битрикс отдельно предусмотрен обмен заказами и настройка профилей передаваемых полей.

Запрос битрикс 1с обмен заказами95.


Если обмен с 1С уже есть, но работает неправильно

↑ К оглавлению

Интеграция может быть формально настроена, но работать частично.

Например:

товары       → работают
цены         → работают
остатки      → не обновляются
заказы       → не передаются

Или:

1000 товаров выгружаются
↓
на 742-м обмен обрывается
↓
оставшаяся часть каталога не обновляется

В таких случаях полностью переделывать интеграцию необязательно.

Сначала нужно определить, на каком этапе она ломается.


Не выгружаются товары из 1С в Битрикс

Проверяется цепочка:

1С сформировала данные?
↓
CommerceML сформирован корректно?
↓
сайт принял запрос?
↓
файл загружен?
↓
импорт запустился?
↓
товары созданы/обновлены?

Проблема может находиться как на стороне 1С, так и на стороне сайта.


Цены в Битрикс не обновляются

Проверяем:

  • выгружается ли нужный тип цены;
  • совпадает ли его идентификатор;
  • как настроено сопоставление;
  • приходит ли предложение в CommerceML;
  • обновляется ли существующая цена;
  • не изменяет ли её другой обработчик после обмена.

Остатки не синхронизируются

Отдельно проверяются:

  • складской учёт;
  • предложения;
  • остатки по складам;
  • правила доступности товара;
  • порядок обработки данных после импорта.

Высокая частотность запросов по ценам и остаткам как раз показывает, что пользователи часто сталкиваются не с отсутствием интеграции вообще, а с частично работающим обменом.


Заказы из Битрикс не попадают в 1С

Проверяется:

заказ создан на сайте
↓
подходит под условия экспорта?
↓
сайт отдаёт заказ?
↓
1С принимает документ?
↓
поля сопоставлены?
↓
документ создаётся?

Важны:

  • тип плательщика;
  • реквизиты;
  • способ оплаты;
  • доставка;
  • товары;
  • пользовательские поля;
  • статус заказа.

Ошибки обмена 1С-Битрикс

↑ К оглавлению

Отдельный запрос:

ошибки обмена 1с битрикс21

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

Нужно понять фазу сбоя.

AUTH
↓
INIT
↓
FILE
↓
IMPORT
↓
SUCCESS

Если обмен обрывается на конкретном этапе, дальнейшая диагностика уже становится намного точнее.


Обмен начинается, но не заканчивается

Возможные причины:

  • слишком большой объём данных;
  • ограничения PHP;
  • ошибка обработки XML;
  • серверный timeout;
  • недостаток памяти;
  • ошибка конкретного товара;
  • модификация каталога;
  • повреждённый или неожиданный формат данных.

Обмен работает вручную, но не по расписанию

Проверяем:

  • каким способом запускается обмен;
  • работает ли расписание;
  • есть ли доступ к сайту;
  • не изменились ли credentials;
  • не блокирует ли запрос сервер;
  • что записано в логах последнего запуска.

CommerceML

↑ К оглавлению

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

В Битрикс для работы с обменом предусмотрены стандартные компоненты:

catalog.import.1c
catalog.export.1c

Первый отвечает за импорт данных из 1С, второй — за экспорт в 1С.

Но CommerceML — это не магия.

Если обе стороны трактуют одно поле по-разному, обмен технически может завершаться успешно, а результат на сайте окажется неправильным.


Настройка новой интеграции

↑ К оглавлению

Перед началом я бы не нажимал настройки обмена наугад.

Сначала фиксируется схема:

Какая конфигурация 1С?
↓
Какая версия?
↓
Какая редакция 1С-Битрикс?
↓
Что должно передаваться?
↓
В какую сторону?
↓
Что является главным источником данных?

Например:

товары → 1С является главным источником
цены → 1С
остатки → 1С
заказы → сайт → 1С
статус заказа → 1С → сайт

После этого уже строится обмен.


Можно настроить только нужную часть

↑ К оглавлению

Не каждому магазину нужен максимальный двусторонний обмен.

Иногда достаточно:

товары + цены + остатки
1С → сайт

В другом проекте нужна только передача:

заказы
сайт → 1С

А в третьем требуется полноценная синхронизация в обе стороны.

Поэтому объём интеграции лучше определять по бизнес-процессу, а не по принципу:

включим всё, а потом посмотрим.

Если стандартного обмена недостаточно

↑ К оглавлению

Реальный магазин часто содержит нестандартную логику:

  • несколько складов;
  • несколько типов цен;
  • собственные свойства товаров;
  • дополнительные статусы;
  • кастомное оформление заказа;
  • нестандартную доставку;
  • дополнительные реквизиты;
  • собственные поля;
  • доработанный каталог.

Тогда возможна схема:

штатный обмен
+
точечная доработка

Это обычно безопаснее, чем полностью заменять стандартную интеграцию собственной системой без необходимости.


После доработки сайта обмен перестал работать

↑ К оглавлению

Это отдельный сценарий.

Если раньше:

1С ↔ Битрикс

работали нормально, а после изменения каталога или установки модуля начались ошибки, сначала нужно определить что изменилось между последним успешным и первым неуспешным обменом.

Проверяются:

  • обновления Битрикс;
  • изменения 1С;
  • модуль обмена;
  • PHP;
  • сервер;
  • структура каталога;
  • новые свойства;
  • расширения;
  • обработчики событий.

После обновления 1С обмен перестал работать

↑ К оглавлению

Старые и новые конфигурации нельзя автоматически считать одинаковыми.

Поэтому перед исправлением важно знать точные:

конфигурация 1С
версия конфигурации
версия платформы
редакция Битрикс
версия модуля обмена

Что я проверяю при проблеме обмена

↑ К оглавлению

Вместо полного сброса настроек:

1. Что должно передаваться.

2. Что действительно передаётся.

3. На каком шаге возникает расхождение.

4. Что отправляет 1С.

5. Что принимает сайт.

6. Что записывает Битрикс.

7. Что говорят журналы и логи.

8. Повторяется ли ошибка на одном товаре/заказе
   или на всём обмене.

9. Что менялось перед появлением проблемы.

10. Можно ли воспроизвести ошибку отдельно.

После этого уже принимается решение:

исправить настройку
или
доработать существующий обмен
или
исправить сайт
или
исправить обработку со стороны 1С

Как проходит работа

↑ К оглавлению

1. Разбираемся с текущей схемой

Нужно понять:

  • конфигурацию 1С;
  • версию;
  • редакцию 1С-Битрикс;
  • что уже настроено;
  • что должно синхронизироваться;
  • что сейчас работает неправильно.

2. Воспроизводим обмен

Не меняем всё сразу.

Проверяем один конкретный сценарий:

товар
или
цена
или
остаток
или
заказ

3. Находим место сбоя

Например:

1С сформировала товар правильно
↓
CommerceML содержит цену
↓
Битрикс импортирует товар
↓
цена не применяется

Значит искать проблему в выгрузке цены из 1С уже бессмысленно.


4. Исправляем конкретную причину

После исправления повторяется тот же тест.


5. Проверяем полный обмен

Только после локальной проверки запускается нормальная синхронизация.


Что желательно прислать для оценки

↑ К оглавлению

Чтобы быстрее понять объём задачи:

1. Версию 1С-Битрикс.

2. Редакцию:
   Малый бизнес / Бизнес / другую.

3. Конфигурацию 1С.

4. Версию конфигурации.

5. Что должно обмениваться:
   товары
   цены
   остатки
   заказы
   другое.

6. Что работает сейчас.

7. Что не работает.

8. Текст ошибки или скрин.

9. После чего появилась проблема.

10. Используется штатный обмен
    или уже есть доработки.

Пароли в описание задачи присылать не нужно.


Что можно сделать

↑ К оглавлению

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

Когда сайт и 1С ещё не связаны.

Исправить существующую интеграцию

Когда обмен есть, но работает неправильно.

Настроить товары

Настроить цены

Настроить остатки

Настроить передачу заказов

Найти ошибку CommerceML

Разобраться с частичной выгрузкой

Исправить обмен после обновления

Проверить доработанный обмен

Доработать стандартную схему под проект


Это именно 1С-Битрикс: Управление сайтом

↑ К оглавлению

Важно не путать эту услугу с общей интеграцией Битрикс24.

Здесь речь идёт прежде всего о связке:

1С
↕
интернет-магазин / сайт
на 1С-Битрикс: Управление сайтом

Если задача относится именно к Битрикс24/CRM, её лучше рассматривать отдельно.



Частые вопросы

Можно ли связать 1С с интернет-магазином на 1С-Битрикс?

Да. В 1С и «1С-Битрикс: Управление сайтом» предусмотрена штатная интеграция на основе CommerceML; Битрикс поддерживает импорт каталога и обмен данными с 1С.

Можно ли передавать цены и остатки?

Да, конкретный состав данных зависит от используемой конфигурации и настроенной схемы обмена. При настройке важно определить типы цен, предложения и правила складского учёта.

Можно ли передавать заказы с сайта в 1С?

Да. Битрикс предусматривает экспорт заказов и настройку профилей полей обмена.

Почему часть товаров выгружается, а часть нет?

Нужно определить, на каком объекте и этапе прерывается обработка. Причиной может быть конкретный товар, данные CommerceML, серверное ограничение или обработчик на стороне сайта.

Почему товары синхронизируются, а цены нет?

Это уже не проблема соединения целиком. Проверяются типы цен, данные предложений и сопоставление на стороне Битрикс.

Почему заказы не уходят в 1С?

Проверяется сам экспорт, условия выбора заказов, профиль обмена, передаваемые поля и обработка документа со стороны 1С.

Нужно ли полностью переделывать интеграцию, если она сломалась?

Нет. Часто достаточно найти один проблемный этап и исправить именно его.

Работает ли интеграция в любой редакции Битрикс?

Штатный обмен с 1С официально предусмотрен для редакций «Малый бизнес» и «Бизнес»; для конкретного проекта редакцию и доступный функционал лучше проверять до начала настройки.

↑ К оглавлению

Нужна интеграция 1С с сайтом на 1С-Битрикс?

Можно начать не с полной переделки системы, а с одной конкретной задачи:

товары → цены → остатки → заказы → ошибки обмена.

Если интеграция ещё не настроена — определим, какие данные действительно должны синхронизироваться.

Если обмен уже работает частично — найдём место, где цепочка ломается, и будем исправлять именно его.

↑ К оглавлению