Статья статей, самая подробная из всех подробных
Мегастатья про интеграцию сайта с 1С
Сибирикс
Мегастатья
про интеграцию сайта с 1С
Статья статей, самая подробная из всех подробных
Интеграция — слово давнее, в целом скорее понятное, но давайте уточним, что это значит в практическом плане. Если загуглить: веб-интеграция — это объединение разнородных веб-приложений и систем в единую среду на базе веб.
А теперь понятными словами
Допустим, есть магазин, продающий книги. У него есть склад или даже несколько. Там книжки хранятся физически. Магазин существует давно, и количество книг, их состояние, и даты поставки новых партий всегда велись, например, в 1С. Там же и ISBN коды, и описания, и авторы занесены. И по тематике все разложено, чтобы оператору было проще сориентироваться в многотысячной номенклатуре.

Конкуренты не просто вышли в онлайн — они забирают там львиную долю дохода. В 2026 году покупателю не просто «проще» заказать с дивана; он ждет, что всё найдется само, фильтры сработают мгновенно, а поиск поймет его с полуслова. Не быть в вебе сегодня — значит добровольно отдавать свои продажи соседу.

«Выйти в онлайн и запустить продажи» — звучит как план на выходные. Но на деле всё гораздо тоньше. Сейчас уже недостаточно просто нажать кнопку «загрузить товары». Даже если вы используете штатные интеграции CMS, всегда есть риск, что в процессе что-то отвалится. Если же у вас кастомная система — это вообще ювелирная настройка, где каждое изменение требует контроля. А ведь нужно еще настроить частоту обновления остатков, сохранить скорость загрузки сайта и без сбоев выгружать заказы обратно…

Дьявол, как обычно, кроется в деталях.
Почти любая популярная CMS (например, 1С-Битрикс), среди прочих функций обещает быстро и безболезненно синхронизировать базу 1С с новым сайтом. Кажется, что никому не придется вручную переносить гору товаров, остатки будут сами обновляться при каждом заказе, цены — моментально корректироваться, а заказы — автоматически улетать в CRM и обновляться в обратную сторону. Красивая картинка, но на практике всё разбивается о суровую реальность.

Интеграции из коробки, как правило, не хватает. ERP-системы — они же Enterprise Resource Planning, планирование ресурсов предприятия, — часто уже были дописаны какими-то программистами, а штатные протоколы не в состоянии обеспечить все хотелки клиента.

Большое количество хороших проектов буксует именно на этом этапе. Мало того, что нужно договориться между собой большому количеству людей: что, как делаем, в каком виде. Нужно также аккуратно решить сложные технические вопросы. Ввести проект в эксплуатацию. А пока вы всё это делаете, конкуренты уже запускают систему. Приехали.

Человеческий фактор

Что же может пойти не так? Ответ — всё. В процессе интеграции связаны несколько сторон.
Сферическая интеграция в вакууме
Познакомимся с участниками интеграции сайта с 1C:

  • Студия или агентство веб-разработки. Люди там как-то организованы, часто есть ответственный менеджер, за которым прячется его техническая команда. Хотя бывает, что и не прячется.
  • Заказчик. Большой босс, который который хочет либо что-то заработать, либо сократить издержки. Заказчиком может выступать коммерческий отдел или отдел маркетинга — всегда по-разному и зависит от того, кому проект более выгоден.
  • Специалист или команда по ERP-системе, которые знают инфраструктуру. Они, как правило, перегружены текущими задачами, из-за чего доработки протоколов могут затягиваться. И да, они могут быть на аутсорсе, со своим графиком и сроками.
  • Digital-продюсер на стороне заказчика, которому формально поручили управлять проектом, но реальной власти у него может и не быть (наихудший вариант). Хорошо, когда он может любую дверь с ноги открыть, имеет поддержку босса и, может, даже мафии.
  • Стейкхолдеры (люди, на стороне заказчика): контентщики, категорийные менеджеры, армия маркетологов, сеошники, и прочие люди, которым с этим потом работать. И у всех есть свои ограничения.

Попытка просто посадить разработчика сайта и программиста 1С рядом со словами «договоритесь» не работает — у них принципиально разные стеки технологий и задачи.
В Сибирикс процесс построен так, что менеджер уполномочен принимать решения и организовывать ресурсы для выполнения задачи. В его голове единая картина по проекту, он отвечает за задачи и цели, за бюджет, за сроки. Хорошо, когда такой же уполномоченный человек есть и на стороне компании заказчика (иногда, в небольших компаниях или при очень высокой щепетильности, это даже сам владелец бизнеса) — так проще договориться.

Но если такого человека нет — перед стартом работ по интеграции важно выяснить, кто будет принимать решения и отвечать за их реализацию, например, если потребуется доработка на стороне 1С. Идеально, когда это один человек, готовый в споре среди своих сказать: мы сделаем так, и точка.
Лайфхак, как упорядочить процесс
Менеджер проекта веб-разработчика, IT-специалист клиента и менеджер проекта на стороне клиента собираются 1 раз в день на 1 час и обсуждают всего три вопроса:

  1. Что было сделано вчера?
  2. Какие планы на сегодня?
  3. Какие есть проблемы?
Это проверенный рабочий процесс, пришедший к нам из Скрама и позволяющий сделать работу на 100%. Собрались, устроили стендап, разбежались. Сделали, согласовали, обозначили реальные сроки готовности к вводу в эксплуатацию и пошли допиливать все необходимое.

Что с чем интегрируем

Мы тут всё про 1С, потому что это самый частый случай — её, к тому же, иногда можно интегрировать с сайтом штатными средствами. Однако возможности гораздо шире. Веб-сервис можно интегрировать с ERP-системой любого плана. ERP подразумевает целое множество самых разных программных пакетов. От дорогущих решений Oracle и Microsoft, до условно бесплатной CRM-ки.
В зависимости от того, что с чем мы хотим интегрировать, есть несколько сценариев обмена данными:
  • текстовый файл/CSV,
  • CommerceML,
  • XML/JSON,
  • промежуточная база данных (MySQL/MS SQL),
  • web-сервисы (SOAP/REST),
  • NoSQL-решения.

CSV

Формат таблиц, содержащий данные в виде текста текста с символами-разделителями (например, точка с запятой) на ячейки и строки. Из него можно быстро импортировать данные в БД сайта — например, контакты клиентов или адреса филиалов. Этот файл формируется и складывается в определенное место, откуда сайт его регулярно забирает и загружает в соответствующую таблицу уже в своей базе.

В этом случае сторонам необходимо договориться, какие столбцы CSV соответствуют столбцам базы данных, и как они должны обрабатываться сайтом.

CommerceML

Стандартизированный подвид XML. Также используется для обмена данными в связке «сайт» — «ERP». Очень схож с тем, как работает предыдущий вариант — данные из реквизитов файла XML забираются сайтом в его базу данных, и наоборот. Это самый частый формат обмена с системой 1С, особенно для интернет-магазинов. Стандартом предусматривается использование схем XML, в частности, для обмена:

  • каталогами товаров в системах управления каталогом,
  • коммерческими предложениями (заказами),
  • документами.
Современные движки для сайтов и сама 1С обычно имеют встроенные модули обмена в таком формате. Обмен данными абсолютно под все задачи сайта не всегда получается решить штатно, но эти готовые решения сильно уменьшают объем кода, который пишут и проверяют разработчики с обеих сторон баррикад. Например, не надо писать скрипты старта импорта или экспорта, обработчики полученных пакетов из 1С — всё это уже есть в готовом решении, но с определёнными ограничениями. И, к сожалению, иногда довольно суровыми.
Пример
У Битрикса и 1С есть готовые модули для обмена. В 1С последней версии можно выключить обмен отгрузками простой галочкой, а в Битриксе — нет. Если нет отгрузки, Битрикс удаляет её и все товары из заказа и помечает заказ как ошибочный.

Разработчики обещали когда-нибудь доработать, но мы пока исхитряемся своими силами :)
Чем хороша штатная интеграция:
  • использует легкочитаемый стандарт CommerceML;
  • дает серьезную прибавку к скорости разработки;
  • позволяет сэкономить бюджет;
  • позволяет менять базовые настройки на уровне администратора, а не разработчика;
  • дружит с нативными возможностями CMS, которые критически важны;
  • содержит готовые скрипты для интернет-магазина: смарт-фильтр, каталог, заказы, кэширование.

XML/JSON

Нештатная интеграция. Например, сайт шлёт запрос статуса заказа по номеру и идентификационному паролю в 1С-ку, в ответ получает кусок XML, который содержит нужный массив данных. Далее он его обрабатывает и выводит пользователю на экран в виде, допустим, таблицы.

Из плюсов такой интеграции: в отличие от штатных обменов пакетами импорта здесь запрос-ответ могут происходить в режиме реального времени. Запросил — получил ответ — передал пользователю.
Пример из практики: У дистрибьютора профессиональной косметики колоссальная плотность данных: у одного только бренда красителей может быть до 100 связанных SKU (оттенки, объёмы, окислители). Плюс сложнейшая b2b-логика цен и остатков, которые кардинально отличаются для розницы, салонов красоты и региональных представителей. Попытка запустить здесь стандартный CommerceML/XML обмен привела бы к мгновенному коллапсу. Мы спроектировали быстрый кастомный обмен по HTTP-протоколу в формате JSON. Данные из 1С автоматически разбиваются на компактные, легкие пачки и передаются без задержек. Сайт и ERP общаются на лету, а клиенты видят актуальные остатки ежесекундно.
Пример SKU товаров на сайте Beecolor

Промежуточная БД (MySQL/MS SQL)

Когда системы слишком разнородны, имеет смысл интегрироваться через промежуточное звено, где хранятся только релевантные для обмена данные. Такая реализация сильно экономит ресурс на стороне ERP, где без существенных доработок штатными алгоритмами не выгрузить нужные данные.

Веб-сервисы (SOAP/REST)

Частая история с внешними сервисами доставки, оплаты, расчёта каких-то данных. Массивы данных по формализованному API шлются в одну сторону и получают от неё соответствующий ответ. Идеально подходят для быстрого запроса и получения информации «на лету».

NoSQL-решения

Сервисы вроде CouchDB, Redis, ApacheHBASE и других. В NoSQL базах структура данных не делится на строгие типы, поэтому если нужно поменять модель данных, достаточно просто отразить изменение в коде приложения. Отличаются большой мощностью хранилища за счёт объединения нескольких серверов быстрой сетью, где каждый сервер обрабатывает только свою часть данных.
Пример из практики: Сайт и мобильное приложение для аптечной сети из 90+ филиалов. В единой базе 1С ежесекундно крутится около 3 миллионов цен (4 базовые региональные структуры + 2 эксклюзивные мобильные цены). «Скормить» такой массив данных стандартному смарт-фильтру готовой CMS — значит гарантированно убить производительность, база данных сайта бы просто зависала. Как решили: мы отделили контур поиска и фильтрации от основной БД сайта и перенесли его на поисковый движок ElasticSearch. Данные из 1С индексируются на лету, а фильтр подгружает информацию поэкранно и строго по необходимости. Скорость работы фильтра выросла в 6 раз!
Пример товара с выводом 3 типов цен: цена «без скидки», «забрать сегодня», «подождать» на сайте сети аптек Амурфармация
Для справки: 1С с сайтом можно интегрировать любым из перечисленных способов. Все зависит от сложности структуры данных, протоколов их обработки, стоящих перед разработчиком задач, и, конечно же, бюджетов.

Омниканальность и современная интеграция (O2O)

Современная интеграция — это давно уже не просто связка «один сайт + одна 1С». Крупный e-commerce строит целые экосистемы, где данные должны синхронизироваться между сайтом, мобильными приложениями, кассовыми аппаратами в розничных точках (Online-to-Offline) и внешними маркетинговыми платформами. Очевидно, что это точно не шаблонная история: готовые коробочные решения под такие задачи просто не подойдут и не справятся с индивидуальной бизнес-логикой крупного проекта.
При проектировании таких систем кастомный бэкенд на фреймворке выступает единым «диспетчером», распределяющим потоки данных из ERP по всем каналам продаж.

Например, при работе над проектом для крупнейшей сети быстрого питания в Центральном Черноземье (550+ торговых точек), перед нами стояла задача обновить сайт и разработать кроссплатформенное мобильное приложение. Проект работает по логике O2O: каталог в приложении выполняет роль витрины, а сам заказ, оплата и списание бонусов происходят на кассе в офлайн-точке.

Мы реализовали сложный трехсторонний контур интеграции: из 1С забираем актуальные товары и цены для каждого города, параллельно настроили глубокий обмен с маркетинговой платформой Mindbox (где хранятся пользователи и персональные акции) и сервисом гео-данных Hotmaps. В итоге, когда пользователь делает заказ, данные из 1С (о наличии товара на конкретной точке) и данные из Mindbox (о бонусах) мгновенно стыкуются на одном экране под нагрузкой в 160 000+ активных пользователей.
Еще один пример: B2B-маркетплейс SOLOMA. В этом проекте мы также настраивали интеграцию сайта сразу с несколькими независимыми ИТ-системами заказчика, чтобы связать их в общую экосистему:

  • Синхронизация каталога в реальном времени (Pimcore + Apache Kafka): Все товары и их характеристики хранятся в специальной PIM-системе клиента. Чтобы сайт моментально узнавал об изменениях, мы связали его с PIM через шину данных Apache Kafka. Как только в базе меняется описание или добавляется свойство товара — сайт мгновенно ловит это событие и сам перестраивает фильтры в каталоге.
  • Автоматическая выгрузка в 1С: Как только покупатель меняет реквизиты в личном кабинете или менеджер обновляет статус заказа, сайт автоматически отправляет эти пакеты данных в 1С через ту же шину Kafka. Никакого ручного переноса — бухгалтерия и склад сразу видят актуальные документы.
  • Умная обработка изображений (Imaginary): Чтобы не перегружать сервер терабайтами картинок высокого разрешения, мы настроили интеграцию с медиа-сервисом Imaginary. Сайт просто берет ссылку на фото из базы данных, на лету сжимает его до нужного размера и выдает пользователю.

И это не считая стандартных для e-commerce интеграций: интернет-эквайринга для проведения платежей, сервиса DaData для автозаполнения реквизитов и контрагентов, а также CRM-системы для работы менеджеров.

Этапы интеграции

Работа по интеграции делится на 4 этапа:
  1. Бриф
  2. Протокол интеграции
  3. Непосредственно разработка
  4. Ввод в эксплуатацию
Делается это на разных стадиях относительно общего таймлайна проекта. Например, протокол, как показывает наша практика, хорошо делать после прототипирования, край — после дизайна.

По нашей практике мы можем забрать целиком на себя и настройку ERP и саму интеграцию. Или порекомендовать проверенных специалистов по настройке ERP (но далеко не каждой). Не факт, что корпоративные правила пустят нас в святая святых, так что более классический случай — когда веб или приложение живет отдельно, а ERP — отдельно.

Почему? Потому что второй стороне 100% потребуется время на подготовку площадки, с которой будем интегрировать сайт. Вбить данные, которые не вносили раньше. Возможно, данные из ERP придётся преобразовать в согласованный в протоколе формат — на стороне ERP потребуются выборки из базы, какие-то трансформации или какая-то математика. За это отвечают «обработчики». Специалист на стороне ERP должен их реализовать и проверить, что данные выгружаются в соответствии с протоколом. Это потребует времени.

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

Этап 1. Бриф и протокол

Чтобы понять и вилочно оценить фронт работ, у нас с годами сформировался очень подробный бриф на интеграцию. Еще на этапе продажи просим его заполнить, указать основные требования и вводные, предоставить пример выгрузки (например, товаров).
Без этих данных дать информацию по стоимости и срокам интеграции невозможно — вилка получается такая, что никакой конкретики: от 8 до 80 часов на описание протокола и от 40 до 200 часов на реализацию интеграции (хотя если штатная — то там пару галочек поставил и она типа сама заработала; но это не точно).

Выглядит это примерно так:
Но иногда бывает и так :)
По итогам брифа уже можно представить, какие сущности откуда берутся, определить возможный объём работы и выдать ценник на её выполнение.

Этап 2. Протокол

А чтобы выяснить, какие действия нужны от заказчика, чтобы веб-интегратор сделал ему хорошо — нужен протокол. Аккуратный, легкочитаемый, четкий. Чтобы каждый мог взять и понять, откуда берутся данные для вывода любой непонятной хрени на странице.
Протокол интеграции отвечает на ключевые вопросы: какие сущности и какие поля интегрируем, в каком направлении, с какой периодичностью и в каком формате. Также в нём прописывается, что является первичным: сайт, ERP или какая часть данных берётся на сайте, а какая — в ERP.
Как составлять
Со временем у нас сложился более-менее четкий шаблон протокола. Под каждый вид интеграции есть пример того, как должно выглядеть описание. Также есть чеклист. Заполняет его менеджер студии, как человек, который ведет проект от начала и до ввода в эксплуатацию. Перед стартом сборки в нём должны быть отмечены зелёным все-все галочки.
На основе прототипа и ТЗ составляем список сущностей, которые должны использоваться на сайте. К каждой сущности добавляем описание, откуда она берется. Приводим примеры с реальными данными.
Тут как с чеклистом: по готовности протокола у вас не должно остаться неведомых ссылок в никуда на странице, скажем, карточки товара. Каждый функциональный элемент имеет происхождение и задачу, которая с ним связана. Например, вес товара и объем, который должен использоваться в алгоритме расчета доставки. Объем мы считаем из трех параметров упаковки товара, которые должны импортироваться на сайт.

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

Чтобы исключить любые «серые зоны» и перерасход бюджетов на этапе программирования, Мы используем метод светофора при оценке рисков. При этом весь протокол интеграции открашивается в три цвета:

  • Зеленый: сущность полностью понятна, поля сопоставлены, данные готовы к обмену.
  • Желтый: требуется доработка на стороне ERP (например, нужно разложить габариты товаров ДхШхВ в три отдельных поля в 1С для корректного расчета доставки через API логистических служб).
  • Красный: бизнес-логика сайта конфликтует с техническими возможностями учетной системы.
Красить «светофором» можно еще и макеты, сверяя сущности с протоколом интеграции
Пример из практики: Заказчик хочет настроить real-time обмен бонусами. Сайт спроектирован так, чтобы принимать только дельту (обновления), экономя ресурсы сервера. Но на этапе анализа выявляется, что текущая 1С умеет выгружать бонусы только полным массивным файлом раз в сутки. Выявление этого «красного света» еще в протоколе сбережет сотни часов разработки.

Имея на руках качественно проработанный протокол интеграции, вы сможете:
  1. Гарантировать заказчику, что вся эта нужная хрень на странице будет работать.
  2. Четко и однозначно поставить задачу разработчику.
  3. Диагностировать и устранять возможные проблемы на этапе отладки.

Иначе будет что-то как-то интегрированное с чем-то, которое как-то работает, но как — знает только программист Василий из деревни Малые Дубняки, который на связи в каждый второй четверг третьего месяца, после дождичка. А вам с этим жить и зарабатывать.

Этап 3. Разработка

Обычно идёт параллельно на стороне клиента (ERP) и студии (сайт).

Однако, когда речь идет об интеграции, вам не избежать коммуникации со всеми сторонами. Могут выявляться проблемы и недоработки, организовать решение которых — задача менеджера. Если эти проблемы идут постоянным потоком, имеет смысл назначить регулярные стендапы, как мы делали на этапе составления протокола, чтобы контролировать результаты до тех пор, пока фонтан проблем не иссякнет.

Работоспособность системы можно сверить и по протоколу. Берем блок, тестируем, и проверяем одну за другой сущности, отмечаем проверенное флажками. Аномалии отмечаем красным, фиксируем проблемы, на чьей они стороне, и ставим задачи на их устранение.

Что может пойти не так

Со стороны ERP
Некорректно передаются данные ERP, например:
  • неверно передаются сущности,
  • неверно настроено подключение,
  • не передаются нужные сущности или наоборот, передаются лишние данные.

Сверяемся с протоколом и отправляем доделывать. Когда мы имеем дело с системой, где большое количество сущностей и взаимосвязей, просто прогон обменов туда-сюда может давать неполную картину. В таком случае хорошо натравить на сайт тестировщика и сделать сверку того, что должно быть, с тем, что мы имеем по факту.
Пример
У вас есть сущность на сайте. У нее должен быть указанный в протоколе набор полей. И вот после прогонки наживую, она не работает корректно. В первую очередь надо смотреть, а корректно ли она приходит. Открываем админку, смотрим. Сверяемся с протоколом. Смотрим выгрузку. Пришло не в том виде — вот и ошибка. А если все при этом пришло как договаривались — поздравляем, у вас баг на стороне сайта или приложения.
Самый хороший метод здесь — светофор. Что красить, надо смотреть по ситуации
Со стороны разработчика
Полученные данные не обрабатываются или обрабатываются некорректно. В первую очередь проверяем полученные данные. Если там все окей, начинаем сверяться: всё ли принимающая сторона делает по протоколу? Если нет, устраняем недочеты, проверяем ещё раз.
Проблема в протоколе
Эта птица не полетит. Самый плохой случай. Это значит, что вы что-то некорректно спланировали. Собираемся и согласовываем, как решить поставленную задачу так, чтобы система заработала.
Пример
Нужен обмен пользователями и их бонусами между 1С и интернет-магазином, например, на Битриксе. Штатный модуль такого не умеет ни там, ни там.

Договариваемся, в каком формате будет обмен — пользователи отдельно и отдельно файлик с бонусами. Хотим получать только обновления по бонусам. На сайте реализована именно приёмка обновлений, как договорились. При запуске системы выясняется, что на стороне 1С выгрузка бонусов, в принципе, возможна, но только полная — отдельно выгружать изменения она не умеет, а научить её очень трудоёмко. Это условие не было выяснено на этапе написания протокола — в итоге получается, что вроде всё сделано, как до
говорились, но это не полетит.
Могут ли быть изменения в протоколе по ходу работы? Да, и это нормально. Сначала добавляем их в смету, затем в протокол.

Этап 4. Ввод в эксплуатацию

Вы думаете, после интеграции все волшебным образом начнет работать само? НЕТ.
Тут начинается самое интересное:
  1. Деплоймент — размещение сайта на рабочем сервере.
  2. Собираем команду со всех сторон на день-два.
  3. Методично гоняем обмены туда-сюда.
  4. Прогоняем типовые ситуации.
  5. Составляем список проблем.
  6. Формализуем их в задачи.
  7. Ходим по итеративному кругу: сделали задачу — проверили — сделали — проверили.
Это действительно может занимать от пары часов до нескольких недель в зависимости от сложности системы. Садимся и гоняем импорты вживую. Фиксируем проблемы, на чьей они стороне. Исправляем, проверяем. Иначе можно бесконечно спихивать задачи друг на друга, пока проект стремительно протухает, деньги не зарабатываются, а нервы и ресурсы истощаются. Когда не осталось нерешенных вопросов — проект готов к релизу.

Часто задаваемые вопросы (FAQ) по интеграции с 1С

Итого

Интеграция — это, конечно, хорошо. Но когда мы говорим про высоконагруженный e-commerce и ERP-системы, это история не про «один раз настроил и забыл». Это непрерывный процесс управления архитектурой и рисками, где нужно постоянно держать руку на пульсе.
Да, придется попотеть на старте, договориться со всеми командами и учесть миллион нюансов. Но игра точно стоит свеч. Правильно выстроенный обмен данными — это то, что в итоге напрямую снижает стоимость владения всей системой, гарантирует безопасность данных и, главное, дает вашему бизнесу ту самую скорость, которая позволит запускать новые фичи быстрее, чем конкуренты.